Como spacefm usou um único processo. O novo comando apenas passa o sinal para o processo em execução e isso cria a nova janela no nível logo acima da última janela criada.
sudo apt-get install wmctrl
-
Com função: Tem um atraso de 1 segundo.
sfm() { spacefm $* & pid='pgrep spacefm | head -1'; sleep 1; wmctrl -i -R 'wmctrl -lp | grep " $pid" | tail -1 | awk '{ print $1 }'' }- Executar
spacefmcom os mesmos argumentos$*foram passados para a função,&no plano de fundo -
pgrep spacefm | head -1obtém o PID do processo principal que está na cabeça e armazena empidvariable -
sleep 1espera pelo novo processo no terminal, para evitar o aumento de duas janelas (não sei por que, tente removê-lo) -
wmctrl -lpobter lista de janelas| grep " $pid"filtrar os relacionados a$pid,| tail -1filtrar a última linha / janela e depois| awk '{ print $1 }'ID da janela de filtro (WID) que está na primeira coluna$1 -
wmctrl -i -R WIDMova a janela WID para a área de trabalho atual, levante a janela e coloque-a em foco.
- Executar
-
Com alias: Isto aumentará 2 janelas na nova, mas mais simples.
alias sfm="wmctrl -i -R \'wmctrl -lp | grep ' $(pgrep spacefm)' | tail -1 | awk '{ print $1 }'\'; spacefm"-
wmctrl -lpobter lista de janelas| grep " $pid"filtrar os relacionados aspacefm,| tail -1filtrar a última linha / janela e depois| awk '{ print $1 }'ID da janela de filtro (WID) que está na primeira coluna$1 -
wmctrl -i -R WIDMova a janela WID para a área de trabalho atual, levante a janela e coloque-a em foco. - Execute
spacefmcom argumentos depois. A nova janela será criada no topo.
-
- Como usar: caminho semelhante ao comando original.
sfm -w /home/rasmus/Work/
Referências: Por favor, procure as man páginas.