键盘布局切换:rof/rofi与setxkbmap小程序
你是否经常在中英文输入切换时手忙脚乱?是否希望通过一个美观且高效的界面快速切换键盘布局?本文将介绍如何利用rof/rofi项目和setxkbmap工具,打造一个自定义的键盘布局切换小程序,让你的工作流更加顺畅。
项目背景与准备
rof/rofi是一个基于Rofi的自定义小程序、启动器和电源菜单集合,提供了丰富的主题和样式选择。要实现键盘布局切换功能,我们需要结合setxkbmap工具,它是一个用于设置键盘布局的命令行工具。
首先确保已安装Rofi和setxkbmap:
sudo apt-get install rofi x11-xkb-utils # Debian/Ubuntu
sudo pacman -S rofi xorg-setxkbmap # Arch Linux
项目结构中,与小程序相关的文件主要位于files/applets/目录下,包含不同类型的小程序样式文件,如files/applets/type-1/style-1.rasi。
创建键盘布局切换小程序
1. 创建布局文件
在applets目录下创建键盘布局小程序的样式文件:
mkdir -p files/applets/type-6
touch files/applets/type-6/style-1.rasi
编辑files/applets/type-6/style-1.rasi,添加以下内容:
/**
* 键盘布局切换小程序样式
*/
configuration {
show-icons: false;
}
@import "../shared/colors.rasi"
@import "../shared/fonts.rasi"
window {
transparency: "real";
location: center;
width: 300px;
border: 1px solid @selected;
background-color: @background;
}
mainbox {
spacing: 10px;
padding: 20px;
children: [ "inputbar", "listview" ];
}
inputbar {
spacing: 10px;
children: [ "textbox-prompt-colon", "prompt" ];
}
textbox-prompt-colon {
str: "⌨";
padding: 10px 13px;
background-color: @urgent;
text-color: @background;
}
prompt {
padding: 10px;
background-color: @active;
text-color: @background;
}
listview {
layout: vertical;
spacing: 5px;
}
element {
padding: 10px;
background-color: transparent;
text-color: @foreground;
}
element selected.normal {
background-color: @selected;
text-color: @background;
}
2. 创建启动脚本
创建键盘布局切换的启动脚本:
touch files/applets/type-6/keyboard-layout.sh
chmod +x files/applets/type-6/keyboard-layout.sh
编辑脚本内容:
#!/bin/bash
# 键盘布局列表
LAYOUTS=(
"us:英语"
"cn:中文"
"jp:日语"
"kr:韩语"
)
# 生成选项列表
OPTIONS=()
for layout in "${LAYOUTS[@]}"; do
OPTIONS+=("${layout#*:}")
done
# 调用rofi显示布局选择菜单
SELECTION=$(printf "%s\n" "${OPTIONS[@]}" | rofi -dmenu -theme "files/applets/type-6/style-1.rasi" -p "选择键盘布局")
# 根据选择设置键盘布局
for layout in "${LAYOUTS[@]}"; do
if [[ "$SELECTION" == "${layout#*:}" ]]; then
setxkbmap "${layout%:*}"
notify-send "键盘布局已切换为" "$SELECTION"
exit 0
fi
done
3. 添加到脚本目录
将脚本添加到项目的scripts目录,方便访问:
ln -s ../applets/type-6/keyboard-layout.sh files/scripts/keyboard_layout
使用与效果展示
运行以下命令启动键盘布局切换小程序:
files/scripts/keyboard_layout
你将看到一个美观的键盘布局选择界面,类似其他applets的样式:
自定义与扩展
修改样式
你可以通过修改files/applets/type-6/style-1.rasi文件来自定义小程序的外观,例如更改窗口大小、颜色 scheme 等。颜色定义可以参考files/colors/目录下的文件,如files/colors/onedark.rasi。
添加更多布局
编辑键盘布局脚本,在LAYOUTS数组中添加更多布局选项:
LAYOUTS=(
"us:英语"
"cn:中文"
"jp:日语"
"kr:韩语"
"fr:法语"
"de:德语"
)
设置快捷键
在你的窗口管理器配置中添加快捷键,例如i3wm的配置:
# ~/.config/i3/config
bindsym $mod+Shift+k exec --no-startup-id files/scripts/keyboard_layout
总结
通过本文的步骤,你已经成功创建了一个基于rof/rofi的键盘布局切换小程序。这个小程序不仅美观易用,还能提高你在多语言输入时的效率。你可以根据自己的需求进一步定制样式和功能,使其更符合个人使用习惯。
项目中还有更多类型的applets和样式可供参考,如files/applets/type-1/和files/applets/type-2/目录下的小程序,以及各种颜色方案files/colors/。
希望这个小工具能帮助你更高效地切换键盘布局,提升工作效率!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




