Caps Lock ve Esc kalıcı olarak nasıl değiştirilir


116

Saucy'daki Caps Lockve Esctuş fonksiyonlarını kalıcı olarak nasıl değiştirebilirim ? Geçici olarak yapmak için bu komutu kullanabilirim (yeniden başlatılıncaya kadar):

/usr/bin/setxkbmap -option "caps:swapescape"

Bu komutu bir Başlangıç ​​Uygulaması olarak eklemeyi denedim, ancak hiçbir şey yapmıyor gibi görünüyor.


1
Bu komutu benim ~/.bashrcsistemime koydum, böylece sistem yeniden başlatmaları arasında devam ediyor. ( ctrl:nocapsbenim için olsa da tmux)
opyate

2
@opyate Bu komutu ~ / .profile komutuna koyardım, böylece etkileşimli bir girişten sonra sadece bir kez çalışacaktır.
suzanshakya

Yanıtlar:


126

Bunu yapmanın başka bir yolu da dconf-editor. Bu yöntemin birkaç ekstra adımı vardır gnome-tweak-toolancak bağımlılıkları tweak aracından çekmek istemiyorsanız kullanışlıdır.

Bu, caps:swapescapesözdizimini kullanmanıza ve değişikliği otomatik olarak kalıcı hale getirmenize olanak sağlar .

sudo apt-get install dconf-tools

Başladıktan sonra dconf-editor, org >> gnome >> desktop >> giriş kaynaklarına gidin

İhtiyacınız olan seçenekleri ekleyin xkb-options. Seçenek dizeleri tek tırnak işaretleri içine alınır ve virgüllerle ayrılır. Uçlardaki braketleri silmemeye dikkat edin.

dconf-editor'da xkb-options

Sistem Ayarları >> Metin Girişi'nde artık bulunmayan geleneksel xkb seçeneklerinin çoğuna girmek için bu yöntemi kullanabilirsiniz . Bunun istisnası, şu anda bir hata nedeniyle çalışmayan klavye düzenini değiştirme ayarlarıdır.

Seçeneklerin ve söz diziminin bir listesi man 7 xkeyboard-configiçin terminalde kullanın .

Kullanılabilecek diğer bir yaygın seçenektir terminate:ctrl_alt_bkspizin ctrl+ alt+ backspaceX oturumunu sona erdirmek için.


5
Referans için + keyboard-config(7)1, aradığım şey buydu.
ulidtko

61
Bunu ayrıca dconf-editor'ü kurmadan komut satırından da yapabilirsiniz:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport

4
Kullanıcıya özel ayar yapıldığı için 'sudo' komutunu kullanarak yukarıdaki komutu çalıştırmayın.
Bohr

11
Kullanmak gerektiğini unutmayın 'caps:swapescape'eğer gerekiyorsa takas (yerine sadece atama iki anahtar Esciçin Caps Lock).
thameera

1
ya da yapabilirsinizgsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic

50

Çoğu Linux dağıtımı için çalışması gereken bir çözüm:

setxkbmap -option caps:swapescape

Diğer seçenekler mümkündür:

  • caps:none devre dışı bırakmak
  • caps:escape ek bir kaçış yapmak
  • caps:super ek bir süper (pencere) tuşu yapmak için.

Bu işlemi başlangıçta yapmak için ~/.profile, yalnızca etkileşimli oturum açtıktan sonra çalışacağı için eklemeniz gerekir.


1
Bu Ubuntu 14.04, Unity'de çalışır.
Chad

2
Benim için de Ubuntu 16.04'te çalıştı
Jesse Chan

4
setxkbmap~/.xsessionrc~/.profile
18.04'ten itibaren

2
@ Conrad.Dean 18.04 LTS'ye dayanan Mint 19'da kullanıyorum: Burada sorun yok. Ayarların devam etmesi gerekmemekle birlikte giriş sırasında yüklenir.
jojo

~/.profileBunu koymak için kötü bir yer - bu dosya her oturum açma kabuğunda okunur. X11'i başlatırken, ~/.xinitrcveya gibi bir dosyaya yerleştirin ~/.xsession.
sarnold

39

