tag:blogger.com,1999:blog-11296667539428445702009-11-06T01:38:37.208+03:00If it moves, compile it!mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-1129666753942844570.post-43472520418031336852009-11-06T01:36:00.001+03:002009-11-06T01:38:37.215+03:00zshrcСпасибо kapsh'у за конфиг.<br /><pre>############<br />### MAIN ###<br />############<br /><br />ZDOTDIR=~/.zsh<br /><br /># The following lines were added by compinstall<br /><br />zstyle ':completion:*' completer _expand _complete _ignored<br />zstyle ':completion:*' group-name ''<br />zstyle ':completion:*' list-colors ''<br />zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s'<br />zstyle ':completion:*' max-errors 1<br />zstyle ':completion:*' menu select=long-list select=0<br />zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'<br />zstyle ':completion:*' use-compctl false<br />zstyle ':completion:*' verbose true<br />zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'<br />export HISTIGNORE="&:ls:[bf]g:exit"<br />autoload -Uz compinit<br />compinit<br /># End of lines added by compinstall<br /># Lines configured by zsh-newuser-install<br />HISTFILE=~/.zsh/.histfile<br />HISTSIZE=1000<br />SAVEHIST=1000<br />setopt appendhistory sharehistory autocd beep extendedglob nomatch notify<br />bindkey -e<br /># End of lines configured by zsh-newuser-install<br /><br /># Автодополнение для kill показывает очень мало:<br />zstyle ':completion:*:processes' command 'ps -xuf'<br />zstyle ':completion:*:processes' sort false<br /><br /># То же самое для killall.<br /># Почему-то по умолчанию processes-names вызывает ps ho command для пользователя <br /># и ps xaho command для root. Добавим себе x:<br />zstyle ':completion:*:processes-names' command 'ps xho command'<br /><br /># Исправление неверно набранных команд<br />setopt correctall<br /><br />export HISTTIMEFORMAT="%t%d.%m.%y %H:%M:%S%t"<br /><br />###############<br />### КОСТЫЛИ ###<br />###############<br />bindkey "\e[1~" beginning-of-line<br />bindkey "\e[4~" end-of-line<br />bindkey "\e[5~" beginning-of-history<br />bindkey "\e[6~" end-of-history<br />bindkey "\e[3~" delete-char<br />bindkey "\e[2~" quoted-insert<br />bindkey "\e[5C" forward-word<br />bindkey "\eOc" emacs-forward-word<br />bindkey "\e[5D" backward-word<br />bindkey "\eOd" emacs-backward-word<br />bindkey "\ee[C" forward-word<br />bindkey "\ee[D" backward-word<br />bindkey "^H" backward-delete-word<br /># for rxvt<br />bindkey "\e[8~" end-of-line<br />bindkey "\e[7~" beginning-of-line<br /># for non RH/Debian xterm, can't hurt for RH/DEbian xterm<br />bindkey "\eOH" beginning-of-line<br />bindkey "\eOF" end-of-line<br /># for freebsd console<br />bindkey "\e[H" beginning-of-line<br />bindkey "\e[F" end-of-line<br /># completion in the middle of a line<br />bindkey '^i' expand-or-complete-prefix<br /><br /><br />###############<br />### ALIASES ###<br />###############<br /><br /># Листинг файлов <br />alias ls='ls --classify --color --human-readable --group-directories-first'<br /><br /># Копирование/перемещение с подробным отчетом<br />alias cp='nocorrect cp --interactive --verbose --recursive --preserve=all'<br />alias mv='nocorrect mv --verbose --interactive'<br /><br /># Предупреждение перед удалением<br />alias rm='nocorrect rm -v'<br /><br /># grep с выделением искомого цветом<br />alias grep='grep --color=auto'<br /><br /># Читаемые du и df<br />alias du='du --human-readable --total'<br />alias df='df --human-readable'<br /><br /># nohup без создания мусорных файлов<br />alias nohup='nohup > /dev/null $1'<br /><br /># Открытие файлов из консоли<br />alias -s {avi,mpeg,mpg,mov,m2v}=mplayer<br />alias -s {pdf}=epdfview<br />alias -s {fb2}=FBReader<br />alias -s {jpg,png,svg,xpm,bmp}=gqview<br />alias -s {djvu}=djview4<br /><br />autoload -U pick-web-browser<br />alias -s {html,htm,xhtml}=pick-web-browser<br /><br /># Цветной вывод в консоли<br />if [ -f /usr/bin/grc ]; then<br /> alias grc='grc --colour=auto'<br /> alias ping='grc ping'<br /> alias last='grc last'<br /> alias netstat='grc netstat'<br /> alias traceroute='grc traceroute'<br />fi<br /><br />alias emerge="nocorrect emerge"<br />alias equery="nocorrect equery" <br />alias eix="nocorrect eix"<br /><br />alias killall="killall --interactive --verbose"<br /><br />alias free="free -t -m"<br /><br /><br />#################<br />### FUNCTIONS ###<br />#################<br /><br /># Смена текущего каталога с показом его файлов<br />cdls() { cd $1 && ls }<br /><br /># Создать каталог и перейти в него<br />mkcd() { mkdir $1 && cd $1 }<br /><br /># Выйти из каталога, удалив его со всеми файлами<br />rcd() { local TOREMOVE="$PWD"; cd .. && rm -irfv $TOREMOVE }<br /><br /><br /># copy/paste в терминале<br />COPYPASTEDIR="/tmp/copypaste-$USER/"<br /># Создать каталог для временных файлов<br />if [ ! -d $COPYPASTEDIR ]; then<br /> mkdir $COPYPASTEDIR<br />fi<br /># Копировать указанные файлы в COPYPASTEDIR<br />ccopy() {<br /> cp -L -a $@ $COPYPASTEDIR;<br />}<br /># Переместить их туда <br />cmove() {<br /> mv $@ $COPYPASTEDIR;<br />}<br /># Переместить все собранные в COPYPASTEDIR файлы в текущий каталог<br />cpaste() {<br /> mv $COPYPASTEDIR/* .;<br />}<br /><br /># Проверить буфер<br />cshow() {<br /> echo `ls -1 $COPYPASTEDIR | wc -l` "files in buffer:";<br /> ls $COPYPASTEDIR;<br /> echo `du -sh $COPYPASTEDIR | grep total`;<br />}<br /># Очистить его<br />cclear() {<br /> rm $COPYPASTEDIR/*;<br />}<br /><br /># Калькулятор<br />calc() {<br /> echo "$1" | bc --mathlib;<br />}<br /><br /><br /><br />#precmd() {<br /># [[ -t 1 ]] || return<br /># case $TERM in<br /># *xterm*|*rxvt*|(dt|k|E|a)term*) print -Pn "\e]0;[%~] %m\a" ;;<br /># screen(-bce|.linux)) print -Pn "\ek[%~]\e\" && print -Pn "\e]0;[%~] %m (screen)\a" ;; #заголовок для скрина<br /># esac<br />#}<br />#<br />#preexec() {<br />#<br /># [[ -t 1 ]] || return<br />#<br /># case $TERM in<br />#<br /># *xterm*|*rxvt*|(dt|k|E|a)term*) print -Pn "\e]0;<$1> [%~] %m\a" ;;<br />#<br /># screen(-bce|.linux)) print -Pn "\ek<$1> [%~]\e\" && print -Pn "\e]0;<$1> [%~] %m (screen)\a" ;; #заголовок для скрина<br />#<br /># esac<br />#<br />#}<br /><br /><br />##############<br />### PROMPT ###<br />##############<br /><br />PROMPT="%B%F{green}%~ %F{blue}>%b%f "<br /><br />if [ "$EUID" -eq "0" ]; then<br /> RPROMPT="%B%F{red}%n%f%b"<br />fi<br /></pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-4347252041803133685?l=iimci.blogspot.com'/></div>nvohttp://www.blogger.com/profile/05624235267685212556noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-86579576564722554532009-10-13T00:07:00.003+04:002009-10-13T00:10:37.066+04:00Глобальный cssДелает все сайты уныло-темными. Зато с фееричными оранжевыми ссылками.<br />Основано на каком-то темном стиле с userstyles.org, ссылка уже затерялась.<br /><pre>@namespace url(http://www.w3.org/1999/xhtml);<br />@-moz-document url-prefix(http://),<br />url-prefix(https://),<br />url-prefix(about:blank),<br />url-prefix(ftp://),<br />url-prefix(gopher://) {<br /> <br />html,<br />body {<br /> background-color:#242721!important<br />}<br /><br />body>*:not(:empty) {<br /> background-color:#2a2d27!important<br />}<br /><br />body>*>*:not(:empty) {<br /> background-color:#2a2d27!important<br />}<br /><br />body>*>*>*:not(:empty) {<br /> background-color:#2c2f29!important<br />}<br /><br />body>*>*>*>*:not(:empty) {<br /> background-color:#2c2f29!important<br />}<br /><br />body>*>*>*>*>*:not(:empty) {<br /> background-color:#30332d!important<br />}<br /><br />body>*>*>*>*>* * {<br /> background-color:#30332d!important<br />}<br /><br />body table[border="0"] td {<br /> background-color:#242721!important<br />}<br /><br />body table table[border="0"] td {<br /> background-color:#30332d!important<br />}<br /><br />body table table table[border="0"] td {<br /> background-color:#2a2d27!important<br />}<br /><br />body table table table table[border="0"] td {<br /> background-color:#343731!important<br />}<br /><br />body *:empty {<br /> background-color: #242721!important<br />}<br /><br />body p:not(:empty),<br />body p *,<br />body h1,<br />body h1 *,<br />body h2,<br />body h2 *,<br />body h3,<br />body h3 *,<br />body h4,<br />body h4 *,<br />body h5,<br />body h5 *,<br />body strong>*,<br />body b>*,<br />body em>*,<br />body i>*,<br /> body span>*:not(img) {<br /> background:transparent none!important<br />}<br /><br />body h1,<br />body h1 *,<br />body h2,<br />body h2 *,<br />p>strong:only-of-type,<br />p>b:only-of-type {<br /> color: #a98!important<br />}<br /><br />body h3,<br />body h3 *,<br />body h4,<br />body h4 * {<br /> color: #aaa!important<br />}<br />*:not([onclick]):not(input):not(a):not(img):not([class^="UI"]),<br />body a:not(:empty),<br />div:not([onclick]) {<br /> background-image:none!important;<br /> text-indent:0!important<br />}<br /><br />*[onclick] {<br /> color:#79a!important<br />}<br /><br />*[onclick]:hover {<br /> color:#99a8aa!important<br />}<br /><br />body hr {<br /> background: #666 none!important;<br /> color: #666!important;<br /> border:1px solid #666!important;<br /> height: 1px!important;<br /> overflow:hidden!important;<br /> display: block!important<br />}<br /><br />* {<br /> color: #ccc!important;<br /> border-color:#666!important;<br />}<br /><br />* body a:not([name]),<br />body a:not([name]) * {<br /> color: #eab93d!important;<br />}<br /><br />* body a:not([name]):visited,<br />body a:not([name]):visited * {<br /> color: #b6aa7b!important;<br />}<br /><br />body a:not([name]):hover,<br />body a:not([name]):hover * {<br /> color: #cc6565!important;<br /> text-decoration: underline!important<br />}<br /><br />body img,a[href] img,<br />a[href] button,<br />input[type="image"],*[onclick]:empty,<br />body a:empty {<br /> opacity:.5!important<br />}<br /><br />body img:hover,a[href]:hover img,<br />a[href]:hover button,<br />*[onclick]:empty:hover,<br />body a:empty:hover {<br /> opacity:1!important<br />}<br />pre:not(:empty),<br />code:not(:empty),<br />cite:not(:empty),<br />pre:not(:empty) *,<br />code:not(:empty) *,<br />cite:not(:empty) * {<br /> background-image:url(data:image/gif;base64,R0lGODlhBAAEAIAAABERESIiIiH5BAAAAAAALAAAAAAEAAQAAAIGTACXaHkFADs=)!important;<br /> color: #bcc8dc!important;<br />}<br />}</pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-8657957656472255453?l=iimci.blogspot.com'/></div>nvohttp://www.blogger.com/profile/05624235267685212556noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-19413032928296510102009-10-11T12:18:00.002+04:002009-10-11T12:21:48.878+04:00Цветовая схема для Vimperator<pre>" ==Vimperator_Color_Scheme==<br />" name: Desert<br />" ==Desert_Color_Scheme==<br /><br />" Основной цвет<br />hi Normal background: #242721; color: #afafaf; font-size: 12pt; font-family: monospace; <br />" Командная строка<br />hi CmdLine background: #242721; color: #afafaf; font-size: 12pt; font-family: monospace; font-weight: normal; padding: 0px 3px;<br /><br />" Выпадающее меню автодополнения<br />hi CompGroup background: #242721; color: #afafaf; <br />hi CompTitle background: #242721; color: #afafaf; font-weight: bold;<br />hi CompItem background: #242721; color: #afafaf; padding: 0px 3px;<br />hi CompItem[selected] background: #444741; color: #afafaf; <br />hi CompDesc background: #242721; color: #afafaf; <br />hi CompDesc[selected] background: #444741; color: #afafaf; <br />hi CompMsg background: #242721; color: #afafaf; <br /><br />hi Gradient background: #242721;<br />hi GradientLeft background: #242721;<br />hi GradientRight background: #242721;<br /><br />" Сообщение об ошибке<br />hi ErrorMsg background: #ff6565; color: #ffffff;<br />hi Filter color: #242721; font-weight: bold; <br /><br />" Статусная строка<br />hi StatusLine font-family: monospace; font-size: 12pt; font-weight: normal; color: #242721; background: #afafaf;<br />hi StatusLineBroken font-family: monospace; font-size: 12pt; font-weight: normal; color: #242721; background: #afafff;<br />hi StatusLineSecure font-family: monospace; font-size: 12pt; font-weight: normal; color: #242721; background: #afffaf;<br /><br />hi Hint font-family: monospace; font-size: 12pt; font-weight: normal; color: #fff; background-color: #666; padding: 0px 1px; border: 1px solid #242721;<br /><br />hi Title font-size: 12pt; color: #242721; background: #afafaf;<br /><br />style -name statusbar chrome://* <<EOM<br />#status-bar statusbarpanel { padding: 0 1px !important; }<br />statusbarpanel > * { margin: 0 !important; padding: 0 2px 0 0 !important; }<br />EOM</pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-1941303292829651010?l=iimci.blogspot.com'/></div>nvohttp://www.blogger.com/profile/05624235267685212556noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-51020959511641070662009-10-10T19:23:00.003+04:002009-10-10T19:31:31.257+04:00Подпилил userChrome.cssТеперь ФФ еще больше похож на VIM. Сам файл:<pre>@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");<br /><br />#main-window #content .tabbrowser-tabs {<br /> -moz-appearance: none !important;<br /> margin-top: -3px!important;<br /> margin-bottom: -3px!important;<br /> border-top: 0px solid !important;<br /> padding:0 !important;<br />}<br /><br />.tabs-bottom {<br /> border-top: 0px solid !important;<br /> border-bottom: 0px solid !important;<br /> margin-bottom: 3px!important;<br /> min-height: 21px !important;<br /> background: #c6c6c6 !important;<br />}<br /><br />.tabbrowser-tab {<br /> -moz-appearance: none !important;<br /> -moz-border-radius: 0px !important;<br /> margin:0 -1px !important;<br /> padding:0 !important;<br /> padding-top:3px !important;<br /> border-right: 0 !important;<br /> font-family: monospace !important;<br /> font-size: 12pt !important;<br /> color: #ffffff !important;<br /> background: #6c6c6c !important;<br />}<br /><br />.tabbrowser-tab[selected="true"] {<br /> background: #242721 !important;<br /> font-weight: bold !important;<br /> color: #c6c6c6 !important;<br /> border-bottom: 1px solid #242721 !important;<br />}<br /><br />.tabbrowser-tab:not([selected="true"]) {<br /> border-bottom: 1px solid #c6c6c6 !important;<br />}<br /><br />.tabbrowser-tab .tab-text {<br /> border:0px !important;<br />}<br /><br />.tabbrowser-arrowscrollbox {<br /> max-height:21px !important;<br /> background: #c6c6c6 !important;<br />}<br /><br />.tabs-closebutton-box, .tab-close-button, .tabs-newtab-button, .tabs-alltabs-button, .tabbrowser-arrowscrollbox > .scrollbutton-up, .tabbrowser-arrowscrollbox > .scrollbutton-down {<br /> display: none !important;<br />}</pre><br /><br />Результат можно видеть на снимке рабочего стола на правой панели.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-5102095951164107066?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-85837830735735440402009-10-09T23:55:00.004+04:002009-10-10T00:25:30.045+04:00WiFi Access Point в gentooИтак, дошли у меня руки сделать точку доступа из давно купленной платы D-Link DWA-520 на чипе atheros<br /><code>02:0a.0 Ethernet controller: Atheros Communications Inc. AR5212/AR5213 Multiprotocol MAC/baseband processor (rev 01)</code><br /><br />В итоге была получена точка с WPA шифрованием и статическими IP и настроенный мост между ней и проводным интерфейсом.<br /><br />В тексте будут использоваться интерфейсы eth0, eth1 и ath0. У меня <span style="font-weight:bold;">eth1</span> смотритв интернет, <span style="font-weight:bold;">eth0</span> и <span style="font-weight:bold;">ath0</span> — в локальную сеть.<br /><br />Для начала нужно добавить в конфиг ядра следующие параметры:<pre>[*] Enable loadable module support ---><br /> [*] Module unloading<br /> [ ] Module versioning support<br /><br />Device Drivers ---><br /> [*] Network device support ---><br /> Wireless LAN ---><br /> [*] Wireless LAN (IEEE 802.11)<br /><br />[*] Networking support ---><br /> [*] Wireless ---><br /> [*] Wireless extensions<br /> Networking options ---><br /> <*> 802.1d Ethernet Bridging<br /><br />-*- Cryptographic API ---><br /> <*> HMAC support<br /> <*> AES cipher algorithms</pre><br /><br />И установить необходимые утилиты:<pre># emerge madwifi-ng madwifi-ng-tools hostapd dnsmasq bridge-utils wpa_supplicant</pre><br />С madwifi-ng возникли некоторые проблемы: пакет версии 0.9.4 требовал в ядре включенной опции CONFIG_KMOD, которая в моем 2.6.30-r6 отсутствовала. Проблема решилать установокой madwifi-ng madwifi-ng-tools из тестируемой ветки ~x86 (версия 0.9.4.4030.20090529).<br /><br />Приступим к настройке. Для начала нужно создать симлинки для eth0, ath0 и br0:<pre># cd /etc/init.d<br /># ln -s net.lo net.eth0<br /># ln -s net.lo net.ath0<br /># ln -s net.lo net.br0</pre><br /><br />Затем загружаем драйвер:<br /><pre># modprobe ath_pci && update-modules</pre><br /><br />Правим конфиги:<br /><span style="font-weight:bold;">/etc/modprobe.d/ath_pci</span><pre>options ath_pci autocreate=ap</pre><br /><br /><span style="font-weight:bold;">/etc/conf.d/local.stop</span><pre>ifconfig ath0 down<br />wlanconfig ath0 destroy<br />wlanconfig ath0 create wlandev wifi0 wlanmode ap</pre><br /><br /><span style="font-weight:bold;">/etc/conf.d/net</span><pre>config_eth0=( "null" )<br />config_ath0=( "null" )<br /><br />channel_ath0="1"<br />mode_ath0="master"<br />essid_ath0="daath_wlan"<br /><br />bridge_br0=( "eth0" "ath0" )<br />config_br0=( "192.168.0.1 netmask 255.255.255.248 broadcast 192.168.0.7" )</pre><br /><br />И, наконец, шифрование:<br /><span style="font-weight:bold;">/etc/hostapd/hostapd.conf</span><pre><br />interface=ath0<br />bridge=br0<br />driver=madwifi<br />logger_syslog=-1<br />logger_syslog_level=2<br />logger_stdout=-1<br />logger_stdout_level=1<br />debug=0<br />dump_file=/tmp/hostapd.dump<br />ctrl_interface=/var/run/hostapd<br />ctrl_interface_group=0<br />ssid=daath_wlan<br />macaddr_acl=0<br />accept_mac_file=/etc/hostapd/hostapd.accept<br />deny_mac_file=/etc/hostapd/hostapd.deny<br />auth_algs=1<br />wpa=1<br />wpa_passphrase=secret_key<br />wpa_key_mgmt=WPA-PSK<br />wpa_pairwise=TKIP CCMP</pre><br /><br /><span style="font-weight:bold;">/etc/conf.d/hostapd</span><pre>INTERFACES="ath0"</pre><br /><br />Теперь добавим необходимые сервисы в автозагрузку:<pre># rc-update add # net.eth0 boot<br /># rc-update add net.ath0 boot<br /># rc-update add net.br0 default<br /># rc-update add dnsmasq default<br /># rc-update add hostapd default</pre><br /><br />После этих действий все заработало.<br /><br /><br />Основано на <a href="http://en.gentoo-wiki.com/wiki/Madwifi_Wireless_Access_Point">статье из gentoo-wiki</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-8583783073573544040?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-71629838724060186822009-09-28T22:41:00.000+04:002009-09-28T22:46:49.375+04:00Индикация раскладкиИз-за отсутствия светодиодов на моей клавиатуре пришлось искать софтварную индикацию раскладки. Пробежавшись по форумам, наткнулся на <a href="http://members.dslextreme.com/users/jbromley/files/ruby-xkb.tar.bz2">ruby-xkb.tar.bz2</a> -- индикатор на ruby, использующий Сшную либу, идущую в комплекте. Установка -- make && make install, запуск -- ./xkbstate.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-7162983872406018682?l=iimci.blogspot.com'/></div>nvohttp://www.blogger.com/profile/05624235267685212556noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-37281815305134259952009-09-22T22:53:00.005+04:002009-09-23T00:15:22.413+04:00Настройка GNU/ScreenДошли наконец руки причесать свой .screenrc. Вот результат:<br /><pre>term screen-256color<br />attrcolor b ".I"<br />termcapinfo rxvt-unicode 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'<br />autodetach on<br />altscreen on<br />defflow on<br />deflogin on<br />defbce on<br />defmonitor on<br />activity "Act:%n"<br />bell_msg "Bell:%n"<br />defscrollback 1000<br />crlf off<br />startup_message off<br />hardstatus off<br />caption always "%{= Kw}%? %-Lw%?%{+b dw} \<br />%n*%t%f %?(%u)%?%{= Kw}%?%+Lw%< %{+b dw}\<br />%-=[ %{+b dR}%H %{-b dG}%l %{+b dW}] "</pre><br /><br />Скриншот:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_my6bWd3QMgo/Srkfkk04-hI/AAAAAAAAADE/1R6CZm6yEUQ/s1600-h/2009-09-22-225214_1024x768_scrot.png"><img style="cursor: pointer; width: 400px; height: 159px;" src="http://2.bp.blogspot.com/_my6bWd3QMgo/Srkfkk04-hI/AAAAAAAAADE/1R6CZm6yEUQ/s400/2009-09-22-225214_1024x768_scrot.png" alt="" id="BLOGGER_PHOTO_ID_5384369542719404562" border="0" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-3728181530513425995?l=iimci.blogspot.com'/></div>nvohttp://www.blogger.com/profile/05624235267685212556noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-86117290296850154512009-09-08T21:11:00.008+04:002009-09-08T21:27:59.833+04:00Оптимизированное gtkrc-2.0За основу взять движок mist, как самый шустрый. Некоторые пункты копипастились из других тем, потому номально описать, что они делают не смогу.<br /><pre>#шрифты<br />style "user-font" {font_name = "Либерастика 11"}<br />widget_class "*" style "user-font"<br />gtk-font-name="Либерастика 11"<br />#иконки<br />gtk-icon-theme-name="hicolor"<br />#размеры кнопок на панелях<br />gtk-icon-sizes = "panel=16,16:gtk-menu=0,0:gtk-button=1,1:\<br />gtk-small-toolbar=16,16:gtk-large-toolbar=14,14"<br />#цветовая схема<br />gtk-color-scheme = "bg_color:#ddd\nbg_selected_color:#bbb\n\<br />fg_color:#000\nbase_color:#eee\nbase_selected_color:#ccc"<br /><br />style "default"<br />{<br />GtkWidget ::focus_padding = 0<br />GtkButton ::child-displacement-x = 0<br />GtkButton ::child-displacement-y = 0<br />GtkButton ::default-border = { 0, 0, 0, 0 }<br />GtkButton ::default-outside-border= { 0, 0, 0, 0 }<br />GtkButtonBox ::child_min_width = 0<br />GtkButtonBox ::child_min_heigth = 0<br />GtkButtonBox ::child_internal_pad_x = 0<br />GtkButtonBox ::child_internal_pad_y = 0<br />GtkPaned ::handle-size = 5<br />GtkScale ::slider-length = 20<br />GtkScale ::trough-side-details = 0<br />GtkScale ::value_spacing = 0<br />#узкий скроллбар<br />GtkRange ::trough_border = 0<br />GtkRange ::slider_width = 10<br />GtkRange ::stepper_size = 0<br />GtkScrollbar ::min-slider-length = 20<br />GtkScrollbar ::has-backward-stepper = 0<br />GtkScrollbar ::has-forward-stepper = 0<br />GtkScrolledWindow::scrollbar_spacing = 0<br />GtkExpander ::expander-size = 0<br />GtkExpander ::expander_spacing = 0<br />GtkTreeView ::expander-size = 9<br />GtkTreeView ::vertical-separator = 0<br />GtkTreeView ::horizontal-separator = 0<br />GtkToolbar ::internal-padding = 0<br />GtkToolbar ::space-size = 2<br />GtkMenuBar ::internal-padding = 0<br />GtkMenu ::horizontal-padding = 0<br />GtkMenu ::vertical-padding = 0<br />GtkOptionMenu ::indicator_size = 0<br />GtkOptionMenu ::indicator_spacing = 0<br />GtkRadioButton ::indicator_size = 12<br />GtkCheckMenuItem ::indicator_size = 12<br />GtkCheckButton ::indicator-size = 12<br />#табы<br />GtkNotebook ::tab-border = 0<br />GtkNotebook ::tab-hborder = 0<br />GtkNotebook ::tab-vborder = 0<br />GtkNotebook ::show-border = 0<br />GtkNotebook ::gtk-button-images = 0<br />GtkNotebook ::gtk-menu-images = 0<br />GtkNotebook ::arrow-spacing = 0<br />GtkNotebook ::tab-curvature = 0<br />GtkNotebook ::tab-overlap = 0<br />GtkNotebook ::focus-line-width = 0<br /><br />bg[NORMAL] = @bg_color<br />bg[ACTIVE] = shade (0.9, @bg_color)<br />bg[PRELIGHT] = @bg_selected_color<br />bg[SELECTED] = @bg_selected_color<br />bg[INSENSITIVE] = @bg_color<br />fg[NORMAL] = @fg_color<br />fg[ACTIVE] = @fg_color<br />fg[PRELIGHT] = @fg_color<br />fg[SELECTED] = @fg_color<br />fg[INSENSITIVE] = mix (0.4, @fg_color, shade (0.85, @bg_color))<br />base[NORMAL] = @base_color<br />base[ACTIVE] = shade (0.9, @base_color)<br />base[PRELIGHT] = @base_selected_color<br />base[SELECTED] = @base_selected_color<br />base[INSENSITIVE] = @base_color<br />text[NORMAL] = @fg_color<br />text[ACTIVE] = @fg_color<br />text[PRELIGHT] = @fg_color<br />text[SELECTED] = @fg_color<br />text[INSENSITIVE] = mix (0.5, @fg_color, @base_color)<br /><br />xthickness = 1<br />ythickness = 1<br /><br />engine "mist"<br />{<br />}<br />}<br />class "GtkWidget" style "default"<br /><br />#пункты меню<br />style "menuitem"<br />{<br />ythickness = 1<br />xthickness = 0<br />}<br />class "*MenuItem*" style "menuitem"<br />widget_class "*<gtkmenuitem>*" style "menuitem"<br /><br />#все выпадающие меню<br />style "menu"<br />{<br />ythickness = 0<br />xthickness = 1<br />}<br />class "GtkMenu" style "menu"<br />class "GtkNotebook" style "menu"<br /><br />#цвет отмеченных чекбоксов<br />style "checkradio"<br />{<br />base[SELECTED] = "#000"<br />}<br />class "GtkRadioButton" style "checkradio"<br />class "GtkCheckButton" style "checkradio"<br />class "GtkCheckMenuItem" style "checkradio"<br /><br />#отступы в кнопках и прогрессбаре<br />style "button"<br />{<br />ythickness = 0<br />xthickness = 0<br />}<br />class "GtkButton" style "button"<br />class "GtkProgressBar" style "button"</gtkmenuitem></pre>Вот как это выглядит:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_my6bWd3QMgo/SqaT9AKu00I/AAAAAAAAACI/Eul9rFnZ8WE/s1600-h/2009-09-08-212436_1024x768_scrot.png"><img style="cursor: pointer; width: 400px; height: 273px;" src="http://3.bp.blogspot.com/_my6bWd3QMgo/SqaT9AKu00I/AAAAAAAAACI/Eul9rFnZ8WE/s400/2009-09-08-212436_1024x768_scrot.png" alt="" id="BLOGGER_PHOTO_ID_5379149481166951234" border="0" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-8611729029685015451?l=iimci.blogspot.com'/></div>nvohttp://www.blogger.com/profile/05624235267685212556noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-75943611250411288862009-09-08T20:16:00.006+04:002009-09-08T20:37:36.094+04:00Цветовая схема mcСовсем надоел дефолтный синий фон в mc. Начитавшись <a href="http://www.midnight-commander.org/wiki/ru/doc/common/skins">вики</a> и разных статей на эту тему взялся за конфиг. Итог:<br /><br /><a href="http://1.bp.blogspot.com/_my6bWd3QMgo/SqaFI7iFZcI/AAAAAAAAAAU/u8uNF3UJwRg/s1600-h/mc-color.png"><img src="http://1.bp.blogspot.com/_my6bWd3QMgo/SqaFI7iFZcI/AAAAAAAAAAU/u8uNF3UJwRg/s400/mc-color.png" alt="" id="BLOGGER_PHOTO_ID_5379133193406735810" border="0" /></a><br /><br />И, собственно, конфиг<br /><pre>[Colors]<br />base_color=normal=,default:directory=white,default:\<br />marked=yellow,default:errors=red,default:\<br />executable=brightgreen,default:link=grey,default:\<br />device=brightmagenta,default:selected=white,blue:\<br />menu=,blue:menuhot=,blue:markselect=,blue</pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-7594361125041128886?l=iimci.blogspot.com'/></div>nvohttp://www.blogger.com/profile/05624235267685212556noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-58825108544390497022009-09-06T00:47:00.014+04:002009-09-06T20:12:29.701+04:00Настройка dwmДумаю, что сабж в представлении не нуждается.<br />Версия 5.6.1 через некоторое время отказалась запускаться, жалуясь на missing fontset, решение проблемы я пока не нашел, потому использую версию 5.5.<br /><br />Сам конфиг: <a href="http://mydoom.net.ru/conf/dwm-5.5">http://mydoom.net.ru/conf/dwm-5.5</a><br />В нем все должно быть понятно.<br /><br />Информация в статус-баре задается командой<br /><pre>xsetroot -name "info"</pre>Пример .xinitrc для размещения информации, выводимой conky:<br /><pre>while true; do<br />xsetroot -name "`conky`"<br />sleep 1<br />done &amp;<br />exec dwm</pre>Conky я собрал без поддержки иксов, конфиг получился такой:<br /><pre>background no<br />out_to_console yes<br />update_interval 0<br />total_run_times 1<br />use_spacer none<br />mpd_host 192.168.0.1<br />mpd_port 6600<br /><br />TEXT<br />C:${cpu}% | M:${memperc}% \<br />${exec mpc-state} ${exec mpc | grep -P '.+? - .+'} | \<br />Vol:${exec amixer get 'Analog Front' | grep 'Front Left:' | \<br />sed 's/.*\[\(.\{1,3\}\)%\].*/\1/'}% \<br />Now:${exec conkyForecast --location=RSXX0091 --datatype=HT} | \<br />Tom:${exec conkyForecast --location=RSXX0091 --datatype=HT --startday=1 \<br />--hideunits --centeredwidth=3}..${exec conkyForecast --location=RSXX0091 \<br />--datatype=LT --startday=1 --hideunits --centeredwidth=3} \<br />${time %d.%m %H:%M %a}</pre>Выглядит панель следующим образом (кликабельно):<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QVWSAz_bN2k/SqLQZQeu6NI/AAAAAAAAAdE/zLQyMFL_soY/s1600-h/dwmpanel.png"><img style="cursor: pointer; width: 320px; height: 7px;" src="http://4.bp.blogspot.com/_QVWSAz_bN2k/SqLQZQeu6NI/AAAAAAAAAdE/zLQyMFL_soY/s320/dwmpanel.png" alt="" id="BLOGGER_PHOTO_ID_5378090037372971218" border="0" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-5882510854439049702?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-53263783038735796242009-09-03T01:52:00.013+04:002009-09-06T00:46:53.550+04:00Переезд на Grub2Захотелось чего-то новенького. Решил поставит grub2 по <a href="http://en.gentoo-wiki.com/wiki/Grub2">этой</a> статье.<br /><br />После установки не оказалось обещанного grub-mkconfig, а также примера конфига. В итоге конфиг был выдран из дебиановкого груба. Вот результат:<br /><pre>### BEGIN /etc/grub.d/00_header ###<br />set default=0<br />set timeout=0<br />set root=(hd0,1)<br />### END /etc/grub.d/00_header ###<br /><br />### BEGIN /etc/grub.d/10_linux ###<br />menuentry "Gentoo linux" {<br /> linux /boot/kernel root=/dev/sda2 video=intelfb:ywrap,mtrr:3 vga=0x315 console=tty1<br />}<br />### END /etc/grub.d/10_linux ###</pre>Кардинальных изменений я не заметил. Единственное, что стоит упомянуть -- нумерация дисков теперь начинается с (hd0,1), а не с (hd0,0). Может когда-нибудь они будут называться человекопонятными [h|s]dX?<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-5326378303873579624?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-91068298584321649842009-09-03T01:52:00.012+04:002009-09-06T00:46:31.088+04:00Brain Fuck Scheduler на 2.6.30-gentoo-r4Все его так расхваливают, что решил тоже попробовать. А заодно написать, что надо делать. Итак<br /><pre># cd /usr/src/linux<br /># wget http://ck.kolivas.org/patches/bfs/2.6.30-sched-bfs-203.patch<br /># wget http://ck.kolivas.org/patches/bfs/autoiso-xorg.patch<br /># patch -Np1 &lt; 2.6.30-sched-bfs-203.patch<br /># patch -Np1 &lt; autoiso-xorg.patch<br /># make &amp;&amp; make modules install</pre>После чего, соответственно, скопировать образ в /boot.<br />Выдающегося прироста производительности замечено не было, но что-то вроде как стало запускаться пошустрее. Проблем никаких не возникло, а значит всем рекомендую.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-9106829858432164984?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-15218632850880165912009-09-03T01:52:00.011+04:002009-09-06T00:46:00.321+04:00Неработающий клик на тачпадеСтолкнулся с этой проблемой еще на арче, при переезде на какую-то следующую версию хорга.<br />Тычек пальцем в тачпад перестал обрабатываться как клик. Проблему решило добавление в xorg.conf строчек<br /><pre> Option "TapButton1" "1"<br /> Option "TapButton2" "2"<br /> Option "TapButton3" "3"<br /></pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-1521863285088016591?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-12027104782700812002009-09-03T01:51:00.004+04:002009-09-06T00:45:38.468+04:00Ползунок громкости через osd_cat.Многим, наверное, не хватает индикации громкости при ее изменении горячими клавишами. В том числе и мне.<br />Для работы потребуется пакет xosd.<br /><br />Скрипт на данный момент работает на страшных костылях, но все же поделюсь.<br /><pre>#!/bin/bash<br /><br />state=`amixer get Master | grep -P '[d{1,3}%]' | sed 's/.*[(.{1,3})%].*/1/'`<br /><br /><br />case "$1" in<br />p)<br /> amixer -q set "Master" 2+;;<br />m)<br /> amixer -q set "Master" 2-;;<br />n)<br /> amixer -q set "Master" 0;;<br />esac;<br /><br />killall osd_cat;<br />osd_cat --pos=bottom --font=" -*-*-bold-*-*-*-20-*-*-*-*-*-*-*" --align=center \<br />--color="#cc0" --delay=1 --lines=1 --offset=13 -s 1 -S "#000" --percentage="$state" \<br />--wait --barmode=percentage;<br /><br />exit 0;</pre><br />Использование:<br /><pre>vol-osd #вывести osd с текущим состоянием громкости<br />vol-osd p #увеличить громкость и вывести osd<br />vol-osd m #уменьшить громкость и вывести osd<br />vol-osd n #установить громкость равной нулю и вывести osd</pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-1202710478270081200?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-76180966292473681562009-09-03T01:47:00.004+04:002009-09-06T00:45:04.276+04:00mpdscribble с libre.fm и LastFMЗадача воспроизведения музыки у меня возложена на mpd.<br /><br />До недавнего времени скроббил плейлист на <a href="http://lastfm.ru/">lastfm</a> при помощи mpdscribble и не знал горя.<br />Но после монетизации радио ласфма (которым я ни разу не пользовался) решил попробовать свободную альтернативу <a href="http://libre.fm/">libre.fm</a>. Функционал сайта отказался в разы меньше, но оно и не могло быть иначе, т.к. сайт совсем молодой.<br /><br />Зарегестрировался, <a href="http://ideas.libre.fm/index.php/Using_turtle">прочитал</a>, что для скроббинга надо добавить строку<br /><pre>89.16.177.55 post.audioscrobbler.com</pre> в /etc/hosts, но такой грязный хак мне совсем не понравился. Добрые люди ткнули носом в <a href="http://ideas.libre.fm/index.php/Client_Support">ссылку</a>, по которой описаны способы скроббинга на оба сервиса.<br /><br />Для mpdscribble нужно следующее:<br /><br />Качаем последнюю версию из <a href="http://git.musicpd.org/cgit/master/mpdscribble.git/">git</a>:<br /><pre>$ git clone git://git.musicpd.org/master/mpdscribble.git mpdscribble-git &amp;&amp; cd mpdscribble-git</pre>Конфигурируем, компилируем, ставим:<br /><pre>$ ./autogen.sh &amp;&amp; make &amp;&amp; sudo make install</pre>по-умолчанию поставится в /usr/local<br /><br />Дальше нужно привести конфиг примерно к следующему виду:<br /><pre>musicdir = ...<br />verbose = ...<br />.<br />.<br />.<br /><br />username = <i>last.fm username</i><br />password = <i>last.fm password</i><br /><br />[http://turtle.libre.fm]<br />username = <i>libre.fm username</i><br />password = <i>libre.fm password</i><br /></pre>Останавливаем старый mpdscribble<br /><pre># /etc/init.d/mpdscribble stop</pre>И запускаем свежий<br /><pre># /usr/local/bin/mpdscribble --conf /путь/к/измененному/конфигу</pre>Все, как ни странно, <a href="http://alpha.libre.fm/user/mydoom">заработало</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-7618096629247368156?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0tag:blogger.com,1999:blog-1129666753942844570.post-83025039459401822782009-09-03T01:24:00.000+04:002009-09-03T01:29:54.465+04:00Пока что тутПока довожу свою страничку до ума, буду писать заметки сюда. Но, как известно, нет ничего более постоянного, чем временное.<br /><br />Итак, встречайте еще один [микро]блог про линукс в целом и генту в частности. Со временем я, может быть, научусь писать подробные how-to и туториалы, а пока приходится довольствоваться коротенькими наборами команд. Все предыдущие записи (коих целых 5) перенесу сюда. Спасибо.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1129666753942844570-8302503945940182278?l=iimci.blogspot.com'/></div>mydoomhttp://www.blogger.com/profile/03229804040718382776noreply@blogger.com0