logo

muhas.ru — это просто блог…

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

ArchLinux: netcfg + dmenu

#!/bin/sh

NET=`ls -l /etc/network.d | grep ^- | awk '{print $9}' | dmenu -fn '-xos4-terminus-medium-r-normal--12-120-72-72-c-60-*-*' -nb '#737373' -nf '#e7e3e7'  -sb '#e7e3e7' -sf '#737373' -p 'Network profile:' $*`
if [ ".$NET" != "." ]; then
    sudo netcfg -a
    sudo netcfg $NET
fi
По мотивам dnetcfg

Интересно было бы увидеть реализацию создания профиля с использование dmenu...

Заставляем работать с $XDG_CONFIG_HOME тех кто не умеет

Не так давно на welinux в комментариях к одному из постов состоялась беседа о том что хорошо бы хранить все конфиги не в ~/ а в определенном каталоге. Мало того что кому-то это хорошо так ещё и стандарт такой имеется. Согласно этому стандарту все пользовательские настройки должны храниться в переменной $XDG_CONFIG_HOME, а если она не установлена то в каталоге ~/.config.
Однако, по разным причинам, многими программами этот стандарт не поддерживается.

На помощь таким программам приходит LD_PRELOAD-able библиотека libetc с помощью которой любая попытка открыть dot-файл (файл с точкой в начале) перенаправляется в $XDG_CONFIG_HOME т.е. конфиги всех программ можно хранить в папке определенной стандартом. Библиотека достаточно старая, и я удивлен почему о ней знает не так много людей

Для использования достаточно экспортировать несколько переменных
export LD_PRELOAD=libetc.so.0 # загружаем библиотеку
export LIBETC_BLACKLIST=/bin/ls:/bin/mv:/bin/cp:/bin/ln:/usr/bin/find:/bin/rm # на эти программы внимания не обращать
Ну и XDG_CONFIG_HOME можно выставить.

После сих нехитрых манипуляций пути будут транслироваться из ~/.* в $XDG_CONFIG_HOME/* (~/.config/*)

Более подробно о использовании библиотеки можно прочитать в её README файле

Домашняя страничка libetc

Псков, Авангард и локальный Яндекс

яндекс локален для авангардаСегодня зашел на ярушеку и обнаружил что внизу имеется значок уведомляющий что мой провайдер подключен к яндекс локалке. А сие значит что можно пользоваться яндексом с такой же скоростью как и всякими data.cod datagrad — в общем так же как и внутренними услугами.

Подробнее о яндекс локалке тут. Авангард (правда только питер) в списке подключенных провайдеров, хотя ничего об этом на сайте авангарда (тем более псковского) я не обнаружил — но наличие теперь у псковичей и жителей области локального яндекса не может не радовать.

Самое приятное что у яндекса уже давно имеется mirror.yandex.ru — постоянно обнавляемое зеркало различных дистрибутивов и репозитариев.

Для теста слил archlinux-2009.08-core-i686.img весом 364M всего за 7 минут со средней скоростью 800K/s при моей-то мегабитке.

/me уже поставил яндексовское зеркало в /etc/pacman.d/mirrorlist

В общем, поздравляю псковичей и себя в частности.

UP по слухам с pskovonline.ru на петерстаре тоже появился такой индикатор

musca — незаметная смена wm с ratpoison на musca

Ни один из тех кто предрекал смерть ratpoison, ибо теперь есть musca, так и не смог привести мне причины превосходства второго над первым (разве что большая любовь к мыше и возможность иметь плавающие окна) по причине того что знали либо первое либо второе. Пришлось самому всё выяснять.

Напомню что musca - это ещё один тайловый оконный менеджер автор которого решил скрестить мой любимый ratpoison и dwm

После первых же абзацев прочитанных на офсайте описаний musca я решил его попробовать. Прельстило же меня то что регионы(фреймы) можно выбирать мышью и имеется базовая поддержка EWMH, а это означает:
  • Можно использовать совместимые панели (начиная от tint2 и заканчивая gnome-panel);
  • Группы = виртуальные столы в любом совместимом пейджере;
  • Ну и wmctrl как приятный бонус. К сожалению не полноценный, но вполне годный.

На русском арчефорурме есть достаточно подробный обзор musca и пара примеров работы. Поэтому я не буду ещё раз описывать этот оконный менеджер а лишь выскажу свои впечатления о нем (попутно сравнивая с ratpoison).

Первое что понравилось в musca это именно поддержка EWMH благодаря которой я отказался от костыля в виде dzen2 и bash скрипта выводящего окна и группы в ratpoison в пользу tint2 (заодно избавившись от trayer, но панельку ещё выбираю). Конфигурационный файл ~/.musca_start по синтаксису похож ratpoisonrc что принесло легкость перехода на musca — настроил так же как был настроен ratposion (за исключением хоткеев) всего за несколько минут, правда до этого полчаса читал ман ибо параметры несколько отличаются.
Возможность использования плавающих(stack flip) окон не особо порадовала (M-s включить/выключить и при при нажатой M с правой или левой кнопкой мыши изменять размер или передвигать окно соответственно), а вот режимы фреймов catchall flip и dedicate flip порадовали.
Ещё из плюсов для себя отметил:
  • Возможность выбрать любую систему уведомлений (в крысояде своя);
  • Использование dmenu для ввода команд musca и запуска приложений;
  • Возможность (зависит от настройки) открывать новое окно в пустом фрейме, если не получилось то в текущем;
  • Команда shrink скрывающая окно, после чего оно не показывается при переборе (вернуть либо клацнув на панели либо с помощью switch window т.е. с помощью выбора конкретного окна);

Не понравилась только одна вещь (она же собственно говоря и в ratpoison не нравилась) — при фулскрине, к примеру vlc, заданный padding остается и окно получается не на весь экран. И если в ratposion это обходилось простеньким скриптом который в зависимости от ситуации делал ratpoison -c "set padding число число число число", но в musca почему-то musca -c "set pad число число число число" не работает говоря что Invalid setting 'pad' to: блаблабла. К счастью всё решилось алиасом в конфиге на нужные значения
alias pon pad 0 0 0 0
alias poff pad 0 0 14 0

В общем изначально я лез полюбопытствовать что же за зверь такой которого постоянно сравнивают с ratpoison, но так на нем и остался... Ибо делать musca умеет всё тоже самое, имея при этом некоторые преимущества. Я конечно ещё не знаю всех возможностей musca, однако до моих требований к wm он более чем дотянул — будем пользоваться!

Ну и для тех кто хочет попробовать небольшая вводная:
PS. Привычка к emacs-like клавиатурным сочитаниям с префиксом дает о себе знать, а как сделать такую же для musca я не знаю, если только через xbindkey управлять

dmpd — управляем mpd с помощью dmenu

Набросал скрипт для управления mpd с помощью dmenu, но так как sh очень странный язык который позволяет быстро расширить/изменить возможности скрипта (да что там позволяет, просто таки хочется это сделать как видишь скрипт), то заодно немного и расширились возможности dmpd

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

Писалось для себя, поэтому, к примеру, по каталогам бегать некоторым будет не удобно (но менять скрипт под себя никто же не запрещает)

Читать продолжение