Vraag Hoe kan ik veranderen welke toetsen op mijn toetsenbord doen? (Hoe kan ik aangepaste toetsenbordopdrachten / snelkoppelingen maken?)
Ik wil de sneltoetsen op sommige toetsen op mijn toetsenbord wijzigen. Ik wil dat sommigen opdrachten uitvoeren en anderen om verschillende sleutels te activeren.
Welke applicaties kan ik gebruiken om dit te doen?
Inhoudsopgave:
Ik ben nog steeds op zoek naar antwoorden met behulp van dconf en een andere methode.
109
2018-02-12 23:38
oorsprong
antwoorden:
xbindkeys ..
sudo apt-get install xbindkeys
Xbindkeys is een zeer veelzijdig programma waarmee je heel eenvoudig sleutels opnieuw kunt toewijzen. Het gebruikt een configuratiebestand, mijn standaard bevindt zich in je thuismap, om toetsbindingen te veranderen in bepaalde commando's.
Om een standaard configuratiebestand te maken, gebruikt u de opdracht:
xbindkeys --defaults
Die het standaard configuratiebestand afdrukt. Dus als je wilt creëren het bestand met de standaardwaarden die u zou gebruiken:
xbindkeys --defaults > $HOME/.xbindkeysrc
Die de standaardwaarden in een verborgen bestand met de naam print .xbindkeysrc
gelegen in huis (~
).
Nu eigenlijk verandering de bindingen van de toetsen moeten we eerst weten wat de naam of het toetsenbord van die toetsen is. xbindkeys
staat ons toe om de -k
om de naam van een toets of toetscombinatie te vinden. Rennen:
xbindkeys -k
En druk op een toets of toetscombinatie. Je uitvoer zal er uitzien iets vergelijkbaar met deze (wanneer u op drukt ruimte):
"NoCommand"
m:0x10 + c:65
Mod2 + space
"No Command"
vertelt ons dat er momenteel geen commando is gekoppeld aan de Ruimte sleutel.
m:0x10 + c:65
Mod2 + space
Is de naam van de toets / toetscombinatie.
het configuratiebestand ..
Hiermee opent u het configuratiebestand dat u eerder hebt gemaakt:
gedit .xbindkeysrc
Hier is een fragment uit het standaard configuratiebestand:
#
# 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_show"
control+shift + q
Elke regel die begint met #
is een opmerking en zal niet worden gelezen of gerund xbindkeys
.
Tot nu toe is de enige regel die niet is becommentarieerd:
"xbindkeys_show"
control+shift + q
Dit fragment toont de basissyntaxis van xbindkeys
commando's:
"Command to run (in quotes)"
key to associate with command (no quotes)
Dus zoals je kunt zien:
"xbindkeys_show"
control+shift + q
Voert het commando uit xbindkeys_show
wanneer u op drukt Ctrl+Verschuiving+q.
bind toetsen aan commando's ..
Laten we nu proberen een paar sleutels te binden. Ik raad aan het volledige standaardbestand te wissen, zodat het leeg is. Het bevat vooraf ingestelde sneltoetsen die u waarschijnlijk niet wilt.
Laten we nu zeggen dat je wilt gebruiken Ctrl+b om uw browser te openen. Eerst moet je weten wat de naam of keysym van Ctrl+b is. Zoals eerder vermeld, kunt u gebruiken xbindkeys -k
om de naam van een sleutel of sleutels te vinden, maar er is een eenvoudigere manier. Voor eenvoudige combinaties zoals Ctrl+b je kunt gewoon gebruiken:
Control+b
Veel gemakkelijker is het niet!
Zoek nu het commando voor uw favoriete browser:
Weet je nog de syntaxis van vroeger? De xbindkeys
commando om Firefox (of uw andere favoriete browser) te starten wanneer u op drukt Ctrl+b is:
"firefox"
Control+b
Plaats dat nu in uw configuratiebestand en sla het op. Nu merkt u misschien dat uw opdracht nog niet werkt, dat komt omdat xbindkeys
draait niet. Om te starten, gewoon uitvoeren xbindkeys
van een terminal. Jouw Ctrl+b zou nu uw browser moeten starten!
bind sleutels aan andere sleutels ..
Als je een toets op je toetsenbord wilt om een andere toets op je toetsenbord te gebruiken, heb je een extra stuk software nodig als xbindkeys
ondersteunt dit niet op zichzelf. Ik ken twee programma's die we kunnen gebruiken, xdotool
en xte
. ik geef de voorkeur aan xte
dus ik ga dat gebruiken.
Installeer het:
sudo apt-get install xautomation
De syntaxis voor xte
is zoals dit:
xte 'command key/mousebutton/xyCoordinates'
Voorbeelden:
Om een enkele toetsaanslag te kiezen: xte 'key keyName'
Een toetsencombinatie bellen: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName
Om een muisknop te bellen: xte 'mouseclick buttonNumber'
(We zullen het vinden van knopnummers een beetje later bespreken)
De muis verplaatsen: xte 'mousemove xCoordinate yCoordinate'
En meer! Lezen man xte
Nu u het commando kent voor het simuleren van toetsaanslagen, kunt u dit vanuit uw xbindkeys
script, zoals dit:
"xte 'key b'"
Control+b
Zoals je misschien wel denkt, roept dit xte 'key b'
wanneer we op drukken Ctrl+b, die een a zou binnengaan b in elk document waar u momenteel aan werkt.
Wat ik echter opval, is dat xbindkeys
en xte
werken niet altijd heel goed samen. Soms moet je op de toetsen drukken precies op hetzelfde moment om output te krijgen, andere keren werkt het prima. Dit kan al dan niet te maken hebben met systeemconfiguratie en / of hardware. Ik weet het niet zeker. Zien het antwoord van maggotbrain voor een betrouwbaardere manier om toetsen aan andere toetsen te koppelen.
bind muisknoppen aan commando's ..
Je kan ook gebruiken xbindkeys
om muisknoppen te binden aan opdrachten (en vandaar toetscombinaties, zie hierboven). Het basisformaat voor muisknoppen hoort u nu bekend voor te komen:
" [command to run] "
b:n
Waar [command to run]
is de opdracht die u wilt uitvoeren en n
het nummer van de muisknop die u voor die opdracht wilt gebruiken.
Als u het nummer van uw muisknop niet weet, kunt u dit gebruiken xev
om erachter te komen wat het is:
xev | grep button
De uitvoer zal ongeveer zo zijn:
user@host:~$ xev | grep button
state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES
state 0x10, button 2, same_screen YES
state 0x210, button 2, same_screen YES
state 0x10, button 3, same_screen YES
state 0x410, button 3, same_screen YES
Wanneer ik op elk van mijn muisknoppen druk.
Bijvoorbeeld:
" firefox "
b:2
Lanceert firefox wanneer ik op de middelste muisknop druk.
80
2018-02-12 23:38
Xev en xmodmap
Sleutelbindingen wijzigen met xev
en xmodmap
.
Beide opdrachtregeltoepassingen zijn standaard beschikbaar, dus het is niet nodig om extra software te installeren.
xev "maakt een venster en vraagt vervolgens de X-server om het gebeurtenissen te verzenden wanneer er iets met het venster gebeurt (zoals het wordt verplaatst, van grootte verandert, ingetypt, aangeklikt, enz.)." xev man pagina
xmodmap is een "programma wordt gebruikt voor het bewerken en weergeven van de toetsenbordmodificatiekaart en de keymap-tabel die door clienttoepassingen worden gebruikt om gebeurtenissleutelcodes in keysyms om te zetten." xmodmap man pagina
In het volgende voorbeeld wordt het opnieuw toegewezen Caps Lock sleutel tot het gedrag van de Esc key (Veel vi / vim-gebruikers vinden dit een nuttige toetsenbordtoewijzing).
Xev gebruiken
Start de xev
toepassing vanuit een terminalvenster (Ctrl-alt-t).
De applicatie wordt geïnitialiseerd, geeft een aantal regels weer en start een leeg venster.
Houd de xev
toepassingsvenster in focus en druk op de toets waarvan u de eigenschappen / het gedrag wilt gebruiken.
In het terminalvenster ziet u verschillende regels met uitvoer. Noteer de geretourneerde derde regel. Dit bevat de naam van de eigenschap die u naar de andere sleutel wilt verplaatsen.
KeyPress event, serial 32, synthetic NO, window 0x3e00001,
root 0x256, subw 0x0, time 16245388, (616,73), root:(1487,535),
state 0x10, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
XLookupString gives 1 bytes: (1b) ""
In dit geval, de Esc toets (keycode 9) gebruikt de naam "Ontsnappen".
- druk de Caps Lock sleutel
Deze keer zijn we op zoek naar de sleutelcode die Caps Lock gebruikt.
Nogmaals, let op de 3e regel:
KeyRelease event, serial 32, synthetic NO, window 0x4c00001,
root 0x256, subw 0x0, time 94702774, (862,151), root:(1733,613),
state 0x10, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
XKeysymToKeycode returns keycode: 9
XLookupString gives 1 bytes: (1b) ""
Xmodmap gebruiken
Nu hebben we de informatie verkregen over de sleutels waarvan we willen veranderen xev
, we zullen gebruiken xmodmap
om de keymaps aan te passen.
Vanaf de opdrachtterminal (Ctrl+alt+t), voer de volgende opdrachten uit:
Met deze opdracht wijzigt u de Caps Lock om hetzelfde gedrag te gebruiken als Esc
xmodmap -e "keycode 66 = Escape"
Met deze optie wordt een keymap-tabel afgedrukt als uitdrukkingen in het bestand ~/.Xmodmap
xmodmap -pke > ~/.Xmodmap
Activeer de wijzigingen (alleen voor deze login-sessie) met de volgende opdracht:
xmodmap ~/.Xmodmap
Veranderingen blijvend maken bij herstarten:
Toetsen wijzigen met ander statusgedrag
(zoals
Num Lock)
Verkrijg de keymap-tabel voor de modificatietoetsen (uitvoer hier afgekort)
xmodmap -pm
shift Shift_L (0x32), Shift_R (0x3e)
mod2 Num_Lock (0x4d)
Als u bijvoorbeeld het gedrag van de periode wilt wijzigen del/Periode toets op het cijfertoetsenbord, naar een komma, gebruik de volgende opdracht:
xmodmap -e "keycode 91 mod2 = KP_Delete comma"
Merk op dat dit gebruikt wordtmod2
keymapping om het sleutelgedrag te veranderen wanneer de modifier Num Lock is ingedrukt.
De syntaxis hiervoor is:
xmodmap -e "<KEYCODE> <MODIFIER> = <behaviour> <behaviour_with_modifier>"
hulpbron
46
2018-02-17 22:01
Standaard (dit is alleen ter aanvulling van het uitstekende antwoord van Seth), heeft Ubuntu (in dit voorbeeld gebruik ik 16.04) 2 categorieën die standaard in de systeeminstellingen voorkomen:
Om naar de systeeminstellingen te gaan, op de Rechtsboven Klik op de Versnelling icoon:

