Архив метки: .rc

Git config с разделением по проектам

Возникла потребность настраивать по-разному конфиги гита для разных проектов (email контактный поменять, хотя бы, или хук на прогон тестов повесить).

Ну и понятно, что как-то эти конфиги подкладывать туда-сюда – не слишком увлекательно. К счастью, в свежих версиях гита – есть инклюды. В том числе – по условию – includeIf. Вот ими и стоит воспользоваться.

Читать далее Git config с разделением по проектам

Автозапуск tmux и автоподключение к нему

Сделал себе автоподключение к сессии tmux (или автозапуск tmux-сервера с новой сессией, если её ещё нет) при заходе в локальную консоль или при подключении по ssh к удалённым машинам (пользоваться бесплатным шеллом bshellz стало удобней).

# Autostart tmux on login
 __autostart_tmux() {
     # $( type -p ) - built-in in sh or bash only?
     #TMUX_BIN="$( whereis tmux | cut -d " " -f 2 )"
     # which versions different output format
     TMUX_BIN="$( which tmux 2> /dev/null )"
     if [ -z "${TMUX_BIN}" ]; then
         echo "Tmux not found"
         return 0
     fi

     TMUX_AS_SESS_NAME="$(echo "${USER}" | cut -c '1-3')"
     # return empty line if specified session exist or return 1
     TMUX_AS_SESS_RUN="$( tmux has-session -t "${TMUX_AS_SESS_NAME}" &> /dev/null || echo "$?" )"
     #TMUX_AS_DAEMON_MODE="$1" # $1 == "-d" or " "
     #TMUX_AS_EXIT="$2" # "return 0" or "exit 0"
    
     # do not attach automatically to tmux session if login on local XTerm
     if [ -z "${TMUX_AS_SESS_RUN}" ] && [ -z "${SSH_TTY}" ] && [ "${TERM}" = "xterm" ]; then
         echo "Tmux: running, not attached on local XTerm"
         return 0
     # do not run tmux automatically in another tmux (or screen)
     # in exists tmux session shell be started on non-login mode and .profile not used
     # (see set -g default-command "${SHELL}" in tmux.conf)
     elif [ -n "${TMUX}" ] || [ "${TERM}" = "screen" -o "${TERM}" = "screen-256color" ]; then
         echo 'Tmux: not be running in another terminal multiplexer "'${TERM}'"'
         return 0
     # attach to existed tmux session or create it and exit login-shell; or print error message
     else
         ((tmux has-session -t "${TMUX_AS_SESS_NAME}" && exec tmux attach-session -t "${TMUX_AS_SESS_NAME}") || (tmux new-session -d -s "${TMUX_AS_SESS_NAME}" && exec tmux attach-session -t "${TMUX_AS_SESS_NAME}")) && exit 0;
         echo "Tmux: autostart failed: $?"
     fi
 }
Читать далее Автозапуск tmux и автоподключение к нему

VCSH – спасение настроек в $HOME

Как ни странно, я только недавно познакомился с VCHS – надстройкой над Git, призванной облегчить резервирование конфигурационных файлов, расположенных в домашней директории (Version control system for $HOME – один из вариантов расшифровки аббревиатуры). Очень жаль, что этого не произошло раньше, и бэкап конфигов делался нерегулярно, кое-как, с изобретением различных костылей. Но, всё это в прошлом! Итак, что же представляет собой VCSH и как ей пользоваться?
Читать далее VCSH – спасение настроек в $HOME

Моё знакомство с Conky и мой conkyrc

Аж на восьмой год знакомства с Linux наконец-то познакомился и с Коньками (Conky) – раньше всё лень было, да и не особо нужно как-то (как мне казалось). Всякие индикаторы были на панельках Gnome, по клику на них вызывались развёрнутые версии, а Коньки я кроме как индикатором никак иначе и не воспринимал. После перехода на Openbox наконец решился на них посмотреть, три месяца потихоньку читал инструкции на сайте и настраивал Коньки под себя.

По итогам этой вялопротекавшей настроечной эпопеи могу сказать, что Conky я совершенно точно недооценивал. И хотя расширение при помощи LUA мне пока не пригодилось (да и возможность вывода нескольких окон с применением разных настроечных файлов тоже пока не требовалась), уже понятно, что Conky – это некий Emacs в мире системных мониторов 🙂

Читать далее Моё знакомство с Conky и мой conkyrc

Mplayer – всеядный видеопроигрыватель

Кроссплатформенный видеоплеер Mplayer по праву может считаться одной из самых популярных программ современности, предназначенных для воспроизведения видео. Начало его разработки датируется 2000 годом, автором стал Апард Герёфии, к работе которого затем подключилось множество программистов со всего мира.

Плазменная резка труб
Плазменная резка трубы - пример видеоролика в mplayer

