ฉันจะตั้งค่าปุ่ม Caps Lock และ Ctrl ใหม่ได้อย่างไร


77

ฉันต้องการทำการแมปกุญแจของฉันใหม่ซึ่งCtrlทำงานเป็นCaps Lockกุญแจและในทางกลับกัน นอกจากนี้ถ้าเป็นไปได้ฉันต้องการให้การตั้งค่าใช้ได้เฉพาะในผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน ฉันจะบรรลุสิ่งนี้ได้อย่างไร

ฉันเป็นผู้ใช้ที่ไม่เหมือนกับคนอื่น ๆ ที่ใช้เครื่องนี้ดังนั้นฉันจึงต้องการการตั้งค่าเหล่านี้สำหรับบัญชีของฉันเท่านั้น


1
ไม่นี้ช่วย?
มิทช์

สิ่งนี้อาจเป็นประโยชน์: the-flat-trantor-society.blogspot.com/2013/12/..
Keith Thompson

4
ฉันตกใจว่านี่ไม่ใช่คุณสมบัติมาตรฐานในการตั้งค่า Linux ในยุคนี้
Edward Falk

คำตอบ:


59

13.10+:

ติดตั้งและใช้gnome-tweak-tool> Keyboard & Mouse> Keyboard> >Additional Layout OptionsCaps Lock behavior

ก่อน 13.10:

เปิดไดอะล็อก Preferences Keyboard ( System -> Preferences -> Keyboard) บนแท็บเค้าโครงคลิกOptions...ปุ่ม ขยายส่วนและเลือกCtrl key positionSwap Ctrl and Caps Lock

ควรใช้การตั้งค่าเหล่านั้นทุกครั้งที่คุณลงชื่อเข้าใช้และจะมีผลกับบัญชีผู้ใช้ของคุณเท่านั้น


2
ตัวเลือกนี้หายไปใน Ubuntu Saucy ฉันไม่แน่ใจว่าจะอธิบายยังไง แต่ก็ไม่ได้อยู่ตรงนั้น การตั้งค่าแป้นพิมพ์ไม่มี "แท็บเลย์เอาต์" แต่มีปุ่ม "การตั้งค่าเลย์เอาต์" และเมื่อฉันคลิกมันจะพาฉันไปที่แท็บ "แหล่งสัญญาณเข้า" ของแผง "ภูมิภาคและภาษา" ซึ่งไม่มีอะไรลึกลับ ของปุ่ม 'ตัวเลือก' มีเพียงปุ่มเดียวที่เปิดขึ้นแป้นพิมพ์เสมือนจริงบนหน้าจอที่แสดงเค้าโครงแป้นพิมพ์ที่เสียให้กับฉันโดยไม่ต้องเปลี่ยนว่าปุ่มใดทำงานในลักษณะใด
robru

4
สำหรับ Ubuntu 13.10 คุณจะต้องใช้ gnome-tweak-tool
Jeremy Bicha

1
ตัวเลือกล่วงหน้า 13.10 ใช้ได้กับฉันใน 14.04
JeremyKun

เหมือนกับ @JeremyKun ในกรณีของฉันใช้ 14.04 โซลูชันก่อน 13.10 ทำงานได้ แต่ไม่ได้
13.10+

ขอบคุณสำหรับคำตอบนี้! gnome-tweak-toolเป็นสิ่งที่ดีจริงๆ คุณยังสามารถใช้สำหรับคนที่ชอบ "ใช้ Caps Lock สำหรับเปลี่ยนรูปแบบแป้นพิมพ์" (รายการโปรดส่วนตัว) และ "เปลี่ยน Alt / Win" (ซึ่งมีประโยชน์หากคุณเป็นผู้ใช้ Mac มาเป็นเวลานาน ... )
ต่อ Lundberg

63

หนึ่งในวิธีที่ดีที่สุดในการทำกราฟิกคือติดตั้งGnome Tweak Tool :

sudo apt-get install gnome-tweak-tool

  • เปิด tweak-tool แล้วคลิกที่ส่วนการพิมพ์ในคอลัมน์ด้านซ้าย
  • ตอนนี้คุณควรเห็นลักษณะการทำงานของปุ่ม Caps Lockทางด้านซ้าย
  • เลือกMake Caps Lock และกดปุ่ม Ctrl เพิ่มเติมจากDisabledในรายการดรอปดาวน์และคุณน่าจะดี

