Previous 20

тайтлы, терминал, скрин и маленькие радости.

Нарисовал таки себе precmd() и preexec() корректно работающие с эскейп последовательностями и и прочими спецсимволами.
Вроде пустячок, но уже два человека проявили интерес, поэтому посчу.
Read more... )

wm'овское

Все-же alt+tab иногда хороший инструмент.
Он прекрасно ложиться на паттерн “быстро свитчимся между двумя окнами”.
Возможно неплохо работал-бы и на большем количестве окон, но так как нету никакой возможности удобно поменять порядок переключения окон, больше чем для пары, приходиться много тыкать в кнопки. Это что-то сродни алгоритму маляра Шлемиэля.

Тем более плохо, когда эти бесполезные дополнительные нажатия вылезают даже при переключении между двумя приложениями.
Звучит странно, но действительно - нужно переключиться на предыдущее активное приложение, но в нём сейчас активен попап - который мне и нужен.

Дальше всё сильно зависит от конкретной реализации. Кто-то поднимет поап, но не поднимет родителя, кто-то поднимет родителя (и соответственно попап), но отдаст фокус родителю. Вариантов много - большинство совсем бестолковые.

Хороший альттаб (фастсвитч?) не должен делать различия между попапом и его родительским окном, считая их за единое целое. И должен отдавать фокус попапу.


И ещё о переключении.
Недавно прикрутил себе вывод в заголовок терминала и скрина текущий хост, юзера, путь и команду - если что-то выполняется.
Сразу вылезли два бага:

Во первых не очень интересно наблюдать тайтлы вроде “kleptos@ep:~ fg”, ещё надо будет вкурить как на момент запуска preexec() узнать какой именно job вытягивается в foreground.

Во вторых - оказывается Инкрементальный поиск окон тоже может делать совсем не то, что от него ожидаешь.
Например дёргаем из консоли gliv. Получаем два окна, сам глив с заголовком “GLiv - 2007-11-20-222255_1024x768_scrot.png” и терминал с “kleptos@ep:~ gliv .”.
При глупом strstr() поиске есть хороший шанс неглядя написав gliv<enter> попасть в терминал, что совсем не то, чего хотелось.

Думаю хороший iswitch должен учитывать wm_class с приоритетом над (_net_)?wm_title.

Интересно, а выделение болдом совпавшей части и превьюхи нужны? нет?

точка в коде чаще запятой?

Посмотрел интервью с Юрием Стариковым. Это он придумал национальные раскладки для россии, украины и беларуссии. И активно участвовал в создании 866 и cp1251 семейства кодировок.

В интервью он упомянул, что поставил запятую в верхний регистр (с шифтом) просто потому-что в коде точка чаще встречалась и так код писать удобнее выходило.

Я вот всё понять не могу, что же это за язык был? Плюсы для 89-92 экзотика, а в функции обычно поинтер на стракры передают. В то время как запятая в обьявлении сигнатур, энамов и инициализации массивов/страктов.

Странно.

хоткеи?

Таск - хочется получить доступ к любому из постоянно используемых приложений быстро - нажатием пары клавишь.

Проблема - клавиатурные комбинации run-or-raise не то что-бы очень маштабируются, штук 8-10 это наверное уже предел.
Read more... )

wm - фокус

Достаточно частые грабли - запускаю что-то долго грузящееся, по быстрому переключаю фокус на терминал/редактор что-бы сделать что-то одно-двух секундное.
В процессе этого что-то долго грузящийся процесс как раз доходит до кондиции и вылезает на передний план закрывая собой нужное окно и переводя на себя фокус. Аннонит.

Что делать пока так и не понял.
Вариантов в принципе вижу пока два.
Первый вариант работает если после реквеста на запуск сменили фокус - просто не рэйзим и не даём фокуса новому окну. Паттерн для меня типичный, но не всегда преобладающий - иногда хочется кнопки по нажимать в окно у которого фокус уже есть.

Другой вариант более интеллектуален - если в окне с фокусом происходит какая-то юзерская активность - кнопки нажимает, мышку двигает - то не прерываем сиё важное занятие новым окошком.
Интуитивнее, но случайно может получиться ложное срабатывание - нечаянно в кнопку тыркнул например. Или наоборот затупил - пользовательской активности нет, а фокус внимания есть, в окошко глядим.

Как всегда преследует смутное чувство “что-то где-то не доглядел”.
Any ideas?

sawfish

Написал для sawfish свой run-or-raise, о котором подумывал уже достаточно долго.
Если кто не помнит - я хотел что-бы один и тот-же хоткей запускал программу если она ещё не запущена и поднимал её окно, если уже.

Штука действительно оказалась крайне удобной. Совершенно не надо помнить где окно и есть-ли оно вообще. Перестаёшь терять терминалы на десктопах, практически полностью отпадает необходимость тыркаться в альтаб.
Впрочем я не первый, кому пришла в голову подобная идея. Только для sawfish есть как минимум две реализации. И ещё несколько для fvwm.

Сначала я использовал Iswitch-window, но он не умеет выбирать окна по WM_CLASS. Потом попробовал Gimme, но тот как-то странно не срабатывал пока хоть раз не переключишь фокус.

Как ни крутись - надо было писать что-то своё. Хотя очень не хотелось. Так-как внутри sawfish свой мозговыносительный диалект лиспа.
А ещё у него есть интерактивный шелл, да. Но ошибки он показывать не умеет. Совсем. Если ничего не сказал - значит где-то косяк.
Документация одним html’ем - продукт info2html. Сам язык с кучей wtf.
Как обычно всё весело :D.

В общем с такими приколами на обычную переключалку (60 loc) ушло чистого времени где-то часов 12-16, растянутые недели на две-две с половиной.

Хотя, в некоторой степени, оно того стоит. Возможность изменить любой аспект поведения wm или реализовать всё что угодно - это кул, очень даже.

Metisse

Крайне интересная переработка xorg сервера.
Тоже в некоторой степени ориентирована на красивости.
Но в отличии от xgl, aix и прочих Metisse - платформа для экспериментирования с новыми типами пользовательских окружений.

И оно работает чёрт возьми и ещё как работает.

Например используя User Interface Façades можно обычным перетаскиванием как хочешь менять интерфейс приложений. Захотел - перетащил нужную кнопочку куда хочешь, захотел - заменил один виджет другим. Или сделай свою собственную панельку с нужными тебе кнопочками.
Штука интересна в плане затачивания интерфейса приложения под разные задачи. Например завести для гимпа отдельные профили, один заточен под разрез макета, другой под цветообработку фотографий, третий ещё под какую-то специфическую задачу.

Другой интересный пример использования - новый десктоп Mandriva Linux.
Они скрестили доработанный fvwm и metisse, навесив на это кучу всяких разных эффектов большей частью вообще не завязаных на третье измерение.
Например если над над окном из которого выделяют текст есть другое, его уголок “загнёт”, дабы можно было увидеть, чтож выделяется-то.

Для заинтересовавшихся - рекомендую сходить по сылкам и посмотреть скринкасты - впечатляет.

Думаю нас ждёт новая ступень развития gui. В отличии от первой композитной волны, которая упирала на “реальную” прозрачность, трёхмерность и прочие визуальные эффекты Metisse и её последователи будут концентрироваться на rich user experience.

Хорошие фичи, как вино, должны выдерживаться.

Интересно, существует-ли хоть один графический браузер умеющий метки? Которые умеет даже самый захудалый консольный pager текстов уже последние лет 20.

Ну удивлюсь, если нет. Они наверное очень осторожны в добавлении нового.

Фильтрационное

Завёл в liferea тэг shit, если из одного фида за месяц туда попадёт 5 постов - накуй фид. Потому-что надо это всё как-то фильтровать, моск уже на справляетсо.

клинический идиотизм качп

Качпа - тест, на то, что я не робот сам по себе в чём-то унизителен.
Железка требует что-бы я подтвердил, что я человек - да кто она такая?

В случае если-же я забыл заполнить какие-либо обязательные поля формы, творение криворуких программеров потребует пройти тест повторно.
Tags:

клинический идиотизм уведомлений.

Gajim пребывает в полной уверенности, что я незнаю, прочитал я только-что почту или нет.
Иначе как обьяснить уведомления о том, что количество писем уменьшилось.

zenburn

