when making TUI program, use "\x1b[?1049h\x1b[H" to switch to another term buffer and "\x1b[?1049l" to switch back. This way you leave user's terminal intact

you can start simple web server with "python3 -m http.server", great when making static websites

use "z=" in vim to spell check one word. To enable full spell checker, use ':set spell'. To set languages, use ':set spelllang=...'

run "setxkbmap -option ctrl:nocaps" to replace capslock with additional ctrl key. you can find (way) more options in "/usr/share/X11/xkb/rules/xorg.lst"

the "interrobang" character (‽) exists

You can make nvim nvim your manpager with: export MANPAGER='nvim +Man!'

The annoyng buffer you open in vim all the time is invoked via 'q:'

If your fonts look all funny and inconsistent in size, try 'xrandr --dpi 96'

The C preprocessor can be used separetly via the 'cpp' command.

You can configure context menus in tmux via 'display-menu', both for mouse, and for keybindings.

If you install Nvidia drivers from outside the package manager, they might need reinstall after kernel update. To kill X session with display manager, you have to 'systemctl stop' it.

Don't forget to update your: packages, flatpaks, snaps, firmware, editor extensions

when using xdotool from xbindkeys (such as when rebinding the mouse), add '--window' flag in the middle like so: 'xdotool mousedown --window $(xdotool getactivewindow) 2'

to properly remap mouse buttons to each other, use something like:

#!/bin/sh
MICE=$(xinput list | grep -i mouse | grep pointer |
       awk -F'id=' '{print $2}' | awk '{print $1}')

for MOUSE in $MICE; do
    xinput set-button-map "$MOUSE" 1 2 3 4 5 6 7 8 2
done