Linux
Linux recommendations
Distro recommendations
Fedora KDE
Bleeding-edge work
Community maintained, backed by Red Hat. Freshest Linux-kernel, newest features, and could break at any time.
Rocky Linux KDE
Stable, long-life
Long support window, and calm updates. A safe pick for general users and machines you don't want to maintain often.
Tmux config
My ~/.tmux.conf is tuned for SSH workflows and Konsole. It binds Ctrl-a as the prefix, uses a Nord palette, enables vi-style copy-mode, and uses OSC 52 so yanks land in the local clipboard even when the session is on a remote host.
- •Ctrl-a prefix (screen-style), with intuitive splits on | and -.
- •Nord status bar with session, hostname, date, and time.
- •Vi-style copy-mode: v to select, V for line, Ctrl-v for block, y to yank.
- •OSC 52 clipboard so yanks work over SSH back to the local machine.
- •Mouse on, focus events on.
- •50,000 lines of scrollback and 1-indexed windows that renumber on close.
~/.tmux.conf
# ~/.tmux.conf
# Tmux configuration for SSH workflow - Nord theme
# -- Core Settings ------------------------------------------------------------
# Prefix: Ctrl+a (screen-style)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Modern terminal settings (Konsole-optimized)
set -g default-terminal "tmux-256color"
set -sa terminal-overrides ",xterm-256color:Tc,konsole*:Tc"
# Neovim-friendly settings
set -g escape-time 10
set -g focus-events on
# Window/pane indexing from 1
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
# Generous scrollback
set -g history-limit 50000
# Enable mouse
set -g mouse on
# -- Keybindings --------------------------------------------------------------
# Reload config
bind r source-file ~/.tmux.conf \; display-message "Config reloaded"
# Intuitive splits (preserve working directory)
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
# Pane navigation (Alt+arrows, no prefix needed)
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Pane resizing (Prefix + Shift+arrows)
bind -r S-Left resize-pane -L 5
bind -r S-Right resize-pane -R 5
bind -r S-Up resize-pane -U 3
bind -r S-Down resize-pane -D 3
# Window navigation
bind -n M-1 select-window -t 1
bind -n M-2 select-window -t 2
bind -n M-3 select-window -t 3
bind -n M-4 select-window -t 4
bind -n M-5 select-window -t 5
# Clear screen and scrollback
bind C-l send-keys C-l \; clear-history
# -- Session Management -------------------------------------------------------
# New session with name prompt
bind S command-prompt -p "New session:" "new-session -s '%%'"
# Session switcher (interactive)
bind s choose-tree -Zs
# Kill session (with confirmation)
bind X confirm-before -p "Kill session #S? (y/n)" kill-session
# Detach (quick)
bind d detach-client
# -- Copy Mode (Vi-style) -----------------------------------------------------
setw -g mode-keys vi
# Enter copy mode
bind Enter copy-mode
bind -n M-v copy-mode
# Vi-style selection and copy
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi V send -X select-line
bind -T copy-mode-vi C-v send -X rectangle-toggle
# Copy with OSC 52 (works over SSH to local clipboard)
set -s set-clipboard on
bind -T copy-mode-vi y send -X copy-pipe-and-cancel
bind -T copy-mode-vi Enter send -X copy-pipe-and-cancel
# Mouse selection also uses OSC 52
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel
# -- Status Bar (Nord-inspired) -----------------------------------------------
set -g status on
set -g status-position bottom
set -g status-interval 5
set -g status-justify left
# Nord palette
# bg: #2e3440 (nord0), fg: #d8dee9 (nord4)
# accent: #88c0d0 (nord8), highlight: #81a1c1 (nord9)
# urgent: #bf616a (nord11)
set -g status-style "bg=#2e3440,fg=#d8dee9"
# Left: session name
set -g status-left-length 30
set -g status-left "#[bg=#5e81ac,fg=#eceff4,bold] #S #[bg=#2e3440,fg=#5e81ac]"
# Right: hostname, date, time
set -g status-right-length 60
set -g status-right "#[fg=#4c566a]#[bg=#4c566a,fg=#d8dee9] #h #[fg=#434c5e]#[bg=#434c5e,fg=#d8dee9] %d %b #[fg=#88c0d0]#[bg=#88c0d0,fg=#2e3440,bold] %H:%M "
# Window tabs
setw -g window-status-format "#[fg=#d8dee9,bg=#2e3440] #I:#W "
setw -g window-status-current-format "#[fg=#2e3440,bg=#88c0d0]#[fg=#2e3440,bg=#88c0d0,bold] #I:#W #[fg=#88c0d0,bg=#2e3440]"
setw -g window-status-separator ""
# Pane borders
set -g pane-border-style "fg=#3b4252"
set -g pane-active-border-style "fg=#88c0d0"
# Message style
set -g message-style "bg=#3b4252,fg=#d8dee9"
set -g message-command-style "bg=#3b4252,fg=#d8dee9"
# Pane number display
set -g display-panes-active-colour "#88c0d0"
set -g display-panes-colour "#4c566a"
set -g display-panes-time 2000
# -- Misc ---------------------------------------------------------------------
# Set terminal title
set -g set-titles on
set -g set-titles-string "#S - #W"
# Activity monitoring (subtle)
setw -g monitor-activity on
set -g visual-activity off
# Don't exit tmux when closing last window
set -g detach-on-destroy off
Keyboard

Kinesis Advantage 360
Split, contoured, mechanical keyboard with thumb clusters and tenting. Best long-term comfort I've found.
Custom Finnish layout
I'm releasing here soon the Finnish layout. Link https://github.com/AnttiJalomaki/Adv360-Pro-ZMK