use*_*453 26 keyboard-layout xkb
我想复制一个键盘布局/usr/share/X11/xkb/symbols/
并更改它,然后从中生成一个新布局。
如何添加新的键盘布局(例如命名为“mylayout”)?
更新 #1:
我更改文件以添加新布局:
/usr/share/X11/xkb/symbols/irwinxp
(最初与 相同ir
):
// Iranian keyboard layout
////////////////////////////////////////
// Persian layout,
// based on
// Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards
// ISIRI 9147 – 1st Edition
// Institute of Standards and Industrial Research of Iran
// http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147
// http://behnam.esfahbod.info/standards/isiri-keyboard-9147.pdf
//
// Author: Behnam Esfahbod <behnam@esfahbod.info>
//
default partial alphanumeric_keys
xkb_symbols "pes" {
name[Group1]= "Persian";
include "ir(pes_part_basic)"
include "ir(pes_part_ext)"
include "nbsp(zwnj2nb3nnb4)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "pes_keypad" {
name[Group1]= "Persian (with Persian Keypad)";
include "ir(pes_part_basic)"
include "ir(pes_part_keypad)"
include "nbsp(zwnj2nb3nnb4)"
include "level3(ralt_switch)"
};
partial hidden alphanumeric_keys
xkb_symbols "pes_part_basic" {
// Persian digits
key <AE01> { [ Farsi_1, exclam, grave ] };
key <AE02> { [ Farsi_2, 0x100066c, at ] };
key <AE03> { [ Farsi_3, 0x100066b, numbersign ] };
key <AE04> { [ Farsi_4, 0x100fdfc, dollar ] };
key <AE05> { [ Farsi_5, 0x100066a, percent ] };
key <AE06> { [ Farsi_6, multiply, asciicircum ] };
key <AE07> { [ Farsi_7, Arabic_comma, ampersand ] };
key <AE08> { [ Farsi_8, asterisk, enfilledcircbullet ] };
key <AE09> { [ Farsi_9, parenright, 0x100200e ] };
key <AE10> { [ Farsi_0, parenleft, 0x100200f ] };
// Persian letters and symbols
key <AD01> { [ Arabic_dad, Arabic_fathatan, degree ] }; // 2: Arabic_sukun
key <AD02> { [ Arabic_sad, Arabic_dammatan, VoidSymbol ] }; // 2: Arabic_dammatan
key <AD03> { [ Arabic_theh, Arabic_kasratan, 0x13a4 ] }; // 2: Arabic_kasratan
key <AD04> { [ Arabic_qaf, Arabic_fathatan, VoidSymbol ] };
key <AD05> { [ Arabic_feh, Arabic_comma, VoidSymbol ] }; // 2: Arabic_damma
key <AD06> { [ Arabic_ghain, Arabic_semicolon, VoidSymbol ] }; // 2: Arabic_kasra
key <AD07> { [ Arabic_ain, Arabic_fatha, VoidSymbol ] };
key <AD08> { [ Arabic_heh, Arabic_hamza_above, 0x100202d ] }; // 2: Arabic_shadda
key <AD09> { [ Arabic_khah, bracketright, 0x100202e ] };
key <AD10> { [ Arabic_hah, bracketleft, 0x100202c ] };
key <AD11> { [ Arabic_jeem, braceright, 0x100202a ] };
key <AD12> { [ Arabic_tcheh, braceleft, 0x100202b ] };
key <AC01> { [ Arabic_sheen, Arabic_fatha, VoidSymbol ] }; // 2: Arabic_hamzaonwaw
key <AC02> { [ Arabic_seen, Arabic_damma, VoidSymbol ] }; // 2: Arabic_hamzaonyeh
key <AC03> { [ Farsi_yeh, Arabic_kasra, Arabic_alefmaksura ] }; // 2: Arabic_yeh
key <AC04> { [ Arabic_beh, Arabic_shadda, VoidSymbol ] }; // 1: Arabic_hamzaunderalef
key <AC05> { [ Arabic_lam, 0x10006c0, VoidSymbol ] };// 2: Arabic_hamzaonalef
key <AC06> { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] };
key <AC07> { [ Arabic_teh, Arabic_tehmarbuta, VoidSymbol ] };
key <AC08> { [ Arabic_noon, guillemotright, 0x100fd3e ] };
key <AC09> { [ Arabic_meem, guillemotleft, 0x100fd3f ] };
key <AC10> { [ Arabic_keheh, colon, semicolon ] };
key <AC11> { [ Arabic_gaf, quotedbl, quotedbl ] }; // 2: Arabic_semicolon
key <AB01> { [ Arabic_zah, Arabic_kaf, VoidSymbol ] };
key <AB02> { [ Arabic_tah, 0x1000653, VoidSymbol ] };
key <AB03> { [ Arabic_zain, Arabic_jeh, VoidSymbol ] };
key <AB04> { [ Arabic_ra, Arabic_hamzaonwaw ,0x1000656 ] }; // 2: Arabic_superscript_alef ?
key <AB05> { [ Arabic_thal, 0x100200c, 0x100200d ] };
key <AB06> { [ Arabic_dal, Arabic_hamza_above, Arabic_hamza_below ] };
key <AB07> { [ Arabic_hamzaonyeh, Arabic_hamza, ellipsis ] }; // 1: Arabic_peh
key <AB08> { [ Arabic_waw, greater, comma ] };
key <AB09> { [ period, less, apostrophe ] };
key <AB10> { [ slash, Arabic_question_mark, question ] };
key <TLDE> { [ 0x100200d, division, asciitilde ] };
key <AE11> { [ minus, Arabic_tatweel, underscore ] };
key <AE12> { [ equal, plus, 0x1002212 ] };
key <BKSL> { [ Arabic_peh, bar, 0x1002010 ] }; // 1: backslash
};
partial hidden alphanumeric_keys
xkb_symbols "pes_part_ext" {
// Persian and ASCII digits
key <AE01> { [ 0x10006f1, exclam, grave, 1 ] };
key <AE02> { [ 0x10006f2, 0x100066c, at, 2 ] };
key <AE03> { [ 0x10006f3, 0x100066b, numbersign, 3 ] };
key <AE04> { [ 0x10006f4, 0x100fdfc, dollar, 4 ] };
key <AE05> { [ 0x10006f5, 0x100066a, percent, 5 ] };
key <AE06> { [ 0x10006f6, multiply, asciicircum, 6 ] };
key <AE07> { [ 0x10006f7, Arabic_comma, ampersand, 7 ] };
key <AE08> { [ 0x10006f8, asterisk, enfilledcircbullet, 8 ] };
key <AE09> { [ 0x10006f9, parenright, 0x100200e, 9 ] };
key <AE10> { [ 0x10006f0, parenleft, 0x100200f, 0 ] };
};
partial hidden alphanumeric_keys
xkb_symbols "pes_part_keypad" {
// Persian digits and Mathematical operators
key <KPDV> { [ division, XF86_Ungrab ] };
key <KPMU> { [ multiply, XF86_ClearGrab ] };
key <KPSU> { [ 0x1002212, XF86_Prev_VMode ] };
key <KPAD> { [ plus, XF86_Next_VMode ] };
key <KPEN> { [ KP_Enter ] };
key <KPEQ> { [ equal ] };
key <KP7> { [ KP_Home, 0x10006f7 ] };
key <KP8> { [ KP_Up, 0x10006f8 ] };
key <KP9> { [ KP_Prior, 0x10006f9 ] };
key <KP4> { [ KP_Left, 0x10006f4 ] };
key <KP5> { [ KP_Begin, 0x10006f5 ] };
key <KP6> { [ KP_Right, 0x10006f6 ] };
key <KP1> { [ KP_End, 0x10006f1 ] };
key <KP2> { [ KP_Down, 0x10006f2 ] };
key <KP3> { [ KP_Next, 0x10006f3 ] };
key <KP0> { [ KP_Insert, 0x10006f0 ] };
key <KPDL> { [ KP_Delete, 0x100066b ] };
};
////////////////////////////////////////
// Kurdish Layout
partial alphanumeric_keys
xkb_symbols "ku" {
include "tr(ku)"
name[Group1]= "Kurdish (Iran, Latin Q)";
};
partial alphanumeric_keys
xkb_symbols "ku_f" {
include "tr(ku_f)"
name[Group1]= "Kurdish (Iran, F)";
};
partial alphanumeric_keys
xkb_symbols "ku_alt" {
include "tr(ku_alt)"
name[Group1]= "Kurdish (Iran, Latin Alt-Q)";
};
////////////////////////////////////////
// Kurdish Soranî Bahdînî (Arabic) keyboard layout,
// based on the Kurdî Soranî Bahdînî keyboard from KurdITGroup
// which is based on National Iranian Keyboard Standard (ISIRI 2901:1994),
// with additions.
//
// Copyright (C) 2006 Erdal Ronahî, published under the GPL v2
//
// Special copyright note: author explicitly permitted to license this
// layout under MIT/X11 license, for details see
// https://bugs.freedesktop.org/show_bug.cgi?id=9541
//
// Author: Erdal Ronahî <erdal.ronahi@gmail.com>
//
// Kurdish Arabic-Latin Layout for Soranî
partial alphanumeric_keys
xkb_symbols "ku_ara" {
name[Group1]= "Kurdish (Iran, Arabic-Latin)";
// Other 3-Level symbols
key <TLDE> { [ 0x100200d, division, asciitilde ] };
key <BKSL> { [ backslash, bar, ccedilla, Ccedilla ] };
// Digits
key <AE01> { [ 1, exclam, 0x10006f1, grave ] };
key <AE02> { [ 2, at, 0x10006f2, at ] };
key <AE03> { [ 3, numbersign, 0x10006f3, 0x100066b ] };
key <AE04> { [ 4, dollar, 0x10006f4, 0x100fdfc ] };
key <AE05> { [ 5, percent, 0x10006f5, 0x100066a ] };
key <AE06> { [ 6, asciicircum, 0x10006f6, multiply ] };
key <AE07> { [ 7, ampersand, 0x10006f7, Arabic_comma ] };
key <AE08> { [ 8, asterisk, 0x10006f8, enfilledcircbullet ] };
key <AE09> { [ 9, parenright, 0x10006f9, 0x100200e ] };
key <AE10> { [ 0, parenleft, 0x10006f0, 0x100200f ] };
key <AE11> { [ minus, Arabic_tatweel, underscore ] };
key <AE12> { [ equal, plus, 0x1002212 ] };
key <AD01> { [ Arabic_qaf, X, q, Q ] };
key <AD02> { [ Arabic_waw, X, w, W ] };
key <AD03> { [ 0x10006d5, Arabic_heh, e, E ] };
key <AD04> { [ Arabic_ra , 0x1000695, r, R ] };
key <AD05> { [ Arabic_teh, Arabic_tah, t, T ] };
key <AD06> { [ 0x10006cc, 0x10006ce, y, Y ] };
key <AD07> { [ Arabic_hamzaonyeh, Arabic_hamza, u, U ] };
key <AD08> { [ Arabic_hah, Arabic_ain, i, I ] };
key <AD09> { [ 0x10006c6, Arabic_hamzaonwaw, o, O ] };
key <AD10> { [ 0x100067e, Arabic_theh, p, P ] };
key <AD11> { [ bracketright, braceright, ucircumflex, Ucircumflex ] };
key <AD12> { [ bracketleft, braceleft, scedilla, Scedilla ] };
key <AC01> { [ Arabic_alef, Arabic_maddaonalef, a, A ] };
key <AC02> { [ Arabic_seen, Arabic_sheen, s, S ] };
key <AC03> { [ Arabic_dal, Arabic_thal, d, D ] };
key <AC04> { [ Arabic_feh, Arabic_hamzaunderalef, f, F ] };
key <AC05> { [ 0x10006af, Arabic_ghain, g, G ] };
key <AC06> { [ Arabic_heh, 0x100200c, h, H ] };
key <AC07> { [ 0x1000698, Arabic_hamzaonalef, j, J ] };
key <AC08> { [ 0x10006a9, Arabic_kaf, k, K ] };
key <AC09> { [ Arabic_lam, 0x10006b5, l, L ] };
key <AC10> { [ Arabic_semicolon, colon, ecircumflex, Ecircumflex ] };
key <AC11> { [ apostrophe, quotedbl, icircumflex, Icircumflex ] };
key <AB01> { [ Arabic_zain, Arabic_dad, z, Z ] };
key <AB02> { [ Arabic_khah, Arabic_sad, x, X ] };
key <AB03> { [ Arabic_jeem, 0x1000686, c, C ] };
key <AB04> { [ 0x10006a4, Arabic_zah, v, V ] };
key <AB05> { [ Arabic_beh, 0x1000649, b, B ] };
key <AB06> { [ Arabic_noon, Arabic_tehmarbuta, n, N ] };
key <AB07> { [ Arabic_meem, Arabic_tatweel, m, M ] };
key <AB08> { [ Arabic_comma, greater, comma ] };
key <AB09> { [ period, less, apostrophe ] };
key <AB10> { [ slash, Arabic_question_mark, question ] };
include "nbsp(zwnj2nb3)"
include "level3(ralt_switch)"
};
// EXTRAS:
/////////////////////////////////////////////////////////////////////////////////
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com/p/keyboardlayouteditor
//
// Version 0.2, fixed AD09.
//
// Layout by Ernst Tremel, http://ubuntuforums.org/showpost.php?p=9365469&postcount=32
// Creation of this file by Simos Xenitellis.
partial alphanumeric_keys
xkb_symbols "ave"
{
name[Group1] = "Avestan";
key <AB01> { [ U10B30, U10B32 ] }; //
key <AB02> { [ U10B11, U10B12 ] }; //
key <AB03> { [ U10B17, UE102 ] }; // ?
key <AB04> { [ U10B2C, U10B13 ] }; //
key <AB05> { [ U10B20, U10B21 ] }; //
key <AB06> { [ U10B25, U10B27 ] }; //
key <AB07> { [ U10B28, U10B29 ] }; //
key <AB08> { [ U10B3C, U10B39 ] }; //
key <AB09> { [ U10B3E, U10B3D ] }; //
key <AB10> { [ U10B3F, periodcentered ] }; // ·
key <AC01> { [ U10B00, U10B01 ] }; //
key <AC02> { [ U10B2F, U10B31 ] }; //
key <AC03> { [ U10B1B, U10B1C ] }; //
key <AC04> { [ U10B1F, U10B16 ] }; //
key <AC05> { [ U10B14, U10B15 ] }; //
key <AC06> { [ U10B35, UE100 ] }; // ?
key <AC07> { [ U10B18, U10B24 ] }; //
key <AC08> { [ U10B10, UE101 ] }; // ?
key <AC09> { [ U10B2E, UE103 ] }; // ?
key <AC10> { [ U10B3B, U10B3A ] }; //
key <AC11> { [ U10B1D ] }; //
key <AD01> { [ U10B22, U10B23 ] }; //
key <AD02> { [ U10B33, U10B34 ] }; //
key <AD03> { [ U10B08, U10B09 ] }; //
key <AD04> { [ U10B2D, U10B26 ] }; //
key <AD05> { [ U10B19, U10B1A ] }; //
key <AD06> { [ U10B2B, U10B2A ] }; //
key <AD07> { [ U10B0E, U10B0F ] }; //
key <AD08> { [ U10B0C, U10B0D ] }; //
key <AD09> { [ U10B0A, U10B0B ] }; //
key <AD10> { [ U10B1E ] }; //
key <AD11> { [ U10B06, U10B07 ] }; //
key <AD12> { [ U10B02, U10B03 ] }; //
key <AE01> { [ U10B78 ] }; //
key <AE02> { [ U10B79 ] }; //
key <AE03> { [ U10B7A ] }; //
key <AE04> { [ U10B7B ] }; //
key <AE05> { [ U10B7C ] }; //
key <AE06> { [ U10B7D ] }; //
key <AE07> { [ U10B7E ] }; //
key <AE08> { [ U10B7F ] }; //
key <BKSL> { [ U10B04, U10B05 ] }; //
key <LSGT> { [ U10B04, U10B05 ] }; //
};
Run Code Online (Sandbox Code Playgroud)/usr/share/X11/xkb/rules/evdev.xml
包含所有修改的部分:
...
<layout>
<configItem>
<name>ir</name>
<shortDescription>fa</shortDescription>
<description>Persian</description>
<languageList>
<iso639Id>per</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>pes_keypad</name>
<description>Persian (with Persian Keypad)</description>
</configItem>
</variant>
<variant>
<configItem>
<name>ku</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, Latin Q)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>ku_f</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, F)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>ku_alt</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, Latin Alt-Q)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>ku_ara</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, Arabic-Latin)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
</variantList>
</layout>
<layout>
<configItem>
<name>irwinxp</name>
<shortDescription>fa</shortDescription>
<description>Persian-WinXP</description>
<languageList>
<iso639Id>per</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>pes_keypad</name>
<description>Persian (with Persian Keypad)</description>
</configItem>
</variant>
<variant>
<configItem>
<name>ku</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, Latin Q)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>ku_f</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, F)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>ku_alt</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, Latin Alt-Q)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>ku_ara</name>
<shortDescription>ku</shortDescription>
<description>Kurdish (Iran, Arabic-Latin)</description>
<languageList>
<iso639Id>kur</iso639Id>
</languageList>
</configItem>
</variant>
</variantList>
</layout>
<layout>
<configItem>
<name>iq</name>
...
Run Code Online (Sandbox Code Playgroud)但是现在,随着这些变化,新的Persian-WinXP
布局不服从irwinxp
并且irwinxp
被忽略。而是ir
控制Persian-WinXP
.
更新#2:
Unity 对我的新布局有问题。新的布局图标是黑色的。但它运作良好。
注意:我使用 Ubuntu 14.04。
use*_*.dz 37
例如,我希望添加一个新的修改后的英语(国际 AltGr 死键)美国布局,其中交换了r
, R
& t
, T
。我将其命名为XY swapped:RT English (international AltGr dead keys)。
创建新的符号文件:
sudo nano /usr/share/X11/xkb/symbols/xy
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "XY swapped:RT English (international AltGr dead keys)";
include "us(altgr-intl)"
// my custom changes:
key <AD04> { [ t, T, ediaeresis, Ediaeresis ] };
key <AD05> { [ r, R, thorn, THORN ] };
include "level3(ralt_switch)"
};
Run Code Online (Sandbox Code Playgroud)
include "us(altgr-intl)"
意味着它继承了该布局中的所有键,仅在此处覆盖了键。
您可以使用键盘布局编辑器,这是一个帮助创建或编辑 XKB 键盘布局的 GUI 程序。感谢@Glutanimate
将新的布局声明添加到/usr/share/X11/xkb/rules/evdev.xml
(复制和修改us
布局部分)
sudo gedit /usr/share/X11/xkb/rules/evdev.xml
...
<layout>
<configItem>
<name>xy</name>
<shortDescription>en</shortDescription>
<description>XY swapped:RT English (international AltGr dead keys)</description>
<languageList>
<iso639Id>eng</iso639Id>
<iso639Id>fra</iso639Id>
<iso639Id>ger</iso639Id>
</languageList>
</configItem>
<variantList>
</variantList>
</layout>
...
Run Code Online (Sandbox Code Playgroud)
删除 xkb 缓存。
sudo rm /var/lib/xkb/*.xkm
Run Code Online (Sandbox Code Playgroud)
笔记:
要加载对布局菜单的更改,只需重新启动 gnome-keyboard-preferences;不需要重新启动窗口管理器。
Ubuntu 13.10 版中有一个更改,导致键盘设置缓存在“/usr/share/X11/xkb/symbols”中的文件被修改后不会刷新。看起来更改只是没有得到应用。要强制刷新缓存,应从“/var/lib/xkb”中删除 *.xkm 文件。
参考: Howto:自定义键盘布局定义
或者
sudo dpkg-reconfigure xkb-data
Run Code Online (Sandbox Code Playgroud)
(更新 #1 错误的父布局)您已经修改xkb_symbols "pes_part_basic"
了irwinxp
文件中的内容:没关系。
但xkb_symbols "pes"
在irwinxp
文件中仍然:
include "ir(pes_part_basic)"
Run Code Online (Sandbox Code Playgroud)
应该是:
include "irwinxp(pes_part_basic)"
Run Code Online (Sandbox Code Playgroud)
(更新 #2 自定义图标)如果<shortDescription>en</shortDescription>
更改为<shortDescription>xy</shortDescription>
. 因此,新布局将En
与Xy
.
中很可能没有它的图标ubuntu-mono
。然后该指标将动态生成可能不遵循当前主题的新指标。
复制深色/浅色单声道主题的任何布局图标:
sudo cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-keyboard-En.svg /usr/share/icons/ubuntu-mono-dark/status/22/indicator-keyboard-Xy.svg
sudo cp /usr/share/icons/ubuntu-mono-light/status/22/indicator-keyboard-En.svg /usr/share/icons/ubuntu-mono-light/status/22/indicator-keyboard-Xy.svg
Run Code Online (Sandbox Code Playgroud)
SVG 文件只是 XML。然后打开以进行编辑并将文本值从 更改En
为Xy
:
sudo nano /usr/share/icons/ubuntu-mono-dark/status/22/indicator-keyboard-Xy.svg
sudo nano /usr/share/icons/ubuntu-mono-light/status/22/indicator-keyboard-Xy.svg
Run Code Online (Sandbox Code Playgroud)
例子:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="22" xmlns="http://www.w3.org/2000/svg" version="1.1" height="22">
<defs>
<mask id="m">
<rect y="0" x="0" style="fill:#fff" height="22" width="22"/>
<text y="15.5" x="5" style="font-size:12;font-family:Ubuntu;font-weight:500;fill:black">Xy</text>
</mask>
</defs>
<rect style="fill:#dfdbd2" mask="url(#m)" rx="2" height="20" width="20" y="1" x="1"/>
</svg>
Run Code Online (Sandbox Code Playgroud)
更新主题缓存:
sudo update-icon-caches /usr/share/icons/ubuntu-mono-*/
Run Code Online (Sandbox Code Playgroud)
注销/登录
多年来我一直在使用上述答案的变体,但随着 Ubuntu 的新版本,情况开始出现问题,可能是由于切换到 Wayland,所以我寻找另一种方法。
它似乎引入了一种更方便、更干净的指定键盘布局自定义的方式(因为它全部在用户空间中)。这已经在 GNOME/Wayland 下的 22.04 LTS 和 21.10 上进行了测试;它在 X.org 下不起作用。
下面是一个将 PrtSc(“打印屏幕”)键重新映射为“菜单”键的示例。我发现这在我的 ThinkPad 键盘上很有用,因为它用这个不太有用的(恕我直言)前一个键代替了后者。
mkdir -p ~/.config/xkb/{symbols,rules}
cd ~/.config/xkb
cat > rules/evdev << EOF
! option = symbols
custom:prtscmenu = +custom(prtscmenu)
! include %S/evdev
EOF
cat > symbols/custom << EOF
partial modifier_keys
xkb_symbols "prtscmenu" {
key <PRSC> { [ Menu ] };
};
EOF
Run Code Online (Sandbox Code Playgroud)
在上面,我们在主目录的目录中创建了几个名为rules/evdev
和的文件。注意:无需或修改任何系统文件。symbols/custom
.config/xkb
sudo
在这些文件中,我们定义了一个自定义选项,我们称之为prtscmenu
(您可以使用您喜欢的选项,只需替换所有出现的字符串),最后我们使用“熟悉的”XKB 语法来覆盖<PRSC>
(根据需要按“打印屏幕”)键。语法与接受的答案中使用的语法相同。
最后,为了应用此选项(或禁用它),无论加载哪个键盘,只需运行:
# apply custom layout:
gsettings set org.gnome.desktop.input-sources xkb-options "['custom:prtscmenu']"
# disable custom layout:
gsettings set org.gnome.desktop.input-sources xkb-options "[]"
Run Code Online (Sandbox Code Playgroud)
这些可以轻松设置为别名,使事情变得更加容易。
还有几点:
xkb-option
上面的 GSettings 接受一个数组)prtscmenu
在每个布局上应用相同的自定义。来源和来源:https://who-t.blogspot.com/2020/02/user-specific-xkb-configuration-part-1.html
归档时间: |
|
查看次数: |
23561 次 |
最近记录: |