Bagaimana cara kerja keyboard seperti OSX System Wide?


111

Saya bolak-balik di antara dua komputer terus-menerus:

  • OSX Snow Leopard
  • Ubuntu 10.10

Saya ingin membuat Ubuntu menggunakan cara pintas keyboard yang sama dengan OSX System Wide , hanya untuk urutan keyboard berikut (yaitu saya tidak ingin membuat Ctrl bertindak seperti Super)

  • Super+C -> Salin

  • Super+V -> Tempel

  • Super+T -> Buka tab baru di browser apa pun yang saya masuki.

  • Super+W -> Tutup tab di browser apa pun yang saya masuki.

Jadi singkatnya, apakah ada cara bagi saya untuk memetakan hanya urutan keyboard ini sebagai berikut, sistem yang luas?

  • Super+C -> Ctrl+C
  • Super+V -> Ctrl+V
  • Super+T -> Ctrl+T
  • Super+W -> Ctrl+W

Saya tahu ada cara bagi saya untuk melakukan ini untuk vim, dan Firefox, dan saya yakin secara khusus untuk sebagian besar aplikasi ... tapi saya lebih suka harus melakukan ini sekali saja dan membuatnya bekerja dengan cara yang luas sistem !

Saya menggunakan keyboard PC standar, yaitu "Generic 105 key (intl) PC" di Ubuntu. Saya juga menggunakan keyboard yang sama di Mac mini saya.


4
Jika Anda mengaktifkannya untuk semua pintasan keyboard Mac, membagikan file konfigurasi Anda akan luar biasa! Terima kasih
Dolan Antenucci

Hei! Saya berharap saya masih melakukannya, tetapi saya bekerja secara eksklusif pada Mac sekarang, karena saya telah pindah pekerjaan ;-) Jadi saya tidak memiliki konfigurasi lama saya di mana saja ...
brad taman

solusi tidak berfungsi pada OS dasar. '
Paschalis

Jawaban:


38

Jika Anda menginstal paket xautomation, Anda dapat menambahkan perintah di System / Preferences / Shortcuts Keyboard / Custom like:

xte "keyup Meta_L" "keyup c" "keydown Control_L" "key c" "keyup Control_L"

dan petakan itu ke Meta-C.


Solusi alternatif:

Instal AutoKey (apt-get install autokey-gtk) dan setel frasa menjadi:

Phrase Text: <ctrl>+C (actually type out the <ctrl>+ here)
Paste Using: Keyboard
Abbreviation: None
Hotkey: <super>+v
Window Filter: None

Hei! ini terlihat sangat menjanjikan ... saya telah menginstal, dan dapat menjalankan perintah xte di atas dari terminal, dan menghasilkan "^ C" di terminal ... yang terlihat bagus untuk saya! tetapi ketika saya memetakannya di Keyboard Shortcuts, itu tidak melakukan apa-apa ... Saya mencoba memetakan program lain ke Meta-C, dan itu berfungsi dengan baik (yaitu meluncurkan dengan baik ketika saya menekan Meta-C). Saya juga mencoba menentukan path lengkap ke xte (/ usr / bin / xte) dan itu tidak berhasil ... bisakah Anda mencoba ini di sistem Anda dan melihat apakah itu berfungsi? Terima kasih!
taman brad

1
Jadi xte mengirimkan kode kunci dengan benar, tetapi tampaknya aplikasi melihat kombinasi jalan pintas dan penekanan tombol yang dikirim oleh xte (mis. Meta-Control-C). Saya telah memperbarui jawaban saya untuk mensimulasikan melepaskan tombol pintas sebelum mengirim penekanan tombol.
cscarney

2
Pada pemeriksaan cepat berfungsi untuk saya, tetapi saya telah menemukan solusi yang mungkin akan lebih dapat diandalkan daripada xte (bahkan jika Anda membuatnya berfungsi). Periksa jawaban yang direvisi.
cscarney

1
Hei! terima kasih @cscarney! "Solusi Alternatif" Anda untuk AutoKey benar-benar berfungsi! terima kasih banyak atas upaya Anda yang berkelanjutan untuk ini!
taman brad

1
Solusi tidak berfungsi untuk Ubuntu 18.04
JZ.

17

Untuk Ubuntu 14 atau lebih baru Anda dapat melakukan ini:

sudo apt-get install gnome-tweak-tool