zenburn это не только цветовая схема для vim, но ещё и для konsole, blackbox, emacs, ion, xterm, ratpoison и даже Visual Studio 2005.

Всем, кто ещё не видел, рекомендую посмотреть.

ps
у меня есть зенбёрновский user-style для оперы, если кому интересно - поделюсь.
Tags: , ,

дела интерфейсные, vol2

Ниже - дамп мыслей, для фиксации и последующей доработки.
All suggestions welcome.

Я думаю, что начинаю понимать чего хочу.
Я не хочу задумываться над тем, на каком десктопе, что лежит.
Я не хочу думать о том, запущено нужное мне сейчас приложение или нет.
Я хочу моментально, без лишних действий, получать доступ к тому, что мне нужно.
Я хочу избежать дублирования запущеных приложений.

Пока в голову успела забрести достаточно специфическая идея.
Раскидка приложений по десктопам - попытка выделить различные ролевые блоки.
Здесь я сёрфю, здесь отлаживаю очередной говноскрипт, здесь чатюсь в jabber,

Наиболее простой способ такой организации - автоматическое размещение приложений на заранее заданных десктопах, что уже делают некоторые wm. А если ваш нет - попробуйте devil’s pie.

Уже хорошо, теперь труднее утонуть в мешанине окон, труднее её сделать.

Но я не хочу помнить, где тот десктоп, который мне сейчас нужен. У меня есть дела поважнее.

И тут, я надеюсь, мне поможет моя бредовая идея.
Перетащить концепцию ДокАйконов на хоткеи.
Когда я нажимаю хоткей я получаю приложение. Вне зависимости от того, запущено оно или нет.
Если запущено - оно рейзитсья и меня переносит на нужный десктоп, если не запущено, меня переносит на нужный десктоп и запускает таск.

Тут правда есть одна тонкость - часто удобно держать запущенными несколько экземпляров одной программы, терминалов например, для разных задач.
Мне кажеться нужно формализовать этот экспиренс. Вполне можно назначить хоткей для терминала с ролью ‘ssh’ или терминала с ролью ‘mutt’.

дела интерфейсные.

С одной стороны - меня совершенно не устраивает таскбар.
Он неудобный, мало информативный, не интуитивный, размер и последовательность элементов непостоянны и не поддаются какой-либо общей логике.

С другой стороны - айконбар windomaker’a не намного лучше. Он только жёстко задаёт размер отдельного элемента. но в замен просит много места. А при большом количестве окон всё только ухудшается. Мешанина иконок ничем не лучше мешанины в таскбаре. Но таскбар по сути одномерен, все элементы стоят в ряд. А айконбар с доком обычно разносятся по разным плоскостям.

Концепция переключения окон по alt+tab, ещё большее зло. Его не спасают даже превьюшки окон, рисуемые берилом. Жуткая вешь.

Совершенно непонятно куда копать и где искать.

Заметил, что ни один мне известный гуй не использует mouse 1 и 2 клики в меню.
Правая и средняя кнопки просто трактуются как нажатие левой.

А ведь можно было-бы создавать не только персонально кастомизируемые панели инструментов, но и меню, просто добавляя или удаляя пункты меню. Или даже перетаскивая.
Tags:

лытбр.

Открыл для себя deltup - патчи для бинарных файлов.
Например: имеет версию 1.a, запрашиваем у сервера версию 1.b, полуаем патч 1.a_to_1.b. В разы меньший тарболла. В силу того, что тариф у меня безлимитный и необходимости экономить траффег нет оно мне не особо надо, но всё равно впечатляет. Гентушники могут прикрутить эту штуковину к портежу сказав emerge getdelta, бздуны используют fetch_delup.sh.

Странное обстоятельство.
Подавляющее большинство используемых мною гуевых приложений сделано на gtk, всё кроме безальтернативного djview и оперы. И это при том, что я уже мысленно практически записал себя в gtk-haters :). Как показывает опыт использования, gtk приложения чаще всего обладают на порядок более удобным интерфейсом, чем qt.

Нашёл в опере ещё одну фичу с алиасами в адресной строке.
Я уже писал про алиасы для закладок, но можно пойти ещё дальше.
Собственные поисковики хороши, но если я напишу в адресной строке только “g”, опера не откроет гугл.
Зато можно сделать закладку на главную страницу гугла с алиасом g, и тогда g foo будет искать foo, а g - вести на главную страницу.
Очень удобно.

