Улучшаем юзабилити KDE 3
Опубликовано yarodin на 29/11/2008
Продолжу свою десктоп-эпопею. Две вещи, которые меня просто восхищают в KDE 3 это протокол обмена сообщениями для приложений DCOP (в KDE4 он заменен на D-Bus) и kdialog – утилита, позволяющая использовать в скриптах стандартный KDE’шный графический интерфейс. По этой причине все описанные ниже улучшения, тем или иным образом завязаны на эти две компоненты.
Делаем всплывающую консоль на подобии yakuake и tilda.
Настраиваем в khotkeys (Центр управления->Региональные и специальные возможности->Действия), на любую нравящуюся вам горячую клавишу, запуск следующего скрипта:
#!/bin/sh if KONSOLE_ID=`dcopfind -a konsole-\* Popup` then if `dcop $KONSOLE_ID Popup hidden` then dcop $KONSOLE_ID Popup restore else if `dcop $KONSOLE_ID Popup minimized` then dcop $KONSOLE_ID Popup maximize else dcop $KONSOLE_ID Popup hide fi fi else konsole --name Popup --title Popup -type Shell --geometry 1680x1050-0+0 & fi
Где «-type Shell» название сессии konsole для запуска, а «–geometry 1680×1050-0+0″ – разрешение по горизонтали, вертикали, смещение по горизонтали, вертикали.
Мультимедиа клавиши.
Как настроить поддержку мультимедиа клавиш писать я не стану. Все равно лучше чем в статье Multimedia Keys не получится :) Итак, сначала сделаем одним махом поддержку для клавиш Volume+/Volume-/Mute(для некоторых иоделей ноутов могут поддерживаться все клавиши сразу), а также всплывающие окна для визуализации нажатий – поставим KMilo. В некоторых описаниях к этому плагину написано, что он предназначен для поддержки специальных клавиш на ноутбуках Thinkpad. У меня, например, десктоп, но свои функции KMilo выполняет отлично. Единственное, что меня в плагине не устроило, так это чудовищные размеры всплывающих окон, а также не совсем соответствующая моей цветовая гамма:

Слегка подпилил найденный в сети, но так и не заработавший у меня патч (ebuild kmilo с этим патчем). Понимаю, что довольно некошерный способ изменения оформления, но деваться некуда. Впрочем, стало значительно приятнее:

Все нужное для подкручивания размеров/цветовой гаммы невооруженным глазом видно в тексте патча. Дерзайте :)
Далее все остальные мультимедиа клавиши настраиваются довольно однообразно. Для примера, опишу настройку клавиши запуска почтового клиента (у меня это kmail). Типовым способом настраиваем в khotkeys запуск следующего скрипта при нажатии клавиши открытия почтового клиента:
#!/bin/sh isStarted=`/usr/kde/3.5/bin/dcopfind -a 'kmail'` if [ -z $isStarted ]; then /usr/kde/3.5/bin/dcop kded kmilod displayText "Запускается Kmail" /usr/kde/3.5/bin/kmail --geometry 1680x1050-0+0 else if `/usr/kde/3.5/bin/dcop kmail kmail-mainwindow\#1 shown` then if `/usr/kde/3.5/bin/dcop kmail kmail-mainwindow\#1 minimized` then /usr/kde/3.5/bin/dcop kmail kmail-mainwindow\#1 setGeometry 0 0 1680 1050 /usr/kde/3.5/bin/dcop kmail kmail-mainwindow\#1 restore else /usr/kde/3.5/bin/dcop kmail kmail-mainwindow\#1 hide fi else /usr/kde/3.5/bin/dcop kmail kmail-mainwindow\#1 resize 1680 1050 /usr/kde/3.5/bin/dcop kmail kmail-mainwindow\#1 restore fi fi
Где параметры «SetGeometry,–geometry,resize» аналогичны описанным в пункте про всплывающую консоль.
Управление режимом работы SpeedStep.
Хотя, как я уже говорил, у меня не ноутбук, но компьютер я практически не выключаю. Чтобы машина не потребляла лишнюю электроэнергию и соответственно меньше нагревалась в моменты простоя, но при этом выполняла какую-то не сильно ресурсоемкую работу, я использую пакет cpufrequtils, в котором меня интересуют сугубо два режима работы: ondemand и performance. Написал на коленке скрипт для переключения этих режимов из GUI:
#!/bin/sh CF_STAT=`/usr/bin/cpufreq-info -p|cut -d ' ' -f 3` if [ "$CF_STAT" == "ondemand" ]; then CF_STAT_NLS="Балансировка" else if [ "$CF_STAT" == "performance" ]; then CF_STAT_NLS="Максимальный" else CF_STAT_NLS="Неизвестный" fi fi CFMODE=$(kdialog --miniicon "/usr/kde/3.5/share/icons/crystalsvg/48x48/apps/energy.png" --caption "Режим" --menu "Текущий: <font color="red">$CF_STAT_NLS</font>" max Максимальный bal Балансировка) if [ "$CFMODE" == "max" ]; then /usr/bin/sudo /etc/init.d/cpufrequtils stop fi if [ "$CFMODE" == "bal" ]; then /usr/bin/sudo /etc/init.d/cpufrequtils start fi

До кучи настроил запуск этого скрипта из пользовательского меню KNemo:

P.S. Я в курсе, что подавляющая часть из описанного в KDE 4 работать не будет. Но, несмотря, на почти принудительное толкание пользователя к переходу, KDE 4 для повседневного использования лично для меня все еще не подходит – до сих пор очень нестабилен.