นอกจากแผงการตั้งค่าใช้เวลาไม่นานในการขึ้นเครื่องของฉันดังนั้นฉันจึงไม่รู้ว่าปัญหาคืออะไร

สนุกกับCtrlกุญแจใหม่ของคุณ!


ฉันต้องการใช้แป้น CAPS เพื่อปิดหน้าจอ ฉันตั้งค่านี้มาก่อนในหน้าต่างการตั้งค่าระบบ> แป้นพิมพ์ แต่ CAPS ยังคงสลับสถานะ CapsLock และไฟ LED ดังนั้นฉันจึงปิดการใช้งานคีย์ด้วยเครื่องมือที่คุณแนะนำ (ซึ่งมีข้อผิดพลาดในการแสดงผล btw. - พื้นหลังหน้าต่างโปร่งใส) ซึ่งยังหยุดทางลัดที่กำหนดเองของฉันจากการทำงาน หลังจากปิดการใช้งานฉันต้องตั้งค่าทางลัดอีกครั้งเพื่อให้ใช้งานได้ มันถูกตั้งค่าเป็น 0xff หรืออะไรทำนองนี้แทน CAPS ฉันคิดว่าขั้นตอนนี้อาจช่วยผู้อ่านในอนาคตด้วยความปรารถนาที่คล้ายกัน
ผู้บัญชาการ Byte

เมื่อฉันรัน gnome-tweak-tool จากบรรทัดคำสั่งมีข้อผิดพลาดเกี่ยวกับเชลล์ที่ไม่ได้รัน DBus แล้วความพยายามใด ๆ ที่ฉันทำเพื่อเปลี่ยนการตั้งค่าไม่มีผล
Edward Falk

1
อัปเดต: gnome-tweak-tool ใช้งานได้ในเชลล์ gnome เท่านั้น
Edward Falk

1
ไม่มีส่วน "การพิมพ์" ในคอลัมน์ด้านซ้ายของฉัน: เฉพาะเดสก์ท็อป, แบบอักษร, เชลล์, ส่วนขยายของเชลล์, ธีม, Windows
Reb.Cabin

2
โปรดทราบว่าตัวเลือกใน gnome-tweak-tool เพื่อสลับอยู่ภายใต้ "ตำแหน่งคีย์ Ctrl" ไม่ใช่ "ลักษณะการทำงานของปุ่ม Caps Lock"
Phil Goetz

59

ต่อไปนี้เป็นวิธีดำเนินการโดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม:

setxkbmap -layout us -option ctrl:nocaps

ที่มา:


3
สิ่งนี้ไม่รอดหลังจากรีบูต ฉันจะทำให้ถาวรนี้ได้อย่างไร ฉันไม่ควรใส่สคริปต์เริ่มต้น (เช่น. bashrc)
nic

8
@nic คุณต้องเปลี่ยนไฟล์sudo vi /etc/default/keyboardและเปลี่ยนXKBOPTIONS="ctrl:nocaps"ด้วย เรียกใช้คำสั่งของ Jorge หลังจากนั้น แต่setxkbmap -option ctrl:nocapsจะไม่เปลี่ยนรูปแบบแป้นพิมพ์เริ่มต้นของคุณ
LéoLéopold Hertz 준영

43

เปิดรายการต่อไปนี้เพื่อแก้ไข:

sudo vi /etc/default/keyboard

และแก้ไข XKBOPTIONS="ctrl:swapcaps"

จากนั้นตั้งค่าใหม่:

sudo dpkg-reconfigure keyboard-configuration

หรือ

/usr/bin/setxkbmap -option "ctrl:swapcaps"

คำถามคือ "ฉันต้องการการตั้งค่าเหล่านี้สำหรับบัญชีของฉันเท่านั้น" การแก้ไข / etc / default / keyboard จะเปลี่ยนไปสำหรับทุกคน
skierpage

1
คุณมี 3 ขั้นตอน (1, 2, 3) คุณหมายถึง [(1 และ 2) หรือ 3] หรือ [1 และ (2 หรือ 3)]?
jgomo3