Просматриваю Самурая чамплу, если кто ешё не видел - рекомендую.

Шорткаты в браузере

[info]drumrock затронул интересную тему - шорткаты в браузерах.
Конкретно в его случае, человека достало каждый раз открывать lingvo.yandex.ru и захотелось немного ускорить процесс.

В общем он не одинок в своём стремлении уменьшить рутину. С тех пор как я обнаружил эту фичу у меня уже сформировался целый набор шорткатов. По случаю делюсь своим набором.

g - goole
we - en.wikipedia
wr - ru.wikipedia
sf - sourceforge search
gl - google linux
gp - gentoo portage (deprecated, теперь использую eix)
wbr - ru.wikibooks
ya - yandex
waa - worldart - поиск по рецензиям на аниме
lingvo - lingvo
freshmeat - поиск по фрешмит
lju - юзер жж
ljcomm - камменити, неиспользую, так-как lju ru_linux тоже работает
cpan - поиск по cpan
natahaus - поиск по natahaus
anidb - поиск по anidb
kage - поиск по kage (русские софтсабы)
gw - gentoo wiki
w3sc - w3schools
gb - google books
gc - google code
phpf - поиск по функциям php
lji - жж юзеринфо
wiki - переход на статью в локальой вики
mw - mediawiki.org
gmail - gmail
gb - google bookmarks
gba - добавить букмарк
mld - веб интерфейс к mldonkey
mldvd - статы по загрузкам в mld. хм, забыл про него
todo - wiki.localhost/index.php/ToDo
webl - weblancer.ru

Мне-же было-бы интересно увидеть ваш набор шорткатов.

ps
Пока писал пост, первый раз в жизни что-то пролил на клаву.
Я засыпал её пеплом, шалушками от семак, крошами еды, но залить - впервой.
Tags:

run dialog

Пощупав icewm понял, что наличие фичи “заупстить чё-нить побыстрому не открывая терминал” сильно облегчает жизнь.
У меня есть целый набор графических приложений, которые я регулярно запускаю из консоли. Либо потому-что я им до сих пор не придумал/забыл назначить шорткат, либо потому-что просто лень.

С другой стороны, для того что-бы запустить что-то нужно открыть терминал (Ctrl+C), запустить программу, закрыть терминал (Ctrl+D). Слишком много возни.

В IceWm есть очень удачный шорткат. По нажатию Win+Space -таскбар превращается в командную строку.

В процессе поисков чего-либо похожего, но в виде standalone решения нашёл gmrun.
Из полезных фич:

  • tab-completion

  • История (игнорирует повторяющиеся элементы)

  • Поиск по истории

  • Запуск комманд просто так и в новом окне терминала

  • “Выполнение” файлов для которых отсутвует excution bit, например “запуск” /usr/src/linux/README при стандартном когфиге откроет этот файл в emacs

  • Действительно маленькое окошко, с минимум ненужных деталей

  • Понимает uri-like команды, например http://localhost дёрнет браузер, а pd:strict - пёрлдок, причём можно определять свои “схемы”. что я уже и сделал, добавив “схемы” для pydoc и ri


В целом - весьма доволен. Есть правда один единственный курьёз - urxvtc всё равно стартует немного быстрее gmrun, но как мне кажеться богатый функционал gmrun с лихвой это компенсирует.

term's title

Мне мостаточно сложно понять какой из открытых окошек терминала мне сейчас нужен, если все они называются rxvt.
Налабал небольшой скрипт, теперь у меня \w из $PS* (~/docs) в заголоке когда idle и \w - $BASH_COMMAND (~/docs - less -is ~/.xinitrc) когда чего-то запущенно.

сорс )

серийные фоны рабочего стола.

Уже сейчас для beryl/compiz есть плаг позволяющий на каждую сторону кубика повесить свой фон.

Наверное года через два, когда трёхмерные интерфейсы укореняться, серии из нескольких фоновых картинок, предназначеные для одновременного размещения на разных сторонах кубика, станут обычным явлением. Их будет так-же легко найти, как и вайлдскрин волпы сегодня.

Previous 20