Qtile - chriskevinlee/OpenFlexOS-Arch GitHub Wiki

Your Qtile configuration is located at:

.config/qtile
├── config.py
├── pycache/
│ └── config.cpython-313.pyc
├── rofi/
│ ├── config.rasi
│ ├── Generate_Rofi_theme.sh
│ └── theme.rasi
├── scripts/
│ ├── OpenFlexOS_Applications.sh
│ ├── OpenFlexOS_AutoStart.sh
│ ├── OpenFlexOS_BatteryHibernate.sh
│ ├── OpenFlexOS_Brightness.sh
│ ├── OpenFlexOS_NerdDictation.sh
│ ├── OpenFlexOS_Network.sh
│ ├── OpenFlexOS_Power.sh
│ ├── OpenFlexOS_Sounds.sh
│ ├── OpenFlexOS_SSH.sh
│ ├── OpenFlexOS_UpdateCheck.sh
│ └── OpenFlexOS_Volume.sh
├── .selected_wallpaper
├── sounds/
│ ├── ambient-piano-logo-165357.mp3
│ ├── cozy-weaves-soft-logo-176378.mp3
│ ├── error-83494.mp3
│ ├── game-bonus-144751.mp3
│ ├── introduction-sound-201413.mp3
│ ├── lovelyboot1-103697.mp3
│ ├── machine-error-by-prettysleepy-art-12669.mp3
│ ├── marimba-win-f-2-209688.mp3
│ └── retro-audio-logo-94648.mp3
└── systemd/
└── feh_wallpaper.service

Qtile Config Overview (config.py)

The Qtile bar uses a powerline effect by default.
To disable it, change:

powerline_enabled = True

to:

powerline_enabled = False

Then reload the config with Ctrl + Super + R.

The theme is read from:

$HOME/.config/MyThemes/MyThemes.json
Change the Current_Theme in the JSON file and then reload qtile config with Ctrl + Super + R. or run applytheme command to apply, Bear in mind applytheme will affect all applications.

Widget colors (background/foreground) can be manually mapped using names from the JSON (e.g., red, blue, yellow). The Qtile bar background color is set in inside ...

def init_screens().

Some widgets support mouse clicks:

Applications, Network, SSH, Power Menus: left/right click to open rofi or dmenu.
Volume: left, middle, right clicks control volume.

System sounds are configured using:

OpenFlexOS_Power.sh (lock, logout, reboot, suspend, hibernate)
OpenFlexOS_AutoStart.sh (login sound)
Sounds are defined in OpenFlexOS_Sounds.sh.

Themes System

OpenFlexOS uses a JSON-based theme manager that dynamically applies color schemes across multiple applications. The selected theme is set by Current_Theme in:

$HOME/.config/MyThemes/MyThemes.json

To apply the theme across all the applications use terminal and run

applytheme

This affects:

  • Qtile
  • Alacritty
  • Dunst
  • GTK2/3/4
  • Picom
  • OhMyPosh
  • Rofi

applytheme is a custom script included in OpenFlexOS. It reads your selected theme from the JSON file and updates all supported applications accordingly.

Script Name Affected File(s)
Generate_Rofi_theme.sh $HOME/.config/qtile/rofi/theme.rasi
Generate_gtk_theme.sh $HOME/.gtkrc-2.0, $HOME/.config/gtk-3.0/gtk.css, $HOME/.config/gtk-4.0
Generate_alacritty_theme.sh $HOME/.config/alacritty/alacritty.toml
Generate_dunst_theme.sh $HOME/.config/dunst/dunstrc
Generate_ohmyposh_theme.sh $HOME/.config/ohmyposh/base.toml
Generate_picom_theme.sh $HOME/.config/picom/picom.conf

Available Themes

  • SOLARIZED_DARK
  • GRUVBOX_DARK
  • NORD
  • DRACULA
  • MONOKAI
  • TOKYO_NIGHT
  • ONE_DARK
  • MATERIAL_DARK
  • BASE16_EIGHTIES
  • PALE_NIGHT

Custom Keybindings

Applications Menu
Alt + A R → Rofi: OpenFlexOS_Applications.sh -r
Alt + A D → Dmenu: OpenFlexOS_Applications.sh -d

Power Menu
Alt + P R → Rofi: OpenFlexOS_Power.sh -r
Alt + P D → Dmenu: OpenFlexOS_Power.sh -d

SSH Menu
Alt + S R → Rofi: OpenFlexOS_SSH.sh -r
Alt + S D → Dmenu: OpenFlexOS_SSH.sh -d

Network Menu
Alt + N R → Rofi: OpenFlexOS_Network.sh -r
Alt + N D → Dmenu: OpenFlexOS_Network.sh -d

Update Menu
Alt + U U → Update (requires password): OpenFlexOS_UpdateCheck.sh -u
Alt + U V → View updates: OpenFlexOS_UpdateCheck.sh -v

Wallpaper Manager (/usr/local/bin/OpenFlexOS_WallpaperChanger.sh)
Alt + W S → Select wallpaper (sxiv): -s
Alt + W R → Random wallpaper: -r
Alt + W B → Start cycle (feature under development): -b
Alt + W E → Stop cycle: -e
Alt + W Shift+S → Fullscreen slideshow (feature under development): -S

Flameshot
Alt + I G → Flameshot GUI
Alt + I S → Screenshot area
Alt + I F → Fullscreen shot

Other
Alt + F → Firefox
Alt + B → Brave
Alt + C → Caja File Manager

Nerd Dictation
Super + Alt + B → Start dictation
Super + Alt + E → End dictation

Features

  • SSH Menu (with Rofi & Dmenu)
  • Network Menu (with Rofi & Dmenu)
  • Power Menu (with sounds & countdown)
  • Wallpaper Changer(with Static Wallpaper, Random Wallpaper, Cycling wallpapers, Full Screen Slideshow)
  • Nerd Dictation
  • Picom compositor
  • Update checker (Left Mouse Click on Qtile bar:Runs Updates, Right Mouse Click on Qtile bar:View Updates)
  • Dynamic theme system
  • Xscreensaver integration

ZSH Shell Configuration (~/.zshrc)

Default User Shell: Zsh
Prompt: Powered by Oh My Posh

Aliases

  • alias du='du -h' # Human-readable disk usage

  • alias df='df -h' # Human-readable disk free space

  • alias free='free -h' # Human-readable memory usage

  • alias ls='lsd' # Use lsd instead of ls

  • alias C='clear' # Clear the terminal

  • alias n='nano' # Shortcut for nano editor

  • alias v='vim' # Shortcut for vim

  • alias s='sudo' # Shortcut for sudo

  • alias a='apt' # Used for Debian based system only (see/Use if statement below)

  • alias pm='pacman' # Used for arch based system only (see/Use if statement below)

  • alias cat='batcat -p' # Used in Debian based (see/Use if statement below)

  • alias cat='bat -p' # Used in arch based (see/Use if statement below)

Debian-based systems
if command -v apt >/dev/null; then
alias a='apt'
fi

Arch-based systems
if command -v pacman >/dev/null; then
alias pm='pacman'
fi

cat Alternative with Syntax Highlighting
Use batcat if available (Debian-based), otherwise fallback to bat
if command -v batcat >/dev/null; then
alias cat='batcat -p'
else
alias cat='bat -p'
fi

A custom vim Wrapper
Adds line numbers automatically when -n is passed:
vim() {
if [ "$1" = "-n" ]; then
shift
command vim +"set number" "$@"
else
command vim "$@"
fi
}