Часто встречается ситуация, когда приложение требует какую-то определённую версию библиотеки.
Узнать, какая версия есть в системе можно с помощью простенькой функции (у меня она в .zshrc):
1
2
|
# Проверить версию библиотеки
lib() { ls /usr/lib/$1* | awk -F/ '{ print $4 }' } |
Пример использования
RANUX — Управление мышкой в linux с помощью Python и libX11
Совсем недавно встала задача управления мышкой, те надо было пододвинуть курсор мыши в самый край экрана, чтобы его небыло видно. Итак, для запуска скрипта надо установить libX11-dev, так что качаем sudo apt-get install libX11-dev и запускаем скрипт user@localhost:->./move_cursor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#!/usr/bin/python
# move_cursor.py
from ctypes import cdll
def move_mouse(x,y):
dll = cdll.LoadLibrary('libX11.so')
d = dll.XOpenDisplay(None)
root = dll.XDefaultRootWindow(d)
dll.XWarpPointer(d,None,root,0,0,0,0,x,y)
dll.XCloseDisplay(d)
move_mouse(2000, 100)
|
Скрипты — OSD в mocp при прослушивании интернет-радио
Люблю я «Наше Радио», иногда слушаю его через интернет. Только вот mocp не выводит уведомления при изменении title проигрываемого трека — в самом mocp есть только обработчик смены трека - и для того, чтобы узнать что-же за песню там крутят приходится открывать mocp и смотреть. Думал, как бы выйти из этого положения... Результатом этих думок стал аккуратный, но несколько костыльный скрипт.
Скрипты — OSD для mocp с использованием libnotify
Небольшой скрипт, выводящий аккуратные уведомления о проигрываемом треке при смене этого самого проигрываемого трека в mocp (Music On Console Player - мой любимый).
Аккуратно выводит информацию и при отсутствии тегов в файле.
Работает с использование libnotify и perl.
Не так давно на welinux в комментариях к одному из постов состоялась беседа о том что хорошо бы хранить все конфиги не в
~/ а в определенном каталоге. Мало того что кому-то это хорошо так ещё и стандарт такой имеется. Согласно этому стандарту все пользовательские настройки должны храниться в переменной
$XDG_CONFIG_HOME, а если она не установлена то в каталоге
~/.config.
Однако, по разным причинам, многими программами этот стандарт не поддерживается.
На помощь таким программам приходит LD_PRELOAD-able библиотека
libetc с помощью которой любая попытка открыть dot-файл (файл с точкой в начале) перенаправляется в
$XDG_CONFIG_HOME т.е. конфиги всех программ можно хранить в папке определенной стандартом. Библиотека достаточно старая, и я удивлен почему о ней знает не так много людей
Для использования достаточно экспортировать несколько переменных
1
2
|
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
Попытался сделать по статье хабра Поднимаем WebSocket сервер
Но Устанавливаем библиотеку libevent
$ pecl install libevent
Всем привет!
Наткнулся на интересную штуку -- как смотреть фильмы в режиме ASCII-Art в мплеере.
Многие сталкивались с проблемой отображения кириллических тегов в Amarok. В этой статье я опишу два наиболее подходящих на мой взгляд способа решения этой проблемы.
Корень проблемы
Скажу сразу, Amarok тут не при чем. Дело в том, что большинство музыки, которую вы добываете на торрентах, покупаете на дисках и пр. содержит теги в кодировке cp1251. Это кодировка принята по умолчанию для отображения кириллицы в Windows. Данный подход давно устарел и все Linux дистрибутивы перешли на универсальную кодировку UTF-8.
Если глянуть еще глубже, то можно увидеть, что для чтения и отображения тегов amarok использует библиотеку taglib. Вот она-то и не хочет отображать теги в кодировке cp1251 корректно. Оно и понятно, зачем, если вся система работает с UTF-8?. В итоге вместо русских тегов в amarok мы видим каракули. Но не стоит отчаиваться, решение есть и не одно!