Уникальность Mplayer заключается в том, что его стандартная версия является полностью консольной и может управляться с клавиатуры или при помощу пульта ДУ, на экран выводится только окно с проигрываемым видеофайлом, что неплохо экономит системные ресурсы и не отвлекает от просмотра обилием кнопочек и ползунков.

При желании Mplayer может быть дополнен графическим пользовательским интерфейсом, коих существует великое множество. Самые популярные – GnomeMplayer, KMPlayer, SMPlayer и UMPlayer. Последние две обладают наибольшем функционалом и большим набором скинов. Кроме того, существуют графические интерфейсы к MEncoder, разработанные для сред KDE и Gnome – это KMencoder и GMencoder.

Помимо того, что Mplayer достаточно экономно расходует системные ресурсы (а значит – отличается невысокими системными требованиями), поддерживает воспроизведение множества видео- и аудиоформатов, позволяет производить пакетную обработку медиафайлов и может проигрывать видеофайлы “на лету”, после загрузки нескольких процентов, он также позволяет конвертировать видео и аудио при помощи встроенного кодировщика MEncoder. Кроме того, при помощи MPlayer можно проверить работоспособность веб-камеры в Linux и производить захват изображения с нее или слушать подкасты на лету, если встроенный в сайт плеер по какой-то причине не устраивает.

mplayer и проигрывание playlist

Естественно, mplayer имеет поддержку чтения плейлистов – достаточно вызвать его с соответствующей опцией: mplayer -playlist название_плейлиста.m3u. Сам плейлист можно легко сгенерировать при помощи find: find "$(pwd)" \( -name "*.mp3" -o -name "*.ogg" \) | sort > playlist.m3u – этак команда найдёт все файлы с расширением mp3 или ogg в текущей директории или поддиректориях и внесёт их в плейлист с названием playlist.m3u. Её удобно добавить в bashrc как alias, причём можно сразу с вызовом mplayer для проигрывания созданного плейлиста.

mplayer и проигрывание потокового аудио

Никаких особых секретов при воспроизведении аудиопотока в mplayer нет, достаточно указать адрес самого потока: mplayer http://audio_stream. В данном случае полезными могут оказаться две опции, отвечающие за кэширование потока: mplayer -cache 4456 -cahce-min 2 http://audio_stream – укажет использовать кэш размером 4456 килобайта и начинать проигрывание потока не раньше, чем будет заполнено 2% от размера кэша.

Настройки mplayer – ~/.mplayer/config

Настройки mplayer находятся в файле ~/.mplayer/config, который может состоять из нескольких секций с разными настройками для “чистого” mplayer и его графических оболочек (smplayer, gnome mplayer и т.п.). Одна из полезных опций – zoom = 1 – она заставляет mplayer автоматически масштабировать изображение до размеров окна при его растягивании/уменьшении – автоматический zoom видео в mplayer. Мои настройки приведены в качестве примера конфигурационного файла для mplayer:

Настройка Rxvt через Xdefaults

Настройки Rxvt черезе Xdefaults

С некоторых пор стал пользоваться эмулятором терминала urxvt (unicode-версия rxvt) вместо gnome-terminal. Причина простая – на старом ноуте разница в скорости заметна и эта разница – в пользу urxvt (особенно если запускать его при старте GUI в режиме демона).

В остальном отличий в общем-то нет, urxvt тоже поддерживает именованные вкладки (табы), обработку гиперссылок, копирование и вставку мышью. Кроме того, он имеет поиск по выводимым в терминал данным (по Alt+S – очень удобно) и поддерживает цветной вывод man-страниц. Также urxvt существует и для cygwin.

На этом вводную часть закончу и ниже просто на память, чтобы не перечитывать ман при необходимости настроить терминал, выложу конфиг для urxvt, выполненный в виде отдельного файла, подключаемого из .Xdefaults.

Читать далее Настройка Rxvt через Xdefaults

BASH [born again shell] – оболочка командной строки

Краткая история Bash

bash, bashrc, настройка bash linux

bash представляет собой модернизированную и усовершенствованную версию оболочки командной строки Bourne shell. В системах семейства *NIX bash на данный момент является одной из наиболее популярных и распространённых оболочек, на многих таких ОС (и например в эмуляторе unix-подобного окружения Cygwin) эта оболочка предустановлена.

Корнями bash уходит к оболочке sh за авторством Стивена Борна, разработанной им в 1978 г. и усовершенствованной в 1987 году Брайаном Фоксом. Дословно Bash можно расшифровать как Biurne-again-shell или “Ещё одна оболочка Борна”. Также фамилия Борн созвучна со словом born (родившийся), что порождает альтернативное название: “вновь рождённая оболочка”.

Порядок запуска Bash

