/arch-qtile

Qtile Arch Ricing Script, courtesy of @gibranlp/QARSIp

Primary LanguagePython

Important Anouncement

Soon all the development of QARSlp will be moving to SpectrumOS, as the project moves forward, please go and check it out!.

QARSlp Qtile + Arch Ricing Script

This is a custom theme for the Qtile window manager that dynamically adapts to the colors generated by pywal. With this theme, you can easily change the appearance of your Qtile environment to match any image or wallpaper using pywal's color extraction and manipulation capabilities.

This config files provide a few minimal and clean look themes, with a focus on simplicity and usability.

It features a dark & light color schemes with contrasting colors for active and inactive windows, as well as customizable font sizes and styles.

Features

Control Panel

I just made a rofi widget with the most common options such as Set Random Wallpaper, Select Wallpaper, change the default Backend for Pywal, Move the Bar Top or Bottom, among others, simply press Alt + Return and watch the widget popup.

control-panel.mp4

Set Random Wallpaper Theme

To set a random wallpaper simply type Alt + R and the entire system will change with the wallpaper.

random_wall.mp4

Select Wallpaper

If you want a specific wallpaper you can use the Select Wallpaper widget, or use mod + shift + E, and the widget will come up.

Random Wallpaper

Different Display Sizes

I use different computers with different monitor sizes, so i managed to make this theme to change to look good on every monitor i have, this theme differenciates between 4K (3840x2160), HD (1920x1080) and a lower resolution (1366 x 768) of a mini laptop.

  • 4K (3480 x 2160)
    • 4K
  • HD (1920 x 1080)
    • HD
  • Lower Resolution (1366 x 768)
    • 4K

Flexible Bar

With this rofi widget you can change your bar to the top or the bottom, with any theme, just press mod + shift + W to bring this widget to the front.

  • Bar

Fonts

The entire system is configures to use the Fira Code Medium font, and Awesome Pro 6 for all the icons in the bar and in the Rofi Widgets.

If you want to change the fonts, make sure you have the fonts installed and then change the lines 29 and 30 in the file ~/.config/qtile/functions.py

## Fonts
main_font = "Fira Code Medium" # Font in use for the entire system
awesome_font = "Font Awesome 6 Pro" # Font for the icons

Groups Labels

There are Several labels for the groups already defined you can change them by uncommenting the line you want between the lines 476 - 482 in the file ~/.config/qtile/functions.py

#group_labels=["零","一","二","三","四","五","六","七","八","九"] # Kanji Numbers
#group_labels=["0","1","2","3","4","5","6","7","8","9"] # Numbers
#group_labels=["","","","","","","","","",""] # Circles
#group_labels=["","","","","","","","","",""] # Dot Circles
#group_labels=["󰏃","󰏃","󰏃","󰏃","󰏃","󰏃","󰏃","󰏃","󰏃","󰏃",] # Custom
  • Kanji Numbers

    • wifi
  • Numbers

    • wifi
  • Circles

    • wifi
  • Dot Circles

    • wifi
  • Custom

    • wifi

You can use any icon from here in case you want to make your own custom groups

Ethernet & Wifi

Icon

The network icon will change automatically depending if you are connectedo the Ethernet or Wifi, when connected to wifi the SSID will also be visible.

  • Wifi

    • wifi
  • Ethernet

    • Ethernet

Net & Wlan Qtile Widgets

In the QARSlp & Slash themes, you can click in the Network icon and the widget will display the current local IP and the Public IP.

  • Wifi

    • wifi
  • Ethernet

    • Ethernet

General Margins and Borders

If you want to change the margins for all themes just go into the lines 57-62 in the file ~/.config/qtile/functions.py

## Margins
layout_margin=10 # Layout margins
single_layout_margin=10 # Single window margin 
## Borders
layout_border_width=4 # Layout border width
single_border_width=4 # Single border width

Calendar & Notifications

Notifications

Using Dunst if you click on the clock you will get the current month in the calendar, if you move the mouse wheel on the clock you can change the month upp and down also.

