Online video hd

Смотреть красивый видео

Официальный сайт all-remont 24/7/365

Смотреть видео бесплатно

29.03.10 15:26 angrycore

СкриптыПолезные мелочи с использованием DBUS в KDE

D-Bus — это система межпроцессного взаимодействия, разработанная в рамках проекта freedesktop.org. Подробнее можно почитать например на википедии.
В рамках данной заметки D-Bus будет рассматриваться и использоваться исключительно как способ контролировать графические приложения из консоли.
Являясь поклонником двухпанельных файловых менеджеров типа krusader'а (в основном из-за возможности управляться с ними исключительно используя клавиатуру) и выпадающих терминалов типа yakuake (удачное и удобное решение при наличии нескольких рабочих столов), всегда задавался вопросом как улучшить их взаимную интеграцию, а также прикрутить полезные возможности второго к первому.
Выношу вам на суд своё решение этой проблемы:
1
2
3
4
5
6
7
#!/bin/bash
if [ `qdbus org.krusader /krusader/MainWindow_1 Get com.trolltech.Qt.QWidget visible` = true ]
then
        qdbus org.krusader /krusader/MainWindow_1 com.trolltech.Qt.QWidget.hide      
else
        qdbus org.krusader /krusader/MainWindow_1 com.trolltech.Qt.QWidget.show
fi

Как несложно понять, этот микроскопический скрипт прячет окно krusader'а, если оно не спрятано, и показывает в противном случае. Запуск скрипта у меня висит на комбинации клавиш super+space. Достаточно удобный способ быстро достучаться до менеджера фалов на каком рабочем столе бы вы не находились (конечно krusader должен запускаться вместе с kde и сворачиваться после старта в область уведомлений, что несложно настроить в настройках самой программы).
Так как нередко возникает необходимость открыть окно терминала в каталоге, уже открытом в панели файлового менеджера, был написан ещё один микро-скрипт:
1
2
3
4
5
#!/bin/bash
qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession
qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.runCommand "cd \"`pwd`"\"
qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.runCommand clear
qdbus org.kde.yakuake /yakuake/window org.kde.yakuake.toggleWindowState

Скрипт висит в krusader'е в качестве действия по комбинации клавиш Alt+Y. При запуске он добавляет в запущенный в фоне yakuake новую вкладку, выполняет там переход в нужный каталог, очищает терминал, ну и вызывает окно терминала на передний план.
Поскольку при таком подходе владки в терминале начали множиться достаточно активно, возникла необходимость индетификации каждой из вкладок, для этого в ~/.bashrc была добавлена следующая строка:
export PROMPT_COMMAND='~/.bin/scripts/terminal_title.bash 1>/dev/null 2>/dev/null'

Теперь перед каждым показом приглашения командной строки bash будет выполнять скрипт ~/.bin/scripts/terminal_title.bash
А вот и содержимое самого скрипта:
1
2
3
4
5
#!/bin/bash
if [ `qdbus org.kde.yakuake /yakuake/MainWindow_1 Get com.trolltech.Qt.QWidget isActiveWindow` = true ]
then
        qdbus org.kde.yakuake /yakuake/tabs setTabTitle `qdbus org.kde.yakuake /yakuake/sessions activeSessionId` "`pwd`" 1>/dev/null 2>/dev/null
fi

Скрипт проверят акривно ли окно yakuake и устанавливает в качестве названия вкладки адрес каталога, который в этой вкладке открыт.
Было бы интересно узнать кто ещё какие приёмы, облегчающие работу за компьютером, использует.



haku 29.03.10 19:58 # +0
Ещё б пару мини-скринов, показывающих названия вкладок до и после, но в целом хорошо, плюсую.
digiwhite 29.03.10 21:16 # +0
А насколько оно быстро работает? Тут был эксперимент совместной работы festival, dbus и notify-send (тыц), так оно при параллельной работе с аськой жутко тупит.
angrycore 30.03.10 00:38 # +0
Работает быстро. Каких-то конкретных цифр привести не могу, но на глаз срабатывает мгновенно. (компьютер у меня: CoreDuo T2050 @ 1.60GHz, 2 GB RAM)
Shtsh 30.03.10 02:15 # +0
можно померить скорость командой time
angrycore 30.03.10 11:06 # +0
Навскидку получается вот так:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ time ./qkrusader.bash
real    0m0.097s
user    0m0.042s
sys     0m0.011s

$ time ./yakuake_here.bash
real    0m0.141s
user    0m0.059s
sys     0m0.008s

$ time ./terminal_title.bash
real    0m0.082s
user    0m0.046s
sys     0m0.008s
booley 30.03.10 07:12 # +0
Почему именно в KDE? Сейчас попробую :)

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 100)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2043 из 156 городов)
            Топ пользователей Топ блогов
            welinux.ru

            Смотреть онлайн бесплатно

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн