According to the urban dictionary,it is Making improvements to a system that don't actually do anyone any good, and can sometimes have negative ramifications. For me, it's configuring my computer workflow, both in software and physical worlds.

Physical setup

Mental health is tightly connected to a physical one, so I try my best to take care of my body even during the time in front of a computer: take breaks, exercise, stay hydrated and much more. Since a lot of my time is spent in front of a computer it's important to have comfortable interfaces:

Keyboards & a trackball

The trackball is awesome for my day-to-day use but I'm not shy of switching to a DualShock 4 or a graphical tablet.

By now we have the input part almost covered but there are other things to improve.

Monitor position can be a crucial part of one's posture. I had to buy a VESA compatible arm for one of monitor and build a stand for another one to get them into a comfortable position.

Adjustable table is another factor in getting one's posture right. I went with motorized table legs for IKEA Bekant & a custom tabletop. It allows me to easily switch between sited and standing positions. As a quality of live improvement it's modified with an open-source megadesk controller which can save positions.

Software setup

The most crucial part of the customization happens here! I try to stick to vim-based navigation and avoid mouse where I can. Sometimes it means configuration but sometimes it's plain switching a piece of software.

You can find my configuration files at gitlab and github. They are managed by GNU Stow, a piece of software helping me to store all my configs in one directory under Git control by symlinking content to locations appropriate for a given software. Fortunately, configs are available on their own, so Stow is not required.

Some of eye candy inspirations came from awesome r/unixporn.

Display manager

It's a crucial part of starting your Desktop Environment. You can choose your DE, user and enter your password.

To address it's importance I use none and no DE either. Little part of my ZSH profile (~/zprofile) checks if I'm using tty1 and if so calls startx which executes follows ~/.xinitrc agenda.

Current config is stored in xmonad directory.

Cool kid tip: You can put some ASCII art in your /etc/issue. Don't forget about /etc/motd if you access your machine by ssh.

Window manager

Xmonad is an awesome piece of software written in Haskell. Uses X11 tho. To modify this WM you have to change the code. But it's done it such a way that main code is more like a library to you so it's maintainable by your distro (hello dwm). All you have to do is write an entry point (main) where you can (re)define some stuff and build your flavour like Lego. It's not prohibited to write your own behaviors and features but usually xmonad-contrib gets you covered.

To make Xmonad more pleasant to an eye I use picom compositor to add shadows and transition animation.

Screen Lock

i3lock is a part of i3wm which can be used used separately as an universal X11 lockscreen. Mind though that X11 has no notion of screen lock so it's all black magic fuckery.

i3lock handles window managers of different sorts pretty well but compositor can break stuff by redrawing windows over i3lock.

To avoid this little helper script shuts compositor before locking computer and brings it back up right after unlocking (DIY or look for it in dotfiles).

Terminal emulator

Alacritty coz rendering terminal with GPU is fun! And it's written in Rust.

ZSH is used as a default shell. Starship theme helps it look nice and somewhat helpful.


Qutebrowser for being vim-like to it's bones.

It's super easy to add new search engines and commands!


It is an awesome chat client for your terminal (click).


Is an awesome network for communication (cllick). To use it with weechat you can install this script.

Desktop notifications

weechat-notify-send sends notifications to dunst.

Spell check

aspell support is integrated into weechat. To use it you have to have aspell installed in your system in couple with some language, aspell-en for example.

Enable aspell in weechat

/aspell enable

Set language

Here we set English and Russian:

/set aspell.check.default_dict en,ru

Enable suggestions

You have to type this part without hitting enter but tab-complete instead:

/set weechat.bar.status.items

A ton of stuff will appear, this is current value for weechat.bar.status.items.

Now add [aspell_suggest] to the end:

/set weechat.bar.status.items "<current value>,[aspell_suggest]".


I tent to use terminal to check mail but carefree access to Exchange server Evolution is nice.


CLI mail client. For initial configuration it's more than convenient to use mutt-wizard by Luke Smith

Only things different from wizard's defaults is systemd timer instead of cron job.


This baby doesn't need a separate wizard to start using and tabs feature is so cool!