Selecteer vervolgens Systeem instellingen:

Hier vindt u 2 opties die u naar het onderdeel Sneltoets maken kunnen sturen.

Als u selecteert Tekstinvoer je zult de moeten selecteren Toetsenbordinstellingen Link rechtsonder, die u rechtstreeks naar de snelkoppelingsopties zou sturen.

Als u de Toetsenbord optie, zou u moeten klikken op de shortcuts tab

Na aankomst op de tabbladen Snelkoppelingen selecteert u de Aangepaste snelkoppelingen onderaan de lijst aan de linkerkant:

En klik vervolgens op de Plusteken onderaan om je eigen snelkoppeling te maken:

Vanaf dat punt is het gewoon een kwestie van dat je de naam van de snelkoppeling toevoegt (Verwar de naam van de snelkoppeling niet voor de naam van het daadwerkelijke commando dat je gaat uitvoeren). En hieronder, in het Command-veld, is waar u zult plaatsen welk commando zal worden uitgevoerd voor deze snelkoppeling. In het volgende voorbeeld noemde ik de snelkoppeling "Sublieme tekst 3" om te weten waar die specifieke snelkoppeling betrekking op heeft. En op het commandoveld heb ik het eigenlijke commando toegevoegd dat dat is subl
.

U zult eindigen met het volgende op het scherm dat laat zien dat, aangezien de sneltoets nog geen toets of sleutelcombinatie heeft toegewezen, deze standaard Uitgeschakeld is:

We zouden vervolgens op het bericht "Uitgeschakeld" klikken om er een toetscombinatie aan toe te voegen:

In dit deel wijs ik de toetscombinatie toe van VERSCHUIVING+CTRL+S zodat wanneer ik op deze combinatie druk, de Sublime-tekstapp wordt geopend.

Hierna kunt u eenvoudig uw combinatie testen door op de overeenkomstige toetscombinatie te drukken en de app te openen:

OPMERKING: Voor speciale combinaties zoals degene die de X Server doodt, raad ik aan de volgende link te bezoeken: Hoe schakel ik Ctrl-Alt-Backspace in om de X-server te doden?
40
2018-02-13 00:44
Ga naar Systeem instellingen → keboard, selecteer shortcuts tab en voeg een nieuwe aangepaste snelkoppeling toe voor uw browser. Als uw standaardbrusser Firefox is, gebruik dan firefox
voor in opdrachtveld; als uw standaardbrusser Firefox is, gebruik dan chromium-browser
, enzovoort:

20
2017-08-12 11:45
U kunt complexe (multi-key) sneltoetsen maken door het te installeren autokey van het softwarecentrum. In tegenstelling tot xmodmap koppelt de AutoKey de feitelijke toetsen op uw toetsenbord niet opnieuw; het werkt op de achtergrond en onderschept uw gedefinieerde toetsenbordsnelkoppelingen en verzendt vervolgens gesimuleerde toetsaanslagen naar uw toepassingen.
De eerste keer dat u AutoKey start, wordt de service op de achtergrond gestart (het meldingspictogram is niet bijgewerkt voor eenheid, dus er is geen visuele indicatie). Als het eenmaal is uitgevoerd, kunt u de configuratie-interface openen door het opstartprogramma opnieuw uit te voeren:

