BSD
Как открывать ссылки из URxvt в браузере при помощи мыши?
Раньше я знал только один ответ - "выделить ссылку мышкой, открыть браузер, и вставить в адресную строку средней кнопкой". Но как всегда нашелся способ попроще ) Научить urxvt делать такие вещи так же, как и другие более "продвинутые" терминалы очень просто. Для этого нужно добавить в ~/.Xdefaults такие вот строки:
URxvt.perl-ext-common: default,matcher URxvt.urlLauncher: firefox URxvt.matcher.button: 1 URxvt.colorUL: #86a2be
Это сделает URL в терминале подчеркнутыми, выделенными голубым цветом, и левый клик на них будет открывать новые вкладки в firefox.
Vim. Перевод из шестнадатиричной в десятичную систему счисления
:echo 0xff 255
That's all (-:
Полезные советы по FreeBSD
Случайно нашел ленточку советов по FreeBSD на русском:
http://www.igosha.com/archives/category/freebsd
плюс в догонку мои URL's по FreeBSD:
http://delicious.com/pebu3op/FreeBSD
dzen + словарь
Иногда, читая man pages или какую-нибудь документацию в txt, html или в в .pdf наталкиваемся на иностранное слово отсутствующее в нашем словарном запасе.
Что делаем:
- Выделям незнакомое слово мышкой
- Открываем программу-словарик
- Делаем paste и получаем перевод
Слишком много телодвижений для столь простой задачки. Что можно придумать:
- Выделям незнакомое слово мышкой
- Нажимаем хоткей и на экране появляется окошко с переводом до следующего нажатия тогоже хоткея
Решение:
- Инсталируем dzen и словарики: sdcv или dict
- Пишем скрипт:
#!/bin/sh PID=$(ps wwax |grep "dzen2.*$WHEREX.*$WHEREY.*$WIDTH.*$FG" |grep -v grep |awk '{print $1}') if [ ${#PID} -ne 0 ] then kill -9 $PID else xsel -p | xargs sdcv -n | sed '/^$/d' | \
читалка заголовков писем на googlemail
Читалка заголовков мэйлов с googlemail:
#!/bin/sh URL='https://mail.google.com/mail/feed/atom' curl --silent -u name@googlemail.com:passwd $URL | \ grep -v Gmail | \ while read line do echo $line | grep "<title>" 1>/dev/null \ && TITLE=`echo $line | sed -e 's/<title>//' -e 's/<\/title>//'`;\ echo $line | grep "<name>" 1>/dev/null \ && NAME=`echo $line | sed -e 's/<name>//' -e 's/<\/name>//'`;\ echo $line | grep "<email>" 1>/dev/null \ && EMAIL=`echo $line | sed -e 's/<email>//' -e 's/<\/email>//'` && \ echo $(echo $NAME "<"$EMAIL">" $TITLE) done
P.S. Лучшего применения чем прикрутить эту штуку на dzen не нашел :-)
xmonad + Dzen + Task List Menu
Простенькая переключалка между открытыми окнами в xmonad
- Сначала воспользуемся предыдущим советом, и сделаем поддержку wmctrl в xmonad
- Далее:
(echo "Task List"; wmctrl -l)| \ dzen2 -m -p -x $WHEREX -w $WIDTH -fg $FG -bg $BG -l 15 -fn $FONT \ -e 'button1=menuprint;button3=exit;entertitle=uncollapse;leaveslave=collapse' | \ awk '{system("wmctrl -s " $2)}'
После выполнения вышеприведенной команды в dzen статус баре появляется "Task List".
Меню открывается при наведении мышкой на "Task List".
Правая кнопка мышки убирает меню со статусбара.
Переменные WHEREX, WIDTH, FG, BG, FONT инициализировать по личным предпочтениям.
В атачменте мой скрипт, который, подвешанный на хоткей, будет работать как включатель/выключатель Task List меню.
P.S.
xmonad-0.7 + dynamicLogWithPP c поддержкой wmctrl
С нулевым знанием языка haskell, скитаясь по докам и форумам, методом проб и ошибок, долгое время никак не мог разместить dynamicLogWithPP с ewmhDesktopsLogHook в LogHook.
ewmhDesktopsLogHook требуетя для поддержки wmctrl.
Наконец-то, с помощью вышеупомятуго метода таки получилось:
Магия в этих строчках конфигурационного файла:
import XMonad.Hooks.EwmhDesktops ... myLayout = ewmhDesktopsLayout $ avoidStruts (tall ||| Mirror tall ||| Full) ... logHook = ewmhDesktopsLogHook >> myLogHook din ...
Весь конфиг в аттачменте.
В wmctrl на xmonad некоторые опции к сожалению нерабочие: например -a
Как разрезать видео на фрагменты нужного размера
Имеем: Большой видео-файл
Требуется: Разделить его на несколько частей, каждая из которых будет полноценным видео-файлом.
Зачем: Например, что бы записать по частям на вышедшие из моды CD-R балванки или слить частями на rapidshare или в другое место, где имеется ограничение на размер расшариваемых файлов.
Допустим, собираемся поделить файл 300.avi на два файла на границе 10MB.
- Время и номер фрейма для точки, в которой будем резать, определить можно вот так:
% mencoder -ovc copy -oac copy -endpos 10mb -o /dev/null 300.avi ... Video stream: 1880.602 kbit/s (235075 B/s) size: 8678976 bytes 36.920 secs 923 frames - Теперь имеем всю необходимую информацию, и воспользовавшись вот этим советом, создаем два файла:
- первый:
% mencoder 300.avi -endpos 36.920 -o 300_PART1.avi -oac copy -ovc copy - второй:
% mencoder 300.avi -ss 36.920 -o 300_PART2.avi -oac copy -ovc copy
- первый:
- А теперь (если будет необходимо) в обратную сторону, соединяем:
% mencoder -oac copy -ovc copy -o 300.avi 300_PART1.avi 300_PART2.avi
Готово!
P.S. не сильно разбираюсь в различных видео-форматах и кодеках. Возможно, что не с любым файлом данный пример получится.
Скрипт для записи и проверки DVD
Периодически приходится писать на DVD разные вещи в консоли. Нередко я сначала раскидываю данные по каталогам, а потом уже пишу по принципу "1 каталог - 1 диск".
Для автоматизации процесса написал скрипт, который пишет на болванку содержимое каталога, проверяет качество записи и, в случае успеха, выдаёт записанный диск.
Дружелюбная конфигурация vim с нуля
Устанавливая vim в разных системах можно заметить, что чаще всего он ведет себя "совместимо" с vi. Это проявляется в первую очередь в реакции на нажатия курсорных клавиш в режиме вставки (портит текст =)). Отвечает за такое поведение опция "set nocompatible", но есть еще более простой способ получить дружественный конфигурационный файл vim по-умолчанию:
$ locate vimrcОтыскать среди вариантов vimrc_example и...
$ cp /путь/к/примеру/vimrc ~/.vimrcПоиск и замена текста в нескольких файлах
Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду:
perl -pi~ -e 's/foo/bar/' [files]
Оригинальные файлы при этом будут сохраны с именами filename~
Обзор ncurses, библиотеки для консольного ввода-вывода.
В документе описаны такие жизненно необходимые функции библиотеки консольного ввода/вывода ncurses как очистка экрана, перемещение курсора, изменение цветов фона и символов, отключение вывода символов при вводе и многое другое. Большая часть была взята из официальной документации остальная часть из личного опыта использования. Надеюсь многим начинающим программистам под Linux и не только будет полезна.
Как обновлять FreeBSD с низких поддерживаемых версий
При обновлении FreeBSD сразу через несколько релизов (как вариант - с 5.3 -> 6.1) может возникнуть ситуация когда уже установленные инстументы для сбора системы (из версии 5.3), не годятся для сбора новой системы (6.1). Например, используются какие-то новые возможности скриптов сборки или линковки.
Тогда при постройке мира указывается следующая опция:
$ make buildworld OSRELDATE=0
что соберет и установит все нужные инструменты. Теоретически Ж:-)
Указав ее мы как бы говорим системе что надо собирать мир с самой низкой из поддерживаемых версий FreeBSD. Если же Ваша версия уже не поддерживается официально, то рекомендуют бинарный апдейт.
Использование ports в FreeBSD на хостингах без прав root
Допустим у вас есть хостинг(естественно без прав root) и злые админы не реагируют на просьбы поставить так вами любмый редактор или IRC бот. Если есть компилятор то наиболее очевидным выходом является компиляция программ из исходных которов взятых с сайта производителя. Со всеми вытекающими последствиями как проблемы с библиотеками, обновлением новыйх версий, ключами компиляции и так далее и тому подобное...
Автопилотный запуск portupgrade
Если вы хотите проапдейтить все пакеты установленные из портов в FreeBSD, что бы не спрашивало глупых вопросов
$ export BATCH=yes
$ portupgrade -a
Как thunderbird заставить открывать ссылки в firefox
Необходимо создать (или добавить в) файл
Ускоряем KDE
Ускоряем работу КДЕ и КДЕ приложений.
alias howtime
FreeBSD, tcsh
Для определения времени исполнения команд используется /usr/bin/time ....
Удобно использовать эту команду как алиас
echo alias howtime (/usr/bin/time -h) >> ~/.cshrc
source ~/.cshrc
параметр "-h" нужен для вывода времени в часах, минутах, и секундах, а не в машинных тактах ("h" от "human")
и теперь вместо построения строки команд вводите нужную вам команду после алиаса например:
howtime mplayer video_file.avi
в конце фильма вы увидите сколько это заняло времени для компьютера
(естественно этот алиас важен не для проигрывания фильмов , а для того чтобы знать например узнать время ко
ищем сирот с целью убийства Ж:-D(поиск лишних пакетов)
Часто программы требуют библиотеки, и после их инсталяции библиотеки остаются даже если никто ими не пользуется.
Поиск таких пакетов в Debian обеспечивает пакет deborphan.
Удалить все пакеты соответственно
deborphan | xargs apt-get remove
Во FreeBSD тем же занимается /usr/ports/sysutils/pkg_cutleaves
чистка системы, определение кандидатов на удаление по размеру во FreeBSD
Иногда, места на диске становится достаточно мало, и хочется непременно вычислить и наказать виновных (например, вывести все пакеты упорядочив их по занимаемому на диске размеру, с целями поиска кандидта на удаление) для этого удобно использовать команду:
pkg_info -as | perl -pe '$/=")"; s/\n*Information for (.*?):[\n\s]*Package Size:[\n\s]*(\d+)\s*\(\s*1K\-blocks\s*\)/$2 - $1\n/;' | sort -nr | less
Для частого использования можно прописать эту команду в виде alias-а.
Cпособом улучшения скрипта можно считать промежуточное хранение размеров пакетов в файле,
и обновление их по мере необходимости.


