/dev/null

discard to the void

Outils pour utilisateurs

Outils du site


tech:linux_desktop

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,
  • I also use thunar, the xfce file browser, when i need a graphical one. It can perfectly run outside of xfce, integrate well with my mostly GTK desktop, and provide handy tools for volumes management. You could also use Pcmanfm, that’s slightly different, but still GTK, lightweight and independent

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

htop and btop are two simple and beautiful system monitors running in terminal

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
tech/linux_desktop.txt · Dernière modification : 2023/12/22 de Mathieu

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki