Pár funkció hiányzik nekem a Cinnamon felületen, az egyik az I3wm-ben megszokott funkció, amivel megadhatom, hogy egy ablak, program pontosan hol jelenjen meg nyitáskor. Kisebb keresgélés után pár megoldást találtam. Nem túl kényelmes, hiszen nem grafikus felületű, de a konfigurációk szerkesztését nekem megéri a cél érdekében. Plusz ezek független programok, bármelyik xorg-ot használó környezetben működni fognak.
Miért? Mert szeretem, ha minden lehetőséget én állítom be. Illetve egy előre definiált összeállítást is indíthatunk, amiben minden ott és akkora lesz, mint amit én akarok.
Devilspie vagy Devilspie2 használata
Ha részletes vezérlésre van szükséged, egy Devilspie vagy Devilspie2 nevű programmal pontosan meghatározhatod az ablakok megnyitásának pozícióját és méretét.
Telepítés:
Nyiss egy terminált és futtasd a következő parancsot:
sudo apt install devilspie2
Ez Linux Mint alatt simán települt, ha esetleg problémás nálad, akkor az oldalukat érdemes megnézni itt. Itt találsz leírást amit, ha az alap használatnál többet akarsz, akkor mindenképp tedd meg.
Konfiguráció:
Hozz létre egy konfigurációs fájlt:
mkdir -p ~/.config/devilspie2 nvim ~/.config/devilspie2/rules.lua
Azaz ez lesz a konfigurációs állomány, ha majd menteni akarod a beállításaidat. Illetve meg is nyitjuk, én - nem meglepő mód - az nvim-et használva.
Írd bele a következő kódot (példa egy kitty ablakra):
if (get_application_name() == "kitty") then set_window_position(100, 100); -- X és Y koordináták set_window_size(800, 600); -- Szélesség és magasság end
A formátum így is jó:
if (get_window_class() == "kitty") then set_window_geometry(100, 200, 800, 600); -- X, Y, szélesség, magasság end
Gondolom a szintaktika egyértelmű.
Ha nem ismered a pontos WM_CLASS értéket, akkor érdemes a
xprop | grep WM_CLASS
parancsot futtatni, az egeret a lekérdezendő ablak fölé vinni.
Majd futtasd a Devilspie2 programot:
devilspie2 &
Ha minden jól működik, beállíthatod, hogy a Devilspie2 automatikusan induljon a rendszerrel.
Az esetek 70-80 százalékában ez így rendben is lesz. A többi, ahol önfejűen a program magához rendeli a hely, méret stb. meghatározását, ott ez nem fog menni. Ez van.
WMCTRL használata:
A wmctrl segítségével szkriptből is beállíthatod az ablakok helyzetét és méretét. Elvileg ez alapból telepítve van.
Telepítés:
sudo apt install wmctrl
Alapok
wmctrl -x -r "kitty" -e 0,100,100,1024,768
Ez a Kitty ablakot a (100,100)-as koordinátára helyezi és 1024x768 méretűre állítja. A bevezető nulla a bal felső sarkot jelenti ki a koordináta origójának.
Bár sok helyen más a szintaktika, de mindenképp használd a -x kapcsolót, ha a WM_CLASS értéket (nevet) adsz meg. Más lehetőség is van, de ha már ezzel a névvel kezdtünk, használjuk ezt. Az -x kapcsolóval az ablakot az alkalmazás WM_CLASS értéke alapján célozza meg, ami jó eséllyel egy stabil érték.
Ez alapvetően nem jelent nagy könnyebbséget, de ha mindezt scriptesítjük, akkor már egy kész, előre beállított program csoportot hozhatunk létre, amik a helyükön nyílnak meg.
Egy nagyon faék egyszerűségű megoldás két program megnyitására és helyrerakására:
#!/bin/bash # Terminál indítása bal oldalon kitty & sleep 1 # Vár az ablak megnyitására wmctrl -x -r "kitty" -e 0,0,0,800,400 # progtam indítása jobb oldalon filerename-stt & sleep 2 wmctrl -x -r "filerename-stt" -e 0,800,0,1120,1000
Az indítás és a kicsi várakozás alatt lehet, hogy máshol jelenik meg az ablak, de az wmctrl teszi majd a dolgát és helyre teszi.
Önfejű ablakok regulázása
Ahogy írtam van pár olyan ablak, program amely nem igazán illeszkedik ebbe a megoldásba, nem azt és nem úgy teszi a parancsokra, mint azt én elvárnám. Ezt nem nagyon tűrhetjük, így komolyabb eszközöket vetünk be.
Vannak programok amik vagy random WM_CLASS értékkel indulnak a saját elképzelésük szerint, vagy nem adnak reakció a WM_CLASS értékre hivatkozva. Ezen segítünk, ha megmondjuk induláskor, hogy bármit is akar a program, legyen egy egységes WM_CLASS értéke.
A program indításakor egy kapcsolót adunk meg:
filerename-stt --class=kiskutya
Ezzel a kiskutya karaktersorral tudunk hivatkozni ezután az adott programra a WM_CLASS értéknél. Kicsit macerás, mert bele kell nyúlni a startmenüs bejegyzésekbe (jobb klikk a program nevén...), inkább a scriptekben használom. Bár ez sem csodafegyver, mert egyes programok ennek is ellen tudnak állni...
Mindegyik bemutatott program sokkal többet tud, mint amit leírtam. Érdemes kicsit olvasgatni a témában.
Jó szórakozást!