6个版本
0.1.5 | 2023年1月13日 |
---|---|
0.1.4 | 2022年12月18日 |
#3 在 #theming
每月24次下载
220KB
925 行
安装
如果您没有Rust,请按照此处的安装说明进行操作。
运行以下命令安装fr33zmenu
cargo install fr33zmenu
使用
运行以下命令查看帮助:fr33zmenu --help
如果找不到命令,您需要将 ~/.cargo/bin
添加到您的路径中。
echo 'export PATH=$PATH:~/.cargo/bin' >> ~/.bashrc
source ~/.bashrc
如果您使用的是zsh,将 ~/.bashrc
替换为 ~/.zshrc
。
集成
本指南将演示如何将fr33zmenu与您的窗口管理器集成。您需要根据您的终端和窗口管理器进行调整(显然),但在此指南中,我使用Hyprland(wayland合成器)和Kitty(终端)。
1. 创建配置文件
请参阅下面的配置部分。我将我的保存为~/.config/fr33menu/menu.toml
。
2. 为您的窗口管理器创建一个脚本
我将我的保存为~/scripts/launcher
。
#!/bin/sh
fr33zmenu ~/.config/fr33zmenu/menu.toml \
--exec-with "nohup hyprctl dispatch exec" \
--transient
3. 配置窗口管理器/合成器
通过按键绑定和窗口规则,可以使终端窗口表现得像一个图形启动器。我的目标是使窗口以固定大小在屏幕中央弹出。
以下配置已添加到我的~/.config/hypr/hyprland.conf
。
$launcher = kitty --class fr33zmenu ~/scripts/launcher
bind = $mainMod, SPACE, exec, $launcher
windowrulev2 = float, class:fr33zmenu
windowrulev2 = size 600 400, class:fr33zmenu
windowrulev2 = center, class:fr33zmenu
如果您的终端不支持使用提供的类打开,可以使用窗口的标题。
配置
- 支持格式:
toml
json
yaml
ini
ron
json5
支持主题、按键绑定和菜单的配置。没有预设的配置目录,因为您的配置文件路径将作为位置参数传递。即便如此,您可能希望将配置文件存储在~/.config/fr33zmenu
中,以便于组织。
注意:所有配置选项必须位于传递给程序的单一文件中。目前不支持提供或导入多个配置文件。
菜单
必需
菜单定义了程序的交互内容。每个菜单在界面的第一行显示为一个选项卡,当前菜单的条目显示在菜单提示下方。
示例
[menus.programs] # Define a new menu named "programs"
order = -1 # Ensure it is the first menu
prompt = "launch -> " # Give it a cool prompt
[menus.programs.entries] # Define the menu's entries
# ↓ Name ↓ Value
emacs = "emacsclient -c -a emacs"
librewolf = "librewolf --browser"
strawberry = "strawberry"
gimp = "gimp --new-instance"
gajim = "gajim --show"
[menus.power] # Another menu
prompt = "power -> "
[menus.power.entries]
shutdown = "shutdown now"
reboot = "reboot"
快捷键
可选 - 如果您的配置中缺少此部分,将加载默认值。
- 快捷键必须包含恰好一个非修饰键。
- 一个命令可以有多个快捷键,但一个快捷键不能绑定到多个命令。
- 快捷键不区分大小写。
命名键
- 修饰键
shift
control
|ctrl
alt
backspace
|back
enter
|return
|ret
- 非修饰键
left
right
up
down
home
end
pageup
|pgup
pagedown
|pgdn
tab
delete
|del
insert
escape
|esc
示例(默认快捷键)
[keybinds]
exit = [ "escape", "ctrl+c" ]
submit = [ "enter" ]
clear = [ "shift+del", "ctrl+del" ]
delete_next = [ "delete" ]
delete_back = [ "backspace" ]
input_next = [ "right" ]
input_back = [ "left" ]
entry_next = [ "down", "ctrl+down", "ctrl+j", "tab" ]
entry_back = [ "up", "ctrl+up", "ctrl+k", "shift+tab" ]
menu_next = [ "ctrl+right", "ctrl+l" ]
menu_back = [ "ctrl+left", "ctrl+h" ]
主题
可选 - 如果您的配置中缺少此部分,将加载默认值。
界面上所有文本都可以自定义主题。主题中的每个值都接受以下属性
fg
- 前景色/文字颜色bg
- 背景颜色attrs
- 由逗号分隔的文字样式属性字符串,例如:bold, italic, underlined
bold
dim
italic
underlined
hidden
接受任何有效的CSS颜色字符串,但alpha值将无效果。
示例(默认主题)
[theme]
prompt = { fg = "#a6e3a1", attrs = "bold" }
input = { fg = "#cdd6f4" }
entry_name = { fg = "#cdd6f4" }
entry_value = { fg = "#6c7086" }
entry_match = { fg = "#74c7ec", attrs = "bold" }
entry_hidden = { fg = "#45475a" }
entry_cursor = { fg = "#1e1e2e", bg = "#cdd6f4", attrs = "bold" }
entry_cursor_match = { fg = "#1e1e2e", bg = "#74c7ec", attrs = "bold" }
menu_name = { fg = "#f38ba8" }
menu_cursor = { fg = "#1e1e2e", bg = "#f38ba8", attrs = "bold" }
overflow = { fg = "#f9e2af", attrs = "bold" }
依赖关系
~5–17MB
~167K SLoC