Bagaimana saya bisa membuat Ctrl + Alt bertindak seperti Alt gr di Ubuntu?

11

Saya baru-baru ini beralih ke Ubuntu di laptop saya dan satu hal yang hampir membuat saya beralih kembali ke windows adalah kenyataan bahwa saya tidak dapat membuat Ctrl+ Altuntuk bertindak seperti Alt gr.

Saya telah memprogram dalam beberapa tahun dan misalnya saya sudah terbiasa membuat tanda "$" dengan menekan ctrl+ alt+ 4. Di sini, di Ubuntu saya harus menggunakan "Alt gr + 4" penyihir hampir membuat saya gila ...

Apakah ada perbaikan untuk ini?

Elitasson
sumber
1
Sudahkah Anda mencoba bermain-main dengan pemetaan komposisi? help.ubuntu.com/community/ComposeKey
Tim Kennedy
Anda dapat menggunakan xmodmapperintah untuk melakukan ini. Lihat ini askubuntu.com/questions/5095/typing-using-key-combinations
Bichoy
Coba xmodmap, yang tersedia dalam paket x11-xserver-utils di ubuntu. Ini memungkinkan Anda untuk memetakan ulang kombinasi tombol apa pun.
Warren
@elitasson Jika Anda menemukan jawaban untuk pertanyaan Anda sendiri, harap cantumkan sebagai jawaban terpisah.
Bernhard
@ Bernhard Tidak, Anda tidak dapat melakukan ini dengan xmodmap. Itu tidak mendukung membuat kombinasi Ctrl + Alt pengubah yang berbeda. Tapi saya pikir Anda bisa dengan xkb .
Gilles 'SO- stop being evil'

Jawaban:

3

Anda dapat menambahkan pintasan global untuk menulis karakter khusus. Saya sering menggunakan ini untuk tata letak keyboard Jerman saya dengan Ubuntu (pada Windows ini bekerja di luar kotak).

Saya menambahkan pintasan berikut:

Shift+ Enter+ 7untuk menulis surat{

Shift+ Enter+ 0untuk menulis surat}

Shift+ Enter+ 8untuk menulis surat[

Shift+ Enter+ 9untuk menulis surat]

Untuk menambahkan pintasan ini, Anda perlu xbindkeysdan xvkbd:

sudo apt-get install xbindkeys xvkbd

Kemudian edit file konfigurasi:

vim ~/.xbindkeysrc

Dan tambahkan baris berikut (edit sesuai keinginan Anda):

"xvkbd -xsendevent -text '{'"
    m:0xc + c:16
    Control+Alt + 7

"xvkbd -xsendevent -text '['"
    m:0xc + c:17
    Control+Alt + 8

"xvkbd -xsendevent -text ']'"
    m:0xc + c:18
    Control+Alt + 9

"xvkbd -xsendevent -text '}'"
    m:0xc + c:19
    Control+Alt + 0

"xvkbd -xsendevent -text '\[backslash]'"
    m:0xc + c:20
    Control+Alt + ssharp

"xvkbd -xsendevent -text '\[asciitilde]'"
    m:0xc + c:35
    Control+Alt + plus

Kemudian muat ulang xbindkeys:

xbindkeys -f ~/.xbindkeysrc

Terima kasih kepada jagoan untuk berbagi ini ( http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/ ).

cheneym
sumber
1
Bisakah Anda menjelaskan apa yang dilakukan baris m: 0xc + c: XX?
elitasson
1
Saya tahu ini adalah pertanyaan dan jawaban lama, tetapi hanya untuk mereka yang ingin menambahkan lebih banyak karakter seperti | atau @ atau €: Kode-kode kunci yang digunakan pada c:XX, sejauh yang saya tahu, tidak universal, sehingga Anda tidak akan beruntung dengan googling itu. Namun Anda dapat menemukan kode kunci secara lokal dengan menginstal dan menjalankan "xev" di baris perintah Anda. Ini akan mencetak semua tindakan keyboard dan mouse Anda, jadi Anda harus menggulirkan sedikit untuk menemukan karakter "Anda".
Nano Miratus
1
Misalnya, menekan <(untuk mengonfigurasi |) saat menjalankan xev akan mencetak ini: KeyRelease event, serial 40, synthetic NO, window 0x4c00001, root 0x7e, subw 0x0, time 35363548, (135,60), root:(903,472), state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES, XLookupString gives 1 bytes: (3c) "<" XFilterEvent returns: FalseAngka yang Anda butuhkan selalu di baris ketiga, setelah "kode kunci". Jadi dalam hal ini, 94.
Nano Miratus
2

