My arch linux setup and beyond
See the repo directoy for how these dotfiles are managed.
To see updates you can watch the Github releases, where I will regularly document the changes that I've done.
Table of Contents
Superior shell, extends bash/posix.
I'm using a stripped down version of oh-my-zsh with a lot of custom aliases.
Multiple shells within the same terminal, screen splitting and much more. With tmuxinator and my tp script I start all my projects from a configured tmux session.
To supports italic fonts, enable the terminal capabilities with:
tic -x .config/tmux/tmux-256color.terminfo
Neovim with custom macros, hooks and a few plugins.
I am in the process of migrating to emacs, after I hit the limits of neovim's extensibility.
lf is a quick and relatively scriptable file manager.
I got it configured with uberzug for terminal image preview inside of tmux and many custom keybindings.
Music player daemon and its client.
- my music setup in detail
- mpd config
- ncmpcpp configs
- control-mpd script (called from sxhkd)
- scripts for managing and importing music
remind
is not a classical calendar application. I've tried calcurse and
khal but they were trying to emulate
normal GUI calendars too much and were imo just loosing in comparison.
remind
does it's own thing. It's a powerful DSL (domain specific language)
where you define all of your entries in a text file. With this approach you can model
some very sophisticated recurring entries like you've never seen before.
Syntax demo
# simple stuff:
Oct 01 MSG Change car tires
REM [TRIGGER(easter)] MSG Change car tires
# with colors for birthdays
REM Feb 7 SPECIAL COLOR 205 0 255 BD Francis
# appointments with start and end time (via DURATION in min)
Thu AT 17:30 DURATION 90 SPECIAL COLOR 215 0 0 Rendezvous mit meinem Geld
# more complex stuff:
# taking out the trash every 14 days
# but only show me 3 days in advance
# and hide the entry if it's in the past
REM 2021-05-17 *14 AFTER SATISFY [trigdate() < realtoday()+3 && trigdate() >= realtoday()] SPECIAL COLOR 140 100 40 Plastikmüll rausstellen
REM 2021-05-18 *14 AFTER SATISFY [trigdate() < realtoday()+3 && trigdate() >= realtoday()] SPECIAL COLOR 140 100 40 Restmüll rausstellen
# these will take into account any holidays you have configured
OMIT Oct 3 SPECIAL COLOR 175 175 25 Tag der Deutschen Einheit
# and push back garbage day to the day AFTER
Use for reading newsletters, manga, receiving album updates for followed artists, youtube, notification of github released for packages I'm maintaining and more.
Plain text accounting for managing my finances. Allows me to do everything I need (which is not uncomplicated.)
There are various other CLI apps I'm using.
- see: started projects
- see: awesome cli apps list (that I maintain)
Fast, easy to configure, batteries included.
- main config
- dark colorscheme
- script for launching light mode (see logical integration with neovim)
Infinitely extensible, incredible documentation and self-help facilities and all the best plugins.
The only logical choice after really considering the options.
- configs
- all the projects I'm using
Everything you'll ever need from a video player.
- config
- keybindings
- script that controls both mpd and mpv together (called via sxhkd)
- scripts for socket/session management and remote control
Quickly filter a list. Use cases: start an application, open bookmarked page, search browser, insert a emoji/credit card number/IBAN/etc.
- config
- arc-dark colorscheme
- scripts dir
- bangs: search directly in many websites
- emoji-picker
- application-start
- networkmanager_dmenu: manage (wifi) networks
Secure messenging.
I use signal both as my primary messenger (95% of volume) and as a entrypoint to add notes to my note-taking system.
Desktop notifications use dunst (notification daemon).
- see the keyboard shortcuts
For note-taking
I have a chat with a secondary number, which is registered on my sever. Messages sent to myself are created as notes in my note-taking system.
- signal-cli-to-file: script that turns messages into notes
I have a dockerized torrenting setup running 24/7 on my home server. See all details: my torrent setup
Perfectly suitable photo editing.
Secure password management outside of the cloud (don't trust somebody else with your most sensitive data.) Has browser sync and entry, one time passwords and everything I ever needed.
Automatic background sync of all your data. Description of my setup.
More GUI apps that I'm using: starred projects
I am using as my Xorg display server and it causes me no pain, so there is no incentive to migrate to Wayland. Wayland is undoubly the future, but at this point it doesn't support everything I need and the migration would require a significant effort.
Lightweight window manager.
The essential hotkey daemon.
I use a i3lock fork with a custom screenshot script and fingerprint unlock.
Pipewire and wireplumber are next generation linux audio. Migration from pulseaudio was super easy.
- script to control volume (bound via sxhkd)
- pipewire configs
- wireguard configs
- pulsemixer app for manual control
In order of importance these are the browsers I use:
- Brave
- Firefox
- ungoogled-chromium
Brave manual config steps
Disallow sites to ask if they can send notifications
Looking at you reddit...
Search "Content" -> "Site and Shield Settings" -> "Notifications" -> Toggle
Arc Dark is my prefered theme (I based my terminal colorscheme on it.) firefox chrome
name | description | links |
---|---|---|
uBlock Origin | Best free (as in freedom) adblocker | firefox chrome git |
Surfing Keys | Navigate browser with vim shortcuts | firefox chrome git simpler-alternative |
Dark Reader | Dark mode for all websites | firefox chrome git |
KeePassXC-Browser | KeePass integration for password insert | firefox chrome git setup on iridium |
name | description | links |
---|---|---|
LeechBlock | Flexibly block sites | firefox chrome website |
SponsorBlock for YouTube | Skip sponsor/recap/like comment subscribe segments in videos | firefox chrome my options |
FastForward | Skip link shorteners | firefox chrome git |
I still don't care about cookies | Ignore cookie banners | firefox chrome git |
Libredirect | Redirect to libre version of popular website | firefox chrome git |
Bypass Paywalls | Ignore e.g. NYTs free articles limiter | git |
Easy to RSS | List the rss feeds of the current site | firefox chrome git |
Autofill | Automatically fill forms with configured data | chrome |
name | description | links |
---|---|---|
Privacy Badger | Stop suspicious trackers | firefox chrome git |
ClearURLs | Remove tracking elements from urls | firefox chrome git |
LocalCDN | Stop tracking through CDNs by redirecting to local resources | chrome |
Decentraleyes | Stop tracking through CDNs | firefox chrome git |
name | description | links |
---|---|---|
Buster | Captcha Solver | firefox chrome git |
Hover Zoom+ | Large overlay on image and link to image hover | chrome git |
Stylus | Customize website style | firefox chrome git |
Coding:
name | description | links |
---|---|---|
Chrome Markdown Preview | Elegant GFM preview on .md files |
chrome git |
JSON Formatter | Easy to read JSON formatting | chrome git |
Modify Header Value | Set HTTP headers | firefox chrome homepage |
GitHub related plugins
A comprehensive list of GitHub chrome extensions can be found here.
name | description | links |
---|---|---|
Refined GitHub | GitHub functional/visual upgrade | chrome git |
npmhub | List npm dependencies in readme | chrome git |
Octotree | GitHub file tree | chrome git |
Vscode-icons | Icons indicating file type | chrome git |
Lovely Forks | Shows notable forks | chrome git |
npm-stats | Display npm download stats in repo | chrome git |
show-email | Display email on profile, even if not provided | chrome git |
omnibar | Shortcut navigation for github | chrome git |
issue-link-status | Colorize issue links depending on status | chrome git |
build-tabs | Build tab for github | chrome git |
github-autocomplete | Github search autocomplete | chrome git |
github-plus | Display repo size, download links | chrome git |
F-Droid is a software repository hosting free and (mostly) open source apps. If available always try to use F-Droid over the google play store. Read more on F-Droid. Most fdroid apps are also on gplay, even if I did not include them here.
If you need the google play store you can use Aurora instead. It's an alternative play store interface, allowing for private downloads and a better UI.
Ordered by importance and pretty much complete.
name | description | links |
---|---|---|
Signal | Privacy friendly messaging, end to end encrypted chat | gplay git website |
Simple Time Tracker | Smooth time tracker with widgets | fdroid gplay git |
CamScanner | Document scanner (pro) | gplay |
Vinyl | Full featured music player | fdroid gplay git |
VLC | Generic player | fdroid gplay |
OI Shopping List | Shopping list | fdroid |
OsmAnd | Navigation | fdroid gplay |
f.lux | Bluelight filter (root) | gplay website |
Audiobook-shelf | Audiobook player (served from home server, with offline sync) | homepage gplay |
Syncthing-Fork | File sync (music and such) | fdroid |
K-9 Mail | fdroid sync-setup gplay | |
Merriam Webster | English dictionary | gplay |
Alle Deutschen Wörterbücher | Germany dictionaries | gplay |
Öffi | Public transport planning | fdroid gplay |
DuckDuckGo | Browser | fdroid gplay |
Aurora | Google Play Store replacement (better with root) | fdroid website |
Claude | AI chatbot | gplay |
DHL | Parcels | gplay |
Aves Libre | Photo gallery | fdroid |
dict.cc | Offline dictionary | gplay |
p!n | Pin notes as notifications | fdroid git |
SCEE (Street Complete Expert) | Fast OSM Editor | fdroid |
Every Door | OSM Editor for shops | fdroid |
Vespucci | Complete OSM Editor | fdroid |
Otter | Transcribe spoken language | gplay |
KeePass DX | Mobile keepass database | fdroid gplay |
FBReader | Ebook reader | fdroid gplay git |
Micopi+ | Generate profile picture for contacts | git |
Required messenging |
Previously in use
name | description | links |
---|---|---|
NewPipe | Youtube without ads | fdroid |
DAVx⁵ | CalDAV sync | fdroid website setup explaination |
DNS66 | Mobile hosts file | fdroid |
primitive ftpd | ftp server | fdroid git |
M.A.L.P. | MPD client | fdroid |
AudioAnchor | Audiobook player | fdroid |
Simple Calendar | Calendar | fdroid git |
My Expenses | Expense/income tracker, with exports | fdroid gplay git |
Productivity Challenge Timer | Optimized pomodoro clock | gplay |
JuiceSSH | Mobile mosh (ssh) client | fdroid |
MX Player | Video player (better than vlc) | |
Anki | Flashcards | fdroid gplay git |
MuPDF | PDF viewer | fdroid |
Markor | Markdown editor, notes app | fdroid gplay git |
Termux | Terminal emulator | fdroid git |
Macros | Calorie Counter | gplay |
Relaxio | White-noise player | gplay |
Amaze | File manager | fdroid git |
Alarmio | Alarm clock, timer | fdroid git |
StreetComplete | Simplified OSM contribution | fdroid |
HiPER Calc | Superior calculator | gplay |
Dicer | Roll dices | fdroid |
Tape Measure | Measure distances in an image | fdroid |
Voice | Audiobook player (more formats than audiopo, but inferior interface) | fdroid |
Scrambled Exif | Remove metadata from images before sharing them | fdroid |
Bluelight Filter | Filters the bluelight, easier on the eyes, set filter based on time | gplay |
I also use this setup on macOS, though there is a lot of room for improvement.