ITADN
friedow/centerpiece
friedow/centerpiece · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

banner showing centerpiece

Centerpiece

一款极速、可扩展的 wayland 启动器。

centerpiece 的设计遵循以下理念:

  • ⚡ 极速性能
  • ⚫ 极简 UI
  • 🔌 通过插件扩展

演示

demo showing centerpiece in action

运行它!

Centerpiece 尚未打包到任何主流包管理器中。不过,你可以轻松通过 nix 来运行它。

使用 nix run 尝试

nix run github:friedow/centerpiece

与 home-manager 配合使用

  1. 将此仓库添加到你的 flake.nix 输入

    {
        inputs.centerpiece.url = "github:friedow/centerpiece";
    }
  2. 注册 home-manager 模块并启用 centerpiece

    { inputs, ... }: {
        home-manager.users.<USER> = {
            imports = [ inputs.centerpiece.hmModules."x86_64-linux".default ];
    
            programs.centerpiece.enable = true;
        };
    }
  3. 有关更多 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_DIRSXDG_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

  1. ~/.config/centerpiece/config.yml 中创建一个 config.yml 文件。

  2. 使用以下配置键来配置 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

  1. 按照 'Run it!' 部分 中的文档安装 home-manager 模块。

  2. 使用以下配置键来配置 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 一起使用。

构建应用程序

  1. 运行一个包含构建环境的新 bash shell

    nix develop
  2. 运行应用程序

    cargo run