Skip to content

Configuration

Configuring Hyprland

The following and also many other things are powered by Hyprland.

  • global keybindings
  • environment variables
  • display/monitors/workspaces
  • window animations/decorations

Reference: Hyprland Wiki

To configure Hyprland, edit the files under ~/.config/hypr/custom/ which are sourced by ~/.config/hypr/hyprland.conf).

  • Hyprland reads hyprland.conf. When it sees a source keyword, it reads the sourced file, then keeps going.

The install.sh script will not overwrite ~/.config/hypr/custom/.

Also, as for ~/.config/hypr/hyprland.conf, it will not be overwritten when it exists, but a ~/.config/hypr/hyprland.conf.new will be generated. The *.new file is only for format reference, and has no effect at all.

Enabling blur for apps

In ~/.config/hypr/hyprland/rules.conf, comment out (with a #) or remove the following line

windowrule = noblur,.* # Disables blur for windows. Substantially improves performance.

Configuring AGS

The following and also some other things are powered by AGS.

  • top bar
  • side bars
  • cheatsheet
  • notification
  • overview widget

For end users

Edit ~/.config/ags/user_options.js, which won’t be overwritten by install.sh when you update You can configure stuff like

  • Default ChatGPT-like assistant provider
  • Animation speed
  • Time format

Set date and time format

In ~/.config/ags/user_options.js, edit the “time” section according to this format. You may also run man date for time format.

Set city for weather widget

When no battery is detected (typically a desktop computer), the battery widget and the utility widget will not be displayed. Instead, a weather widget will appear in this position.

The city for weather is detected by curl ipinfo.io by default, or explicitly set in ~/.config/ags/user_options.js.

Set keybinds

The keybinds to be configured are limited and you need to refer to gdk document to know the keys, but it works.

See #5 for more.

Custom widget

You can use the output of a bash script for a widget. If ~/.cache/ags/user/scripts/custom-module-poll.sh exists, AGS will display its output every 5000ms by default in place of system resources indicators

For example, to display the available storage space of path /:

~/.cache/ags/user/scripts/custom-module-poll.sh
#!/bin/bash
export LANG=C
disk_info=$(df -h /)
available=$(echo "$disk_info" | awk 'NR==2 {print $4}')
total=$(echo "$disk_info" | awk 'NR==2 {print $2}')
echo "$available/$total"

And a less configurable 2-line version, if you prefer:

~/.cache/ags/user/scripts/custom-module-poll.sh
#!/bin/bash
LANG=C df -h / | awk 'NR==2 {printf "%s/%s\n", $4, $2}'

For futher customization:

  • Polling interval, in milliseconds: ~/.cache/ags/user/scripts/custom-module-interval.txt (default = 5000)
  • Left-click action script: ~/.cache/ags/user/scripts/custom-module-leftclick.sh
  • Right-click action script: ~/.cache/ags/user/scripts/custom-module-rightclick.sh

For nerds (doubts you aren’t)

  • See AGS Docs
  • Also Dev notes (see the sidebar)

Misc

Resize the UI / change font size

Changing the font size will also change the UI scale for AGS.

  • Using gsettings:
Terminal window
# Syntax
gsettings set org.gnome.desktop.interface font-name 'FONT_NAME FONT_SIZE'
# Default of these dotfiles
gsettings set org.gnome.desktop.interface font-name 'Rubik 11'

Configure Lock screen

Reference: Hyprland Wiki

Edit ~/.config/hypr/hyprlock.conf.

For example, to set the date and time format, change the value of the text which corresponds to the lock.

Cloudflare WARP

  • This might help you bypass your ISP’s restrictions and provide a faster internet
  • There will be a button on the right sidebar to toggle WARP if it’s installed
  • To install Cloudflare WARP, run yay -S cloudflare-warp-bin && sudo systemctl enable warp-svc --now