Portál AbcLinuxu, 5. května 2025 09:23
Chápu, pro některé zdejší odborníky na všechno problém trivialita hodná mateřské školy. Nicméně nalezení optimálního řešení mi sežralo času víc, než bych si přál. Potřeboval jsem totiž kvůli pořízení screenshotu sputit jednu aplikaci v okně o přesně dané velikosti a v rámci tohoto okna rozmístit její prvky tak, aby svým rozložením maximálně odpovídaly staršímu screenshotu z minulosti. Při tom jsem zjistil, že se pod určitou šířku okna ani dostat nelze a že je třeba zjistit pokud možno optimální velikost. Nakonec jsem pro tento účel použil utilitu wmctrl. Nic světoborného, ale neznal jsem a někomu se to může také hodit.
Utilitu lze v Debianu jednoduše doinstalovat přes apt
root@stroj~# apt-get install wmctrl
Asi nejlépe přes číslo jejího spuštěného procesu, použijeme-li parametr -lp
. Dejme tomu, že mne zajímá terminálové okno s PID 3837:
user@stroj~# wmctrl -lp | grep 3837 0x03e0000f 0 3837 stroj user@stroj: ~
Identifikátorem tohoto okna je číslo 0x03e0000f. Pokud bych výstup neprohnal rourou, tak by mi vyjel seznam všech otevřených oken.
Pomocí nalezeného identifikátoru okna a parametru -lG
nyní můžeme zjistit aktuální velikost a pozici okna na ploše:
user@stroj:~$ wmctrl -lG | grep 0x03e0000f 0x03e0000f 0 1688 103 1102 732 stroj user@stroj: ~
Za identifikátorem okna následuje:
Aktuální geometrie okna je tedy 1102x732+1688+103
Nyní chci změnit velikost tohoto okna na 100x250 pixelů. Použiji k tomu opět wmctrl, kterému předám jako hodnotu pro geometrie okna následující řetězec 0,1688,103,100,250 což jsou v podstatě hodnoty geometrie okna, oddělené čárkou.
user@stroj:~$ wmctrl -i -r 0x03e0000f -e 0,1688,103,100,250
Aplikuji stejný postup na okno aplikace, ovšem co to? Velikost okna se sice zmenšila, ale rozhodně ne na rozměr určený parametrem -e
. Není tedy nic snazšího, než zjistit aktuální geometrii okna jak popisuji v předchozím odstavci. Voilá! Při minimální velikosti okna aplikace má okno velikosti 817x502 pixelů.
Je tedy třeba zvolit a nastavit takovou velikost okna aplikace, aby mohly být prvky optimálně rozmístěny a velikost okna příliš nepřekročila rozměry původního screenshotu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.