23 个稳定版本
1.3.5 | 2023年6月18日 |
---|---|
1.3.3 | 2023年3月21日 |
1.3.0 | 2022年8月30日 |
1.2.4 | 2022年7月25日 |
1.1.0 | 2021年7月4日 |
#395 在 开发工具 中
625KB
678 行
Swayest Workstyle
根据工作区内的窗口定义图标,将工作区名称映射到图标。
类似于 workstyle 的可执行文件。
sworkstyle
和 workstyle
的区别
-
即插即用解决方案,内置匹配配置,您可以通过创建/修改
.config/sworkstyle/config.toml
来扩展此配置,或者您可以为此存储库或您的包管理器创建一个带有新匹配器的 PR。 -
更好的匹配:使用正则表达式、精确的应用程序名称和通用的应用程序标题。
-
特别针对 Sway 和 Wayland
-
备用图标
-
去重
您的工作区永远不会再次包含空图标!
它所做的示例(使用隐藏工作区索引的 waybar)
安装
Cargo
cargo install sworkstyle
Arch Linux
您可以选择手动安装或使用 aur 辅助工具,如 Yay。
yay -S sworkstyle
用法
sworkstyle
Sway 配置
将以下行添加到您的 sway 配置文件中(~/.config/sway/config
)。
exec sworkstyle &> /tmp/sworkstyle.log
注意:在使用cargo install时,请确保在执行sway之前将
.cargo/bin
添加到PATH
环境变量中。您可以通过将以下命令添加到.zprofile
或.profile
来实现这一点:export PATH="$HOME/.cargo/bin:$PATH"
您应将提及工作区(分配,快捷键)的任何内容配置为使用编号工作区。这是因为sworkstyle会多次重命名您的 workspace,因此它需要一个不变的数字才能正确工作。
首选
assign [class="^Steam$"] number 1
bindsym $mod+1 workspace number 1
而不是
assign [class="^Steam$"] 1
bindsym $mod+1 workspace 1
Sworkstyle 配置
主要配置包括决定哪些应用程序使用哪些图标。
配置文件位于${XDG_CONFIG_HOME}/sworkstyle/config.toml
。其值将优先于默认值。语法为 TOML,应该相当直观。
当配置文件中未识别到应用程序时,sworkstyle
会将应用程序名称作为警告记录。只需将此字符串添加到您的配置文件中,并添加您选择的图标。
注意,crate find_unicode可以帮助从命令行直接查找unicode字符。它现在支持所有nerdfonts unicode空间。
有关正则表达式语法的参考,请参阅regex crate
匹配
标准
'{pattern}' = '{icon}'
# pattern: Can either be the exact "app_name" (app_id/class) of the window or a regex string in the format of `"/{regex}/"` which will match the window "title".
# icon: Your beautiful icon
详细
'{pattern}' = { type = 'generic' | 'exact', value = '{icon}' }
注意:您只需在匹配不区分大小写的通用文本时使用详细格式。'case insensitive title' = { type = 'generic', value = 'A' }
故障排除
如果无法匹配某个内容,它将打印
WARN [sworkstyle:config] No match for '{app_name}' with title '{title}'
您可以使用{title}进行通用匹配
您可以使用{app_name}进行精确匹配
默认配置
默认配置使用font-awesome进行图标映射。
默认配置始终附加到您定义的任何自定义配置。您可以覆盖任何匹配或提交PR,如果您认为匹配应该是默认的。
fallback = ''
separator = ' '
[matching]
'discord' = ''
'balena-etcher' = ''
'Chia Blockchain' = ''
'Steam' = ''
'vlc' = ''
'org.qbittorrent.qBittorrent' = ''
'Thunderbird' = ''
'thunderbird' = ''
'Postman' = ''
'Insomnia' = ''
'Bitwarden' = ''
'Google-chrome' = ''
'Chromium' = ''
'Slack' = ''
'Code' = ''
'code-oss' = ''
'jetbrains-studio' = ''
'Spotify' = ''
'GitHub Desktop' = ''
'/(?i)Github.*Firefox/' = ''
'firefox' = ''
'Nightly' = ''
'firefoxdeveloperedition' = ''
'/nvim ?\w*/' = ''
'/npm/' = ''
'/node/' = ''
'/yarn/' = ''
'Alacritty' = ''
包维护者
如果您想更改内置配置,请使用您的配置更改src/default_config.toml
并安装项目。
您可能还需要font-awesome作为依赖项,具体取决于您的配置。
您还可以提交PR以添加徽章,并在#安装下添加您的安装方法,或者添加到内置配置的匹配器。
请参阅aur以获取示例构建。
路线图
- 一个
--unique
参数,其中每个工作区仅基于具有最大优先级的匹配项具有单个图标。 - 添加hyprland支持
已知问题
- 使用sway的alt-tab行为可能导致工作区未命名
依赖项
~11–22MB
~321K SLoC