クリップボードパッチをインストールし、マイコンピュータにconfig.h
#define MODKEY Mod1Mask
#define TERMMOD (Mod1Mask|ShiftMask)
そして
{ ShiftMask, XK_Insert, clippaste, {.i = 0} },
{ TERMMOD, XK_c, clipcopy, {.i = 0} },
{ TERMMOD, XK_v, clippaste, {.i = 0} },
{ MODKEY, XK_p, selpaste, {.i = 0} },
興味深いことにShift+Insert
、マウスの中央ボタンをクリックするとクリップボードから貼り付けることができますが、上記とTERMMOD
組み合わせを使用するとMODKEY
そうではありません。 (たとえば、ズーム、スクリーン印刷、スクロールなど)を使用するTERMMOD
他のショートカットも機能します。MODKEY
別の組み合わせを試してみCtrl+Shift+c/v
ましたが、楽しかったです。同じ組み合わせがxterm、urxvt、alacrittyで動作します(他のエミュレータを徹底的にテストしていません)。
誰でもこれを説明できますか?
ベストアンサー1
内部にst
ソースの主キーバインディング、バインディングが使用されますXK_V
(大文字の使用に注意してください)。
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
{ TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
XK_v
小文字を元の大文字と小文字に変更してみてください(新しい値を維持しながらTERMMOD
)。
説明する
XK_v
XK_V
X11インクルードファイルでは0x76と0x56と定義されていますkeysymdef.h
。彼らは別のキーと見なされます。テストには次のxev
ツールを使用できます。
いいえShift:
KeyRelease event, serial 47, synthetic NO, window 0x4c00001,
root 0x4cf, subw 0x0, time 433723403, (134,121), root:(1235,171),
state 0x0, keycode 55 (keysym 0x76, v), same_screen YES,
XLookupString gives 1 bytes: (76) "v"
XmbLookupString gives 1 bytes: (76) "v"
XFilterEvent returns: False
押すとShift同じkeycode
結果が表示されますkeysym
。
KeyPress event, serial 47, synthetic NO, window 0x4c00001,
root 0x4cf, subw 0x0, time 433724571, (134,121), root:(1235,171),
state 0x1, keycode 55 (keysym 0x56, V), same_screen YES,
XLookupString gives 1 bytes: (56) "V"
XmbLookupString gives 1 bytes: (56) "V"
XFilterEvent returns: False
、 と を合わせるXK_v
と、押したときに小文字が出るときに貼り付けたいという意味です。ただし、押し続けると、Xサーバーは大文字キーを送信します。それは私たちが望むものではないので、何もしません。TERMMOD
TERMMOD
ShiftMask
st
vShiftShiftVst