Tamam, bunu gnome-tweak-tool kullanarak yapmanın bir yolunu buldum.

Bir terminalden koş

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool

"Yazma -> Büyük Harf Kilitleme tuşu davranışı" nda Büyük Harf Kilidini ve Esc'yi değiştirme seçeneğini bulabilirsiniz.


5
Ubuntu 14'de pencerenin düzeni çok karışık, ama yine de çalışıyor.
uvasal

1
Evet, gnome-tweak-toolbu iş için kullanılmaması gerektiğini düşünüyorum çünkü bunu yapmak için varsayılan araçlar var.
Léo Léopold Hertz 준영

Bu şimdiye kadar en iyi çözümdür.
Jason McVetta 19:18

2
Ubuntu> 18.04 için bu bulunabilir Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus

Bu benim için 19.04 tarihinde çalıştı. 19.04'te devam edecek hiçbir çözüm xmodmapveya setxkbmapçözüm bulamadım .
ahmorris

23

Sen kullanabilirsiniz xmodmap içinde terminale takas Caps Lockile Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc

Her oturum için bu değişikliği almak için, önceki komutları çalıştırdıktan sonra .xmodmap, aşağıdaki komutu kullanarak yeni tuş haritalarıyla adlandırılmış bir dosya oluşturun :

xmodmap -pke > ~/.xmodmap

Ardından, .xinitrcana dizinde adı verilen ve aşağıdaki satırı / komutu içeren bir dosya oluşturun :

xmodmap .xmodmap

6
Bu Ubuntu 14.04 kapsamında çalışmaz. Ayrıca bir .xsessionrc dosyasını denedim ve bu da işe yaramadı.
miguel.martin

Ayarları nasıl geri alıyorsunuz?
hlin117

@ hlin117 ~/.xmodmapDosyanın içeriğini temizleyin (sadece > ~/.xmodmapterminalinizde çalıştırarak ), ardından oturumunuzu yeniden başlatın.
Radu Rădeanu

2
Ubuntu 14.04'te, Escape haritalarını Caps_Lock'a yapar, ancak Caps_Lock Escape'a eşlemez.
user1691145

1
Merhaba, bunu yaptım ve işe yarıyor. Esc capslock bağlı olmasının yanında Ancak, capslock artık hem capslock bağlıdır ve kaçış. Masaüstü ortamının bir şekilde hala bunu geçersiz kılması mümkün mü? KDE
x veya 23'16

18

@ Radu'nun cevabına benzer , ancak 14.04 ile uyumludur (ayrıca bu cevaba bakınız ).

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap

Çalışmazsa, değiştirin:

xmodmap -e "remove Lock = Caps_Lock"

ile:

xmodmap -e "clear Lock"


3
çalışması için "Lock = Caps_Lock" değerini "Kilidi temizle" olarak değiştirmek zorunda kaldı
Sofia

13

Ekranın sağ üst köşesindeki dişliler simgesine gidin ve:

  • Sistem Ayarları'nı tıklayın
  • klavye düzeni
  • seçenekler ... (sağ alt köşe)
  • büyük harf tuş kilidi davranışı (4. aşağı)
  • Aşağı kaydırın ve "ESC Değiştir ve Büyük Harf Kilidi" seçeneğini seçin.

Bitti!


Joe : Ubuntu'ya Sormaya Hoş Geldiniz! ;-) Gelecekte cevaplarınızın okunabilirliğini artırmak için düzenlemelerimi ve ayrıca düzenleme yardımını gözden geçirir misiniz ... ;-)
Fabby

2
Bu ubuntu ve nane için en iyi cevap olmalıdır
prasad

Bu, burada belirtilen kodlanmış güncellemelere ek olarak bir şey yapar mı? Bunu bir komut dosyasında yapmayı tercih edin.
Ben Creasy,

7

Terminalde bir kez bu komutu çalıştırın. dconfzaten cüceyle 3 kurulmalıdır.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"

Bu çözüm az önce RedHat Enterprise Linux 7'yi test etti.
Chad Skeeters



2

Cevap vermeye geciktim ama zamanki gibi takas Escve Ctrlaşağıdaki hatları ile olan ~/.Xmodmapdosyanın:

clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock

Bu, en yaygın dağıtımlarda (Ubuntu ve Debian ailesi, Fedora ve RH ailesi) tüm masaüstü ortamlarıyla (KDE, Gnome) çalışmalıdır.


ubuntu'da işe yaramadı 16.04, lütfen daha fazla detaylandırır mısınız?
MaikoID

@MaikoID: Bu hemen hemen CapsLock ve Esc takas etmenin kuralsız yolu unixy yoludur. Unity ile daha yeni Ubuntu sürümlerinin bir çok "kanonik tekdüze" şeyleri kırdığını anlıyorum, bu nedenle diğer tüm cevapların bazı sürümlere özgü veya DE'ye özgü (Unity) yöntemine yönelik bir neden olduğu anlaşılıyor. Ne olursa olsun, bu mu ben şahsen kullanmak Kubuntu'da, üzerinde çalışmak.
dotancohen

2

Ubuntu 18.04 ve Gnome 3.30 için bu benim için çalışıyor:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"

hala 19.04'te çalışıyor.
Exeleration-G

1

KDE GUI'de (grafiksel kullanıcı arayüzü), Bu, Sistem Ayarında Klavye Düzeni'nden yapılabilir. "Giriş Aygıtları" üzerine tıklayın. Sol üst köşede, Klavye'yi tıklayın. Sonra "Gelişmiş" sekmesine tıklayın ve "Büyük Harf Kilitleme tuşu davranışı" altındaki "Kaçış ve Büyük Harf Değiştir" seçeneğini seçin.


Bu soruya cevap vermiş olmanız harika. Sorunuzu biraz genişletmek için, belki bir kez "ESC ve Büyük Harf Kilidi Değiştir" seçeneğini seçerek istenen sonuca ulaşmak için düzenleyebilir misiniz? seçildi.
Phil UK

Merhaba ve Ubuntu'ya sormaya hoş geldiniz! Mevcut haliyle, bu cevap gerçekten tam değildir ve bu nedenle silme riskiyle karşı karşıyadır. Lütfen Nasıl Cevaplanır yardım sayfamızı okuyun ve ardından daha ayrıntılı bilgi içermek üzere cevabınızı düzenleyin ve özellikle OP'nin sorusunu nasıl çözdüğünü öğrenin . Ayrıca, bir rozet almak ve sitemizin nasıl çalıştığı hakkında daha iyi bir fikir edinmek için lütfen turumuzu okuyun . Görüşürüz!
Kaz Wolfe,

Tavsiyeleriniz için teşekkürler. Keşke bu düzenleme senin de istersen.
Farhad Goodarzi

Bilginize, etki alanınızla bağlantı çalışmıyor gibi görünüyor (en azından benim için), ancak önceki IP adresi etki alanı çalışıyor.
Andrew T.

1

Yukarıdaki "Escape ve Capslock" anahtarına sahip "Klavye Düzeni" yanıtı Ubuntu 16.04 ve sonrasında geçerli değildir (daha önce? Dunno idi). Cevap: izinleri vb. İle acele önlemek için, sadece tüm bunları yapmadan suve root şifrenizi girmeden önce köküne geçin . Sonra:

    cd /etc/default/
    vim keyboard

Orada çizgiyi göreceksiniz:

    XKBOPTIONS=""

Şuna değiştir:

    XKBOPTIONS="caps:swapescape"

Save ile vim'den çık:

    :wqa

Yeniden Başlatma.

Ve bu kalıcı olacak , söz veriyorum. :)


0

Not: Bu değişmez, sadece büyük harflerin esc'ye kilitlendiğini gösterir. (Bu benim vim usecase için yeterince iyiydi.)

Ubuntu 16:04 için (i3 ortamlı): içerikli ~ / .xessionrc dosyası yaratıldı

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape

1
Bu cevap, OP'nin sorduğu sorunu gerçekten çözümleyebilse de, (sanırım) uzunluğu nedeniyle düşük kalitede cevap kuyruğunda gösteriliyor. Daha ayrıntılı olarak genişletmeyi düşünebilirsiniz. Nasıl ve neden belki de çalışıyor.
Elder Geek
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.