Utilities for work and play.
"Instead of planned obsolescence, there should be planned longevity."
- viznut
trabant

A mid-2015 MacBook Pro that runs linux with Ubuntu and Regolith alongside a selected range of software for light or text-based projects, communication and traveling.
It replaced my mid-2012 model in 2023 to be able to use it with the drawing tablet.
I found it online in almost new condition for 450 EUR.
trabant 2015 specs
- Host: Mid-2015 MacBookPro 11,5
- RAM: 16 GB
- Processor: Intel Core i7 @ 8 x 2.7GHz
- Display: 15.4-inch LED/IPS - 2880 x 1800 @ 220 ppi
- Graphics: AMD Radeon R9 M370X with 2GB of GDDR5
- Storage: 500 GB
- Weight: 2.04 kg
- Operating System: Ubuntu 22.04 LTS
- Desktop Environment: Regolith
Issues
Most of the issues I had on the 2012 model didn't appear, but getting individual resolution scaling to work took some figuring out.
Resolution Scaling
Ubuntu kept setting the same scaling for both monitors. I used xrandr
to fix this:
xrandr --dpi $DPI --fb "$full_X"x"$full_Y" \ --output $MAIN --mode "$MAIN_X"x"$MAIN_Y" --scale "$MAIN_SCALE"x"$MAIN_SCALE" \ --output $WACOM --mode "$WACOM_X"x"$WACOM_Y" --scale "$WACOM_SCALE"x"$WACOM_SCALE" --pos 0x"$mainY"
Webcam Not Detected
The internal webcam didn't work out of the box and the instructions found online were opaque and hard to find. After some trial and error I modified a set of instructions found in an article online:
$ cd /usr/local/src $ sudo git clone https://github.com/patjak/bcwc_pcie.git $ sudo git clone https://github.com/patjak/facetimehd-firmware $ cd facetimehd-firmware/ $ sudo make $ sudo make install $ cd ../bcwc_pcie/ $ sudo make $ sudo make install $ sudo depmod $ sudo modprobe -r bdc_pci $ sudo modprobe facetimehd
Power Save Settings
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
Disables automatic screensaver.
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
Disables automatic sleep activation when plugged into the AC adapter.
Also make sure to turn off Automatic Screen Lock
hidden in Settings > Privacy > Screen
.
Default Startup Brightness
One reboot, the screen brightness was very low. To set another default edit or create /etc/rc.local
file and make it executable using chmod sudo chmod +x rc.local
. Edit the file with the following content:
#!/bin/bash # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. echo 900 > /sys/class/backlight/gmux_backlight/brightness exit 0
Make sure the file path /sys/class/backlight/gmux_backlight/brightness
is correct.
Pre 2024
A mid-2012 MacBook Pro that runs linux with Ubuntu and Regolith alongside a selected range of software for light or text-based projects, communication and traveling.
It was out of use for a few years because of a broken graphics chip that was bridged in late 2022. The nVidia graphics chip is now not usable anymore which means that it cannot run graphics intense software and the HDMI and Thunderbold outputs are useless.
trabant 2012 specs
- Host: Mid-2012 MacBookPro 10,1
- RAM: 16 GB
- Processor: Intel Core i7 @ 8 x 2.3GHz
- Display: 15.4-inch LED/IPS - 2880 x 1800 @ 220 ppi
- Graphics: Intel HD 4000 (IVB GT2)
- Storage: 250 GB
- Weight: 2.02 kg
- Operating System: Ubuntu 22.10
- Desktop Environment: Regolith
There are a few things to get everything working right with ubuntu.
Regolith is a desktop environment that can be either installed on top of Ubuntu or with a custom installer image.
Issues
- i3wm handling High Pixel Density Display
- Left Alt/Cmd keys are switched
Backlight Brightness
xrandr --output eDP-1 --brightness value
The value
is between 0
and 1
.
Wrote a bash script and mapped it to brightness keys XF86MonBrightnessUp/Down
in i3 config file.
Startup Chime
To decrease the volume of the startup sound, edit the EFI variable SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
.
Drop to root access using sudo -su
, then change directory cd /sys/firmware/efi/efivars/
.
To overwrite the variable content, first change the immutable bit of the file with chattr -i SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
.
Now change the content with printf "\x07\x00\x00\x00\x00" > SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
.
Change the immutable bit again with chattr +i SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
.
Alt/Cmd keys switched
Use Gnome Tweaks to switch the keys.
rosinante

