Table des matières
Customized linux desktop for advanced users
Despite the grandiose title, this will just be a collection of free software i use to build a tailored, efficient and minimalist tiling desktop experience, a word about possible alternatives and some random thoughts.
Une version en français est disponible ici
I won’t mention specialized software, like Blender, Krita, OBS or Godot, or even Thunderbird. If you need them, you probably know it and they don’t belong on every user desktop.
I run debian, but almost any linux distribution will do.
I you want to use them, you can find most of my personal configs there. Use it as an example, not a recipe : personalize and make it yours
Window manager
- Qtile is my window manager of choice. It’s a modern, simple, automatic tiling WM, very hackable, written and configured in python, that’s available for both X11 and Wayland. It comes with a great built-in bar, and widgets for almost everything you may need for a regular desktop experience. It provides a large number of automatic layouts, including the classic master/stack, and it’s scratchpad is the best implementation i’ve used. On debian, you’ll need to install it via pip
- Bspwm is also a very good choice if you value simplicity. It’s configured in bash (or any other script langage you like) and is very minimalist
- I manage most of my keyboard shortcuts in sxhkd. This is required in bspwm, but also work wonderfully with any other window manager. Have a look at my config to see how i manage to maintain a common sxhkd file compatible with every WM i want, by separating specific window management shortcuts from generic user shortcuts. Sxhkd is awesome, lightweight, portable, and provide advanced shortcuts management, like keychords and a powerful syntax
- Picom is a window compositor for X11. It provide nice eyecandy, animations, blur and other rounded corners to your windows. I use it to slightly dim unfocused windows, and easily focus on my main task
Session manager
If you need one, lightdm is perfectly capable and lightweight. If you don’t need the additional functions, or the eyecandy, the starx
command is perfectly fine
Application launcher
I use rofi as an application launcher. It’s like dmenu on steroids, with full compatibility, easier configuration and customization. But you’ll still want to bind your most used applications to direct keyboard shortcuts and keep that launcher for applications that you don’t want to waste keyboard real estate for.
Notifications
Dunst is a graphical, lightweight and customizable notifications deamon
Terminal, shell & co.
Kitty is a modern, multi-plateform, GPU accelerated, capable of displaying ligatures, links, emoticons and images, and including splits, panes, tabs and session management. Some may prefer alacritty or wezterm, but i find kitty more powerfull
Despite the session management features included in kitty, i still prefer to use tmux as a terminal multiplexer.
I pair it with zsh, cause it has better autocompletion than the standard GNU bash, while still being 100% POSIX compliant, unlike fish
Finally, i pimp my prompt with starship, that provide nice customization and icons for git and code repositories
File manager
- Ranger is a vim inspired file manager in the terminal, that provide a simple interface with vim-like shortcuts, suitable for most file management tasks,
Browser
Being concerned by online privacy, i ban Chrome, Safari or Edge on my desktop. My main browser is firefox, mostly for the huge collection of addons, the commitment to free software and to preserve web rendering engines diversity.
I streamline it’s UI, with Tree Style tabs, and the following userChrome.css to make it as simple as possible, with just one bar
- userChrome.css
/* hides the native tabs */ #TabsToolbar { visibility: collapse; } /* hides the sidebar */ #sidebar-header { visibility: collapse !important; }
I also use Brave when i need a chromium-based engine, and TOR Browser if needed
Text editor / IDE
Neovim is the best iteration of vim yet, come with lua built-in for it’s configuration, and provide very powerful plugins like telescope, treesitter and LSP, that can turn it into a powerful hand-made, personalized IDE
There’s really no viable alternative to vim. Some say GNU emacs is, but i already run an OS.
Note taking
Meh. I hate most note taking apps, free as well as proprietary. For now, i stick with using markdown in vim, and post-processing it with the mighty pandoc to export it to any other formats i may need
Office suite
Please, please, do not use OpenOffice. The project is long dead, and you should use LibreOffice instead.
That being said, i do not use any office application on a regular basis, only when someone occasionally send me a .doc or .xslx, and mosly use simple LaTeX templates for my actual, rare office tasks. It’s less work overall, and can be managed in git.
Backups & synchronisation
These are 2 different things, and you should use both.
I use dejaDup for my regular, encrypted backups, on a local NAS. These are then backed up once again, on a cloud bucket provider (backblaze for now).
I also sync my important files with a self-hosted ownCloud instance, to access them when not on my computer
Screenshots
Despite my mostly GTK desktop, and flameshot being a Qt app, it’s still the greatest screenshot tool imho. Scrot would be a lighter, desktop-agnostic, 100% command line option
Archive manager
I use fileroller, but xarchiver would be equally good, despite being less actively developed
Password manager
I use both bitwarden, for it’s integration in web browsers, and KeepassXC for out-of-browser uses. Both are really good manager. Unless you have special needs as i do, one of them is sufficient
Media player
Most of my media management is done outside of the desktop, with the Lidarr, Prowlarr, Radarr, Readarr, Sonarr, and Whisparr stack, transmission and Jellyfin.
If i need a media player for on the desktop, i use mpv
Image viewer
Ristretto, xfce’s image viewer, is a fine, simple, lightweight app
Document viewer
I prefer a features rich pdf viewer, and use evince. Use zathura if you’re looking for a lighter, keyboard driven one
Wallpaper picker
Nitrogen is a simple graphical tool to set a wallpaper. Feh is a command line tool, easily called from your window manager’s launch script.
Configuration tools
- lxappearance allows you to graphically configure your GTK+ themes, icons, fonts…
- nm-applet is a graphical interface that stay in your systray, and allows you to easily configure a new network connection
- blueman-applet let you configure and manage Bluetooth devices
- pamixer is a terminal mixer app, letting you adjust and configure your pulseaudio or pipewire driven sound system
System monitoring
Base utilities
- lxpolkit is the LXDE session manager, and is desktop agnostic. Just run it from your starting script
- coreutils & utils-linux : basic unix commands for almost everything. Learn them, use them, profit