你想使用那些花哨的表情符号吗?或者 Unicode 提供的其他有趣字符?但你还没找到一个好用的选择器?
不用担心,rofimoji 借助 rofi(以及其他 dmenu 衍生工具)的力量,为你提供一个你一直想要的选择器。


将 rofimoji 作为独立工具调用。
rofimojishift+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。
