ฉันจะตั้งค่าแป้นพิมพ์ลัด Ubuntu ของฉันใหม่ให้ตรงกับ OSX ได้อย่างไร


28

ฉันใช้ Ubuntu ใน VirtualBox บน Mac เมื่อฉันสลับบ่อยฉันต้องการใช้ทางลัดเดียวกัน ได้โปรดใครรู้วิธีการใช้ทางลัดเดียวกันบน Ubuntu เช่นเดียวกับบน Mac? โดยเฉพาะฉันต้องการคัดลอกวางเลือกทั้งหมดทำงานกับ Cmd + C, Cmd + V, Cmd + A, ... (แม้ในเทอร์มินัล - ไม่มี Ctrl + Shift เพียง Ctrl)

ฉันพยายามเปลี่ยนรูปแบบแป้นพิมพ์เป็นแล็ปท็อป Apple แต่นั่นก็ไม่ได้ช่วยอะไร


ปุ่ม Cmd เป็นทางเลือกแทน Ctrl หรือ Alt หรือไม่
เซท

หากฉันจำได้ถูกต้อง Cmd จะเท่ากับ ctrl
Kaz Wolfe

2
cmd เท่ากับปุ่มฟังก์ชัน windows (ในขณะที่ปุ่ม cmd อยู่ติดกับ spacebar) เวลาส่วนใหญ่ระหว่าง ctrl และ alt
velop

คำตอบ:


8

คุณไม่สามารถเพิ่มทางลัดที่กำหนดเองได้หรือ หากเป็นไปไม่ได้หรือไม่ได้ผลคุณอาจต้องการเปลี่ยนการโยงคีย์ของ vmbox ของคุณ คุณจะต้องทำสิ่งต่อไปนี้:

ติดตั้ง xbindkeys

sudo apt-get install xbindkeys

Xbindkeys เป็นโปรแกรมเอนกประสงค์ที่ให้คุณทำการแมปคีย์ได้อย่างง่ายดาย มันใช้ไฟล์กำหนดค่าเริ่มต้นของฉันอยู่ในไดเรกทอรีบ้านของคุณเพื่อเปลี่ยนการเชื่อมโยงคีย์เป็นคำสั่งบาง

ในการสร้างไฟล์กำหนดค่าเริ่มต้นคุณใช้คำสั่ง:

xbindkeys --defaults

ซึ่งพิมพ์ไฟล์กำหนดค่าเริ่มต้น ดังนั้นหากคุณต้องการสร้างไฟล์ที่มีค่าเริ่มต้นคุณจะใช้:

xbindkeys --defaults > $HOME/.xbindkeysrc

ซึ่งพิมพ์ค่าเริ่มต้นลงในไฟล์ที่ซ่อนชื่อ. xbindkeysrc ซึ่งตั้งอยู่ที่บ้าน

ทีนี้การเปลี่ยนการเชื่อมโยงของคีย์เราต้องรู้ว่าชื่อหรือ keysym ของกุญแจเหล่านั้นคืออะไร xbindkeys ช่วยให้เราสามารถใช้ -k หมายเลขอ้างอิงเพื่อค้นหาชื่อของคีย์หรือคีย์ผสม วิ่ง:

xbindkeys -k

ตอนนี้กด ctrl (จาก cmd) และตรวจสอบผลลัพธ์

ลองกด ctrl + c (หลังจากปิดใช้งานทางลัดนั้นในเทอร์มินัลโดยใช้ส่วนที่สองของการอธิบายนี้)

มันจะบอกชื่อของคีย์ / คีย์ผสม

ตอนนี้เราต้องบอกให้ linux โทรหา cmd เมื่อกด ctrl

สำหรับสิ่งนี้เราจะต้องมีซอฟต์แวร์เพิ่มเติมเนื่องจาก xbindkeys ไม่สนับสนุนสิ่งนี้ด้วยตนเอง ฉันรู้จักสองโปรแกรมที่เราสามารถใช้ xdotool และ xte ฉันชอบ xte ดังนั้นฉันจะใช้มัน

