Centerpiece
一款极速、可扩展的 wayland 启动器。
centerpiece 的设计遵循以下理念:
- ⚡ 极速性能
- ⚫ 极简 UI
- 🔌 通过插件扩展
演示
运行它!
Centerpiece 尚未打包到任何主流包管理器中。不过,你可以轻松通过 nix 来运行它。
使用 nix run 尝试
nix run github:friedow/centerpiece
与 home-manager 配合使用
-
将此仓库添加到你的
flake.nix输入{ inputs.centerpiece.url = "github:friedow/centerpiece"; } -
注册 home-manager 模块并启用 centerpiece
{ inputs, ... }: { home-manager.users.<USER> = { imports = [ inputs.centerpiece.hmModules."x86_64-linux".default ]; programs.centerpiece.enable = true; }; } -
有关更多 nix 配置选项,请参阅 'Configure' 部分。
Plugins
所有插件默认均已启用。禁用您不需要的插件 ;)。
Niri Window Switcher
搜索已打开的 niri 窗口并在它们之间切换。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
niri_windows:
enable: true
Sway 窗口切换器
搜索已打开的 sway 窗口并在它们之间切换。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
sway_windows:
enable: true
应用程序启动器
搜索已安装的应用程序并启动它们。
此插件搜索 .desktop 文件。
它遵循 XDG 基础目录规范。
因此,它会在 XDG_DATA_DIRS 和 XDG_DATA_HOME 环境变量中指定的目录中进行搜索。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
applications:
enable: true
浏览器集成
在新标签页中打开书签和浏览器历史记录。
Brave
除了书签和历史记录外,还有一个插件用于以应用模式打开特殊书签。 这将启动一个没有地址栏和标签栏的 brave 实例。 要使用此插件,请将书签放入位于书签集合顶部的名为 'Progressive Web Apps' 的书签文件夹中。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
brave_bookmarks:
enable: true
brave_history:
enable: true
brave_progressive_web_apps:
enable: true
Firefox
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
firefox_bookmarks:
enable: true
firefox_history:
enable: true
Git 仓库
列出主目录中的 git 仓库,并在其中打开终端和编辑器。
选择一个 git 仓库将执行已配置的命令。 默认情况下,会在所选目录中打开终端和代码编辑器。
在整个主目录中搜索 git 仓库会消耗大量资源。
为避免插件启动时出现延迟,该插件附带一个 systemd 服务,用于创建索引文件。
该索引文件位于 ~/.cache/centerpiece/git-repositories-index.json,是插件正常工作所必需的。
它导出以下环境变量:
$GIT_DIRECTORY: git 目录的路径。$GIT_DIRECTORY_NAME: git 目录的名称。
如果启用了 zoxide 集成,插件将根据各自的 zoxide 分数对您的项目进行排序。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
git_repositories:
enable: true
zoxide: true
commands:
- ["alacritty", "--command", "nvim", "$GIT_DIRECTORY"]
- ["alacritty", "--working-directory", "$GIT_DIRECTORY" "--class" "$GIT_DIRECTORY_NAME"]
Gitmoji
列出 gitmoji 并复制它们。
注意:你需要在系统上安装 wl-clipboard。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
gitmoji:
enable: false
系统命令
锁定、休眠、重启或关闭您的系统。
当选择相应操作时,将执行以下命令。
lock: lock
sleep: systemctl suspend
restart: reboot
shutdown: poweroff
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
system:
enable: true
WiFi
列出附近的 wifi 网络并连接。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
wifi:
enable: true
资源监视器
显示当前 CPU、RAM、磁盘使用率和电池状态。
相关配置键
# ~/.config/centerpiece/config.yml
plugin
resource_monitor_battery:
enable: true
resource_monitor_cpu:
enable: true
resource_monitor_disks:
enable: true
resource_monitor_memory:
enable: true
时钟
显示当前日期和时间。
相关配置键
# ~/.config/centerpiece/config.yml
plugin:
clock:
enable: true
配置
你可以通过 yaml 或 nix 来配置 centerpiece。
你可以通过以下方式指定替代的配置位置:
--config标志CENTERPIECE_CONFIGURATION_FILE环境变量
使用 yml
-
在
~/.config/centerpiece/config.yml中创建一个config.yml文件。 -
使用以下配置键来配置 centerpiece。以下是所有配置键及其各自的默认值。
color: text: "#ffffff" background: "#000000" plugin: applications: enable: true brave_bookmarks: enable: true brave_history: enable: true brave_progressive_web_apps: enable: true clock: enable: true firefox_bookmarks: enable: true firefox_history: enable: true git_repositories: enable: true commands: - ["alacritty", "--command", "nvim", "$GIT_DIRECTORY"] - ["alacritty", "--working-directory", "$GIT_DIRECTORY"] gitmoji: enable: false resource_monitor_battery: enable: true resource_monitor_cpu: enable: true resource_monitor_disks: enable: true resource_monitor_memory: enable: true niri_windows: enable: true sway_windows: enable: true system: enable: true wifi: enable: true
使用 nix
-
按照 'Run it!' 部分 中的文档安装 home-manager 模块。
-
使用以下配置键来配置 centerpiece。这些是所有配置键及其各自的默认值。
{ inputs, ... }: { home-manager.users.<USER> = { imports = [ inputs.centerpiece.hmModules."x86_64-linux".default ]; programs.centerpiece = { enable = true; config = { color = { text = "#ffffff"; background = "#000000"; }; plugin = { applications = { enable = true; }; brave_bookmarks = { enable = true; }; brave_history = { enable = true; }; brave_progressive_web_apps = { enable = true; }; clock = { enable = true; }; firefox_bookmarks = { enable = true; }; firefox_history = { enable = true; }; git_repositories = { enable = true; commands = [ ["alacritty" "--command" "nvim" "$GIT_DIRECTORY"] ["alacritty" "--working-directory" "$GIT_DIRECTORY"] ]; }; gitmoji = { enable = false; }; resource_monitor_battery = { enable = true; }; resource_monitor_cpu = { enable = true; }; resource_monitor_disks = { enable = true; }; resource_monitor_memory = { enable = true; }; niri_windows = { enable = true; }; sway_windows = { enable = true; }; system = { enable = true; }; wifi = { enable = true; }; }; }; # enables a systemd service to index git-repositories services.index-git-repositories = { enable = true; interval = "5min"; }; }; }; }
贡献
仓库结构
/client
包含图形应用程序以及运行时所需的插件代码。这是大部分处理条目搜索和打开请求的插件代码。
/services
生成插件条目的计算可能非常耗时。例如,列出所有 git 仓库需要搜索整个主目录中名为 .git 的目录。为了避免在运行时拖慢图形应用程序,此目录包含用于编写小型 systemd 服务的代码,这些服务为具有耗时查询的插件写入索引。
开发环境设置
构建环境
flake.nix 提供了一个现成的构建环境,可与 nix develop 一起使用。
构建应用程序
-
运行一个包含构建环境的新 bash shell
nix develop -
运行应用程序
cargo run