|
|
кэнно йоолэй - говорящий-с-травами
|
|
|
| Xmonad persistent keyboard layouts |
[14 Nov 2009|09:37pm] |
А запостю-ка я один полезный кусок конфига XMonad, пока с ним ничего не случилось. Нагуглился он не очень просто, так что пусть висит для потомков, может кому и пригодится. И на память.
Hint: Код делает следующую полезную (в зависимости от предпочтений юзера) вещь - переключает раскладку клавиатуры в зависимости от текущего активного окна. На пальцах - если вы пишете код латиницей, а потом переключаетесь в IM сказать пару слов своему кириллическому другу, вам не придется лишний раз жмакать комбинацию для смены раскладки. В качестве backend используется Xkb.
data XkbToggle = XkbToggle (Maybe XID) deriving ( Typeable )
instance Message XkbToggle
data XkbLayout l a = XkbLayout XID (M.Map Window XID) (l a) deriving ( Read, Show )
xkbLayout = XkbLayout 0 M.empty
instance (Ord a, LayoutClass l a) => LayoutClass (XkbLayout l) a where
runLayout (W.Workspace tag m@(XkbLayout defXkbGroup xkbWinMap l) ms) r =
do withWindowSet $ \ws ->
if tag == W.currentTag ws
then whenJust (W.peek ws) (lockGroup m)
else return ()
(ws, l') <- runLayout (W.Workspace tag l ms) r
case l' of
Nothing -> return (ws, Nothing)
Just l -> return (ws, Just (XkbLayout defXkbGroup xkbWinMap l))
handleMessage xkb@(XkbLayout defXkbGroup xkbWinMap l) m
| Just (XkbToggle group) <- fromMessage m = withWindowSet (return . W.peek) >>= maybe (return Nothing) (toggleGroup xkb group)
| otherwise = (handleMessage l m) >>= maybe (return Nothing) (\l -> return $ Just (XkbLayout defXkbGroup xkbWinMap l))
description (XkbLayout _ _ l) = description l
xkbGetGroup :: (Ord b) => XkbLayout a b -> Window -> XID
xkbGetGroup (XkbLayout d m _) w = M.findWithDefault d w m
foreign import ccall unsafe "XkbLockGroup" xkbLockGroup :: Display -> XID -> XID ->IO ()
lockGroup :: (Ord b) => XkbLayout a b -> Window -> X ()
lockGroup l@(XkbLayout d m _) w = withDisplay $ \dpy -> io $ xkbLockGroup dpy 0x100 (xkbGetGroup l w)
toggleGroup :: (Ord b) => XkbLayout a b -> Maybe XID -> Window -> X (Maybe (XkbLayout a b))
toggleGroup l@(XkbLayout d m l') (Just g) w = return $ Just (XkbLayout d (M.insert w g m) l')
toggleGroup l@(XkbLayout d m l') Nothing w =
do XConf { display = dpy, theRoot = root } <- ask
classHint <- io $ getClassHint dpy w
if resClass classHint == "Emacs"
then do io $ allocaXEvent $ \ev ->
do setEventType ev keyPress
keyCode <- keysymToKeycode dpy xK_backslash
setKeyEvent ev w root 0 controlMask keyCode True
sendEvent dpy w False 0 ev
return Nothing
else return $ Just (XkbLayout d (M.insert w (flop $ xkbGetGroup l w) m) l')
where flop 0 = 1
flop _ = 0
ЗЫ Вопросы по коду, если мне не изменяет память, задаются в xmonad@conference.jabber.ru, там по идее обитает автор. Ника, к сожалению, не помню. ЗЗЫ Прощу прощения, кому порвал ленту, но форматирование тут важно.
|
|
|
[26 Apr 2009|01:23pm] |
|
По наводке Алекса Отта завел себе аккаунт на Shelfari
Существенный, на мой взгляд, минус - не нашел ни одного русскоязычного издания. Хотя, к примеру, русская классика и имеет место там быть, хотя бы и англоязычная. Впрочем, хорошей it-литературы там, к счастью, достаточно.
В плане организации информации все тоже вполне приятно. Так что будем пока попользоваться.
|
|
| Этимология |
[10 Apr 2009|01:33pm] |
|
Неожиданно в голову пришел новый вариант происхождения мема “лолчто”:
catch(const std::exception& lol)
{
std::cerr << lol.what() << std:endl;
}
|
|
| Такие дела |
[27 Jan 2009|10:39pm] |
|
В четверг, 22 января, прошла очередное мероприятие, организованное клубом «Бизнес в стиле .RU» и компанией Postgresmen. Встреча оказалась действительно в своем роде уникальной, так как объединила группы пользователей двух соперничающих СУБД - PostgreSQL и MySQL.
Первая часть мероприятия, как и было обещано, оказалась разбита на несколько 5-минутных раундов, временные границы которых обозначались звуками труъ-админского бубна. Также желающим был предложен попкорн, хотя “подписаться на комменты” возможности не нашлось. =) В каждом раунде один из участников матча (а затем все по очереди) делали короткие презентации связанные с разработкой или использованием представляемой ими СУБД. Из-за отсутствия одной из участниц из лагеря MySQL численный перевес оказался на стороне Postgres, но отрицательной роли это не сыграло - было интересно и познавательно послушать обе стороны. Информация была, что называется из первых рук, чему способствовало наличие среди участников ведущих разработчиков обеих систем (Олег Бартунов, Федор Сигаев - PostgreSQL Global Development Group, а также Константин Осипов - MySQL Runtime Group Team Lead).
Эмоции от вечера остались самые положительные, так что ждем продолжения. =)
ЗЫ Интересно, когда ближайший JUG?…
|
|
| Чемоданное |
[10 Oct 2008|06:47pm] |
...Но только в двух городах
Я дома, пока я гость.
Только там, где Нева становится морем,
Я вижу Крымский мост.
В полдень сквозь звон колоколен
Будто бы в двух шагах,
Гром Петропавловской пушки
Я слышу на Покровах.
Снова в ночь летят дороги,
День в рассвет менять.
Кому чья, а мне досталась
Трасса E-95...
В общем, до понедельника отбываю в Северную столицу. Связь по телефону, и чем под руку попадется
|
|
| ДождалИсь, ДождалИсь (с) Аукцыон |
[10 Oct 2008|12:41pm] |
|
По сведениям из надежных источников, принимаются предзаказы Neo FreeRunner по вполне гуманной цене. Что ж, будем надеяться и облизываться 
|
|
| приплыли =) |
[25 Aug 2008|05:10pm] |
|
Когда в том же Eclipse хочется сохраняться с помощью :w - это почти диагноз.
|
|
| Октябрьская звезда |
[20 Aug 2008|10:50pm] |
|
“[…] В свое время был один человек, который не мог жить так, как другие. Он пытался понять, что же это такое - то, что
происходит с ним изо дня в день, и кто такой он сам - тот, с кем это происходит. И вот однажды ночью в октябре, когда он
сидел под кроной дерева, он поднял взгляд на небо и увидел на нем яркую звезду. В этот момент он понял все до такой степени, что эхо той далекой секунды до сих пор…”
В. Пелевин “Чапаев и Пустота”
Сегодня явственно ощутил себя этим неизвестным человеком. Незабываемо.
|
|
| *** |
[18 Aug 2008|09:24pm] |
|
Задался целью сделать из vim более-менее многоцелевую IDE, коль скоро Eclipse начинает доставать своими тормозами и необходимостью, в прямом смысле “разбора полетов” - просмотра crash-логов. Есть, конечно, еще M$V$ - но они во всех смыслах не из нашей песочницы.
Будем посмотреть, что из этого получится.
|
|
| С днем рождения =) |
[16 Aug 2008|07:59pm] |
|
Сегодня все прогресcивное человечество отмечает 15-летний юбилей Linux-дистрибутива Debian =)
Присоединяюсь к поздравлениям. К настоящему времени, это, по-моему, один из лучших, а также - “почтенный отец семейства” многих производных от него дистрибутивов. Вторая дата, которую можно приурочить к сегодняшнему дню - плюс/минус ровно год полному переходу на эту замечательную ОС.
Сообщение Яна Мердока в Google Groups
Long Live Debian!
|
|
| Город, которого нет |
[04 May 2008|01:28pm] |
Hочь и тишина, данная навек, Дождь, а может быть падает снег. Все равно бесконечно надеждой согрет, Я вдали вижу город, которого нет.
Где легко найти страннику приют, Где, наверняка, помнят и ждут, День за днем то теряя, то путая след, Я иду в этот город, которого нет.
Там для меня горит очаг, Как вечный знак забытых истин. Мне до него последний шаг, И этот шаг длиннее жизни.
Кто ответит мне, что судьбой дано? Пусть об этом знать не суждено. Может быть за порогом растраченных лет Я найду этот город которого нет!
|
|
| (x)inetd |
[18 Feb 2008|11:55pm] |
|
По результатам чтения отдельных мест OpenNet’a решил заменить inetd на xinetd.
Первые же грабли - необязательность атрибута type в конфигурации сервисов: с единственным подходящим по смыслу значением TCPMUX отказался стартовать FTP. Читаем соответствующий RFC - наука до этого еще не дошла…
В целом понравились возможности конфигурации по сравнению с inetd. А к чему приведет сие поползновение - будущее покажет =)
permalink comments
|
|
| Hello, World. |
[16 Feb 2008|12:17pm] |
|
Наша радиостанция меняет дислокацию.
Новый адрес - Ronin's Blog
LJ xposts, впрочем никто не отменял.
До новых встреч.
Originally published at Ronin's Blog. You can comment here or there.
|
|
|
[09 Feb 2008|06:16pm] |
| [ |
mood |
| |
giggly |
] |
From: Хабрахабр <system@habrahabr.ru> <...> X-Mailer: Kolbaskin/1.1 (html)
Сколько интересной информации можно узнать из заголовков... =)
|
|
| kernel |
[09 Feb 2008|04:45pm] |
| [ |
mood |
| |
geeky |
] |
Собрал последнее stable ядро:
ronin@debian-home:~$ uname -a Linux debian-home 2.6.24 #1 SMP Sat Feb 9 14:25:48 MSK 2008 i686 GNU/Linux
Процесс понравился. Надо осмыслить.
|
|
|
[10 Dec 2007|11:03pm] |
ronin@debian-home:~$ sudo aptitude Ой! Получен сигнал SIGSEGV, выход.. Ошибка сегментирования
Вот этот "ой" меня и доконал. пора спать.
|
|
| Таял |
[28 Nov 2007|06:17pm] |
Летел и таял, не соберу - Летел и таял... Больше не тает, Завтра я ещё не умру, Но кто его знает - завтра это, о-о-о-о... Летел, горел, был высоко - Летел, горел... Перетекает, Завтра это так далеко, Что кто его знает - завтра это, о-о-о-о,
Она так ждёт и ни туда, и ни сюда, и ни туда, и ни сюда-а-а... Она так ждёт и ни туда, и ни сюда, и ни туда, и ни сюда-а-а...
Летел и таял... Летел и таял, не соберу - Летел и таял... Больше не тает, Завтра я ещё не умру, Но кто его знает - завтра это, о-о-о-о... Она так ждёт и ни туда, и ни сюда, и ни туда, и ни сюда-а-а... Она так ждёт и ни туда, и ни сюда, и ни туда, и ни сюда-а-а...
(с) Леонид Фёдоров
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
|
|
|
|