With the introduction of the 2015 model of Trabant, Rosinante was retired. I keep this page for archive purposes.
Rosinante was a stationary laptop located in my workstation that I used for projects with high performance demands such as developing Gibbon: Beyond the Trees. It was setup to be able to boot into Windows, but usually runs linux with Ubuntu and Regolith alongside a selected range of software.
It had no communication capabilities and was intended for deep focus work only.
rosinante specs
- Host: Lenovo ThinkPad P50, 15"
- RAM: 32 GB
- Processor: Intel Core i7 @ 8 x 2.7GHz
- Graphics: nVidia117 / Mesa Intel HD 530 (SKL GT2)
- Operating System: Ubuntu 20.04 LTS
- Desktop Environment: Regolith
- Keyboard: OLKB Preonic
tablets
preonic

For day to day work on trabant I use the OLKB Preonic v3, a 5x12 orthographic keyboard with Gateron Aliaz Silent MX mechanical switches and the Acute keycap set.
It runs the QMK firmware that allows custom key mapping. To do so, the firmware along the configuration file are compiled and flashed onto the keyboard. To install QMK CLI run:
python3 -m pip install --user qmk
Clone the qmk_firmware repository. Then run the setup with the repository as a path and install all dependencies:
qmk setup -H /path/to/qmk/
Set the default configuration:
qmk config user.keyboard=preonic/rev3 user.keymap=rostiger
Note: If the user configuration doesn't write over the ini file, open $HOME/.config/qmk/qmk.ini
and enter the information manually:
[user] qmk_home = /home/rostiger/projects/keyboards/qmk keyboard = preonic/rev3 keymap = rostiger
Use the online configuration tool to configure the mapping to your liking, name it preonic/rev3/rostiger
and download the .json file. Store the file at qmk/keyboards/preonic/keymaps/rostiger/rostiger.json
.
Navigate to the above directory and convert the json file to C:
qmk json2c rostiger.json > keymap.c
Build the keymap layout and flash the keyboard by running
qmk compile
If the build was successful, use a pin to push the reset button on the underside of the PCB. This will put the keyboard in flash mode. It is not functional in this mode and must not be unplugged.
Now flash the keyboard:
qmk flash
planck ez

