GNU/Linux >> Linux Esercitazione >  >> Linux

Tasto di scelta rapida/scorciatoia personalizzato per aprire/portare in primo piano un'app

Il wmctrl program è proprio quello che stai cercando (sudo apt-get install wmctrl ). Puoi usare il wmctrl -a "AppTitle" comando per portare l'app in primo piano. wmctrl -l elencherà tutte le finestre disponibili, quindi dovrebbe essere facile scrivere uno script di shell che controlla se il tuo programma è in esecuzione e lo avvia o lo porta in primo piano. Quindi puoi semplicemente associarlo a una scorciatoia da tastiera.

Per prima cosa salva il seguente script da qualche parte, userò /home/jtb/code/bringToFront . Occorrono due argomenti, il primo è ciò che digiteresti al terminale per avviare il programma, il secondo è una sottostringa del titolo della finestra del programma. Se nel titolo non è presente una stringa univoca costante, dovrai lavorare un po' di più per trovare la finestra del programma.

#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi
  1. Con lo script nella directory corrente, esegui chmod +x bringToFront per rendere eseguibile lo script. Quindi assicurati che funzioni; per avviare/mettere a fuoco firefox puoi eseguire ./bringToFront firefox "Mozilla Firefox" .

  2. Ora dobbiamo associare un tasto di scelta rapida. Esegui gconf-editor e naviga nella struttura delle cartelle a sinistra fino a /apps/metacity/keybinding_commands .

  3. Fai doppio clic sul primo command con un valore vuoto, probabilmente command_1 . Digita il percorso completo dello script e fornisci i due parametri, ad es. /home/jtb/code/bringToFront firefox Firefox .

  4. Dal pannello a sinistra, seleziona global_keybindings , la cartella successiva. Trova il run voce corrispondente al comando appena definito, probabilmente run_command_1 . Fare doppio clic su di esso e digitare la scorciatoia da tastiera che si desidera utilizzare. Metti i modificatori tra parentesi angolari, ad es. <Ctrl><Alt>F .

Adesso Controlla + Alt + F porterà la finestra di firefox in primo piano o la avvierà se non è già in esecuzione.


Ecco un altro modo per farlo con xdotools . Il processo da visualizzare è riconosciuto dalla riga di comando emessa per eseguirlo (non è necessario alcun file pid o titolo di finestra univoco).

#!/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. Comandi personalizzati

  2. Esecuzione di app a 32 bit con Linux a 64 bit?

  3. Avviare l'app solo se non è già aperta?

  4. qTox - Un'app di messaggistica istantanea P2P e VoIP open source

  5. Esegui l'app a 64 bit sul sistema Ubuntu a 32 bit

Esegui la riga di comando di Linux sul tuo iPad

Apri le cartelle in qualsiasi app terminale di Nautilus

Come eseguire ONLYOFFICE integrato con Nextcloud su Cloudron

App Cerebro:una funzione Open Source equivalente alla funzione Spotlight di Mac OS X

Come eseguire un'app .NET in Docker

Come eseguire il terminale utilizzando le scorciatoie da tastiera in Gnome 2?