Existe uma maneira de reiniciar o XFCE com novas configurações de um script bash?

2

Meu laptop está executando o Linux Mint 17 XFCE Edition, e estou tentando configurá-lo para que eu possa usar o Emacs com meus atalhos habituais. Estes incluem certos comandos de autocompletar / preenchimento envolvendo o Alt-Tab, e atualmente o alternador de aplicativos Alt-Tab e Shift-Alt-Tab do sistema operacional intercepta qualquer comando que eu tente usar, incluindo essas chaves.

Eu gostaria de poder executar algum tipo de script de monitor que detecta quando o Emacs está rodando (ou focado, até), desativa os atalhos Alt-Tab e Shift-Alt-Tab, e então os redefine assim que o emacs não mais tempo em execução.

Minha tentativa de solução: Com base em uma resposta maravilhosa que recebi no AskUbuntu para uma pergunta relacionada um> usando gsettings, eu pensei em tentar o seguinte:

#!/bin/bash

disabled="0" # Track whether or not <Alt>Tab and <Alt><Shift>Tab are currently disabled

while true; do
    isActive=$(wmctrl -lx | awk -v search=$(printf 0x0%x $(xdotool getactivewindow)) -v wm_class="$wm_class" '{ if($1 ~ search && $3 ~ /emacs/) print $3 }')

    if [[ "$isActive" != "" ]]; then
        # echo "active"
        if [[ "$disabled" == "0" ]]; then
            # echo "disable shortcuts"
            xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt>Tab" -s ""
            xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt><Shift>Tab" -s ""
            disabled="1"
        fi
    else
        # echo "not active"
        if [[ "$disabled" == "1" ]]; then
            # echo "enable shortcuts"
            xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt>Tab" -r
            xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt><Shift>Tab" -r
            disabled="0"
        fi
    fi
    sleep 1

done

Embora isso pareça definir / redefinir as configurações de atalhos de teclado relevantes, essas configurações não serão efetivadas até que eu efetue logout e login novamente, o que prejudica a finalidade desse script. Existe algum outro comando que eu preciso executar para fazer com que o XFCE processe suas configurações de keybinding depois de fazer alterações? Eu não deveria estar configurando as combinações de teclas para esvaziar as strings para desativá-las? Ou há algo mais que eu estou sentindo falta aqui?

Espero que exista uma maneira de fazer isso sem ter que fazer logout / login novamente, já que isso definitivamente seria mais problema do que vale a pena aqui.

Agradecemos antecipadamente por qualquer ajuda que você possa fornecer!

    
por Dan 23.06.2015 / 17:09

1 resposta

1

Se essas configurações não forem aplicadas, sua área de trabalho estará corrompida.

xfsettingsd está em execução e reagindo? O xfwm4 está em execução e reagindo?

Junte-se a mim em IRC para ajuda ao vivo

    
por 22.07.2015 / 11:53