Musca -- немного лирики

Ъ
Я рад, что это кому-то показалось интересным 8)
Вот сегодня обновился с v 0.9.21 на 0.9.23
WM растёт и крепнет на глазах! Надеюсь, к версии 1.0 он станет стабильным и юзабельным.
Итак, плюсы – ман страница стала на порядок информативнее; появилась возможность “сворачивать окна”, после чего они исчезают из фрейма, если были видимы, и перестают всплывать при переборе окон группы. Восстановить можно командой switch window (обычно повешенной на хоткей ModN+w). Стало нормально работать отключение отображения границ текущего фрейма. В результате, дописал в конфиг:
# свернуть текущее окно
bind on Mod4+Escape shrink
# отключение отображения рамки текущего фрейма
bind on Mod4+b border flip
bind on Mod4+Shift+b border flip
По поводу скринсейвера в роли фона рабочего стола – из-за псевдопрозрачности, фреймы отображают только картинку, установленную в root окно любой утилитой, анимированное же видео видно лишь в stack mode, но выглядит потрясающе! Интересно, есть ли возможность сделать фреймы действительно прозрачными (что реализовано, например, в awesome)…
И, наконец, появилась поддержка wmctrl, чему я ообенно рад (ибо позволит реализовать задуманный мною text based pager без привязки к Musca), кот. обеспечивает стандартизированное управление X WM через pipe.
Минусы – замеченные мною баги не пофикшены. Если кому не сложно, и кто умеет – составьте баг-репорт – и Родина Вас не забудет!
Что касается wiki – я не против и даже за. Только я так и не разобрался с созданием статей в вики, потому разрешаю разместить статью тому, кто это умеет. Естественно, весь материал распространяется на условиях GPL. :)
Для документации обычно или FDL или одна из CC лицензий (Creative Common, я отдаю предпочтение CC-BY-SA), для общей эрудиции ;-)
systemd должен умереть.
Буду знать, спасибо :)
Ну, пусть будет CC-NC-SA
Kamiel, спасибо за обзор и хорошо прокомментированный конфиг :) . Musc'y заюзал … =)
За обзор спасибо, хотя возник вопрос. за основу взят dwm и ratpoison, на лоре спрашивал в комментах к musca так никто мне и не сказал, чем отличается от ratpoison кроме человечной поддержки мышки и плавающих окон?
К сожалению, с Ratpoison я не так хорошо знаком. Основной функционал я описал, так что, было бы интересно услышать мнение человека, работавшего в Ratpoison и хорошо знакомого с ним; у меня, увы, нет свободного времени на их сравнительный анализ.
Kamiel
К сожалению, с Ratpoison я не так хорошо знаком. Основной функционал я описал, так что, было бы интересно услышать мнение человека, работавшего в Ratpoison и хорошо знакомого с ним; у меня, увы, нет свободного времени на их сравнительный анализ.
мнение о крысояде я могу написать. но вот сравнение с musca тоже не полчучится ибо его не знаю :)
Однако же, дилема :)
Тем временем, я решил проиллюстрировать работу Musca через pipe, и, заодно, решить проблему с раскидыванием приложений по рабочим группам при автостарте. Написал вот скриптик, ожидающий, пока не запустятся все приложения данной группы, после чего переходящий к загрузке группы следующей. Получилось кривовато, и не без багов – я не оч. хорошо знаю shell скриптинг, точнее, почти не знаю ^-^
#!/bin/sh
#SYNOPSIS: iexec.sh <musca_dump> [<any commands to run...>] <last command>
#TODO: скриптик ненадёжен, имеет баг -- имена команд должны быть без пробелов -- так что используйте для запуска приложений с параметрами alias или скрипты; также при сравнении дампа и списка текущих окон -- имеет значение порядок окон, что может очень мешать -- рабочая группа не распознается как загруженная
#проверяем наличие аргументов
if [ $# -gt 1 ]
then
#проверяем доступ к файлу дампа
    if test -r $1
    then
#добавляем группу, загружаем текущий дамп
	echo "add someone" | musca -i
	echo "load "${1} | musca -i
#запускаем приложения
	x='$'$#
	eval x=$x
	for i in "[email protected]"
	do
	    if [ "$i" != "$1" -a "$i" != "$x" ]
	    then
		"$i" &
	    fi
	done
#проверяем -- сходятся ли названия окон дампа и текищее до тех пор, пока не сойдутся
         dump=`cat $1 | grep window | cut -f 4- | sed -e 's/\tunknown//'`
         current=`musca -c "show windows" | cut -d \  -f 3-`
        until [ "$dump" = "$current" ]
        do
	    sleep 0.1
            current=`musca -c "show windows" | cut -d \  -f 3-`
#	    echo "not done..."
        done
#	echo "It's done!"
#при совпадении всех окон -- запускаем последний аргумент
	exec "$x"
    else
        echo "Can't read dump file!"
    fi
else
    echo "Necessary Musca dump name and no less one started program!"
fi
После чего добавил в ~.musca_start
exec ~/.bin/iexec.sh .musca_dump/work ~/.bin/strtjack ~/.bin/emacs_sc.sh ~/.bin/iexec2.sh
Где iexec2.sh – это всего-лишь запуск того же iexec.sh для другой группы (см. баг – получившееся ограничение на пробелы)
Если кто знает shell – было бы неплохо довести это до ума ;)
Проблемы с запуском приложений при старте на определённых воркспейсах или группах, как говорят musca-юзеры - я решил так:
#setup groups
name main
#Данные отступы нужны для отображения коньком сверху :)
hook on add pad 3 3 23 3
hsplit 40%
exec urxvt -pe tabbed
vsplit 60%
use main
add im
hook on add pad 3 3 23 3
hsplit 60%
exec psi
add web
hook on add pad 3 3 23 3
exec opera
add video
#Сделал группу для просмотра видео без отступов, и рамок (рамки пока убираю сам)
hook on add pad 0 0 0 0
 
Зарегистрироваться или войдите чтобы оставить сообщение.