-
Notifications
You must be signed in to change notification settings - Fork 4
Desktop Customization
One of the best thing that I love about Linux desktop is the ability to tweak and customize anything you want.
This is a quick guide for installing and configuring i3 Tiling Window Manager. i3 is a very popular window manager that automatically tiles windows and manage those tiles across multiple virtual desktops.
You have two major choices for configuration in i3. You can have the files in a dot folder (such as /home/user/.i3/
) or in the .config folder (/home/user/.config/i3/
). It does not really matter which you use, but in this tutorial I will be referring to the .config
approach.
There are a number of ways to customize your desktop, here are some tools that will allow you to customize your desktop.
- ranger - A vim inspired filemanager for console.
- Thunar - A modern file manager for the Xfce Desktop Environment.
- PCManFM - A lightweight Gtk+ based file manager for X Window.
-
mpc - Client for
mpd
, responsible for telling lemonbar about the currently playing media. -
mpd - A daemon for playing music of various formats with
ncmpcpp
as client. - cmus - A small ncurses based music player.
- ncmpcpp - An ncurses Music Player Daemon (MPD) client.
- cava - Console-based Audio Visualizer for Alsa (MPD and Pulseaudio).
-
mpdviz - Console mpd visualizer like
cava
. - nausea - This is a simple Console audio spectrum visualizer, Work well with mpd daemon music player.
- feh - A lightweight image viewer.
-
sxiv - Simple X Image viewer like
feh
. - n30f - Image viewer to display an image in a borderless and transparent non-wm-managed window.
- gpicview - A Simple and Fast Image Viewer for X.
- nitrogen - A GUI background previewer and setter.
- neofetch - A customizable system information written in Bash.
- screenfetch - Bash screenshot information tool.
- ufetch - Tiny system info for Unix-like operating systems
- neovim - Vim-fork focused on extensibility and usability.
- vim - Vi IMproved, a programmer's text editor.
- Spacevim - Community-driven modular vim distribution with ultimate vim configuration and many build-in features.
-
rxvt-unicode - A customizable terminal emulator forked from
rxvt
. - xterm - The standard terminal emulator for the X Window System
- st - A simple terminal emulator for X which sucks less, with xft.
- dmenu - A fast and lightweight dynamic menu for X.
- jgmenu - Small X11 menu intended to be used with openbox and tint2.
- myGtkMenu - GTK2, GTK3 standalone & lightweight menu written in C.
- rofi - A window switcher, application launcher and dmenu replacement
- lemonbar - A featherweight, lemon-scented, bar based on xcb.
- polybar - A fast and easy-to-use status bar.
- dzen2 - A general purpose messaging, notification and menuing program for X11.
- xmobar - A minimalistic, mostly text-based status bar.
- tint2 - A lightweight panel/taskbar with support system try.
- Plank - A simplest dock on the planet, famous dock for linux user.
- Cairo Dock - A desktop interface that takes the shape of docks, desklets, panel, etc
- dunst - A lightweight replacement for the notification daemons provided by most desktop environments.
- lxsession-logout - A nice banner-style logout dialog for the LXDE.
- oblogout - GTK/Cairo based logout box styled for openbox.
- clearine - Beautiful logout UI for X11 window manager
- wal - Generate and change colorschemes on the fly.
-
pywal - Generate and change colorschemes on the fly. A
wal
rewrite in Python 3. - wpgtk - A powerful GTK+ frontend for pywal, adding features such as flexible templates and editing colorschemes.
-
tintyourday - Generate your
tint2
config with Xresources color - obtgen - Openbox theme generator.
- Shift - An instantly window manager theme changer.
- colorfil - Generate 16 color for Xresources colorscheme from one-color.
- colorls - A Ruby gem that beautifies the terminal's ls command, with color and font-awesome icons
- Cornora - Simple Hotcorner Launcher for X
- Colorizer - Colorize gtk theme, xfwm theme, openbox theme, etc with .Xresources color
In this quick demo, we're going to install the following tools:
- X resources - Configuration dotfile
- Gucharmap - Font Awesome icon viewer
- Nerd Fonts Complete - Font
- Font Awesome - Font
- Source Code Pro - Font
- i3-gaps - Window tiling manager
- jsoncpp - Polybar dependency
- polybar - A Better status bar for your Linux system
- jgmenu - jgmenu is a small menu application for Linux/BSD.
- rxvt-unicode - Customizable terminal emulator
- Ranger - Text-based file manager that run in the shell and navigation is similar to vim key bindings.
- Dmenu - Fast and lightweight dynamic menu for X
- Rofi - Window switcher, run dialog, ssh-launcher
- Conky - System monitor software for the X Window System
- Nitrogen - View and set wallpaper
- Dunst - Notification Daemons
- Albert - Quick Launcher
- Compton - Standalone compositor
- Mate power manager
- Lxappearance - Theme switcher for icons, fonts, etc
- Arc-theme - Flat theme
sudo pacman -Syu i3-gaps ttf-font-awesome awesome-terminal-fonts \
otf-font-awesome adobe-source-code-pro-fonts jsoncpp jgmenu ranger \
dmenu rofi conky nitrogen dunst albert compton mate-power-manager
yay -S nerd-fonts-complete
yay -S polybar
When you install i3, it gives you a choice of using the defaults or setting it up yourself. If you are a beginner, I recommend using the defaults, which includes a mod key of Alt. You use the mod key in several keyboard shortcuts, such as when you move windows or resize them.
mkdir -p ~/.config/polybar
touch ~/.config/polybar/config
touch ~/.config/polybar/polyrun.sh
chmod +x ~/.config/polybar/config
chmod +x ~/.config/polybar/polyrun.sh
For more information, visit polybar wiki page
- Open the terminal and type
albert
, and then ten pressenter
to configure the hotkey, themes, etc. - Open the i3 configuration file and comment out the line containing dmenu:
vim ~/.config/i3/config
- Add the line
albert &at
the end of the filevim ~/.config/polybar/launch.sh
- Remove the alsa the Polybar panel:
vim ~/.config/polybar/config
- Restart the i3:
Super + shift + r
Command | |
---|---|
Lock | |
Log out | i3-msg exit |
Suspend | systemctl suspend |
Hibernate | systemctl hibernate |
Restart | systemctl reboot |
Shut down | systemctl poweroff |
Here are the keyboard command to use i3. They might seem complicated and hard to use at first, but with time they become second nature. When I was using Ubuntu on my friends laptop, I found myself tapping Alt + Enter for a terminal. Remember, if you stuck with the defaults, Mod is Alt.
Mod + Enter
This opens a terminal.
Mod + Arrow Keys
This selects a window, kind of like Alt Tab.
Mod + Shift + Arrow Keys
This moves the selected window.
Mod + Shift + Space
This floats the window. Move with Alt drag, resize with Alt right click drag.
Mod + R
This enters resize mode. Resize using the arrow keys, exit with Enter.
Another useful method to resize windows is Alt + right click drag.
Mod + H
This sets the layout mode to horizontal. New windows tile left and right.
Mod + V
This sets the layout mode to vertical. New windows tile up and down.
Mod + W
This sets the layout mode to tabs. New windows are tabbed.
Mod + S
This sets the layout mode to stacked. New windows are stacked.
.config/i3/config
is the file that controls the window manager. Here, you define startup applications, custom keyboard shortcuts, and layout rules. If you use i3bar, this is where you configure it.
Place these at the end of the file (.config/i3/config
). Exec means run command.
Set a background with feh
exec feh --bg-scale /path/to/your/image.png
Restore set background (chosen with gui) using nitrogen
exec nitrogen --restore
Start compton for window effects
exec --no-startup-id compton
Open dmenu desktop (application search) with the super key
bindsym Super_L exec i3-dmenu-desktop
Lock the screen with Control+Alt+L
bindsym Control+Mod1+l exec i3lock
Bind your audio keyboard keys to change volume and pause/play
bindsym XF86AudioRaiseVolume exec amixer -q set Master 5%+ unmute
bindsym XF86AudioLowerVolume exec amixer -q set Master 5%- unmute
bindsym XF86AudioMute exec amixer -q set Master mute
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
You can change GTK settings with lxappearance. If you need to choose a theme, check out Adapta-gtk-theme
, Papirus
and Capitaine cursors
Run the following command to install Adapta-gtk-theme
, Papirus
and Capitaine cursors
sudo pacman -S adapta-gtk-theme papirus-icon-theme capitaine-cursors
Now open Customize Look and Feel
application with Rofi or Albert
- Select
Adapta-Nokto-Eta
from Widget tab - Select
Papirus-Dark
from Icon Theme tab - Select
Capitaine Cursors
from Mouse Cursor` tab - Now Apply and Close
Note: You will need to Log Out to see the change.
Bars are what you use to see info on your system, and in some cases launch apps and change settings. The default bar is i3bar with i3status, so that is not included here. If you want the same look as the screenshots, the files are linked.
Lemonbar is very configurable and is probably the most popular solution, but has no clickable areas. To get this look, install lemonbar, and download the dots.
To run lemonbar on startup, add
exec /path/to/i3_lemonbar.sh
to your .config/i3/config
file.
Have fun with i3! You can do some pretty cool stuff with it.
- Home
- Bootable USB Installer
- BIOS
- Pre-installation
- Installation
- Configure System
- Post Installation
- Extra
- Troubleshooting
- Development
- DevOps