Open nu Bewerken> Voorkeuren en selecteer "Automatisch starten van AutoKey bij inloggen" om ervoor te zorgen dat uw snelkoppelingen werken wanneer u bent aangemeld.
Een sneltoets toewijzen aan een andere sneltoets
- Selecteer Bestand> Nieuw> Frase.
- Zorg ervoor dat "Paste using" is ingesteld op "Keyboard".
Typ de toetsen die u wilt toewijzen naar in het tekstvak.
- Speciale (niet-teken) toetsen worden weergegeven bij de gedocumenteerde codes hier.
- Als u meerdere sleutels typt, worden ze op volgorde verzonden, tenzij u een
+
tussen hen (bijv. <ctrl>+c
zou in de meeste toepassingen kopiëren; <ctrl>+c<ctrl>+n<ctrl>+v
zou een nieuw document creëren dat de selectie bevat; <shift>+ubuntu
zou de tekst "Ubuntu" typen)
Druk op de knop "Instellen" naast "Sneltoets". Hierdoor wordt een dialoogvenster geopend waarin u de toetscombinatie kunt bepalen die u wilt toewijzen van:

Selecteer Bestand> Opslaan
Een voorbeeld van een voltooide configuratie (die verzendt <enter>
wanneer u op drukt <ctrl>+m
) het lijkt hierop:

18
2018-06-06 14:10
Probeer dit:
Installeer een programma met de naam XKeyCaps. Om te installeren, drukt u gewoon op Ctrl+alt+T op je toetsenbord om Terminal te openen. Wanneer het wordt geopend, voert u de onderstaande opdracht (en) uit:
sudo apt-get install xkeycaps
Na de installatie kunt u xkeycaps doen op de prompt om het programma uit te voeren. Als het eenmaal is uitgevoerd, kiest u de juiste toetsenbordindeling en klikt u op OK
Als je dan het toetsenbord op het scherm hebt, klik je met de rechtermuisknop op de gewenste toets, in jouw geval de Sen kies uitwisseltoetsen.

