GNU/Linux >> Znalost Linux >  >> Linux

Vlastní klávesová zkratka/zkratka pro otevření/zobrazení aplikace

wmctrl program je přesně to, co hledáte (sudo apt-get install wmctrl ). Můžete použít wmctrl -a "AppTitle" příkaz přenést aplikaci dopředu. wmctrl -l zobrazí seznam všech dostupných oken, takže by mělo být snadné napsat skript shellu, který zkontroluje, zda váš program běží, a buď jej spustí, nebo přenese do popředí. Pak to stačí svázat s klávesovou zkratkou.

Nejprve si někam uložte následující skript, já použiji /home/jtb/code/bringToFront . Vyžaduje dva argumenty, první je to, co byste zadali na terminálu pro spuštění programu, druhý je podřetězec názvu okna programu. Pokud v názvu není žádný konstantní jedinečný řetězec, budete muset udělat trochu více práce, abyste našli okno programu.

#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi
  1. Se skriptem v aktuálním adresáři spusťte chmod +x bringToFront aby byl skript spustitelný. Pak se ujistěte, že to funguje; ke spuštění/zaměření firefoxu můžete spustit ./bringToFront firefox "Mozilla Firefox" .

  2. Nyní musíme svázat klávesovou zkratku. Spusťte gconf-editor a přejděte ve struktuře složek doleva na /apps/metacity/keybinding_commands .

  3. Dvakrát klikněte na první command s prázdnou hodnotou, pravděpodobně command_1 . Zadejte úplnou cestu ke skriptu a zadejte dva parametry, např. /home/jtb/code/bringToFront firefox Firefox .

  4. Na panelu vlevo vyberte global_keybindings , další složka nahoru. Najděte run záznam odpovídající příkazu, který jste právě definovali, pravděpodobně run_command_1 . Dvakrát na něj klikněte a zadejte klávesovou zkratku, kterou chcete použít. Vložte modifikátory do lomených závorek, např. <Ctrl><Alt>F .

Nyní Ovládejte + Alt + F přenese vaše okno firefox dopředu nebo jej spustí, pokud již neběží.


Zde je další způsob, jak to udělat s xdotools . Proces vyskakovacího okna rozpozná příkazový řádek vydaný k jeho spuštění (není potřeba žádný soubor pid ani jedinečný název okna).

#!/bin/bash

cmd="[email protected]"
# command line to be run. Note that the resulting
# process will hold this in /proc/PID/cmdline 

pid=`pgrep -nf "^$cmd$"`
# most recent process having "$cmd" in /proc/PID/cmdline

if [ -z "$pid" ]; then # no pid
    exec $cmd
    # run command
else
    winid=`xdotool search --all --pid $pid --onlyvisible | head -1`
    # first visible window owned by pid
    xdotool windowactivate $winid
    # give window focus
fi

Linux
  1. Jak otevřít Appimage v Linuxu

  2. Jak spouštět vlastní skripty na zásuvném modulu USB zařízení?

  3. Spouštíte 32bitovou aplikaci pod 64bitovým Linuxem?

  1. Spustit aplikaci, pouze pokud ještě není otevřená?

  2. qTox – Open Source P2P aplikace pro rychlé zasílání zpráv a VoIP

  3. Plots – Open Source aplikace pro vykreslování grafů pro GNOME

  1. Vlastní příkazy

  2. Timekpr (Revived) - Open Source aplikace rodičovské kontroly pro Linux

  3. Jak vybrat statické číslo portu pro vlastní aplikaci?