Setelah mencoba dan gagal membuatnya berfungsi dengan kombinasi xbindkeys dan xvkbd / xte (saya tidak pernah bisa mendapatkan karakter tertentu {, [,],}, \, dll. Untuk berperilaku dengan benar mungkin karena saya menggunakan tata letak keyboard Skandinavia), Saya akhirnya menemukan solusi sederhana dan praktis: Autokey. Berikut adalah petunjuk yang tepat untuk membuatnya berfungsi:

  1. Instal Autokey melalui Perangkat Lunak Ubuntu (saya menggunakan versi GTK, bukan KDE) atau dengan: "sudo apt-get install autokey-gtk".
  2. Konfigurasikan satu skrip per kunci, misalnya untuk {gunakan kode ini: keyboard.send_keys("<alt_gr>+7")dan atur hotkey ke Ctrl + Alt + 7 (atur hotkey pertama ke 7 kemudian tambahkan Ctrl dan Alt sebagai pengubah). Ini setidaknya berfungsi untuk kunci penulisan kode yang paling penting: {[]}.
  3. Tambahkan autokey ke Aplikasi Startup (cari "start" untuk menemukannya) dan kemudian tambahkan program dengan "autokey" sebagai perintah.

Solusi ini akan bekerja untuk apa pun yang berjalan di sesi X saat ini (saya pikir) tetapi tidak akan berfungsi jika Anda memulai sesi terminal baru menggunakan Ctrl + Alt + (F2-F6).

Jim Björklund
sumber
1

Meskipun ini masih belum menjawab pertanyaan Anda, saya menemukan ini menjadi solusi yang lebih mudah daripada jawaban lainnya.

Agar R-ALTseperti bekerja AltGr, Anda dapat menambahkan baris berikut ke ~/.xinitrc:

setxkbmap -option lv3:ralt_switch

Cara lain untuk beralih ke level 3 (yang biasanya dicapai menggunakan AltGrkunci) dapat ditemukan, dan cara baru dapat didefinisikan dalam /usr/share/X11/xkb/symbols/level3.

oleks
sumber
1

Inilah yang saya lakukan untuk membuat L-Altkunci bertindak persis sama dengan Altgrkunci. Saya tidak mencoba dengan CtrlAltkuncinya

Ini terdiri dalam memodifikasi file level3

Di terminal, ubah direktori:

cd /usr/share/X11/xkb/symbols

buat salinan file level3:

sudo cp level3 level3.old

edit level3 dengan editor teks apa pun:

sudo gedit level3 

Anda harus menemukan blok seperti ini:

  key <RALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

Tambahkan salinan blok dengan LALT (alt kiri) alih-alih RALT (altgr):

  key <LALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

Sekarang, harus ada 3 blok lain yang dimulai dengan key <RALT>

Lakukan hal yang sama dengan mereka.

Simpan dan keluar.

Quentin Donner
sumber
0

Saya hanya menggunakan tanda-tanda khusus ketika saya menulis kode sehingga saya berhasil memperbaikinya adalah Teks Sublim.

Dalam Preferensi -> binding Utama - Pengguna

masukkan yang berikut ini:

[
{ "keys": ["ctrl+alt+2"], "command": "insert", "args": {"characters": "@"} },
{ "keys": ["ctrl+alt+3"], "command": "insert", "args": {"characters": "£"} },
{ "keys": ["ctrl+alt+4"], "command": "insert", "args": {"characters": "$"} },
{ "keys": ["ctrl+alt+5"], "command": "insert", "args": {"characters": "€"} },
{ "keys": ["ctrl+alt+7"], "command": "insert", "args": {"characters": "{"} },
{ "keys": ["ctrl+alt+8"], "command": "insert", "args": {"characters": "["} },
{ "keys": ["ctrl+alt+9"], "command": "insert", "args": {"characters": "]"} },
{ "keys": ["ctrl+alt+0"], "command": "insert", "args": {"characters": "}"} },
{ "keys": ["ctrl+alt++"], "command": "insert", "args": {"characters": "\\"} },
{ "keys": ["ctrl+alt+<"], "command": "insert", "args": {"characters": "|"} }

]

Elitasson
sumber