Devilspie2 is een programma waarmee je vensters die aangemaakt worden, kunt manipuleren. De uit te voeren vensterbewerkingen worden in een script gedefinieerd. Devilspie2 scripts worden geschreven in de scripttaal LUA.
Lua is een krachtige, snelle en dynamisch getypeerde imperatieve scripttaal die veel als geïntegreerde scripttaal in applicaties gebruikt wordt, maar ook los gebruikt kan worden. De taal heeft een eenvoudige syntaxis (zinsbouw) met enkele primitieve types (zoals booleans, doubles en strings) en tabellen, in essentie associatieve arrays, waarmee bekende en krachtige datastructuren zoals arrays, lijsten en hashmaps geconstrueerd kunnen worden. De scripts worden uitgevoerd op een virtuele machine met garbage collection. Lua wordt door zijn eigenschappen veel gebruikt voor configuratie en automatiseren (scripts) van taken in programma's.
De standaard softwarebronnen van openSUSE Leap 42.1 bieden devilspie2 niet aan. Als volgt installeer je in een terminal het devilspie2 pakket uit de X11:common:Factory softwarebron:
dany@laptop:~> sudo /sbin/OCICLI https://software.opensuse.org/ymp/X11:common:Factory/openSUSE_Leap_42.1/devilspie2.ymp
root's password:
Als u verdergaat, dan worden de volgende installatiebronnen toegevoegd:
* http://download.opensuse.org/repositories/X11:/common:/Factory/openSUSE_Leap_42.1/
Als verdergaat, dan zullen de volgende softwarepakketten worden geïnstalleerd op uw systeem:
* devilspie2
Continue? y/N
y
Toevoegen van installatiebronnen...
Cache van opslagruimte 'X11:common:Factory' bouwen
Opslagruimte 'X11:common:Factory' toevoegen
Installeren van pakketten...
Als je dilvilspie2 niet start met de --folder optie, wordt standaard de map ~/.config/devilspie2/ gebruikt. Indien de map niet bestaat, wordt deze automatisch door devilspie aangemaakt. Als devilspie geen LUA scripts in deze map aantreft, wordt devilspie afgebroken.
dany@laptop:~> devilspie2 --help
Usage:
devilspie2 [OPTION...] - apply rules on windows
Help Options:
-h, --help Show help options
Application Options:
-d, --debug Print debug info to stdout
-e, --emulate Don't apply any rules, only emulate execution
-f, --folder=FOLDER Search for scripts in this folder
-v, --version Show Devilspie2 version and quit
Als voorbeeld plaats je volgend script in de map ~/.config/devilspie2/, geef dit script als naam test.lua:
debug_print("Window Name: ".. get_window_name()); debug_print("Application name: "..get_application_name()) if (get_application_name()=="Firefox") then maximize(); end
Daarna start je devilspie2 met de optie --debug. Zolang devilspie2 loopt, wordt elk nieuw Firefox venster gemaximaliseerd (zie script). Devilspie2 zelf stop je door deze af te breken met de sneltoets Ctrl+c.
Het spreekt voor zich dat devilspie2 meer kan, maar daarvoor verwijs ik naar de handleiding van devilspie2.