logo

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

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

inotify-tools — автоматическое обновление базы MPD

Inotify – это функция ядра Linux, отслеживающая изменения в фс и немедленно отправляющая необходимым приложениям соответствующие события (удаление, чтение, запись, монтирование). Но не о нем, а о inotifywait, программе входящей в пакет который в ArchLinux называется inotify-tools, которая позволяет отслеживать любой набор файлов и директорий(в том числе и рекурсивно). И именно эта программа будет отсылать нам сообщения о изменениях в папке с музыкой из которой играет Music Player Daemon (MPD).
В итоге у нас получается небольшой скрипт
#!/bin/bash
# Зависит от mpc(куда же без него) и inotify-tools

# наш конфиг
MPDCONF="$HOME/.mpdconf" # в домашнеей папке

# вычисляем каталог с музыкой
MUSICDIR=`cat $MPDCONF | grep "[^#]*music_directory" |head -n1| awk '{print $2}'`
# обрезаем кавычки
MUSICDIR=${MUSICDIR:1:$((${#MUSICDIR}-2))}
# а можно всё добро выше заменить на MUSICDIR="наша_папка_с_музыкой"

#собственно сама функция обнавления
function mpcUpdate() {
	#путь к файлу
	file=$* 
	# отрезаем папку с музыкой, оставляя путь в библиотеке
	file=${file:$((${#MUSICDIR}+1))}
	mpc update "$file" >/dev/null
 
}

# читаем в цикле события в папке с музыкой и производим нужное обнавления базы
inotifywait -mr -e close_write -e move -e create -e delete --format "%w%f" $MUSICDIR | while read line
do
	mpcUpdate "$line"
done
Если скрипт запущен то вся музыка добавляемая в процессе его работы в каталог с музыкой будет сразу же появляться в базе, изменяемая изменяться, а удаляемая удаляться =)

А вы уже используете omploader.org?


Это просто файловый хостинг, до безобразия простой, но достаточно приятный и функциональный:
• позовлят загрузить любой файл размером не более 1Гб.
• не требует никокой регистрации и прочей ереси
• дает прямую ссылку на файл
• код проекта полностью открыт, и вы можете установить сие чудо на свой сайт
• подхалтуривает заменителем pastebin позволяя выкладывать текстовые файлы с подсветкой синтакиса
В общем доаольно полезный сервис.
• позволяет загружать файл по URL

Кроме всего этого существует официальный скрипт на ruby (и curl) для загрузки файлов в ompload (тынц), и кучка неофициальных. Я пользую самопальный скрипт на bash+curl(ruby в системе мне пока ни к чему), который приведен под катом.
Читать продолжение

Управляем файлами из меню openbox

Арчевод под ником Xyne не перестает меня удивлять, увидел у него obfilebrowser — управление файлами прямо из меню openbox, не то что бы совсем управлять но как минимум открыть/выполнить работает.
obfilebrowser
Добавляем в меню пункт запускающий obfilebrowser и в качестве параметра папку, к примеру
<menu id="blablabla" label="blablabla" execute="obfilebrowser ~" />

Приложения для открытия берутся из ~/.local/share/applications/defaults.list

Арчеводам как обычно yaourt -S obfilebrowser

^s (Control s) в терминале и в GNU Screen

Не секрет что zsh, bash и иже с ними останавливают поток вывода на экран при нажатии ^s (визуально терминал блокируется, хотя всё работает как положено), а для отображения потока ^q. Попробуйте в консоли нажмите ^s и попробуйте чего-нить напечатать, вряд ли у вас получится (но ^q нас спасет и мы увидим то что вводили)
Дело в том что терминалы получают команды управления потоком XOFF и XON (выключение и включение соответственно).
Если вам не нравиться такое поведение консоли, то втыкаем маны и узнаем о том что команда stty позволяет изменить сие (и не только) поведение. Дабы не заставлять читать маны привожу команды которые надо добавить в bashrc или zshrc
stty ixany
stty ixoff -ixon

Так же эти команды можно вводить и в интерактивном режиме.

Всё бы ничего, но... В GNU Screen ^+s как работал до сих манипуляций так и работает, заглядываем в ман и вспоминаем об управлении потоком в самом скрине — defflow для всех окон и flow для текущей консоли уже при запущенном screen (^+a f или ^+a ^+f для цеклического переключения).
По умолчанию defflow выставлен в auto, но в мой ~/.screenrc каким-то образом затесалась строка defflow on, заменяя на auto (в зависимости от настроек терминала) или off ^+s начинает работать передавая ^+s в терминал (в zsh к примеру это fwd-i-search, в joe тоже поиск) и его можно назначить как управляющую последовательность вместо дефолтного ^+a

PKGBUILD для LXDM

LXDM - это новый менеджер дисплея для LXDE
На AUR не выкладываю, ибо делал для того что бы посмотреть на LXDM и поиграться с ним, следовательно поддерживать не собираюсь.

# Contributor: muhas <muhas@muhas.ru>
pkgname=lxdm-svn
pkgver=1997
pkgrel=1
pkgdesc="Lightweight Display Manager (part of LXDE)"
arch=('i686' 'x86_64')
url="http://lxde.org/"
license=('GPL')
depends=('gtk2')
makedepends=('autoconf' 'automake' 'gcc' 'make' 'pkgconfig' 'subversion')
conflicts=('lxdm')
provides=('lxdm')
groups=('lxde-svn')
source=()
md5sums=('')
_svnmod="lxdm"
_svntrunk="https://lxde.svn.sourceforge.net/svnroot/lxde/trunk/lxdm"
build() {
  cd ${srcdir}
  msg "Getting sources..."
  if [ -d ${_svnmod}/.svn ]; then
    (cd ${_svnmod} && svn up -r ${pkgver})
  else
    svn co ${_svntrunk} --config-dir ./ -r ${pkgver} ${_svnmod}
    cd ${_svnmod}
  fi
  msg "SVN checkout done or server timeout"
  msg "Starting make..."
  # Generating Makefile, etc
  ./autogen.sh || return 1
  ./configure --prefix=/usr \
              --sysconfdir=/etc \
              --localstatedir=/var \
              --disable-static
  make || return 1
  make DESTDIR=${pkgdir} install || return 1
}

Подробности о LXDM тут

UP В АУРе появился PKGBUILD для LXDM, немного правильнее моего ибо присутствует ещё и возможность запуска демоном