| Crates.io | hyprland-autoname-workspaces |
| lib.rs | hyprland-autoname-workspaces |
| version | 1.1.16 |
| created_at | 2023-02-03 10:03:11.314759+00 |
| updated_at | 2025-02-17 21:24:31.212051+00 |
| description | This app automatically rename workspaces with icons of started applications. |
| homepage | https://github.com/hyprland-community/hyprland-autoname-workspaces |
| repository | https://github.com/hyprland-community/hyprland-autoname-workspaces |
| max_upload_size | |
| id | 775494 |
| size | 200,072 |
⚠️ We are seeking for active maintainers !
This project need your help. See here https://github.com/hyprland-community/hyprland-autoname-workspaces/issues/117
🕹️This is a toy for Hyprland.
This app automatically rename workspaces with icons of started applications - tested with waybar and eww.
You have to set the config file with your prefered rules based on class and title. Regex (match and captures) are supported.
https://github.com/hyprland-community/hyprland-autoname-workspaces/wiki/FAQ
Available as AUR package under the program name hyprland-autoname-workspaces-git.
You can then use the service systemctl --user enable --now hyprland-autoname-workspaces.service.
Package available here https://copr.fedorainfracloud.org/coprs/solopasha/hyprland/.
Available in nixpkgs as hyprland-autoname-workspaces.
You can add it to your systemPackages or try it without installing it with nix run.
$ nix run nixpkgs#hyprland-autoname-workspaces
$ cargo install --locked hyprland-autoname-workspaces
$ hyprland-autoname-workspaces
First, you have to set your waybar for example, with the good module hyprland/workspaces. The module wlr/workspaces is deprecated.
You have to use hyprland/workspaces module with as config "format" = "{name}".
"hyprland/workspaces": {
"format": "{name}",
}
For all parameters, check the config.toml.example in this repository.
The config file can be specified using the -c <CONFIG> option, otherwise it defaults to ~/.config/hyprland-autoname-workspaces/config.toml. If you specify a path that doesn't exist, a default configuration file will be generated.
You can use regex everywhere, and its case sensitive by default
Edit the mapping of applications with class = "icon" in the [icons] part.
In icons value, you can use the placeholders {class}, {title} and {match1}, {match2} if you use regex captures.
Example:
[class]
DEFAULT = "{class}: {title}"
...
[exclude] with class = title.In the exclude part, the key is the window class, and the value the title.
You can use "" in order to exclude window with empty title and ".*" as value to match all title of a class name.
Example:
...
[exclude]
"(?i)fcitx" = ".*" # will match all title for fcitx
"[Ss]team" = "Friends list.*"
"[Ss]team" = "^$" # will match and exclude all Steam class with empty title (some popups)
[title_in_class.classname] and [title_in_class_active.class] with "a word in the title" = "icons".Hint: There is also title_in_initial_class, initial_title_in_class, initial_title_in_initial_class and so on.
Example:
...
[title."(xterm|(?i)kitty|alacritty)"]
"(?i)neomutt" = "mail"
ncdu = "file manager"
[title."(firefox|chrom.*)"]
youtube = "yt"
google = "gg"
[title_active."(firefox|chrom.*)"]
youtube = "<span color='red'>yt</span>"
google = "<span color='blue'>{icon}</span>"
...
dedup parameter in the root section of config file.dedup = true
dedup_inactive_fullscreen = true
...
[title."(xterm|(?i)kitty|alacritty)"]
"(?i)neomutt" = "mail"
ncdu = "file manager"
...
[format] section formatters parameters.
The available list of {placeholder} is:workspace:
[workspaces_name] mapping)clients:
[format]
# max_clients = 10 (default: usize::MAX)
dedup = true
dedup_inactive_fullscreen = true
delim = " " # NARROW NO-BREAK SPACE
workspace = "<span color='red'>{id}:</span>{delim}{clients}"
workspace_empty = "<span color='red'>{id}</span>"
client = "{icon}{delim}"
client_active = "<span color="red">{icon}</span>{delim}"
client_dup = "{icon}{counter_sup}{delim}"
client_dup_fullscreen = "[{icon}]{delim}{icon}{counter_unfocused_sup}"
client_fullscreen = "[{icon}]{delim}"
...
See config.toml.example and the wiki for more example, feel free to share your config !
No need to restart the applications then, there is an autoreload.
Hint: You can use glyphsearch and copy the unicode icon of your font for example https://glyphsearch.com/?query=book©=unicode
Hint: You can find hyprland class names for currently running apps using: hyprctl clients | grep -i class, or you can also use hyprland-autoname-workspaces --verbose.
Hint: Feel free to adapt and use this script to generate your config file. This is untested for the moment.
Hint: You can bootstrap your [icons] with the contrib/generate_icons.py script.
Hint: All styling param that you can use with <span> are here: https://docs.gtk.org/Pango/pango_markup.html