CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
28.06.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Окружение :: Графические среды :: Менеджеры окон

Небольшое ноухау для Ion

Вводная такова: на рабочем месте я использую оконный менеджер Ion3. Начну с того, что для перехода к нужным мне приложениям (например к любимому словарику) я с большим удовольствием использую замечательный скрипт app.lua из коллекции вкусностей для Ion3 (тем паче, что сегодня утром благодаря моим небольшим усилиям он стал ещё лучше и функциональнее, надеюсь на скорое появление патча в репозитории). И использование это выражается в keybinding-ах примерно следующего характера:

defbindings("WMPlex.toplevel", {
 kpress(ALTMETA.."D",
        "app.byclass('stardict', 'Stardict', _)"),
})

Ну а с помошью следующего фрагмента конфига:

defwinprop {
   class = 'Stardict',
   instance = 'stardict',
   target = 'tools_sp',
   jumpto = true,
   winlist_ignore = true,
}

запускаемый словарик самостоятельно отправляется при запуске на "своё место". Многие уже догадались по предыдущему фрагменту конфига, что "местом" для данного приложения, как и для многих других, является соответствующий named scratchpad. Но есть проблема - всяческих скратчпадов у меня 5 штук (и не факт, что это конечное их число). И разумеется, я постоянно путаюсь, какой же кнопкой закрывается тот скратчпад, который у меня сейчас активен. Сегодня утром мне это надоело. И был придуман следующий keybinding:

defbindings("WMFrame", {
    kpress( META.."Escape",
            "mod_sp.set_shown(
                ioncore.lookup_region(_:name(), 'WFrame'),
                'unset' )" ),
})

Этот несложный биндинг "прячет" любой активный скратчпад. Вероятно, он может иметь побочный эффект при использовании его "не по назначению", но сей факт меня, честно сказать, не сильно беспокоит.

Кроме того, поделюсь ещё одной маленькой полезностью, связанной также с использованием большого количества скратчпадов. Сложность состоит в том, что они перекрывают друг друга не в порядке открытия. То есть, если у вас открыт скратчпад со словарём, а в этот момент вы открываете скратчпад с jabber-клиентом, то он вполне может оказаться "под" словариком. Или наоборот... в общем, ситуации всякие бывают, учитывая многообразие геометрий скратчпадов (во всяком случае у меня). И пришлось озадачиться поиском функций, которые позволили бы управлять "слоями" или даже "наслоениями" скратчпадов. Таковые были найдены, "забиндены" и сейчас будут представлены Вашему вниманию:

defbindings("WMFrame", {
    kpress( META.."L",
            "WRegion.rqorder(_, 'back')" ),
    kpress( META.."U",
            "WRegion.rqorder(_, 'front')" ),
})

Как несложно догадаться, нажатие Meta+L отправляет активный скратчпад "под" все остальные, а Meta+U "поднимает" его над всеми другими.

PS: вышеупомянутый скрипт app.lua отныне может искать запущенное приложение не только по строке заголовка или Window-class, но также и по атрибуту Window-instance, что особенно полезно в некоторых случаях. Каких? Об этом читайте в следующей заметке.




Комментарии

ASCHE, Mon Feb 4 15:46:43 2008:
Спасибо за пачти!

А я использую named_scratchpad несколько иначе:
в функцию создающую скрэтчпад добавил запуск нужной команды:
http://asche0.ath.cx/files/app_pad.lua

И становится ненужным писать структуры defwinprop и создавать скрэтчпады перед запуском программы.
Сергей, Sun Aug 19 21:38:15 2007:
Спасибо!

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds