#sway #workspace #wayland #config-file #icons #config-toml #ipc

bin+lib sworkstyle

拥有最酷风格的工作区!此程序将动态重命名您的工作区,以指示每个工作区中运行哪些程序。它使用 Sway IPC。如果没有配置文件,则会自动生成。有关详细信息,请参阅 ${XDG_CONFIG_HOME}/workstyle/config.yml。

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开发工具

MIT 许可证

625KB
678

Swayest Workstyle

AUR version Crates.io

根据工作区内的窗口定义图标,将工作区名称映射到图标。

类似于 workstyle 的可执行文件。

sworkstyleworkstyle 的区别

  • 即插即用解决方案,内置匹配配置,您可以通过创建/修改 .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