Jeg ledte selv efter en metode til hurtigt at skifte mellem kørende FireFox, Chrome, Libreoffice, Terminal,... og starte dem hvis de ikke er startet inden man skifter til dem.
Når man kan skifte til Firefox med windowstast+f er der sparet et sekund ... eller 20, ... for nogle brugere en halv dag.
Nedenstående virker i Gnome og sikkert også i de fleste andre skrivebords miljøer
- Hent script der finder app, åbne den eller starte den, hvis ikke allerede
Kode: Vælg alt
sudo wget https://raw.githubusercontent.com/joaotavora/holy/master/bin/common/find_app.sh -O /usr/bin/find_app.sh && sudo chmod +x /usr/bin/find_app.sh && sudo apt-get install wmctrl
- Åben genvejshåndtering
- Indsæt bruger definerede genveje til de ønskede genvejstaster: Et shortcut til Firefox vil være /usr/bin/find_app.sh firefox, til chrome /usr/bin/find_app google-chrome, til LibreOffce /usr/bin/find_app libreoffice, til Terminal /usr/bin/find_app.sh gnome-terminal, ....
Der er muligvis en bedre metode, men den her virker for mig. Den virker bedst hvis der kun er et af programmerne åbne på samme tid.
Lucas's van Stadens glimrende find_app.sh script (der igen bygger på wmctrl programmet) lægges lige her også, såfremt det forsvinder fra github.
... find_app script følger
Kode: Vælg alt
#!/bin/bash
# Find_app
# Author: Lucas van Staden (lvs at dedmeet.com / www.dedmeet.com)
# This little script will try and find the application attempting to start
# in the running processes, and if found, focus the application
# if not found, a new instance will start
# usage:
# find_app.sh <application with full path>
# params
# 1 - application to start (full path)
# helper applications
WMCTRL=`which wmctrl`;
GREP=`which grep`;
APPLICATION=$1;
BASENAME=`basename $APPLICATION`;
BASENAME=`echo $BASENAME | tr "[:upper:]" "[:lower:]"`
FOUND=0;
function findwindow {
# 1 = BASENAME
# 2 = WMCTRL
# 3 = GREP
IFS=$'\n';
for RUNNING in `$2 -l -x`
do
if [ `echo $RUNNING | tr "[:upper:]" "[:lower:]" | $3 -c $1` -gt 0 ]
then
HOSTNAME=`hostname`
WINDOW=${RUNNING#*${HOSTNAME} }
$2 -a $WINDOW
FOUND=1;
return
fi;
done
}
findwindow $BASENAME $WMCTRL $GREP;
if [ $FOUND -eq 0 ]
then
$APPLICATION
sleep 2;
findwindow $BASENAME $WMCTRL $GREP;
if [ $FOUND -eq 0 ]
then
sleep 3;
findwindow $BASENAME $WMCTRL $GREP;
fi
fi