如何使用sway-launcher-desktop:从入门到精通的10个实用技巧
【免费下载链接】sway-launcher-desktopTUI Application launcher with Desktop Entry support. Made for SwayWM, but runs anywhere项目地址: https://gitcode.com/gh_mirrors/sw/sway-launcher-desktop
sway-launcher-desktop 是一款基于 TUI 的应用启动器,使用 bash 和 fzf 构建,尽管名称中包含 "sway",但它实际上不依赖任何窗口管理器,可在几乎所有桌面环境中使用。它支持 .desktop 文件和命令行程序启动,提供预览功能和历史记录支持,让应用启动更加高效便捷。
1. 快速安装与基础配置
安装准备
确保系统已安装fzf(命令行模糊搜索工具)。Arch Linux 用户可直接通过 AUR 安装:
- sway-launcher-desktop
- sway-launcher-desktop-git
其他系统用户可克隆仓库手动安装:
git clone https://gitcode.com/gh_mirrors/sw/sway-launcher-desktop cd sway-launcher-desktop chmod +x sway-launcher-desktop.sh窗口管理器集成(以 Sway 为例)
在 Sway 配置文件(通常是~/.config/sway/config)中添加:
for_window [app_id="^launcher$"] floating enable, sticky enable, resize set 30 ppt 60 ppt, border pixel 10 set $menu exec foot -a launcher -e /path/to/sway-launcher-desktop.sh bindsym $mod+d exec $menu注:将foot替换为你的终端(如 alacritty、kitty),$mod+d可自定义快捷键。
2. 自定义终端与图标显示
设置终端命令
部分 .desktop 应用(如 htop)需要在终端中启动,通过TERMINAL_COMMAND环境变量指定终端:
env TERMINAL_COMMAND="alacritty -e" ./sway-launcher-desktop.sh调整图标与提示符
通过环境变量自定义图标(glyphs)和提示符:
env GLYPH_COMMAND="💻 " GLYPH_DESKTOP="📱 " GLYPH_PROMPT="→ " ./sway-launcher-desktop.shGLYPH_COMMAND:命令行程序图标GLYPH_DESKTOP:桌面应用图标GLYPH_PROMPT:输入提示符
3. 高效使用搜索与预览功能
实时搜索与过滤
启动后直接输入关键词,fzf 会实时过滤结果:
- 输入 "fire" 快速定位 Firefox
- 输入 "term" 筛选终端相关应用
预览窗口查看详情
选中条目时,预览窗口(默认顶部)会显示:
- 桌面应用:显示
.desktop文件中的Comment=描述 - 命令行程序:显示
whatis命令的帮助信息
4. 历史记录管理与快速访问
历史记录存储位置
默认历史记录保存在:
~/.cache/sway-launcher-desktop-history.txt可通过HIST_FILE环境变量自定义路径:
env HIST_FILE="$HOME/.local/share/launcher-history.txt" ./sway-launcher-desktop.sh清理无效历史条目
随着软件卸载或更新,历史记录可能出现无效条目,执行以下命令清理:
./sway-launcher-desktop.sh purge建议将此命令添加到定时任务或启动脚本中。
5. 桌面应用自动启动配置
启用自动启动功能
sway-launcher-desktop 支持 XDG 自动启动规范,在启动脚本(如.bashrc或 Sway 配置)中添加:
/path/to/sway-launcher-desktop.sh autostart自动启动条件控制
.desktop 文件中可通过AutostartCondition控制启动条件:
AutostartCondition=if-exists ~/.config/myapp/enable:文件存在时启动AutostartCondition=unless-exists ~/.config/myapp/disable:文件不存在时启动
6. 扩展自定义启动项(Provider)
创建自定义 Provider
通过配置文件~/.config/sway-launcher-desktop/providers.conf添加自定义条目:
[my-bookmarks] list_cmd=cat ~/.bookmarks | awk -F'|' '{print $1 "\034my-bookmarks\034🔖 " $2}' preview_cmd=echo "URL: {1}" launch_cmd=xdg-open {1} purge_cmd=test -f ~/.bookmarks && grep -q "{1}" ~/.bookmarks || exit 43list_cmd:生成条目列表(格式:值\034提供者名\034显示文本)preview_cmd:预览内容({1}指代条目标值)launch_cmd:启动命令({1}指代条目标值)purge_cmd:历史清理条件(返回 43 时从历史中移除)
保留默认 Provider
自定义配置时若需保留默认的桌面应用和命令行程序支持,添加:
[desktop] list_cmd=/path/to/sway-launcher-desktop.sh list-entries preview_cmd=/path/to/sway-launcher-desktop.sh describe-desktop "{1}" launch_cmd=/path/to/sway-launcher-desktop.sh run-desktop '{1}' {2} purge_cmd=test -f '{1}' || exit 43 [command] list_cmd=/path/to/sway-launcher-desktop.sh list-commands preview_cmd=/path/to/sway-launcher-desktop.sh describe-command "{1}" launch_cmd=$TERMINAL_COMMAND {1} purge_cmd=command -v '{1}' || exit 437. 与其他工具集成
通过管道输出命令
sway-launcher-desktop 检测到输出被管道捕获时,会仅输出选中的命令,便于集成:
# 用 swaymsg 启动应用(适合窗口管理器集成) swaymsg exec "$(./sway-launcher-desktop.sh)" # 用 nohup 在后台启动 nohup "$(./sway-launcher-desktop.sh)" &8. 调试与日志查看
启用调试日志
通过文件描述符 3 输出调试信息:
./sway-launcher-desktop.sh 3>> ~/sway-launcher-desktop.log日志内容包括:
- 启动的 Provider 列表
- 生成的启动命令
- 历史记录更新情况
9. 高级环境变量配置
| 变量名 | 作用 | 默认值 |
|---|---|---|
TERMINAL_COMMAND | 终端启动命令 | $TERMINAL -e |
HIST_FILE | 历史记录文件路径 | ~/.cache/sway-launcher-desktop-history.txt |
PROVIDERS_FILE | 自定义 Provider 配置文件路径 | ~/.config/sway-launcher-desktop/providers.conf |
10. 常见问题解决
问题:部分 .desktop 应用未显示
解决:确保.desktop文件符合规范:
- 包含
[Desktop Entry]和Type=Application - 未设置
NoDisplay=true或Hidden=true
问题:历史记录不更新
解决:检查历史文件权限:
chmod 644 ~/.cache/sway-launcher-desktop-history.txt问题:预览窗口无内容
解决:确保whatis数据库已更新:
sudo mandb通过以上 10 个技巧,你可以充分发挥 sway-launcher-desktop 的强大功能,让应用启动效率提升一个台阶。无论是基础配置还是高级扩展,这款工具都能满足你对高效启动器的需求!
【免费下载链接】sway-launcher-desktopTUI Application launcher with Desktop Entry support. Made for SwayWM, but runs anywhere项目地址: https://gitcode.com/gh_mirrors/sw/sway-launcher-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考