При запуске bash, во-первых, считывает и исполняет команды из основного файла профиля /etc/profile (при условии существования такого файла). Затем происходит чтение файлов из домашней директории пользователя: $HOME/.bash_profile, $HOME/.bash_login, и $HOME/.profile и исполнение записанных в них команд. В момент завершения работы при выходе из оболочки вызываются команды из файла $HOME/.bash_logout.

Помимо перечисленных выше файлов, bash также распознаёт команды, описанные в так называемом дот-файле (или .rc-файле) $HOME/.bashrc (примеры – файлы .vimrc и .wgetrc) Обычно здесь содержатся пользовательские настройки внешнего вида оболочки, переопределения пользовательских команд и т.п. Пользовательские функции для bash в целях удобства восприятия полезно выносить в отдельный файл (например $HOME/.bash_function), который затем подключать из .bashrc командой source (source $HOME/.bash_function).

Примеры файлов настроек для bash

bashrc – основной файл настроек

Мой файл bashrc (открыть на новой странице) содержит основные настройки оболочки – алиасы, сохранение истории команд, вид приглашения командной строки, настройки вывода некоторых команд и т.п. Все пользовательские функции вынесены в отдельный файл .bash_functions, подгружаемый из .bashrc. Локальные настройки для разных машин (переменные окружения, цвета приглашения командной строки) также подгружаются из отдельных внешних файлов .bash_local.

bash_functions – функции оболочки

bash_functions (открыть на новой странице) – содержит определения пользовательских функций и подгружается по вызову из .bashrc.

bash_usage – справка по использованию bash

А небольшая справка по использованию самописных функций и некоторых, не слишком часто нужных, программ, у меня вынесена в отдельный файл bash_usage, который также подгружается из .bashrc:
.bash_usage (открыть на новой странице) – содержит справку по пользовательским функцям и подгружается по вызову из .bashrc.

Остальные настройки оболочки, подключаемые в bashrc

Больше конфигов? Легко!

Примеры моих конфигурационных файлов для других программ можно найти на странице Конфиги / dotfiles

Видеорегистрация + видеонаблюдение для дома в Linux

Надумал и я побаловаться созданием простой и дешевой домашней системы видеонаблюдения и видеорегистрации (сподвигла меня на это статья из журнала “Хакер”). Естественно, что идея использовать веб-камеру и домашний компьютер в данном случае выглядит наиболее привлекательной.

Веб-камера для Linux

Свой выбор веб-камеры для Linux я остановил на Logitech Webcam C120 по ряду причин: во-первых, она отличается приемлемым качеством картинка (изображение с камер Genius аналогичного ценового диапазона меня не впечатлило совсем), во-вторых – камера работает по протоколу UVC, что означает её поддержку ядром Linux “из коробки” (штатно поддержка добавлена в ядро Linux с версии 2.6.26, также в Linux заработают веб-камеры, управляемые драйвером GSPCA) и в-третьих – эта веб-камера стоит всего 500 рублей и её мне не жалко разобрать с целью создания из неё ИК-камеры (камеры “ночного видения”).

Читать далее Видеорегистрация + видеонаблюдение для дома в Linux

Файл настройки vim – .vimrc (для Linux и Windows)

Продолжу сохранение самых интересных своих конфигурационных файлов. Сегодня пришла очередь файла конфигурации для редактора vim.vimrc (находится обычно в домашнем каталоге пользователя: ~/.vimrc, также пример файла есть в /etc/vim). Довольно много времени ему уделил, собирая настройки и разделяя их применение для разных ОС (Windows и Linux). А будет ли он завершён окончательно – даже и не знаю 🙂

Самое хорошее русскоязычное руководство (с примерами) по настройке Vim из встретившихся мне в интернете: Очередной HowTo по Vim. Именно из него я взял функцию для переключения раскладок клавиатуры без потери реакции редактора на нажатия управляющих клавишей в случае раскладки, отличной от английской.

Перемещение по табам сделано в стиле моего любимого эмулятора терминала – urxvt (Shift+стрелка). Можно просто скопировать все настройки в свой файл ~/.vimrc, открыв мой vimrc на отдельной странице.
Читать далее Файл настройки vim – .vimrc (для Linux и Windows)

Wget(rc) и flashgot – памятка

Настроил сегодня на работе wget в качестве загрузчика в Firefox (при помощи плагина flashgot). Теперь и с файлообменников качает, и имена закачиваемым файлам даёт нормальные, а не из имени ссылки. Чтобы не забыть в дальнейшем, что да как и при необходимости иметь лёгкий доступ к описанию процесса – сохраню памятку тут. Что удобно – wget под Win можно не только из cygwin использовать, но и нативную сборку скопировать например в C:\Windows\System32 (я на флешке виндовую сборку вгета ношу – один файлик маленький, установки не требует – очень удобно когда стоит только IE на машине, который докачку поддерживать, видимо, никогда не научится).
Читать далее Wget(rc) и flashgot – памятка