GNU/Linux >> Znalost Linux >  >> Ubuntu

Nechat Wmctrl ignorovat jiná než aktuální Windows Workspace?

Hodně spoléhám na wmctrl při přepínání mezi okny, v podstatě proto, abych se vyhnul častému psaní alt-tab. Vždy jsem používal jeden pracovní prostor, ale nyní chci začít používat více než jeden.

Zajímalo by mě, jestli je možné upravit kontext wmctrl tak, že když napíšu wmctrl -l , zobrazí se pouze okna z aktuálního pracovního prostoru namísto všech oken ze všech pracovních prostorů.

Za předpokladu, že mám například otevřené okno Firefoxu v pracovním prostoru 1. Mám klávesovou zkratku na ctrl+alt+f který spustí wmctrl -a firefox , který se přepne na Firefox. Pokud otevřu nové okno Firefoxu na pracovním prostoru 2 a napíšu ctrl+alt+f , přepne se do okna v pracovním prostoru 1, což není to, co chci.

Nějaké návrhy/nápady, jak to vyřešit?

UPRAVIT :Používám compiz (Unity)

Přijatá odpověď:

Pokud používáte Compiz (spusťte wmctrl -m pokud si nejste jisti, wmctrl vidí pouze 1 plochu (2. pole wmctrl -l, tj. 0), ale můžete použít volbu geometrie (-G), abyste věděli, jaké okno je na jaké virtuální ploše. Všechna okna na vaší aktuální ploše budou mít pozici x mezi 0 a šířkou obrazovky. Totéž pro pozici y mezi 0 a výškou obrazovky.
Takže můžete použít něco takového

#!/bin/bash

SCREEN_W=$(xwininfo -root | sed -n 's/^  Width: (.*)$/1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^  Height: (.*)$/1/p')

NAME='Navigator.Firefox'

wmctrl -xlG | awk -v W="$SCREEN_W" -v H="$SCREEN_H" -v NAME="$NAME" '$7==NAME && $3>=0 && $3<W && $4>=0 && $4<H {print $1}' | while read WINS; do wmctrl -ia "$WINS"; done

exit 0

Můžete si napevno zakódovat šířku a výšku obrazovky, chcete-li, a NAME, chcete-li jednolinkové.
Nejsem si jistý, jak chcete zacházet s více okny odpovídajícími NAME. To je všechny zaměří.

Pro metacity lze počet oken na ploše zjistit pomocí wmctrl -l a grepování 2. pole.


Ubuntu
  1. Jak vytvořit server Minecraft s Hostinger, Ubuntu, Windows a macOS

  2. Jak udělat Cifs/smb Mount Ignore Umask?

  3. Jak vytvořit testovací balíček Travis CI pro Linux, OS X, Windows?

  1. Jak použít Unetbootin k vytvoření zaváděcího instalačního programu Windows Usb?

  2. Jak zajistit, aby Ibus neignoroval ~/.xcompose?

  3. Jak vyrobit Lenovo Ideapad Z510 jako duální boot?

  1. Jak zajistit, aby zvlnění ignorovalo chyby certifikátu

  2. Nyní je velmi snadné, aby Ubuntu vypadalo jako Windows

  3. Vytvořit příkaz pro Windows – možné možnosti?