ติดตั้ง:

sudo apt-get install xautomation

(ในการโทรกดปุ่มเดียว: xte 'key keyName'

วิธีเรียกชุดคีย์: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

สำหรับข้อมูลเพิ่มเติมคุณสามารถอ่านคู่มือman xte )

ให้เปิดไฟล์กำหนดค่าที่คุณทำไว้ก่อนหน้านี้: (ไฟล์ที่คุณใช้xbindkeys --defaults > $HOME/.xbindkeysrc)

gedit .xbindkeysrc

คุณจะได้รับสิ่งนี้:

#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
#   Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
#   Mod3 (CapsLock), Mod4, Mod5 (Scroll). 
#

# The release modifier is not a standard X modifier, but you can  
# use it if you want to catch release events instead of press events

# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.

#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable

# Examples of commands:

ก่อนหน้านี้คุณได้รวมคีย์ / คีย์ ตอนนี้คุณรู้แล้วว่าคำสั่งสำหรับการจำลองการกดปุ่มคุณสามารถเรียกมันได้จากสคริปต์ xbindkeys ของคุณเช่นนี้

"xte 'ctrl'" Cmd (หรืออะไรทำนองนี้ขึ้นอยู่กับชื่อที่คุณมอบให้โดย xbindkeys)

เพิ่มไปยังสคริปต์ xbindkeys ของคุณและบันทึก

คุณจะสังเกตเห็นว่ามันใช้งานไม่ได้ (ยัง) นั่นเป็นเพราะ xbindkeys ยังไม่ทำงาน เริ่มต้นด้วยคำสั่งดังต่อไปนี้

xbindkeys

คำสั่งของคุณควรใช้งานได้แล้ว หากไม่ได้ผลคุณอาจต้องการลองเพิ่มคำสั่งลงในคีย์ผสมเช่นการคัดลอกและวาง หากไม่ได้ผลก็มีทางเลือก แต่ก็ค่อนข้างเขียนเยอะ คุณสามารถลอง xmodmap หรือ xkeycaps

ฉันต้องการที่จะทราบว่า xbindkeys และ xte ไม่ได้ทำงานร่วมกันได้ดีเสมอไป

สำหรับทางลัดเทอร์มินัลของคุณ: คุณสามารถเปลี่ยนได้ทั้งหมดโดยเปิดเทอร์มินัลแล้วคลิกแก้ไขในแถบด้านบน จากนั้นคลิกแป้นพิมพ์ลัดและเปลี่ยนค่าของการคัดลอกและวางใต้ส่วนหัว "แก้ไข" เป็น ctrl (หรือในกรณีของคุณ cmd) + c และ ctrl + v


2
เหล่านี้เป็นวิธีการแก้ปัญหาของคุณภายใน vmbox คุณอาจจะสามารถแลกเปลี่ยนรหัสที่กำหนดโดยการตั้งค่าตารางการแลกเปลี่ยนรหัสใน vmbox ของคุณ แต่ฉันไม่มีประสบการณ์กับ vmboxes
Akisame