ที่ดี! เรียกใช้sudo dpkg-reconfigure keyboard-configurationและกดหลาย ๆ ครั้งและมันก็ใช้งานได้ !!! แก้ไข: อย่างไรก็ตามหลังจากที่ฉันออกจากระบบและเข้าสู่ระบบอีกครั้งการตั้งค่าก็หายไป :(
LeOn - Han Li

24

วิธีเปลี่ยนพฤติกรรมอย่างถาวร:

  1. วิ่ง dconf-editor

  2. เลือก org.gnome.desktop.input-sources

  3. เปลี่ยนxkb-optionsเป็น['ctrl:nocaps'](หรือเพิ่มลงในตัวเลือกที่มีอยู่)

หรือบนบรรทัดคำสั่ง ( คำเตือน - สิ่งนี้จะเขียนทับการตั้งค่าที่คุณมีอยู่! ):

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

สายการบินเดียวนี้ยังสามารถเพิ่ม ~ / .profile เพื่อความสะดวกในการพกพา
jthetzel

สิ่งนี้ไม่ได้ผลสำหรับฉันบน Kubuntu 16.04 แม้หลังจากรีบูตเครื่อง
zplizzi

3
การตั้งค่า dconf จะมีผลทันทีและคงอยู่ดังนั้นจึงไม่มีเหตุผลที่จะใส่ไว้ใน ~ / .profile และไม่จำเป็นต้องรีบูต การตั้งค่าเฉพาะนี้ใช้กับ Gnome / Unity ไม่ใช่ KDE ที่ใช้ใน Kubuntu
Anton Eliasson

4

นี่เป็นเรื่องง่ายเมื่อคุณรู้วิธีการทำ

1) ตรวจสอบรหัสของกุญแจของคุณ รันโปรแกรมนี้ที่เทอร์มินัล

XEV


ในตัวอย่างนี้เทอร์มินัลแสดงว่ารหัสสำหรับฉันkคือ "45"

2) เปลี่ยนตามที่คุณต้องการสร้างไฟล์นี้:

gedit ~ / .Xmodmap

เนื้อหาควรมีลักษณะเช่นนี้:

keycode 37 = Caps_Lock NoSymbol Caps_Lock
keycode 66 = Control_L NoSymbol Control_L

(เปลี่ยนหมายเลขรหัสตามต้องการ - ดูขั้นตอน "1")

Ilustration:
(Obs .: ถ้าฉันต้องการเปลี่ยนkฉันควรใช้ "keycode 45" ตามที่แสดงในขั้นตอน "1")

4) ออกจากระบบและกลับเข้าสู่ระบบหรือรีบูตหรือรันสิ่งนี้:

xmodmap ~ / .Xmodmap

หวังว่าคุณจะสนุก ;-)


2
โปรดทราบว่าการแก้ปัญหานี้มีแนวโน้มที่จะก่อให้เกิดปัญหาสำหรับอะไรนอกจากปุ่มกดที่ง่ายที่สุด ความเข้ากันได้ของ xmodmap ในระบบ xkb ที่ใหม่กว่านั้นไม่สมบูรณ์แบบดังนั้นคุณน่าจะดีกว่าถ้าใช้ xkb
James Henstridge

@ James ต้องการอธิบายว่าเราจะทำอย่างไร
desgua

ดูคำตอบอื่น ๆ สำหรับคำถามนี้ แผงควบคุมแป้นพิมพ์มาตรฐานจะสร้างและ xkb keymap จากเค้าโครงพื้นฐานที่คุณเลือกพร้อมตัวเลือกที่คุณเปิดใช้งาน
James Henstridge

1
คุณสามารถตั้งค่าปุ่มกดเดียวกันได้โดยใช้setxkbmapโปรแกรมบรรทัดคำสั่ง การเขียนคีย์แม็พใหม่เป็นไปได้ แต่มีส่วนเกี่ยวข้องมากกว่าการแม็พคีย์โค้ด Xmodmap เล็กน้อย เป็นสิ่งที่ดีที่ตัวเลือกส่วนใหญ่ที่คุณต้องการนั้นมีอยู่แล้ว
James Henstridge

