#hyprland #wayland #waybar #desktop-applications #linux

应用 hyprland-autoname-workspaces

此应用程序自动使用启动应用程序的图标重命名工作区

27个版本 (14个稳定版)

1.1.14 2024年5月14日
1.1.13 2024年2月3日
1.1.12 2023年11月25日
1.1.5 2023年7月10日
0.2.13 2023年2月16日

#60 in GUI

Download history 110/week @ 2024-05-11 39/week @ 2024-05-18 4/week @ 2024-05-25 2/week @ 2024-06-01 4/week @ 2024-06-08 4/week @ 2024-06-15 139/week @ 2024-06-29 140/week @ 2024-07-27

每月140次下载

ISCGPL-3.0-or-later

135KB
3K SLoC

🪟 hyprland-autoname-workspaces

Discord codecov

🕹️这是Hyprland的一个玩具。

此应用程序自动使用启动应用程序的图标重命名工作区 - 与 waybareww 测试过。

您必须根据 classtitle 设置配置文件,并基于您的偏好规则。支持正则表达式(匹配和捕获)。

常见问题解答、技巧和窍门 ❓

https://github.com/hyprland-community/hyprland-autoname-workspaces/wiki/FAQ

安装

AUR 📦

在程序名称 hyprland-autoname-workspaces-git 下作为AUR软件包提供。然后,您可以使用服务 systemctl --user enable --now hyprland-autoname-workspaces.service

Fedora 📦

在此处提供软件包 https://copr.fedorainfracloud.org/coprs/solopasha/hyprland/

Nix 📦

在nixpkgs中提供 hyprland-autoname-workspaces。您可以将它添加到您的 systemPackages 或使用 nix run 在不安装的情况下尝试它。

$ nix run nixpkgs#hyprland-autoname-workspaces

Cargo 📦

$ cargo install --locked hyprland-autoname-workspaces

使用方法

$ hyprland-autoname-workspaces

配置

首先,您必须设置您的 waybar,例如,使用良好的模块 hyprland/workspaces。已弃用 wlr/workspaces 模块。您必须使用 hyprland/workspaces 模块,配置为 "format" = "{name}"

"hyprland/workspaces": {
    "format": "{name}",
}

有关所有参数,请查看此存储库中的 config.toml.example

可以通过使用-c <CONFIG>选项来指定配置文件,否则默认为~/.config/hyprland-autoname-workspaces/config.toml。如果你指定了一个不存在的路径,将会生成一个默认的配置文件。

可以在任何地方使用正则表达式,默认情况下它是区分大小写的。

通过在[icons]部分中编辑应用程序的映射,使用class = "icon"

在图标值中,如果你使用正则表达式捕获,可以使用占位符{class}{title}{match1}{match2}

示例

[class]
DEFAULT = "{class}: {title}"
...
  • 你可以使用class = title[exclude]中排除应用程序。

exclude部分,键是窗口的class,值是title。你可以使用空字符串来排除标题为空的窗口,并将".*"作为值来匹配某个类名的所有标题。

示例

...
[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][title_in_class_active.class]"a word in the title" = "icons"进行标题匹配。

提示:还有title_in_initial_classinitial_title_in_classinitial_title_in_initial_class等等。

示例

...
[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参数来去重图标。
dedup = true
dedup_inactive_fullscreen = true
...
[title."(xterm|(?i)kitty|alacritty)"]
"(?i)neomutt" = "mail"
ncdu = "file manager"
...
  • 你还可以通过这些[format]部分格式化器参数来重新定义所有默认格式化器。可用的{placeholder}列表如下:

workspace

  • client
  • id (or id_long)
  • name (use value from [workspaces_name] mapping)
  • delim

clients

  • icon
  • counter_s, counter_unfocused_s, counter, counter_unfocused
  • class, iitle
  • delim
  • match1, match2, match3, matchN (for regex captures)
[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}"
...

请参阅config.toml.example和维基以获取更多示例,欢迎分享你的配置!

不需要重新启动应用程序,因为存在自动重新加载功能。

提示:您可以使用glyphsearch并复制您字体中的Unicode图标,例如:https://glyphsearch.com/?query=book&copy=unicode

提示:您可以使用以下命令查找当前运行的应用程序的hyprland类名:hyprctl clients | grep -i class,或者您也可以使用hyprland-autoname-workspaces --verbose

提示:请随意调整和使用此脚本以生成您的配置文件。目前尚未进行测试。

提示:您可以使用contrib/generate_icons.py脚本初始化您的[icons]

提示:您可以使用以下链接查看所有可用于<span>的样式参数:https://docs.gtk.org/Pango/pango_markup.html

依赖项

~11–22MB
~293K SLoC