A small, portable and highly configurable keyboard that I use with RASP/UTIN and the pocketchip. It features a 4x12 layout and Cherry MX Brown mechanical switches with double ring silencers.
To make up for the few keys, it can be configured to activate different layouts with a press of the "raise" or "lower" keys.
Keymap
The keymap is configured to be as versatile as possible while leaning torwards programming.
,------------------------------------- 0: Base -------------------------------------. | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| | Esc | A | S | D | F | G | H | J | K | L | ; | ' | |------+------+------+------+------+------|------+------+------+------+------+------| | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | |------+------+------+------+------+------+------+------+------+------+------+------| |Extend| Ctrl | GUI | Alt |Lower | Space | Raise| Left | Down | Up |Right | `-----------------------------------------------------------------------------------' ,------------------------------------ 1: Lower -------------------------------------. | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Ins | |------+------+------+------+------+-------------+------+------+------+------+------| | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | | | |------+------+------+------+------+------|------+------+------+------+------+------| | RCtrl| F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | Home | PgDn | PgUp | End | `-----------------------------------------------------------------------------------' ,------------------------------------ 2: Raise -------------------------------------. | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | |------+------+------+------+------+-------------+------+------+------+------+------| | Del | | | | | | | - | + | [ | ] | \ | |------+------+------+------+------+------|------+------+------+------+------+------| | | | | | | | | | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | |BRGTH-|BRGTH+| Vol- | Vol+ | `-----------------------------------------------------------------------------------' ,------------------------------------ 3: Adjust ------------------------------------. | | | | | | | | | | | | | |------+------+------+------+------+-------------+------+------+------+------+------| | | | | | | | | |BRGTH+|BRGTH-| | | |------+------+------+------+------+------|------+------+------+------+------+------| | | | | | | | | |CLRTGL|LGTTGL| | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | Prnt | `-----------------------------------------------------------------------------------' ,----------------------------------- 4: Extend -------------------------------------. | | | | | |WheelU|WheelD| | | | | | |------+------+------+------+------+-------------+------+------+------+------+------| | | | | | |LClick|RClick| | | | | | |------+------+------+------+------+------|------+------+------+------+------+------| | | MLeft| MDown| MUp |MRight| | | MLeft| MDown| MUp |MRight| | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | Prnt | `-----------------------------------------------------------------------------------'
pocketchip

The PocketChip production was discontinued in 2017, the company producing it entered insolvency in 2018. By now, all documentation and data went offline, but there still is an active community around the device.
I found it used online for 40EUR in 2021. Unfortunately it died in 2022 after little use.
Specifications
- 1 GHz ARMv7 processor
- 512 MB RAM
- 480 x 272 LED backlit touchscreen
- Membrane keyboard
- One USB port
- Headphone jack
- Wireless Internet
- Bluetooth
- 5V DC, 500mA battery
- Up to 5 hours usage

printer

3in1 printer bought second hand in 2019.
Install Generic drivers
sudo apt install cups
In the Gnome settings, select the printer and set it as the default printer.
If the host can't be located, try
service cups-browsed restart service cups restart
Printing
Print from command line
lp filename
Adjust columns per inch and lines per inch to control output size.
lp -o cpi=14 -o lpi=8 filename
Cancel all print jobs
cancel -a
I added a bash function to .bash_aliases
for a printing template:
lpt() { margin=60; marginTB=30 lp -o cpi=14 -o lpi=8 -o page-top=$marginTB -o page-left=$margin -o page-bottom=$marginTB -o page-right=$margin -t "$1" $1; }
Refilling the Tanks
Simply open the lid and fill the corresponding color tank with ink up to the top most line. In the printer menu, head to Maintenance>Reset Ink Level
and follow the navigation.
Power Cleaning
The printer like to skip lines which aren't fixed with the regular cleaning programs and require a "power cleaning".
Turn off the printer and press the ? button. Keeping it pressed, press the power button until the green ring starts blinking.
software
trabant runs as much open source software as possible.[$]: Financial expenses indicator
Utilities
- firefox: a compromise
- feh: image viewer
- Transmission: torrent client
- termscp: FTP client
- Rad Reader: an RSS reader
- feh - image viewer
- Gnome-Tweaks - to switch trabant alt and cmd keys
Command Line
- nnn - file browser [$]
- micro - text editor
- pass - password manager
- w3m: a command line browser
- imagemagick - command line image editing
- cmus - music player
- khard - manage contacts
- khal - calendar
- lazygit - git client [$]
- xclip - copy text to the clipboard
- vdirsyncer - sync calendars and contacts with a remote server
- rsync - file synchronisation tool
- stardict - dictionary
- pywal - generates a color palette from the dominant colors in an image
- powerline shell - beautiful bash prompt generator
- toot tui - a terminal user interface for Mastodon
- units - to convert various units of measurement
- openvpn - used with airvpn
- wal - used to set random wallpapers and pick color samples for relogen
- rofi - application launcher
- libfuse2 - to run AppImages
- gphoto2 - import pictures from camera
- clang-format - a C linter
- ncdu - disk space monitor
Communication
- Slack - messenger for Broken Rules
- Zulip - messenger for Ouvertura
- Cabal - messenger for Merveilles communication
- Signal - messenger for everything else
- neomutt - email client
- mbsync - used to synchronise emails with a remote SMTP server
- msmtp - used to send emails
- ripmime - used to view email attachments
- urlscan - used to parse email links
Image & Video Editing
- Krita - a painting suite [$]
- Inkscape - vector graphics editor [$]
- Darktable - raw file image editor
- blender - 3d suite
- KdenLive - Video Editing
Abandoned
- qutebrowser - world wide web browser [$]
- Ripcord - slack client [$]
incoming(3) | workstation | workstation | inventory