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
}