Я хотел бы задать условную комбинацию клавиш (Alt+F4), которая будет показывать меню приостановки/выключения/перезагрузки только в том случае, если она нажата, когда фокус находится на рабочем столе, в противном случае просто закроет активное окно.
Спасибо
решение1
Я использую этот скрипт в Ubuntu MATE, где в качестве файлового менеджера используется caja.
#!/bin/bash
activewindowname=$(xdotool getwindowfocus getwindowname)
if [ "$activewindowname" == "x-caja-desktop" ]; then
gnome-session-quit --power-off
else
xdotool windowclose `xdotool getactivewindow`
fi
скопируйте этот код, сохраните его как скрипт и создайте пользовательское сочетание клавиш для Alt+F4
решение2
Если кто-то захочет сделать это в KDE 5 (Plasma), я изменил скрипт выше:
#!/bin/bash
activewindowname=$(xdotool getwindowfocus getwindowname)
if [ "$activewindowname" == "Рабочий стол по умолчанию — Plasma" ]; then
qdbus org.kde.ksmserver /KSMServer logout 1 2 3
else
xdotool windowclose `xdotool getactivewindow`
fi
Рабочий стол "$activewindowname"
зависит от вашей локали. Запустите эту команду в Konsole и щелкните по рабочему столу, чтобы получить имя в вашей локали:
sleep 2s && xdotool getwindowfocus getwindowname