Daripada, cari Tweak Tool> Mengetik> Alt / Win key behaviour

Dan periksa: Ctrl dipetakan ke tombol Win (dan tombol Ctrl biasa)


Tampaknya tidak melakukan apa-apa atau tidak perilaku Mac
chovy

Dalam instalasi baru Ubuntu 16, menginstal ini tampaknya memerlukan gnome-settings-daemon yang tampaknya mengarah ke jejak paket yang tidak terasa seperti mereka seharusnya diinstal.
Tom Lianza

Sejauh ini opsi paling lurus ke depan jika Anda hanya ingin kunci perintah seperti kunci cmd di mac, terutama untuk salin dan tempel. Saya di ubuntu-gnome-desktop
lxm7

Ini berfungsi baik untuk perintah salin-rekat dan membuat saya terus-menerus membuka menu pencarian di Ubuntu. Sekarang saya hanya perlu memetakan Command-Tab ke Alt-Tab
Ron Smith

1
Saya tidak melihat Alat Tweak di aplikasi saya. Apa yang harus saya lakukan?
Jadda

13

Ada cara untuk memetakan Ctrlke Win/ Superkunci:

  1. pergi ke system-> preferensi-> keyboard ,

  2. buka Layout tab ,

  3. klik Opsi ... ,

  4. perilaku terbuka Alt/ Winkunci ,

  5. dan pilih Control dipetakan ke Win key

Dan untuk konsol ada posting forum bagaimana melakukannya di sini .

Untuk menggali lebih lanjut, periksa keyboard Linux umum HOWTO di sini .

salam


3
hey @danizmax - terima kasih atas balasannya ... tapi saya secara khusus ingin menghindari mengubah perilaku Ctrl yang lengkap ... Saya menemukan sekrup dengan hal-hal lain jika saya melakukannya ... Saya benar-benar ingin memetakan hanya pintasan keyboard yang saya sebutkan di posting ... terima kasih!
taman brad

Yah Ctr + tetap apa adanya. Ini hanya menduplikasi semua Ctrl + ke Super + sehingga Anda hanya menambahkan perilaku. Kecuali Anda benar-benar ingin mengubah hanya yang Anda sebutkan, Anda harus melakukan banyak penggalian dengan xmodmap dan loadkey. Saya telah menambahkan tautan ke papan ketik Linux umum HOWTO. Semoga ini bisa membantu: P
danizmax

1
Ini adalah solusi termudah dari semua yang diusulkan.
Datageek

1
Saya tidak melihat opsi "opsi" atau "alt / win key behaviour" dalam pengaturan sistem lagi di Ubuntu 15.10.
user29020

1
itu sekarang di tweak gnome, "keyboard dan mouse"
Yrogirg

8

Untuk memperluas cscarney ini AutoKey petunjuk , saya mengembangkan saya AutoKey konfigurasi untuk mencapai semua ini dalam Ubuntu (OS X seperti <cmd>+c, <cmd>+v, ... gaya Emacs <ctrl>+f, <ctrl>+b, ...) di saya repo dotfile .

Saya tidak menggunakan frasa dasar (di mana penyaringan jendela saat ini rusak ), tetapi skrip Python, untuk dapat menonaktifkan AutoKey di aplikasi seperti Emacs, Eclipse, Vim, gnome-terminal ... di mana saya tidak ingin mengacaukan menaiki pintasan yang ada.

Anda dapat melihat petunjuk READMEdi bagian bawah untuk mengetahui cara mengaturnya.


tautan rusak untuk aplikasi
chifliiiii

@chifliiiii memperbaiki tautan, tetapi perhatikan bahwa konfigurasi tertaut di dotfiles saya sangat mungkin sudah usang, karena saya belum menggunakannya selama bertahun-tahun.
metakermit

5

Beberapa solusi di atas sudah tua dan tidak berfungsi dengan Ubuntu 18.04. Ini jawaban yang diperbarui

  1. Instal gnome-tweaks jika tidak diinstal di sistem

    sudo apt-get install gnome-tweaks

  2. Buka daftar aplikasi dengan menekan Show Applications di sebelah kiri bawah.

  3. Perhatikan bahwa ini hanya akan mengubah perilaku kunci WINDOWS ke kunci CMD dan menjaga kunci CTRL sama seperti sebelumnya (Anda akan memiliki 2 kunci CTRL). Jika Anda tidak suka ini, lewati langkah 4 dan lanjutkan ke langkah 5

  4. Carilah Tweaks application --> Keyboard and Mouse --> Additional Layout options --> Alt/Win behavior --> Select Control is mapped to Win keys and the usual Ctrl Keys.

  5. Lewati langkah ini jika Anda menyelesaikan langkah 4. Langkah ini akan menukar Perilaku kunci Windows ke Ctrl dan sebaliknya. MencariTweaks application --> Keyboard and Mouse --> Additional Layout options --> Ctrl Position --> Select Swap Left Win with Left Ctrl

  6. Satu hal lagi yang saya lewatkan dari macOS adalah kemampuan untuk mengganti windows dengan CMD + Tab (dalam hal ini Windows + Tab). Untuk mencapai ini, pergi keSettings --> Keyboard --> Look for Switch Windows under navigation section --> Double Click it and press Windows+Tab when pop up appears


5

Saya ingin solusi yang akan bekerja di lingkungan desktop / window manager, jadi saya menggabungkan saran cscarney untuk menggunakan xautomation dengan SXHKD (daemon hotkey X sederhana).

Ini adalah ~/.config/sxhkd/sxhkdrcfile konfigurasi dasar yang saya hasilkan.

Lanjutan: Versi terbaru saya lebih lengkap, dan dapat mengirim penekanan tombol yang berbeda untuk aplikasi yang berbeda, tetapi memerlukan skrip eksternal, dan mungkin memiliki beberapa binding yang tidak Anda inginkan.

Berikut ini cuplikannya:

# Reload this config
control + alt + shift + r
  killall -USR1 -u "$USER" sxhkd && echo 'sxhkd config reloaded'

# Cut, copy and paste
alt + x
  xte "keyup x" "keyup Meta_L" "keydown Control_L" "key x" "keyup Control_L" "keydown Meta_L"
alt + c
  xte "keyup c" "keyup Meta_L" "keydown Control_L" "key c" "keyup Control_L" "keydown Meta_L"    
alt + v
  xte "keyup v" "keyup Meta_L" "keydown Control_L" "key v" "keyup Control_L" "keydown Meta_L"

# Open tab, close tab, restore closed tab
alt + t
  xte "keyup t" "keyup Meta_L" "keydown Control_L" "key t" "keyup Control_L" "keydown Meta_L"
alt + w
  xte "keyup w" "keyup Meta_L" "keydown Control_L" "key w" "keyup Control_L" "keydown Meta_L"    
alt + shift + t
  xte "keyup t" "keyup Meta_L" "keydown Control_L" "key t" "keyup Control_L" "keydown Meta_L"

# Move to home/end
alt + Left
  xte "keyup Meta_L" "keyup Left" "key Home" "keydown Meta_L"
alt + Right
  xte "keyup Meta_L" "keyup Right" "key End" "keydown Meta_L"
alt + shift + Left
  xte "keyup Meta_L" "keyup Left" "key Home" "keydown Meta_L"
alt + shift + Right
  xte "keyup Meta_L" "keyup Right" "key End" "keydown Meta_L"

# Move one word
super + Left
  xte "keyup Super_L" "keyup Left" "keydown Control_L" "key Left" "keyup Control_L" "keydown Super_L"
super + Right
  xte "keyup Super_L" "keyup Right" "keydown Control_L" "key Right" "keyup Control_L" "keydown Super_L"
super + shift + Left
  xte "keyup Super_L" "keyup Left" "keydown Control_L" "key Left" "keyup Control_L" "keydown Super_L"
super + shift + Right
  xte "keyup Super_L" "keyup Right" "keydown Control_L" "key Right" "keyup Control_L" "keydown Super_L"

catatan:

  • Seperti yang Anda lihat, jika saya melakukan keyup kunci pengubah asli sebelum melakukan stroke virtual, maka saya keydown lagi setelahnya. Ini berarti pengguna dapat mengulangi penekanan tombol mereka tanpa harus melepaskan dan menekan lagi tombol pengubah. Dengan kata lain, setelah menekan Alt-W, sistem melihat tombol Alt tertekan.

Peringatan:

  • Itu bisa menjadi masalah (terutama pada mesin yang lebih lambat) jika Anda melepaskan kunci Alt saat perintah xte masih berjalan . Anda akan berakhir dengan tombol Alt "sticky", karena xte telah menekannya untuk Anda!

  • Dengan menggunakan pendekatan ini, pemicu tidak akan mengulangi jika kunci ditekan. (Jadi Anda tidak dapat memindahkan 12 kata dengan menahan Super-Left.)


Saya dulu pernah menggunakannya bbkeys, tetapi sayangnya itu tidak dikemas pada banyak distro akhir-akhir ini.
joeytwiddle

4

Ini adalah tugas yang mudah setelah Anda tahu cara melakukannya.

1) Periksa kode kunci kunci milik Anda. Jalankan program ini di terminal.

xev


Pada contoh ini, terminal menunjukkan bahwa kode kunci untuk saya kadalah "45".

2) Ubah sesuai keinginan Anda saat membuat file ini:

gedit ~ / .Xmodmap

Kontennya akan terlihat seperti contoh ini:

keycode 64 = Alt_L Meta_L Alt_L Meta_L
keycode 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift

(Ubah nomor kode kunci sesuai kebutuhan - lihat langkah "1")

Ilustrasi:
(Obs .: jika saya ingin mengubah saya, ksaya harus menggunakan "kode kunci 45" seperti yang ditunjukkan pada langkah "1").

4) Logout dan masuk kembali atau reboot atau jalankan ini:

xmodmap ~ / .Xmodmap

Semoga anda menikmati ;-)



1


Instal CD Tambahan Tamu Pertama ( Devices->Insert Guest Additions CD image).

Aktifkan berbagi clipboard
Kemudian setelah reboot, di Virtualbox pergi ke Machine->Settings->General->Advanceddan atur
Shared Clipboard: Bidrectional

Ubah Kunci Host VirtualBox
Di Vitualbox/Preferences/Input/Virtual Machine/Host Key Combination
pilih sth berbeda lalu

Pemetaan Kunci :
Untuk cmd/ctrlpemetaan bagi saya menambahkan keyboard Bahasa Inggris (Macintosh) tampaknya menjadi solusi yang paling nyaman :)

Pergi ke Ubuntu Settings->Text Entry
(saya kira di versi yang lebih lama mungkin di Pengaturan Layout Keyboard)
Di bawah Input sources to use:hit plus (+)
tambahkanEnglish (Macintosh)

Saya menggunakan Ubuntu 14.04.3 LTS 64bit di VirtualBox 5.0.4


1

Ini solusi yang lebih sederhana, Kinto. Saya telah mengerjakan ini selama 3 tahun sekarang .. dan akhirnya merasa seperti saya dapat berkontribusi sesuatu karena seberapa baik kerjanya, tidak seperti 2 usaha terakhir saya. Ini ditujukan untuk x11, dan distro berbasis systemd, tetapi konsepnya akan terbawa ke Wayland setelah saya menemukan cara yang baik untuk mengimplementasikannya, meskipun ada peningkatan keamanan yang membuatnya sulit untuk dikerjakan.

1) Inti (bagi mereka yang hanya ingin melihat premis atau menerapkan solusi bergantian mereka sendiri, kasus tepi tidak tercakup).

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

2) Penginstal lengkap yang menggunakan systemd, bash, dan xprop. (Kasing tepi, seperti krom buku dicakup, secara mengejutkan sulit untuk didukung, tetapi saya menikmati milik saya sehingga semua orang dapat memperoleh manfaat!)

https://github.com/rbreaves/kinto

Alasan Kinto, bahasa Jepang untuk flip, adalah ini - bahkan jika Anda menyempurnakan pemetaan ulang untuk setiap aplikasi GUI normal menggunakan beberapa metode lain, Anda tidak akan memiliki jenis pengalaman Terminal yang sama, dengan mudah, di Linux seperti yang Anda lakukan pada Mac. Dan itu sangat disayangkan - karena Mac memanjakan kami pengembang dengan keymap yang bekerja sangat baik untuk aplikasi Terminal. Inti dari apa yang telah saya lakukan, dengan mengubah keymap Anda ke 1 dari 2 opsi tata letak melalui setxkbmap dan aplikasi aktif yang digunakan, adalah hal itu menghasilkan Anda harus membuat kunci pintas tambahan paling sedikit khusus untuk aplikasi tertentu.

