Sistem Genişlemesinden Kaçış ve Kontrol için CapsLock'u Yeniden Yükleyin


18

CapsLock anahtar sistemini, CapsLock düğmesine tek başına basıldığında kaçış tuşu ve başka bir tuşa basıldığında kontrol anahtarı gibi davranacak şekilde yeniden eşleştirmek mümkün müdür?


5
Bu çok zor gibi görünüyor. Örneğin, hangi tuşa basıldığını bilmediğiniz için tuş aşağı olayları oluşturamadı. Başka bir tuşa basılmadan bırakılırsa, o zaman Escape idi, aksi takdirde Kontrol'dü.
cjm

Yanıtlar:


16

Xcape adında çok iyi bir çözüm buldum . README'den:

xcape bir arka plan programı olarak çalışır ve Control tuşunu keser. Kontrol tuşuna tek başına basılarak bırakılırsa, Escape tuşu olayı oluşturulur.

Caps Lock anahtarınızı Control olarak yeniden eşlediyseniz, bu daha mantıklıdır. Bu programın gelecekteki sürümleri bu eşlemeyi sizin için yapabilir, ancak şimdilik bu kendiniz yapmanız gereken bir şey.


Bunu yapmak için hileli
cam

6

Caps to Escape'i eşleştirdim, böylece Vim'de yazmak daha rahat olur. kullandımxmodmap ve içine koydum ~/.Xmodmap.

clear Lock
keycode 0x42 = Escape

Uygulamak için: xmodmap ~/.Xmodmap. Bunu ~ / .bash_profile (~ / .xinitrc içine koydum, çünkü bir oturum açma yöneticisi kullanmıyorum) gibi bir dosyaya koyabilirsiniz.

CapsLock + [başka bir Anahtar] eşlemek için kullanmayı düşünün xbindkeys.


4

Sistem genelinde anahtarları yeniden eşleştirmek için sadece Linux çözümü basit bir udev kuralı yazmaktır. X'e bağlı olmayacak, herhangi bir terminal veya uygulama üzerinde çalışacak ve iki dosyayı kopyalayarak son Linux yüklemeleri arasında taşınabilir.

2 dosya yazmanız gerekir: bir tanesi çekirdeğe anahtarları yeniden eşlemesini söyleyen udev kuralını, diğeri ise ihtiyacınız olan gerçek eşlemeleri içerir.

Bu yöntemi kullanarak tüm klavyemi yeniden eşledim, belki kod ilham olarak yararlıdır http://git.adirat.com/carpalx-keyboard


bağlantı koptu, lütfen güncelleyebilir misiniz? Teşekkürler!
qed

Güncelleme, gecikme için özür dilerim
Gimmesudo

Bitbucket "Bu depoya erişiminiz yok" diyor. Tekrar herkese açık yapabilir misiniz? Teşekkürler!
Tianyi Cui

@TianyiCui şimdi bağlantıyı kontrol edin
gimmesudo

1
Bağlantı öldü veya benim için engellendi. Cevabınıza gerçek dosyaları koyma şansınız var mı?
labirent


1

AskUbuntu'da iyi bir cevabı olan farklı bir şekilde ifade edilen bir soruya rastladım , ancak sistemlerim üzerinde çalışmak için biraz değiştirmek zorunda kaldım.

Louis ve Sergiy'in oradaki yorumları üzerine Ubuntu 16.04 (Xenial) üzerinde benim için çalışan bu çözümü buldum ve kullandığım diğer Linux sistemlerine de getireceğim.

Ben yüklü xcape ve benim içine aşağıdaki kod satırlarını koymak .profilebenim ev dizininde dosyası.

GÜNCEL YÖNTEM:

Çeşitli ekran yöneticileri (gdm / kdm / sddm / etc) garip bir şekilde davranıyor ve setxbmapaskıya alma / devam ettirme veya kilitleme / kilidini açtıktan sonra sıfırlama , seçenekleri devralacak ve don ' t Her zaman sıfırlayın. Çok fazla askıya aldığım ve devam ettiğim için, xcapeaşağıdaki yeni komut dosyasında çözülen çok sayıda kopya almadım .

Önce klavye yapılandırmasını değiştirin sudo gedit /etc/default/keyboardve ayarlayın XKBOPTIONS="ctrl:nocaps"ve ardından ~/.xprofileaşağıdaki tek satırı ekleyin .

ps aux | grep -i '[x]cape' && killall -9 xcape; hash xcape 2>&1 >/dev/null && xcape -e 'Control_L=Escape' -t 100 &

İnşallah betiğin çeşitli bölümleri size biraz zaman / sorundan tasarruf ve sıkışmış girişleri önlemek. İlk önce zaten çalışan bir örnek olup olmadığını kontrol eder ve onu öldürür, çünkü tek şey xcapeCtrl'yi Esc ile eşleştirmek olduğundan, bu güvenlidir, daha sonra hashbölüm, xcape aksi takdirde tüm başlangıç ​​nedeniyle giriş yapmaya çalıştığınızda sisteminizin askıya alınabilmesini sağlar. komut dosyalarının temiz bir şekilde çıkması bekleniyor.

Eski yol:

setxkbmap -option 'caps:ctrl_modifier'; xcape -e '#66=Escape'

Sergiy:

Ubuntu 14.04'te Sistem Ayarları'nda Klavye düzeni olmadığından Caps Lock'u Ctrl ile eşlemek için gnome-tweak-tool kullandım. Sonra xcape -e 'Control_L = Escape' işe yaramadı, ancak xcape -d kullandıktan sonra Caps Lock'un 66 anahtar kodunu ürettiğini ve sırasıyla yeniden eşlediğini keşfettim: xcape -e '# 66 = Escape'. - Sergiy Byelozyorov 4 '14 Eylül, 10:08

Louis:

Bu blog yazısına göre bunu sadece xcape ile yapmak mümkündür: setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape' setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Kaçış; Control_L = Kaçış; Control_R = Kaçış' - Louis Simoneau 4 Ağustos 15, 10:06

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.