Как я могу отключить приложение Alt-Tab, переключающееся в Корицу, когда определенная программа открыта?

Я использую emacs и имею набор команд заливки к Alt-Tab в определенных режимах и как создание привычки, хотел бы сохранить это тем путем.

Существует ли простой способ отключить приложение, переключающееся через Alt-Tab, когда emacs открыт?

2
задан 31 October 2018 в 20:26

2 ответа

У меня есть решение. Все, в чем Вы нуждаетесь, для запуска этого сценария наблюдателя:

#!/bin/bash

keySwitchApplication="switch-applications"
keySwitchApplicationBackward="switch-applications-backward"

backupSwitchApplications="$(gsettings get org.gnome.desktop.wm.keybindings "$keySwitchApplication")"
disableSwitchApplications="$(gsettings get org.gnome.desktop.wm.keybindings "$keySwitchApplication" | sed "s/\,*\s*'<Alt>Tab'//")"

backupSwitchApplicationsBackward="$(gsettings get org.gnome.desktop.wm.keybindings "$keySwitchApplicationBackward")"
disableSwitchApplicationsBackward="$(gsettings get org.gnome.desktop.wm.keybindings "$keySwitchApplicationBackward" | sed "s/\,*\s*'<Shift><Alt>Tab'//")"

disabled="0"

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 shortcut"
      gsettings set org.gnome.desktop.wm.keybindings "$keySwitchApplication" "$disableSwitchApplications"
      gsettings set org.gnome.desktop.wm.keybindings "$keySwitchApplicationBackward" "$disableSwitchApplicationsBackward"
      disabled="1";
    fi
  else
    # echo "not active"
    if [[ "$disabled" == "1" ]]; then
      # echo "enable shortcut"
      gsettings set org.gnome.desktop.wm.keybindings "$keySwitchApplication" "$backupSwitchApplications"
      gsettings set org.gnome.desktop.wm.keybindings "$keySwitchApplicationBackward" "$backupSwitchApplicationsBackward"
      disabled="0"
    fi;
  fi;
  sleep 1
done
<час>

сценарий регистрируется в бесконечном цикле класс emacs окна и отключает/разрешает Высокий звук + Вкладка и Сдвиг + Высокий звук + Вкладка <час>

, Если что-нибудь идет не так, как надо, тогда можно сбросить запись в настройки по умолчанию:

gsettings reset org.gnome.desktop.wm.keybindings switch-applications
gsettings reset org.gnome.desktop.wm.keybindings switch-applications-backward

В моем случае:

% gsettings reset org.gnome.desktop.wm.keybindings switch-applications  
% gsettings get org.gnome.desktop.wm.keybindings switch-applications   
['<Super>Tab', '<Alt>Tab']

% gsettings reset org.gnome.desktop.wm.keybindings switch-applications-backward
% gsettings get org.gnome.desktop.wm.keybindings switch-applications-backward  
['<Shift><Super>Tab', '<Shift><Alt>Tab']
<час>

Кредиты

@Serg и его ответ , Как отключить входной язык, переключающийся в терминал
@JacobVlijm для его комментариев

4
ответ дан 2 December 2019 в 01:59

Один уродливый хакерский путь приходит на ум ...

Настройки клавиатуры должны храниться в: ~/.config/dconf/user Так что, если у вас есть два файла, один из которых Alt+Tab включен для всей системы, а другой - где Alt+Tab глобально отключен, вы можете теоретически поменять их местами.

Простой скрипт, который будет:

  1. Резервное копирование Alt+Tab Enabled
  2. Копирование Disabled Alt+Tab через Enabled Alt+Tab
  3. Запуск Emacs
  4. После Emacs - это закрытое копирование файлов обратно, как они и должны

Этот скрипт будет использоваться для открытия / запуска Emacs

Я понятия не имею, будет ли он работать в целях безопасности я сначала попробовал бы это в VB, и теперь у меня нет времени, чтобы попытаться, к сожалению, ...

1
ответ дан 2 December 2019 в 01:59

Другие вопросы по тегам:

Похожие вопросы: