Teams > Documentatie
Tip: je zelfgemaakte tekstexpansiesoftware
(1/1)
vanadium:
1. Inleiding
We hebben allemaal wel korte stukjes tekst die we regelmatig opnieuw typen. Er bestaan programmaatjes waarmee je zulke tekstjes aan sneltoetsen of afkortingen kan toewijzen, zodat je dezelfde tekst met veel minder toetsaanslagen kan invoeren. Voor Windows is er Autohotkey. TextExpander is gekend op het Mac platform.
Voor Linux is AutoKey het enige programma wat hiermee vergelijkbaar is. Jammer genoeg wordt het al sedert 2013 niet meer bijgewerkt. Op recente Ubuntu versies werkte het al een tijdje niet meer, behalve als je "ibus" uitschakelt. Dit is een instelling onder "Taalondersteuning" die voor ondersteuning voor de invoer van allerlei talen zorgt. In de nieuwste Ubuntu 16.04 zorgt het uitschakelen van ibus opeens voor problemen als je een toetsenbord met dode letters gebruikt. In Ubuntu 16.04 is AutoKey dus helemaal niet goed meer te gebruiken, althans als je een toetsenbord met dode letters wil blijven gebruiken.
Gelukkig heb ik in dit artikel van Dmitri Popov een eenvoudige manier gevonden om de functionaliteit terug te krijgen zonder AutoKey. Het werkt via een eenvoudig scriptje, en werkt voor mij tot nu toe vlot, gemakkelijk en betrouwbaar (en dat zónder een extra programma te moeten laden).
Laten we zelf zien hoe je je brief aan Oma in de toekomst zeer efficiënt met slechts drie toetsaanslagen kan afsluiten.
2. Installatie
1) Installeer twee tooltjes (kopieer en plak. Hier roep je beheerdersrechten in: geef, wanneer gevraagd, je gebruikerslogin en je paswoord.):
--- Code: ---sudo apt-get install xsel xdotool
--- Einde van code ---
2) Installeer het script
2.1) Als je in je home folder nog geen bin folder hebt, maak dan één aan
--- Code: ---mkdir ~/bin
--- Einde van code ---
2.2) Maak je script aan in die folder (vervang gedit door de editor van je keuze).
--- Code: ---gedit ~/bin/snippy.sh
--- Einde van code ---
Plak volgende tekst in de editor en bewaar het bestand. (Dit wordt dus een bestand snippy.sh in de folder bin) (het oorspronkelijke script werd lichtjes door mij aangepast).
--- Code: ---#!/bin/bash
# read the abbreviation
xdotool key --delay 0 ctrl+shift+Left ctrl+x
sleep 0.3s # to work reliably in Firefox
SELECTION=`xsel -b`
# read snippet file
xsel -b -i < ~/.snippy/${SELECTION}
# paste snippet
xdotool key --clearmodifiers --delay 0 Control_L+v
xdotool key --clearmodifiers --delay 0 Control_L
--- Einde van code ---
2.3) Maak het script uitvoerbaar: rechts-klik het bestand in je bestandsbeheer, eigenschappen, en op de tab "Permissies" vink je aan dat het bestand uitvoerbaar moet zijn. Kan ook (veel vlugger) met de terminal: (kopieer en plak)
--- Code: ---chmod +x ~/bin/snippy.sh
--- Einde van code ---
3) Installeer je afkortingen
3.1) Activeer "Toon verborgen folders" in je bestandsbeheer en maak een folder .snippy aan in je home folder. Het punt vooraan de naam van die folder maakt dit een verborgen folder, zodat je die tijdens je gewone werk niet hoeft te zien.
3.2) Plaats in die folder al je afkortingen. Dit zijn eenvoudig tekstbestandjes die telkens een tekstfragment bevatten. De naam van het bestand is de afkorting waarmee je het tekstfragment wil oproepen.
Onderstel dat we onze brieven aan oma graag afsluiten met:
--- Citaat ---Dat was het weer voor deze keer. Tot de volgende keer!
Met de meeste groeten van je liefste kleinkind
Jouw Fransje
--- Einde van citaat ---
We maken een afkorting aan, om de letters "gr" automatisch door deze tekst te kunnen vervangen. Hiertoe maak je in de folder .snippy een tekstbestand aan met de naam "gr".
--- Code: ---gedit ~/.snippy/gr
--- Einde van code ---
Plak de tekst in de editor en sluit af.
4) Sneltoets toewijzen aan je script
Nog een laatste stap: we willen het script vanuit elk programma kunnen aanroepen met een sneltoets. Ga naar "Instellingen - Toetsenbord" en kies daar de "Sneltoetsen" tab. In het linkerpaneel onderaan zie je "Custom shortcuts". Klik dat, en klik dan de +knop om er één aan te maken. Vul de velden in: Naam: snippy; Commando: /home/$USER/bin/snippy.sh (vervang hier $USER door je eigen login naam!). Klik dan op de knop "Toepassen, en je nieuwe "snippy" shortcut verschijnt in de lijst. Klik erop, en druk nu op de sneltoets waarmee je dit script wil opstarten. Ik kies hiervoor Ctrl+= (Ctrl en = tegelijk indrukken). Ik raad af een alt toets te gebruiken, want dan loop je teveel het risico dat de focus van je programma verandert (naar het menu, naar de hud, ---).
3. De Grote Test!
Als alle goed gaat, zou je eerste afkorting moeten werken. Open je editor of je mail programma. Type "gr" en druk daarna op je sneltoets (Ctrl+s). "gr" zou nu automatisch moeten vervangen worden door de inhoud van het bestandje .snippy/gr.
Je kan zoveel afkortingen aanmaken als je zelf wil door tekstbestandjes met de korte naam die je wenst toe te voegen aan de .snippy folder. Dan kan je die afkortingen in elk programma gebruiken dat standaard toetsen voor tekstbewerking ondersteunt. Het script werkt immers door eerst je afkorting te selecteren met de toetsencombinatie Ctrl+Shift+Left (dit selecteert het woord links van de cursor). Dan wordt de afkorting naar het klembord gekopieerd. Het script haalt de afkorting vanuit het klembord op, en plaatst nu de inhoud van het bestand op het klembord. Tenslotte plakt het script met Ctrl+v de inhoud in je tekst.
Veel plezier en doe er je voordeel mee!
vanadium:
Achtien jaar later. We houden er nog steeds van dat de computer ons werk verlicht, maar het is een andere wereld: Wayland is de norm, en het scriptje in vorig bericht doet het niet meer.
Met vier lijntjes heb je tekstexpansie op Wayland:
--- Code: ---#!/bin/bash
# Dependencies: wl-clipboard; dotool
SNIPPYDIR=$HOME/.local/share/snippy
echo key ctrl+shift+left | dotoolc
wl-copy -n < "$SNIPPYDIR/$(wl-paste -n -p)"
echo key ctrl+v | dotoolc
--- Einde van code ---
Installatie
1. Installeer wl-clipboard vanuit het software centrum:
--- Code: ---sudo apt install wl-clipboard
--- Einde van code ---
2. Installeer dotool volgens de instructies op de website
3. Maak het script aan:
* Kopieer de code bovenaan kopiëren in een bestand ~/.local/bin/snippy
* Maak dat bestand uitvoerbaar: "chmod +x ~/.local/bin/snippy"
Mogelijk heb je nog geen folder ~/.local/bin/. Indien niet, maak die aan. Log daarna even uit en dan weer in. Nu wordt die folder automatisch in je PATH opgenomen.
4. Maak een folder ~/.local/share/snippy, en plaats daarin je textfragmenten. De naam van het bestand zal de afkorting zijn waarmee je later de ganse text kan oproepen, bijvoorbeeld "gr" voor een afsluitende groet van een mail.
5. Bind het script aan een sneltoets. Ik gebruik Ctrl+,
Gebruik
Type, terwijl je een email aan het schrijven bent, "vg". Druk dan op de sneltoets Ctrl+,. Automatisch wordt "vg" vervangen door de eindgroet die je in het bestand ~/.local/share/snippy/vg hebt staan.
dotool werkt (voor mij) zeer goed, beter dan het vergelijkbare ydotool. Er was voor mij in het script geen pauze nodig. Gaat iets niet altijd betrouwbaar, probeer dan tussen de stappen een kleine pause in te voegen. Bijvoorbeeld "sleep 0.1" wacht 100 milliseconden.
[/list]
Navigatie
[0] Berichtenindex
Naar de volledige versie