Qtile


Github Repo

Qtile running on my machine:

Using exa to list the files and cff to fetch sys info.

Rice Picture

Config file tree:

.
├── autostart.sh -- script called with the startup_once hook
├── bar1.py -- bar configuration
├── config.py -- layouts and startup
├── consts.py -- constants
├── gruvbox.py -- colorscheme
├── keys.py -- keybindings
└── workspaces.py -- groups

autostart.sh:

The autostart calls 4 commands and it is called in config.py:

sh ~/.screenlayout/display.sh # run my arandr script
feh --bg-scale ~/Pictures/wallpapers/lonely-tree.jpg # set wallpaper
bash ~/gtkr.sh # run a script that automatically sets a gtk theme based on the wallpaper
picom --config ~/.config/picom/picom.conf & # run compositor (picom with ENDEAVOUROS default config)

Colorscheme and constant variables:


As you can see from this site I love gruvbox. So I use a gruvbox palette defined in gruvbox.py. I then included this file in the other configuration files where I needed access to the colorscheme. Other constant variables are defined in consts.py:

mod = "mod4" # SUPER
terminal = "xfce4-terminal"
browser = "firefox"
updt_cmd="Arch_checkupdates" # Command for the CheckUpdates widget

Workspaces Organization:


As you can see in the picture my config of qtile has 5 workspaces defined in workspaces.py (groups) (inspired by dt):

  • dev - for development purposes
  • sys - to edit system configuration files or to run local servers.
  • www - web and documentation
  • game - gaming
  • chat - discord and music

Modules:


  • GroupBox - displays the group
  • CurrentLayoutIcon - display the icon of the current layout of the wm
  • Prompt - Run command prompt
  • WindowName - Shows the window name and its state
  • Memory - Used Ram/Total Ram
  • DF - Free storage/Total storage
  • CheckUpdates - Checks the updates with the updt_cmd defined in consts.py
  • EXTRA UPowerWidget - Gets the battery.
  • Volume - Shows the volume and let’s you change it by scrolling mouse
  • WidgetClock - Configured in two different instances to show time and date separately
  • Systray - Simple systray
  • QuickExit - Easy logoff button

Keys:


The keys are pretty default and are defined in keys.h:

  • super + t - launches the terminal
  • super + w - launches web browser
  • super + p - runs prompt to spawn a command

Layouts:


I only make use of 2 layouts: Columns and Max defined in config.py.