Calendar Calendar1 Calendar2

Lightdm

This Qtile theme also changes Lightdm with the current wallpaper and color scheme.

Notifications

Lightdm1 Lightdm2 Lightdm3

Themes

Theme Selector

Select the theme you want to use (QARSlp, Slash, Minimal, no_bar), so far, i have in mind a lot more themes.

Themes

QARSlp

QARSlp1 QARSlp2

Slash

Slash1 Slash2

Backends

You can select different backends trough a Rofi widget using the same wallpaper, the backends available are Wal, Colorz, Colorthief and Haishoku.

Backends

Wal

Wal1 Wal2

Colorz

Colorz1 Colorz2

Colorthief

Colorthief1 Colorthief2

Haishoku

Haishoku1 Haishoku2

Random Colors of the Theme

If you still need more colors all you have to do is to press Alt + Shift + R and this will randomize the current color scheme.

Rofi Utilities

I have added some Rofi utilities, to make life simpler, here they are:

Launcher

Launcher

Launch any application or search for files and folders

Launcher

QARSlp Shortcuts

Check out all the shortcuts of the system

Shortcuts

Shortcuts

Multi Monitor Management

Manage multi monitors fast and easy, select your main monitor and resolution, and then select where to put the sencodary monitor (left, right, up, down)

Multi Monitor

Color Picker

Select Hex or RGB and you can then click on the screen to get the color using Farge, you will get the color via notification using Dunst

Color Picker

Color Picker1 Color Picker1

Wifi Menu

Select and connect to Wifi using Rofi.

Wifi

Sesion Menu

Lock the PC, Sign out, Reboot or Poweroff.

Session

Screenshot Widget

Take Screenshots of the Screen, an Area, a Window, or the Screen in 5 seconds using Scrot and Flameshot

Screenshot

Screenshot

Night Light

Change the temperature of the monitor using Redshift

nightLight

Night Light

Conclusion

With QARSlp you can have an always riced system, ready for productivity and fun, its compatible and the ricing also covers applications like VScode, Telegram, Chrome, Brave, all GTk and CLI apps.

Installation

To install QARSlp you will need to install a few dependencies:

Pacman

feh base-devel alsa-utils pulseaudio-alsa pavucontrol openssh alacritty xcolor playerctl scrot rofi surfraw python-pip ranger lxappearance bmon acpilight lm_sensors nm-connection-editor arandr python-psutil python-xdg python-iwlib python-dateutil ueberzug xsettingsd zsh dunst tk lightdm-gtk-greeter-settings reflector rsync curl bc neofetch xorg-xkill xdg-user-dirs bluez bluez-tools blueman htop networkmanager noto-fonts noto-fonts-cjk libayatana-appindicator  tumbler redshift libmicrodns protobuf xorg-xdpyinfo

AUR

QARSlp works with the Qtile-git and qtile-extras-git versions among other packages

qtile-git farge qtile-extras-git wpgtk-git cava i3lock-color picom-tyrone-git

Pip

You also need to install these pip packages

requests cairocffi xcffib fontawesome ipc colorz colorthief haishoku dbus-next git+http://github.com/bcbnz/python-rofi.git

If you want to use ZSH run this commands to install Oh-My-Zsh

h -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
git clone https://github.com/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/plugins/zsh-syntax-highlighting

Once all the dependencies are installed, you must generate the templates for GTK by runing:

wpg-install.sh -gio

Then run the copy_files.sh script to generate all the folders and copy all the necesary files.

Finally in a terminal run:

genwal

This will generate the first palette of colors and set the wallpaper, the path of the wallpaper is ~/Pictures/Wallpapers, just put all your wallpapers inside and enjoy.

Next Steps

  • I will be working in the light themes which now look bad in general.
  • Generate an AUR Installation package
  • Add more themes (if you have suggestions add them in issues)

If you like it please help me support this project, some coffee would help me to improve it and dedicate more time. thanks.