1
@James ฉันค้นหาและเรียนรู้เกี่ยวกับ setxkbmap แล้ว แต่ฉันไม่สามารถหาคำตอบสำหรับ: เป็นไปได้ที่จะทำการแมปกุญแจสู่สิ่งที่เราต้องการ? ตัวอย่างเช่นสิ่งผิดปกติเช่น: "keycode 51 = วงเล็บปีกกา braceright วงเล็บเหลี่ยม braceright ผู้ชายบาร์"?
desgua

4

นี่คือวิธีการทำด้วยตนเอง (โดยไม่มีเครื่องมือเพิ่มเติม) ผ่าน XKB ซึ่งเป็นตัวจัดการปุ่มเริ่มต้นสำหรับ Ubuntus ล่าสุด แก้ไข/usr/share/X11/xkb/symbols/pcส่วนxkb_symbols "pc105":

//key <CAPS> {  [ Caps_Lock     ]   };
//key <LCTL> {  [ Control_L     ]   };
key <CAPS> {    [ Control_L ]   };
key <LCTL> {    [ Caps_Lock     ]   };

เข้าสู่ระบบ / ออกจากระบบหรือรีบูต ดูที่นี่สำหรับรายละเอียดเพิ่มเติม

หรือคุณสามารถสลับที่ระดับของรหัสที่ถูกปล่อยออกมาโดยปุ่มเหล่านั้น Modify /usr/share/X11/xkb/keycodes/evdev:

<CAPS> = 64; //66;
<LCTL> = 66; //64

คุณจะต้องsudo rm -rf /var/lib/xkb/*ใช้การเปลี่ยนแปลง


จุดที่ดีเกี่ยวกับการทำงานในระดับของรหัส ในแล็ปท็อปของฉันที่ใช้ Kubuntu Bionic เพียงแค่เปลี่ยนที่ระดับสัญลักษณ์ไม่เป็นที่พอใจเพราะการกดปุ่ม Caps แบบกายภาพยังคงสลับสถานะ Caps ภายใน การเปลี่ยนรหัสคีย์ใช้งานได้! BTW ฉันขยายสิ่งนี้เป็นสามปุ่ม (Caps, Meta และ RAlt) และต้องการทราบว่าคุณต้องเขียนจริง<CAPS> = *orig code of the physical key you want to act **as** CAPS*มากกว่า<CAPS> = *orig code of the key you want physical CAPS to act **as**(ฉันหวังว่าความแตกต่างนั้นชัดเจน) ความแตกต่างนี้เป็นสิ่งจำเป็นในกรณีเช่นนี้
jamadagni

3

คำตอบที่ยอมรับนั้นสร้างความสับสนเพราะ gnome-tweak-tools ไม่แสดงส่วน "การพิมพ์" ใด ๆ

คลิกที่ส่วน "คีย์บอร์ดและเมาส์" แทนจากนั้นเลือก "ตัวเลือกเค้าโครงเพิ่มเติม" ที่นั่นคุณจะเห็น "ลักษณะการแคปล็อก" ซึ่งอนุญาตให้แปลงแคปล็อกเป็นคีย์ที่แตกต่างกัน

ภาพหน้าจอจาก tweak-tool


2

ในการกระจายแบบอิง KDE (เช่น KDE Neon หรือ Kubuntu) ลักษณะการทำงานนี้สามารถกำหนดค่าได้ในการตั้งค่าระบบปกติ เปิดการตั้งค่าระบบเลือก "อุปกรณ์อินพุต" => "คีย์บอร์ด" => "ขั้นสูง" ในหมวดหมู่ "ตำแหน่งคีย์ Ctrl" เลือก "สลับ Ctrl และ Caps Lock"

สกรีนช็อตของโมดูลคีย์บอร์ดการตั้งค่าระบบของ KDE


0

gnome-tweaks 3.28.1 ไม่มีTypingส่วน
ดังนั้นsetxkbmap -layout us -option ctrl:nocapsหรือsetxkbmap -layout us -option ctrl:swapcapsจะเป็นตัวเลือกที่เป็นไปได้

หากต้องการทำให้ถาวรคุณสามารถอ้างถึงคำตอบของ @name


แป้นพิมพ์และเมาส์ -> ตัวเลือกเค้าโครงเพิ่มเติม
Voyager
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.