Zorg ervoor dat je de onderstaande regel toevoegt aan je sessies, zodat deze automatisch wordt gestart wanneer je opstart.
xmodmap ~/.xmodmap-`uname-n`
Bron: UFM ytsejam1138
14
2018-05-26 09:09
Als je alleen maar de sleutels opnieuw wilt toewijzen, zijn de andere antwoorden geweldig.
Er is echter een andere manier om het te benaderen. autokey is een toetsenbord-macroprocessor waarmee u elke toetscombinatie / modificatorcombinatie kunt koppelen aan een macro die bijna alles wat u kunt doen, kunt doen vanaf uw toetsenbord en nog veel meer.
AutoKey heeft een macro-recorder en een eenvoudige manier om basissleutelreeksen in te voeren, maar de macro's ervan zijn geschreven in Python en kunnen bijna alles doen wat je kunt coderen.
De eenvoudigste manier om het te gebruiken is om toetsaanslagen naar uw toepassingen / desktop te sturen. Als het op deze manier wordt gebruikt, kunnen het systeem / de toepassingen niet zeggen dat u niet typt, dus er is geen API of andere interface nodig, ze doen gewoon wat u hebt getypt.
AutoKey kan ook frases verwerken. Wanneer u een triggeringstekenreeks typt, kan deze nieuwe tekst voor die tekenreeks vervangen (hetzij onmiddellijk, hetzij nadat u een scheidingsteken hebt ingevoerd zoals een nieuwe regel of een nieuw tabblad.)
Het heeft ook venstelfilters, zodat je een bepaalde frase of macro kunt beperken om alleen in bepaalde soorten vensters te draaien (zoals die met Mozilla in de titel, zodat ze alleen werken in zaken als Firefox of Thunderbird).
AutoKey heeft momenteel Gtk- en Qt-versies.
bewerkingen:
Installatie gids
Dit is erg gedetailleerd. We hebben geprobeerd het toegankelijk te maken voor zowel beginners als experts.
Gebruikersforum
Actief gebruikersforum.
Er was een plaats voor scripts die werden bijgedragen, maar het lijkt te zijn verdwenen. Ik zal dat controleren. Omdat het in de eerste plaats een GUI-app is met veel opties, zouden voorbeelden veel schermafbeeldingen en een heel artikel vereisen.
Ik heb een zin gedefinieerd, zodat wanneer ik typ "Jmail!", deze wordt meteen vervangen door mijn vrij lange e-mailadres.
Ik schreef een macro die wordt getriggerd door te typen Ctrl-P welke alleen actief is in vensters met "Mozilla" in hun titel. Typen Ctrl-P brengt het afdrukvenster (Firefox of Thunderbird) naar voren, selecteert Afdrukken naar bestand en vult vervolgens de naam van het volgende beschikbare afdrukbestand in mijn afdrukwachtrij in (ik nummer 01, 02, ... en het script leest de wachtlijstmap, vindt het laatste bestandsnummer en verhoogt het met 1). Ik gebruik het met mijn duplexafdrukken-emulatiesoftware (duplexpr) om een hele reeks toetsaanslagen en muisbewegingen te elimineren (alleen met toetsenborddingen werkt AutoKey nog niet (dit is in ontwikkeling) en produceert automatisch muisgebeurtenissen).
Ik heb een aantal andere macro's van gamers gezien die hen snel toegang gaven tot informatie over hun karakter en middelen, zodat ze gefocust kunnen blijven op de actie.
8
2018-02-13 21:47
KEYBOARD-TOETSEN GEBRUIKEN ALS MUISKNOPPEN
Misschien wilt u een klaviertoets toewijzen aan een muisknop. Als u wilt klikken met een toetsenbordtoets (handig als u een macbook of een slechte trackpadknop hebt), kunt u het volgende doen.
installeer wat hulpprogramma's:
sudo apt-get install x11-utils xkbset x11-xserver-utils
zoek de sleutelcode voor de sleutel die u wilt toewijzen:
- type
xev | grep keycode
in de terminal
druk op de gewenste toets en een regel als deze verschijnt:
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
gebruik de sleutelcode, wijs de sleutel opnieuw toe om hetzelfde te doen als de linkermuisknop:
xkbset m
xmodmap -e "keycode 64 = Pointer_Button1"
Pointer_Button3
is de rechtermuisknop en Pointer_Button2
is het midden.
6
2017-11-15 19:14