你想使用那些花哨的表情符号吗?或者 Unicode 提供的其他有趣字符?但你还没找到一个好用的选择器?
不用担心,rofimoji
借助 rofi(以及其他 dmenu 衍生工具)的力量,为你提供一个你一直想要的选择器。
将 rofimoji
作为独立工具调用。
rofimoji
shift+enter
选择多个表情符号enter
执行默认操作,或使用快捷键执行其他操作。alt+1
直接选择最近使用的字符(alt+2
选择第二常用的字符,以此类推)将 rofimoji
集成为 rofi 的一种模式。
rofi -modi "emoji:rofimoji" -show emoji
调用 rofienter
执行默认操作;Alt+Shift+1
复制到剪贴板Alt+Shift+3
使用"剪贴板"插入方法alt+1
插入最近使用的字符(alt+2
插入第二常用的字符,以此类推)rofimoji
作为 rofi 模式运行的注意事项这种方法有一些限制: 作为 rofi 模式运行有几个无法改变的缺点:
rofi
是主进程,rofimoji
无法直接向任何窗口输入。只能复制字符,所以要相应地设置 --action
。Alt+Shift+1
(在 Qwerty 键盘上)等。配置仍然按照描述的方式工作。例如,你可以在 combi
中设置多个模式以用于不同的字符集,或设置默认操作和肤色。
你可以通过命令行参数或配置文件 $XDG_CONFIG_HOME/rofimoji.rc
来配置 rofimoji
。对于配置文件,使用不带双横线的长选项名称。
长选项 | 短选项 | 可能的值 | 默认值 | 描述 |
---|---|---|---|---|
--action | -a | type , copy , clipboard , unicode , copy-unicode , print , menu | type | 选择 rofimoji 应该对所选字符执行的操作。详见下方的操作部分。 |
--files | -f | all 、<yourfile> 或 data 目录中的任何文件 | emojis | 定义从哪些文件加载字符。对于已分发的文件或 ${XDG_DATA_HOME}/rofimoji/data 中的文件,不带扩展名的文件名(如 emojis_smileys_emotion )就足够了。可以使用 * 进行通配。all 是一次性加载所有默认文件的快捷方式。谨慎使用,这会加载大量文件。 |
--skin-tone | -s | light , medium-light , moderate , dark brown , black ,以及 neutral 和 ask | ask | 定义支持肤色的表情符号的肤色。ask 将始终询问用户。 |
--max-recent | 0-10 | 10 | 最多显示这么多最近选择的字符。数量上限为 10。设为 0 可禁用此功能。 | |
--no-frecency <br/>(配置文件中为 no-frecency=True ) | - | <false> | 默认情况下,rofimoji 会首先显示常用项目。启用此选项后,它们将按文件中的顺序显示。 | |
--hidden-descriptions <br/>(配置文件中为 hidden-descriptions=True ) | - | <false> | 仅列出字符,不显示其描述。这对 rofi 的网格主题很有用。请注意,即使不显示描述,仍然可以搜索到它们。不适用于其他选择器。 | |
--use-icons | false | 在 rofi 中将字符显示为图标。不适用于其 他选择器。 | ||
--prompt | -r | 任意字符串 | 😀 | 定义 rofimoji 的提示文本。 |
--selector-args | 定义 rofimoji 将传递给选择器的参数。<br/>请注意,由于 argparse 中的一个 bug,您需要将其指定为 --selector-args="<selector-args>" 或 --selector-args " <selector-args>" | |||
--selector | rofi , wofi , fuzzel , dmenu , tofi , bemenu , wmenu | (自动选择) | 使用此应用程序显示选择对话框。 | |
--clipboarder | xsel , xclip , wl-copy | (自动选择) | 使用此应用程序访问剪贴板。 | |
--typer | xdotool , wtype | (自动选择) | 使用此应用程序输入字符。 | |
--keybinding-copy , --keybinding-type , --keybinding-clipboard , --keybinding-unicode , --keybinding-copy-unicode | Alt+c , Alt+t , Alt+p , Alt+u , Alt+i | 选择不同于默认值的键绑定。 |
~/.config/rofimoji.rc
:
action = copy
files = [emojis, math]
skin-tone = moderate
--action
(-a
)选项定义选择字符时要执行的操作。可以用空格分隔指定多个操作(例如:-a type copy
)。
选项如下:
名称 | 快捷键 | 描述 |
---|---|---|
type | alt+t | 直接将字符输入到最后活动的窗口中。这是默认操作 |
copy | alt+c | 将字符复制到剪贴板。 |
clipboard | alt+p | 通过从剪贴板粘贴来插入所选字符,而不是直接输入。参见插入方法。 |
unicode | alt+u | 输入所选字符的 Unicode 码点。 |
copy-unicode | alt+i | 将码点复制到剪贴板。 |
print | 将选择的字符打印到 stdout 。 |
默认情况下,rofimoji
使用 xdotool
或 wtype
输入字符(参见显示服务器支持)。您可以使用 --action type
(-a type
)强制执行此行为。
对于某些应用程序(例如Firefox),这种方法可能不太可靠。为了解决这个问题,rofimoji
可以将表情复制到剪贴板,然后通过shift+insert
从剪贴板插入。之后,它会恢复之前的剪贴板内容。
不幸的是,接收应用程序是否使用剪贴板或主选择取决于应用程序本身。
因此,rofimoji
同时使用两者,并恢复两者。
要使用这种解决方法,你可以使用快捷键alt+p
或者以rofimoji --action clipboard
(-a clipboard
)的方式启动。
如果你想直接输入而不是复制,即使以--action clipboard
启动,你也可以按alt+t
。请注意,你可以更改快捷键。
最后,使用--action copy
(或-a copy
)可以让rofimoji
只将选 定的字符复制到剪贴板。
rofimoji
通过使用适合每种环境的正确工具来支持X11和Wayland(参见支持的选择器)。它会尝试自动为当前运行的会话选择正确的工具。
如果你想手动覆盖此设置,请查看--selector
、--clipboarder
和--typer
选项上文。
默认情况下,rofimoji
会单独显示最近使用的十个字符;你可以使用alt+1
、alt+2
等插入它们。它将使用默认的插入方法。
如果你不想要这个功能,可以将--max-recent
设置为0
。
此外,rofimoji
还会记住哪些字符使用频率更高,并相应地对列表进行排序。你可以使用--no-frecency
禁用此行为。
默认情况下,rofimoji
重用现有的rofi配置,但你可以使用--selector-args
传递自己的配置(例如--selector-args="-theme ~/your-rofi-theme.rasi"
)。
如果你想要一个更注重字符的主题,可以使用打包的grid.rasi
与--hidden-descriptions
参数一起使用。这个主题仍然导入现有的rofi
配置,但将条目移到一个网格中。当然,你也可以基于此创建自己的主题。(如果你有改进,请开启PR!)
要在rofi
中仅使用方向键控制网格而非查询,请传递这些-selector-args
:-kb-row-left Left -kb-row-right Right -kb-move-char-back Control+b -kb-move-char-forward Control+f
。