键盘布局切换:rof/rofi与setxkbmap小程序

键盘布局切换:rof/rofi与setxkbmap小程序

【免费下载链接】rofi A huge collection of Rofi based custom Applets, Launchers & Powermenus. 【免费下载链接】rofi 项目地址: https://gitcode.com/gh_mirrors/rof/rofi

你是否经常在中英文输入切换时手忙脚乱?是否希望通过一个美观且高效的界面快速切换键盘布局?本文将介绍如何利用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/

希望这个小工具能帮助你更高效地切换键盘布局,提升工作效率!

【免费下载链接】rofi A huge collection of Rofi based custom Applets, Launchers & Powermenus. 【免费下载链接】rofi 项目地址: https://gitcode.com/gh_mirrors/rof/rofi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值