Remapping Lock Lock (kaçınılmaz şekilde değil) kontrol ve kaçış için


27

Caps lock tuşunu yeniden eşleştirmek için xmodmap'in nasıl kullanılacağını biliyorum, böylece bir Control tuşu veya Escape tuşu olarak işlev görür. Her iki özelliği de aşağıdaki şekilde birleştirmek istiyorum:

Bastığımda, ardından Caps lock tuşunu bırakın, Escape mesajı gönderir. Caps Lock tuşunu basılı tuttuğumda ve başka bir tuşa bastığımda (A diyelim), Control-A'yı gönderir.

Bir tür xkb, xmodmap ve Caps Lock'un X'te bu şekilde davranmasını sağlayabilecek başka bir şey var mı?

Macbook Air 3,1'de Ubuntu Precise kullanıyorum.

Yanıtlar:


-2

İlk (eşleme yapabilir Caps Locketmek Esc), ancak ikinci yapamaz.

Basit Açıklama: Caps Lock sadece basıldığında bir şey yapmak için tasarlanmamıştır.

Ayrıntılı Açıklama: Pek çok anahtar türü vardır. Bunlardan ikisi Modifier Keys ve Lock Keys .

Caps LockBir olan Kilit Anahtarı gibi tuşları ise Ctrl, Altve Shiftvardır Değiştirici Tuşlar .

Değiştirici Tuşların , basılan sonraki tuşların işlevini değiştirdiği ve Kilit Tuşların belirli bir işlevi açmak veya kapatmak için bir geçiş anahtarı olarak işlev gördüğü , adlarından anlaşılır .

Şimdi, Caps Lock bir Kilit Anahtarı olduğundan , bir ile eşleştirmeden Değiştirici Anahtar gibi davranmasını sağlayamazsınız . Caps Locktek başına bir Değiştirici Anahtar olarak işlev göremez .


X'in istediğimi yapmak için tasarlanmadığını onayladığınız için teşekkür ederiz. Eğer bir X guru çalışması için bir şeyleri kesmek istiyorsa, lütfen benimle iletişime geçin.
user372737

4
Aşağıdaki kabul edilmeyen cevap olarak, kesinlikle ikinci kısmı xcape veya Ev-Modifier gibi çok sayıda yardımcı programla yapabilirsiniz.
Sparhawk

34

Mac'imde bu kurulum var ve Ubuntu'ya şanssız bir yol bulmaya çalıştım.

Şimdi çalışıyor. Beni duyumunu için teşekkürler tungd xcape . Yaptıklarım gerçekten basit ve anlaşılır.

  1. Sistem Tercihleri> Klavye Düzeni> Seçenekler ...> Ctrl tuşu konumu altında, 'Büyük Harfleri Ctrl Olarak Kilitle' seçeneğini işaretledim.

  2. xcape -e 'Control_L = Kaçış'

Bitti, Caps Lock bir değiştirici gibi kullanıldığında Ctrl ve yalnızca basıldığında Esc olarak çalışır (xcape README dosyasında belirtildiği gibi birkaç yüz milisaniyelik hafif bir gecikme vardır, bu nedenle hala kullanılan Mac çözümü kadar uygun değildir. KeyRemap4MacBook.)


4
Kullandığım gnome-tweak-toolharitaya Caps Lockiçin Ctrlhiçbir olmadığı için Keyboard layoutde System SettingsUbuntu 14.04 üzerinde. Sonra xcape -e 'Control_L=Escape'işi değildir, ama kullandıktan sonra xcape -dbunu keşfettim Caps Lockanahtar kodu 66 üretir ve sırasıyla onu yeniden eşlenir: xcape -e '#66=Escape'.
Sergiy Belozorov

3
Gereğince bu blog yayınında , tek başına xcape ile bunu yapmak mümkündür: setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock=Escape' setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape'
Louis Simoneau

Bu gerçekten kabul edilmiş bir cevap olmalıydı @ user372737
Assaf Lavie

@LouisSimoneau bunu bin kere bu.
Spencer Boucher

1
Gecikme probleminde herhangi bir gelişme var mı?
Toothrot

6

Ben de bunu arıyorum. Bir hafta önce kendimi kullanarak kısmi bir çözüm buldum xmodmap:

add Control = Caps_Lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape

Elbette bu kusursuz çalışmıyor, aynı zamanda CapsLock'a bastığımda hem Escape hem de Ctrl'yi etkili bir şekilde gönderiyor, ancak bir süre onunla mutluydum.

Sonunda bu küçük yardımcı programı buldum https://github.com/alols/xcape . Şimdi CapsLock'u Ctrl'ye yeniden eşleştirip xcape'in işini yapmasına izin verebilirim.


Diğer bir seçenek de Evde Değiştirici. Aktif gelişim içinde değildir ve kökte yükleyerek xcape'den biraz farklıdır. Ancak, xorg.conf aracını tetikler ve böylece aynı anda diğer klavyeleri kullanırken yalnızca belirli klavyelerde de hareket edebilir.
Sparhawk

4

EDIT: En akıllı (daha yeni) ekran yöneticileri için bu düzeltildi.

Louis ve Sergiy'in yorumları, benim için Ubuntu 16.04'te (Xenial) LightDM ve Unity ile çalışan bu çözümü buldum.

Aşağıdaki kod satırını .xprofileev dizinindeki dosyama koydum.

setxkbmap -option 'caps:ctrl_modifier' && xcape -e 'Caps_Lock=Escape' &

İzler ve oturumunu engellememesi için xcape komutunu arka plana koyar. Setxkbmap hemen değişikliğini yapar.

Sergiy:

Ubuntu 14.04'teki Sistem Ayarlarında Klavye düzeni olmadığı için Caps Lock'u Ctrl'ye eşlemek için gnome-tweak-tool kullandım. Sonra xcape -e 'Control_L = Escape' çalışmadı, ancak xcape -d'yi kullandıktan sonra Caps Lock'un 66 numaralı tuş kodunu ürettiğini ve yeniden gönderdiğini keşfettim: xcape -e '# 66 = Escape'. - Sergiy Byelozyorov 4 '14, 10:08

Louis:

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


3

kurmak xcape

sudo apt-get install xcape

İçine iki satır ekleyin. ~/.bashrc

/usr/bin/setxkbmap -option 'caps:ctrl_modifier'⏎
/usr/bin/xcape -e 'Caps_Lock=Escape' -t 100

Parçayı dikkat edin, -t 100ayarlamazsanız, vim kullanıyorsanız Esc'de bir gecikme olduğunu fark edebilirsiniz.


sudo apt-get install xcape(yazım hatası)
David,

1

Esc’in Caps’leri Caps'lara çevirme özelliğini kapatmanın bir yolu var mı, ben hiç Caps almamayı ve eski ve yeni Esc’in kaçış olarak davranmasını tercih ederim.
dragon788


Teşekkürler, bunu otomatik olarak nokta dosyalarımda derlemek için bir bağlantı eklemek zorunda kalacağım. Ayrıca, Ubuntu 16.04'teki gibi README.md dosyasını derlemek için libudev-dev ve libevdev-dev gerekliydi.
dragon788

@ dragon788, Arch'a geliyor (Antergos'u bile deneyebilirsiniz). Ubuntu yıllarından geri taşındım ve asla geri dönmeyeceğim, bu daha iyi.
pepper_chico
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.