PopUp`и з малюнками

1 коментар

Давно пора спати. І завтра молода дружина буде незадоволена моєю зухвалою поведінкою. Але дуже захотілось libnotify подружити їз audacious, щоб остнній показував вигульки не якось по-своєму, а так, як скрізь у системі робиться. Ґуґл розказав, що таке вже зроблено, проте це виявилось не зовсім то, бо у вигульку була лиш назва трека, а мені хотілось ще й альбомну обгортку до трека, якщо є.

Вирішилось так:

  • У Audacious є плугін, який дозволяє виконувати довільну команду при зміні трека, передаючи їй деякі змінні
  • Є пакет libnotify-bin, в якому є програмка notify-send
  • Є рудиментарні навички BASH-програмування, щоб це все діло скаламутити в одне готове рішення — скриптик, який буде виконутись при зміні трека і видавати мені гарний вигульк з картинкою.

Оце рішення, власне, і є суттю нотатки, ним і ділюсь:


Скрипт приймає від програвача назву файла, закодовану у urlencode, розкодовує її у нормальний вигляд, переходить у теку, де лежить трек, і шукає там картинки у jpeg, бере першу, що знайшлась і показує у вигульку. Якщо картинок нема, то у вигульку показується іконка програвача.

 #!/bin/bash
urldecode(){
  echo "$@" | sed 's/^.*$/'"`echo "$@" | sed 'y/+/ /; s/%/\\\\x/g; s/\//\\\\\//g'`"'/'
}

TMPFILE=`echo "$1" |  sed 's_file://__' |sed 's_\&_*_g'|sed 's_\/_"slash"_g'`
FILE=`urldecode $TMPFILE|sed 's_*_\&_g'| sed 's_"slash"_\/_g'`
DIR="`dirname "$FILE"`"
cd "$DIR"
JPG="`find -iname "*.jp*g" 2>/dev/null|head -1`"
if [ -z `echo $JPG` ]; then 
ICON=audacious
else
cp "$JPG" /tmp
JPG=/tmp/`basename "$JPG"`
mv $JPG /tmp/icon.jpg
JPG=/tmp/icon.jpg
ICON="$JPG"
fi
if [ $3 ] && [ $3 -ge 1000 ]
	then 
	TIMEOUT=$3
	else 
	TIMEOUT=3000
fi
notify-send -i "$ICON" "$2" -t $TIMEOUT
if [ -e /tmp/icon.jpg ]; then 
rm /tmp/icon.jpg
fi
exit 0
 

  • Це збережено у скрипт десь у $PATH (у мене ~/bin/asd)
  • У налаштуваннях плугінів Audacious задіяти Song Change, а у ньому на зміну трека вказати

    ~/bin/asd “%f” “%s” 3000

    (замінивши ~/bin/asd на те, як названо скрипт, а 3000 замінивши на своє число мілісекунд показу вигулька)


Advertisements

Клавдія Йуесбе

12s коментарів

Клава на пузі дістала вкрай. Тобто, сама клава чудова, усе як я люблю — довгі Enter з Backspace, Delete не одразу над стрілочками, а вище — через порожній проміжок, клавіші не впритул одна до одної, і тиснути їх приємно, бо вони мов живі — з-під пальців хочуть вилізти і так проникливо цокають. Уся така, як потрібно мені. Це повна відповідність характерів, повна гармонія. І на пузі моєму вона не випадково — не інакше, доклалися вищі сили.
Але послухайте. Коли сидиш на дивані з нетбуком і вештаєш тирнетрями завзято працюєш, пальцям іноді обридає тертись один об одного (дуже тісна вбудована клавіатура). Тоді із шухляди дістається моя чарівна й вірна, ніжно береться за штекер, обережно та впевнено встромляється в роз’єм нетбука. Скільки краси, скільки глибинного змісту, яка єдність! Нам буде зараз так добре!
І тут настає реальна холєра. Мої налаштування розкладок зриваються і летять у вирій, залишаючи мене з одним лише богомєрзким EN_US. Нє, звісно, можна пару раз клацнути і знову мати щастя, але це ж неподобство. Після третього разу здається, що краще б вона сказала, що їй болить голова чи що сьогодні ну ніяк не можна.
Я її приборкав. Хоча ні, я приборкав нетбук. Він, певно, заздрив нашому щастю. Тепер у нас знову повна гармонія, я її ніжу пальцями, а вона мені гарно цокає (і у нас з нею виходять гарні здоровенькі розовощокі сторінки перекладів).


Далі власне нотатка по ходу, протокол приборкання, щоб не забути, якщо раптом від обурення нетбук знову здохне, чи якщо я усе ж знайду час налаштувати собі десктоп. Нотатка буде нецікава тим, у кого свідомість спотворена Windows.

Отож,
Маємо:

  • Debian GNU/Linux Squeeze
  • XFCE 4.6.1
  • xfce4-xkb-plugin 0.5.3.2-1
  • xorg 1:7.4+4

Суть проблеми: Налаштовуємо плугін (аплетик панелі) на використання потрібних розкладок і способи перемикання між ними (і композитна клавіша, кому цікаво). Система без xorg.conf, додаткових конфігурацій для HAL стосовно клавітури нема. При під’єднанні зовнішньої клави всі налаштування аплета (чи що було налаштовано через setxkbmap) десь діваються, задіюється лише одна розкладка EN_US, додатові опції відключаються.

Вирішення: Недовгий пошук привів до того, що це діло керується файлом /etc/default/keyboard (якщо є). Тобто реально керується правилом HAL у файлі /usr/share/hal/fdi/policy/10osvendor/debian-x11-keymap.fdi, який читає /etc/default/console-setup, а той вже читає /etc/default/keyboard
У мене ось так:

XKBMODEL=”pc104″
XKBLAYOUT=”us,ru,ua”
XKBVARIANT=”,typewriter,unicode”
XKBOPTIONS=”grp:caps_toggle,grp_led:caps,lv3:ralt_switch,compose:rctrl”

Далі перезавантажити машину або перезапустити HAL:

su -c /etc/init.d/hal restart

Всі інші способи (наприклад, створення свого правила для HAL чи редагування готового) слід вважати на Debian некошерними і шкідливими для карми.

Older Entries Newer Entries