Pada dasarnya, dengan solusi ini Anda tidak berjuang bagaimana cara membuat tombol pintas baru dengan benar atau mencoba menghindari konflik pintasan di aplikasi Terminal Anda vs aplikasi GUI lainnya. Anda cukup mendapatkan yang terbaik dari kedua kata itu, dan berfungsi dengan sangat mulus - selain menyertakan file konfigurasi pintasan default untuk berbagai terminal dan editor teks populer, yang dapat saya sertakan nanti. Bahkan editor teks seperti Sublime tidak hanya menukar tombol Cmd dengan Ctrl pada setiap pintasan, tetapi menyelaraskan dengan benar sekitar 95% atau lebih dari waktu yang saya katakan.

Dan berbicara tentang Wayland, saya memang memiliki bukti konsep tentang bagaimana cara membuat trik keywap keymap ini berfungsi pada KDE Plasma 5 dengan widget yang ada yang menggunakan nama aplikasi. Jika ada yang punya solusi yang lebih baik maka saya semua telinga, terutama jika itu dapat bekerja pada x11 juga. Xprop benar-benar mencukupi pada x11, tetapi jelas tidak digunakan di Wayland.

https://github.com/rbreaves/applet-window-title/commit/ff17e694579a52a9848d6bea87b2d11f22033718


0

Saya tidak punya Ubuntu untuk digunakan (Mac ada di sini, Ubu ada di kantor) tetapi saya menggunakan keyboard Mac di sana dan untuk alasan yang sama seperti Anda, ingin melakukan ini.

Hal pertama adalah memastikan keyboard Anda dipasang sebagai keyboard Mac. Saya pikir Anda dapat mengubah ini di keyboard system-> preferences->. Saat Anda berada di sana, salah satu tab akan membawa Anda ke halaman pemetaan kunci tempat Anda dapat mengatur cara kerja tombol cmd.

Seperti yang saya katakan, saya tidak ingat persis - saya bisa menunjuk ke bit di layar saya di sini, tapi itu tidak berfungsi karena saya tidak ada di sana.

Jika Anda masih terjebak besok, saya akan melihat lagi.


system-> preferensi-> keyboard-> layouts-> options
Leo

hai leo ... saya tidak menggunakan keyboard Mac dengan Ubuntu ... Saya menggunakan keyboard PC standar, yaitu "Generic 105 key (intl) PC" memang mencoba mengalihkan "model keyboard" saya ke Vendor Apple / Model Apple tetapi itu tampaknya tidak membuat perbedaan apa pun .... Saya juga mencoba Vendor Apple / Model Macbook dan itu tampaknya tidak mengubah apa pun juga ...
taman brad

dan untuk apa nilainya, saya menggunakan keyboard PC yang sama persis pada macmini saya juga, karena saya membelinya tangan kedua dan itu tidak datang dengan keyboard mac. Terima kasih lagi.
taman brad

0

Autokeys memang bekerja untuk saya. Sekarang win + c (v, x, a) bekerja di sekitar sistem saya seperti yang saya harapkan.

1. Pasang autokeys

sudo apt install autokey-gtk

2. Konfigurasikan autokeys

  1. Tambahkan folder root, sebut itu sesuatu seperti MacKeys atau apa pun
  2. Anda akan membuat 4 skrip di sana untuk ctrl-c, v, x dan a
  3. tetapkan untuk setiap skrip hotkey super-c, super-v dll
  4. isi skrip dengan kode di bawah ini (ganti huruf c untuk kombo lain)

winClass = window.get_active_class() keys = "<ctrl>+c" if winClass == "gnome-terminal-server.Gnome-terminal": keys = "<ctrl>+<shift>+c"; keyboard.send_keys(keys)

4a. Untuk CmdZ, CmdA atau CmdX bekerja dengan skrip sederhana sepertikeyboard.send_keys("<ctrl>+x")

3. Tambahkan / usr / bin / autokey-gtk ke aplikasi startup

4. Nonaktifkan win-A di pengaturan keyboard

Biasanya win-a beralih ke ikhtisar.

5. Opsional, sepenuhnya mencegah menang untuk mengalihkan ikhtisar

Mungkin Anda ingin menghapusnya. Instal gnome-tweak-tool, buka keyboard dan rebind beralih dari desktop ke ikhtisar. Itu berhasil untuk gnome ubuntu 16.04 saya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.