使用键绑定将 GUI 文本选择从“大写”、“小写”或“句子大小写”转换为所需的大小写

使用键绑定将 GUI 文本选择从“大写”、“小写”或“句子大小写”转换为所需的大小写

我使用 Arch Linux 和 Openbox 窗口管理器和 bash。
所有内容都已更新至最新可用版本。

我经常需要更改所选文本的大小写,这些文本在应用程序中是错误的大小写,例如

  • 自由办公室作家
  • 谷歌文档
  • 编辑器
  • 杰尼

例如,我选择文本“THE BRIGHT DAY”,并希望通过一些简单的击键/键绑定将其更改为“the Bright Day”。

下面我实现了由 Openbox 键绑定调用的非常简单的命令行工具,以根据需要更改大小写。

这些存储在 Openbox 的 keybindings/ setup 文件中,rc.xml如下所示

######################################   
########## c-fn - key chain ##########  
######################################   


<keybind key="c-XF86WakeUp">

# change selected text to lowercase
     <keybind key="l"><action name="execute"><command>bash -c '
     clip_zz="$(echo $(xsel) | awk '\''{print tolower($0)}'\'')";
     xdotool type --clearmodifiers -- "$clip_zz"
     '</command></action></keybind>

# CHANGE SELECTED TEXT TO UPPERCASE 
     <keybind key="u"><action name="execute"><command>bash -c '
     clip_zz="$(echo $(xsel) | awk '\''{print toupper($0)}'\'')";
     xdotool type --clearmodifiers -- "$clip_zz"
     '</command></action></keybind>

# Change Selected Text To Sentence Case Like This With Each Words First Letter Being Capatalised
     <keybind key="i"><action name="execute"><command>bash -c '
     clip_zz="$(echo $(xsel) | awk '\''{print tolower($0)}'\'' | sed '\''s@\([[:lower:]]\)\([[:alnum:]]*\)@\u\1\2@g'\'')";
     xdotool type --clearmodifiers -- "$clip_zz"
     '</command></action></keybind>

</keybind>  

尽管这些在从大写到小写时有效,但由于 xdotool 的限制,它会将“IT'S”替换为“itNs”。

我想知道是否可以使用“xclip”或“xsel”或其他方式更巧妙地完成此操作。

使用通用键绑定来更改任何选定文本的大小写非常方便。

相关内容