yarodin

Путь задрота™

Улучшаем юзабилити 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 для повседневного использования лично для меня все еще не подходит – до сих пор очень нестабилен.

Добавить комментарий

XHTML: Вы можете использовать эти метки: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>