นี่ใกล้เคียงกับที่ฉันเคยได้รับการผูกแม็คบน linux อย่างไรก็ตามดูเหมือนว่าxte 'key Home'จะไม่ทำงานเมื่อเชื่อมโยงกับการกดแป้นใด ๆ ในไฟล์. xbindkeysrc ฉันได้ลองหลากหลายแบบ "Shift + i" ฉันยังเห็นว่ามันทำงานได้ด้วยการทำ `sleep 15 && xte 'key Home'" (เปลี่ยนเป็น gedit และดูงานบ้าน) ข้อเสนอแนะส่วนใหญ่ที่ฉันได้รับเมื่อฉันติดตั้งสิ่งต่าง ๆ ด้วย "Alt + Left" สำหรับบ้านคือแฟลช ของเคอร์เซอร์ความช่วยเหลือใด ๆ เกี่ยวกับสิ่งนี้หรือไม่ gist.github.com/Kikketer/658d89661a044121279afbba04a511fa
Chris

8

ไม่จำเป็นต้องใช้xbindkeysเพื่อให้บรรลุการทำแผนที่แป้นพิมพ์เหมือน OSX บน Ubuntu นี่คือตัวเลือก inbuilt:

  1. ไปที่การตั้งค่า Ubuntu ของคุณ
  2. นำทางไปยังคีย์บอร์ดการตั้งค่าเค้าโครงแป้นพิมพ์
  3. เพิ่มภาษาอังกฤษ (Macintosh)

7
ฉันไม่เห็นKeyboard Layout Settingsใน Ubuntu 14.0.4
chovy

สิ่งนี้ไม่ทำงานบน VirtualBox ทั้งหมดที่ฉันได้รับคือหน้าต่างที่หดเมื่อฉันพยายามคัดลอก / วาง
chovy

ฮ่า ๆ หลังจากใช้เวลานานมากในการพยายามหาวิธีแก้ปัญหาอื่นทั้งหมดที่นั่นอันนี้เป็นเรื่องง่ายและทำงานได้ทันที (Ubuntu 14.04.3 LTS 64 บิตใน VirtualBox 5.0.4) ขอบคุณ
Allisone

สิ่งนี้ใช้ไม่ได้กับฉันบน virtualbox
ปีเตอร์บรูคส์

3
คำตอบนี้ชัดเจนว่าไม่สามารถใช้ได้กับ Ubuntu รุ่นใหม่ ไม่ว่าอูบุนตูรุ่นล่าสุดจะเป็นอะไรในปี 2014 ก็ใช้งานได้
boulder_ruby

3

นี่เป็นคำตอบที่ได้รับการอัปเดตสำหรับทุกคนที่กำลังต่อสู้กับปัญหานี้กับ Ubuntu รุ่นล่าสุด

ฉันเพิ่งติดตั้ง Ubuntu 16.04.1ผ่าน VirtualBox และไม่สามารถรับการตั้งค่าแป้นพิมพ์เพื่อให้ตรงกับ MacBook ของฉัน

นี่คือสิ่งที่ฉันทำเพื่อแก้ไข:

  1. ไปที่การตั้งค่าระบบ
  2. เลือกการป้อนข้อความ (เช่นไม่ใช่ แป้นพิมพ์ )
  3. ใต้รายการที่มีส่วนหัวแหล่งอินพุตที่จะใช้:มีเครื่องหมายบวกและเครื่องหมายลบ - คลิกที่เครื่องหมายบวก
  4. ในกล่องข้อความภายใต้เลือกประเภทแหล่งอินพุตในเค้าโครงแป้นพิมพ์ที่คุณต้องการ (ในกรณีของฉันฉันเลือกภาษาอังกฤษ (สหราชอาณาจักร, Macintosh)
  5. ใช้ลูกศรขึ้นเพื่อทำให้เป็นรูปแบบแป้นพิมพ์เริ่มต้นของคุณบน Ubuntu
  6. ลบเค้าโครงแป้นพิมพ์อื่น ๆ จนกระทั่งฉันลบเค้าโครงอื่น ๆ ที่การเปลี่ยนแปลงมีผลบังคับใช้

1
ผลของสิ่งนี้คืออะไร? ตัวอย่างเช่นปุ่มควบคุมบน Macintosh อยู่ในตำแหน่งเดียวกับบนแป้นพิมพ์ปกติ เนื่องจาก ctrl-c / v ยังคงเป็นคำสั่งคัดลอกและวางที่เป็นค่าเริ่มต้นของระบบนี่จะไม่ตอบคำถามดั้งเดิมของการตั้งค่าทางลัดทั้งระบบใหม่เพื่อเลียนแบบ Mac
Coljac

2

ฉันใช้ Ubuntu 16.04, VirtualBox 5.1.22 และไม่มีคำตอบใดที่เหมาะกับฉัน - รวมถึงDavid Brower ด้วยโชคไม่ดี

นี่คือสิ่งที่ทำให้ปุ่มคำสั่ง OSX ทางซ้ายของฉันทำงานได้ (ไม่หยุดหย่อน!):

  1. ก่อนอื่นคุณต้องแน่ใจว่า VirtualBox ไม่ได้ใช้ Left ⌘เป็นปุ่ม Host
    • ในแถบเมนูด้านบนของหน้าต่าง VM ของคุณเลือก Input > Keyboard > Keyboard Settings..
    • ในรายการการตั้งค่าค้นหาชุดคีย์โฮสต์และเปลี่ยนทางลัดเป็นอย่างอื่นนอกเหนือจากซ้าย⌘ (ฉันเพิ่งใช้ Right ⌘เพราะฉันไม่เคยใช้)
  2. ตอนนี้คุณสามารถใช้ Left ⌘ในสภาพแวดล้อม VM ได้อย่างแท้จริงทำการแมปปุ่มด้วย XKB:
    • เปิดและแก้ไขอย่างระมัดระวัง: /usr/share/X11/xkb/symbols/pc
    • ฉันก็สลับ<LCTL>และ<LWIN>รอบ ๆ ดังนั้นจึงมีลักษณะเช่นนี้
    • key <LCTL> { [ Super_L ] };
    • key <LWIN> { [ Control_L ] };
  3. ตอนนี้ล้างการแมปเก่าจากแคช xkb:
    • rm -rf /var/lib/xkb/*
  4. รีสตาร์ทอูบุนตูเพื่อให้การเปลี่ยนแปลงมีผล

คำเตือน:ฉันจะหลีกเลี่ยงการเปลี่ยนแปลงมากกว่าหนึ่งครั้งต่อครั้งผ่าน xkb เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่คีย์สองปุ่มที่แมปไม่ถูกต้องในเวลาเดียวกันอาจทำให้ปวดหัวจริง ๆ !

Full Credit to Radu Cotescuสำหรับคำแนะนำในการทำการแมป xkb ใหม่ - สำหรับ Ubuntu 14.04 แต่ทำงานได้ดีสำหรับ Ubuntu 16.04


ตรวจสอบให้แน่ใจว่าคุณได้ถ่ายรูปก่อนที่จะทำเช่นนี้! ฉันโชคดีที่มีจุดประสงค์อื่นและหลังจากทำสิ่งนี้ Ubuntu จะไม่สามารถบู๊ตได้อย่างถูกต้อง ฉันหวนกลับมาและมันก็เริ่มทำงานอีกครั้ง ฉันใช้ 18.04 กับสิ่งที่คุ้มค่า
ทอม

2

ค้นหาคำถามอื่นฉันพบเครื่องมือนี้เพื่อแมป Ctrl กับบอร์ดคีย์ Macbook CMD Left เพื่อทำ CMD + C หรือ CMD + V หรืออย่างอื่น:

ติดตั้งแอปพลิเคชั่น gnome-tweaks:

sudo apt-get install gnome-tweaks

เปิดแอปพลิเคชันApplications -> Gnome Tweaksและจับคู่ CTRL กับ WIN (เหมือนกับ CMD ใน Mac) โดยทำดังนี้

  1. แป้นพิมพ์และเมาส์
  2. ตัวเลือกเค้าโครงเพิ่มเติม (ซ้ายสุด)
  3. ปุ่ม Alt / Win
  4. Ctrl ถูกแมปไปยัง Win และปุ่ม Ctrl ตามปกติ

เพลิดเพลินกับCMD + C or CMD + VOSX VirtualBox ของคุณโดยใช้ ubuntu-18 VM


ทำงาน <filler>
skwny

นี่ทำให้ฉันสูญเสียความสามารถในการใช้ปุ่ม Win / Apple แต่ฉันก็ทำต่อไปนี้สำหรับขั้นตอนที่ 3 และ (3) Ctrl position, (4) Swap Left Win with Left Ctrl4:
Turgs

0

ฉันยังคงใช้งาน Ubuntu 12.04 ด้วยเหตุผลหลายประการดังนั้นฉันจึงไม่สามารถพูดซ้ำได้ในภายหลัง แต่ลองทำสิ่งนี้:

ตกลงก่อนอื่นคุณอาจต้องการตั้งค่าคีย์โฮสต์ VB ของคุณเป็นสิ่งที่เฉพาะเจาะจงเช่นคำสั่งที่ถูกต้องหรือปุ่ม alt ขวา ... สิ่งที่คุณไม่ได้ใช้ตามปกติ ฉันคิดว่าค่าเริ่มต้นคือคีย์คำสั่งด้านซ้ายซึ่งจะรบกวนการทำงานของคนส่วนใหญ่

สิ่งนี้สามารถทำได้ในการตั้งค่าสำหรับ VirtualBox ตัวเอง (แทนที่จะอยู่ในเครื่องแขกหรือการตั้งค่าเฉพาะเครื่อง) เมื่อเปิดแอป VB (ไม่ใช่หน้าต่าง VM) ให้เลือก VirtualBox-> Preferences-> Input จากนั้นเลือกคีย์โฮสต์ที่ส่วนหัวของรายการ / การแมปเขตข้อมูล "เครื่องเสมือน"

โอเคหลังจากนั้นภายในตัวเครื่องแขก Ubuntu เอง:

  1. เปิดการตั้งค่าระบบของคุณแล้วเลือกเค้าโครงแป้นพิมพ์
  2. เปิดแท็บเลย์เอาต์
  3. คุณอาจมีเพียงหนึ่งรายการ - อังกฤษ (สหรัฐอเมริกา) หรือ somesuch เน้นสีนี้และคลิกปุ่ม "ตัวเลือก" ที่ด้านล่างขวา
  4. เปิดส่วนขยาย "Alt / Win Key Behavior"
  5. เลือก "การควบคุมถูกแมปกับปุ่ม Win (และปุ่ม Ctrl ปกติ)"

คุณควรพบว่าตอนนี้คีย์คำสั่ง Mac ของคุณทำงานได้ตามที่ต้องการสำหรับ command-C, command-V เป็นต้น


0

ในกรณีของ Kubuntu 18.04 กับ Plasma 5 สิ่งที่ได้ผลสำหรับฉันคือ (ในการตั้งค่าระบบ / อุปกรณ์อินพุต / คีย์บอร์ด) การตั้งค่าฮาร์ดแวร์เป็น '104 คีย์ทั่วไป' และเค้าโครงเป็น 'อังกฤษ (macintosh)'


-1

ขึ้นอยู่กับซอฟต์แวร์ที่คุณใช้ในการเรียกใช้เครื่องเสมือนของคุณ สำหรับตัวอย่างฉันใช้ VMWare Fusion เพื่อเรียกใช้ Ubuntu บน Mac ของฉันและเพื่อให้บรรลุสิ่งที่คุณต้องการฉันไปที่ "การตั้งค่า" ของ VMWare Fusion และตั้งค่าการแมปคีย์ที่ฉันต้องการภายในเครื่องเสมือนเฉพาะนั้น (ฉันสามารถมีการตั้งค่าหลายรายการ สำหรับแต่ละ VM)

ฉันไม่เคยใช้ VirtualBox แต่ฉันค่อนข้างมั่นใจว่าคุณสามารถทำได้ในการตั้งค่า VirtualBox

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