Honestly, I am not a fan of the minimalist Linux movement. Today's machines are more than capable of handling what we throw at them and RAM is cheap. There is no reason not to use Gnome or KDE and even if you prefer a more legacy look, MATE and Cinnamon work just as well. The problem with minimalist desktops is you sacrifice ease of use and functionality. I don't care what anyone says ctrl-t is not easier than clicking on a button.
Having said that, there is some use for such a setup, for instance if you have a low end machine with limited RAM and no upgrade paths. In this case a GUI that eats less than 512 MB of RAM is nice. I have a Lenovo ideapad-1 with a Celeron G4020 and 4 GB of RAM, I like it because it is light and easy to carry around a busy airport. Gnome or KDE would bring this system to its knees and even MATE is a bit much for it.
In a case like this, I would forgo a Desktop Environment (DE) altogether and just use a Windows Manager (WM), in this case Openbox. A WM provides the basics, windows and decorations nothing more, a DE goes a step further and add the bells and whistles that make things easier to use and flashier.
The first step is to install Debian 12, when you get to the part where it asks what Desktop you want, uncheck everything except the bottom two options. Once that is done, reboot and log in as root, update the system and add the user you created to the sudo group. Then reboot again and log in under you user account.
Next comes installing what you need
sudo apt install xorg xbacklight xbindkeys xvkbd xinit xinput xserver-xorg-input-all xterm openbox obconf dunst dbus-x11 feh hsetroot i3lock libnotify-bin libxcb-xinerama0 lxappearance lximage-qt menu picom rofi scrot tint2 volumeicon-alsa xfce4-power-manager alsa-utils fonts-dejavu fonts-firacode fonts-font-awesome fonts-liberation2 fonts-ubuntu fonts-jetbrains-mono gtk2-engines-murrine gtk2-engines-pixbuf network-manager network-manager-gnome papirus-icon-theme pavucontrol pipewire-audio qt5-style-plugins rox-filer conky
Here we are installing our applications, I am avoiding heavy duty applications like LibreOffice and GIMP in favor of applications like Abiword and Inkscape, which eat less memory. Adjust to taste.
sudo apt install firefox-esr audacious thunderbird vlc emacs abiword gnumeric atril pluma mate-calc tilix inkscapeThese next commands setup our WM in a basic configuration
mkdir -p ~/.config/openboxThen we are going to setup the utilities needed for the basic functioning of the desktop. Type the following;
cp /etc/xdg/openbox/* ~/.config/openbox/
systemctl --user --now enable wireplumber.service
nano ~/.config/openbox/autostartAnd add these lines;
hsetroot -solid "#000000"The hsetroot command sets the background color, #000000 is hexadecimal for black, for a nice blue, use #2e86c1, if you want to choose your own color, this site will help, https://htmlcolorcodes.com/ . You can set a picture as your background using a program call feh, but I am not covering that here.
xfce4-power-manager &
dunst -config ~/.config/dunst/dunstrc &
tint2 &
(sleep 5; volumeicon) &
nm-applet &
Next we need to edit the .xinitrc file so when xorg starts, it knows what WM we are using. Type this command;
nano .xinitrc
and add these lines;
#!/bin/bashNow, type startx and Openbox will start. You will see a blank screen, with a bar at the bottom. Right click on the background and choose terminal off the menu. In the terminal type in;
exec openbox-session
rofi-theme-selector
Rofi is the tool we will use to find and run programs. In its default state a window pops up in the middle of your screen, I prefer a bar at the top. Off the menu of choices, choose the demnu theme, to set the theme. Then we will want to configure rofi, so it shows icons with the programs. Type in the terminal;
nano .config/rofi/config.rasi
and add these lines to the file;
configuration{The final step is to setup our hotkeys for running the applications we use the most. Type in the following command;
display-drun: "Applications:";
display-window: "Windows:";
font: "JetBrainsMono Nerd Font Medium 10";
modi: ["drun", "window", "run"];
icon-theme: "Papirus";
show-icons: true;
}
@theme "/usr/share/rofi/themes/dmenu.rasi"
nano ~/.config/openbox/rc.xml
search for </keyboard> and add these lines just above that line;
<!-- Launch rox-filer when windows-f is pressed -->
<keybind key="W-f">
<action name="Execute"><command>rox-filer</command></action>
</keybind>
<!-- Launch rofi when windows-m is pressed -->
<keybind key="W-m">
<action name="Execute"><command>rofi -show drun</command></action>
</keybind>
<!-- Launch firefox when windows-w is pressed -->
<keybind key="W-w">
<action name="Execute"><command>firefox-esr</command></action>
</keybind>
<!-- Launch tilix when windows-t is pressed -->
<keybind key="W-t">
<action name="Execute"><command>tilix</command></action>
</keybind>
<!-- Launch thunderbird when windows-e is pressed -->
<keybind key="W-e">
<action name="Execute"><command>thunderbird</command></action>
</keybind>
<!-- Launch audacious when windows-a is pressed -->
<keybind key="W-a">
<action name="Execute"><command>audacious</command></action>
</keybind>
<!-- Launch vlc when windows-v is pressed -->
<keybind key="W-v">
<action name="Execute"><command>vlc</command></action>
</keybind>
<!-- Launch scrot for screen caps when windows-print is pressed -->
<keybind key="W-Print">
<action name="Execute"><command>scrot 'screenshot-%Y-%m-%dT%H%M%S.png'</command></action>
</keybind>
With this configuration, your keybindings will be as follows.
ROX-filer windows-f(ile manager)
Rofi windows-m(enu)
Firefox-ESR windows-w(eb)
Tilix windows-t(erminal)
Thunderbird windows-e(mail)
Audacious windows-a(udio)
vlc windows-v(ideo)
Switch Desktops;
ctrl-alt-right
ctrl-alt-left
Print Screen windows-prtscn
All that is left to do is right click on the background and choose Exit, this will drop you back to the command line, reboot the system and log back in. Then type startx to get back to your desktop. To run a program you do not have a hotkey for, simply press the Windows Key + m, at the top rofi will appear, simply start typing the name of the program and when it appears, highlight it and press enter.