diff --git a/assets/abcde.conf b/assets/abcde.conf new file mode 100644 index 0000000..34cdb6a --- /dev/null +++ b/assets/abcde.conf @@ -0,0 +1,358 @@ +# System defaults for abcde version 2.2.x +# Nothing in this file is uncommented by default. +# +# If you wish to override these system-wide settings, create your own +# .abcde.conf file in your home directory. + +# CDDB options + +# If you wish to use a different CDDB server, edit this line. +# If you just wanted to use a proxy server, just set your http_proxy +# environment variable - wget will use it correctly. +CDDBURL="http://freedb.freedb.org/~cddb/cddb.cgi" + +# The CDDB protocol level. +# Right now 5 is latin1 output and 6 is UTF8 encoding. +CDDBPROTO=6 + +# The CDDB protocol requires hello information, including a valid username +# and hostname. If you feel paranoid about giving away such info, edit this +# line - the format is username@hostname. +HELLOINFO="`whoami`@`hostname`" + +# This controls the email address CDDB changes are submitted to. +CDDBSUBMIT=freedb-submit@freedb.org + +# The following options control whether or not fetched CDDB entries +# are cached locally in $CDDBLOCALDIR +#CDDBCOPYLOCAL="n" +#CDDBLOCALDIR="$HOME/.cddb" +#CDDBLOCALRECURSIVE="n" + +# If NOSUBMIT is set to y, then abcde will never prompt asking if you +# wish to submit your edited cddb file. +#NOSUBMIT=n + +# If NOCDDBQUERY is set to y, then abcde will never even try to access +# the CDDB server; running abcde will automatically drop you into a +# blank cddb file to edit at your leisure. This is the same as the +# -n option. NOCDDBQUERY=y implies NOSUBMIT=y. +#NOCDDBQUERY=n + +# Select here if you want to use the locally stored CDDB entries. +# This is useful if you do a lot of editing to those CDDB entries. +# Also, other tools like Grip store CDDB entries under $HOME/.cddb, +# so they can be reused when ripping CDs. +#CDDBUSELOCAL="n" + +# List, separated with a comma, the fields we want the parsing function to +# output. Defaults to YEAR and GENRE, for a complete list of fields provided by +# CDDB. +# The fields are not case sensitive. Actually, "y,g" will work as fine as "Y,G" +# or "YEAR, GENRE" +#SHOWCDDBFIELDS=year,genre + +# Specify the style of encoder to use here - +# oggenc, vorbize - for OGGENCODERSYNTAX +# lame, gogo, bladeenc, l3enc, xingmp3enc, mp3enc - for MP3ENCODERSYNTAX +# flac - the only supported for FLACENCODERSYNTAX at the moment +# speexenc - the only encoder for SPEEXENCODERSYNTAX +# mppenc - encoder for MPPENCODERSYNTAX +# default is a valid option for oggenc, lame, flac, speexenc and mppenc. +# Currently this affects the default location of the binary, the variable +# to pick encoder command-line options from, and where the options are +# given. +MP3ENCODERSYNTAX=lame +OGGENCODERSYNTAX=oggenc +FLACENCODERSYNTAX=flac +#SPEEXENCODERSYNTAX=default +#MPPENCODERSYNTAX=default +#AACENCODERSYNTAX=default + +# Specify the syntax of the normalize binary here - so far only 'normalize' +# is supported. +#NORMALIZERSYNTAX=default + +# CD reader program to use - currently recognized options are 'cdparanoia', +# 'cdda2wav', 'dagrab', 'cddafs' (Mac OS X only) and 'flac'. +CDROMREADERSYNTAX=cdparanoia + +# CUE reader syntax for the CUE reader program to use. +# abcde supports 2 CUE modes: 'mkcue' and 'abcde.mkcue' so you can set the +# MKCUE variable accordingly. The 'abcde.mkcue' uses an internal +# implementation, without the need of an external program. +#CUEREADERSYNTAX=default + +# Specify the program to convert a CUE sheet back to a CD disc ID for CDDB queries. +# Select between '/path/to/cue2discid' (provided as an example) or +# 'abcde.cue2discid', implemented internaly. +#CUE2DISCID=abcde.cue2discid + +# Keep the wav files after encoding. Set it to "y" and remove "clean" from +# the list of default actions, since we purge the temp directory as default. +#KEEPWAVS=n + +# Track padding: force abcde to pad tracks using 0, so every song uses a two +# digit entry. If set to "y", even a single song encoding outputs a file like +# 01.my_song.ext +PADTRACKS=y + +# Define if you want abcde to be non-interactive. +# Keep in mind that there is no way to deactivate it right now in the command +# line, so setting this option makes abcde to be always non-interactive. +#INTERACTIVE=n + +# Specify 'nice'ness of the encoder, the CD reader and the distmp3 proc. +# This is a relative 'nice'ness (that is, if the parent process is at a +# nice level of 12, and the ENCNICE is set to 3, then the encoder will +# run with an absolute nice value of 15. Note also, that setting these +# to be empty will result in some default niceness increase (4 in tcsh +# and 10 using the bsdutils' nice). +#ENCNICE=10 +#READNICE=10 +#DISTMP3NICE=10 + +# Paths of programs to use +LAME=lame +#TOOLAME=toolame +#GOGO=gogo +#BLADEENC=bladeenc +#L3ENC=l3enc +#XINGMP3ENC=xingmp3enc +#MP3ENC=mp3enc +#VORBIZE=vorbize +OGGENC=oggenc +FLAC=flac +SPEEXENC=speexenc +#MPPENC=mppenc +#AACENC=faac + +ID3=id3 +ID3V2=id3v2 +CDPARANOIA=cdparanoia +#CDDA2WAV=cdda2wav +#CDDAFS=cp +CDDISCID=cd-discid +CDDBTOOL=cddb-tool +EJECT=eject +MD5SUM=md5sum +#DISTMP3=distmp3 +VORBISCOMMENT=vorbiscomment +#METAFLAC=metaflac +NORMALIZE=normalize-audio +#CDSPEED=eject +#VORBISGAIN=vorbisgain +#MKCUE=mkcue +#MKTOC=cdrdao +DIFF=diff + +# Options to call programs with: + +# If HTTPGET is modified, the HTTPGETOPTS options should also be defined +# accordingly. If HTTPGET is changed, the default options will be set, +# if HTTPGETOPTS is empty or not defined. +#HTTPGET=wget +# for fetch (FreeBSD): HTTPGETOPTS="-q -o -" +# for wget: HTTPGETOPTS="-q -O -" +# for curl (MacOSX): HTTPGETOPTS="-f -s" +#HTTPGETOPTS="-q -O -" + +# MP3: +LAMEOPTS='--preset fast standard' +#LAMEOPTS='--preset fast medium' +#TOOLAMEOPTS= +#GOGOOPTS= +#BLADEENCOPTS= +#L3ENCOPTS= +#XINGMP3ENCOPTS= +#MP3ENCOPTS= + +# Ogg: +#VORBIZEOPTS= +#OGGENCOPTS='-q 6' +OGGENCOPTS='-q 0' + +# FLAC: +FLACOPTS="--verify --best" + +# Speex: +#SPEEXENCOPTS= + +# MPP/MP+ (Musepack): +# For the encoder options take a look at the manpage. Set them like this: +# MPPENCOPTS='--xtreme' if you wish to set more options then: +# MPPENCOPTS='--xtreme --skip 20 --fade 10' +#MPPENCOPTS= + +# M4A/AAC +#AACENCOPTS= + +#ID3OPTS= +#ID3V2OPTS= +CDPARANOIAOPTS='--never-skip=40' +#CDDA2WAVOPTS= +#CDDAFSOPTS="-f" +#CDDBTOOLOPTS= +#EJECTOPTS= +#DISTMP3OPTS= +#NORMALIZEOPTS= +#CDSPEEDOPTS="-x" +#CDSPEEDVALUE="" +#MKCUEOPTS="" +#MKTOCOPTS="" +#DIFFOPTS="" +#VORBISCOMMENTOPTS="-R" +#METAFLACOPTS="--no-utf8-convert" +#DIFFOPTS="" + +# Actions to take +# Comma-separated list of one or more of the following: +# cddb,cue,read,normalize,encode,tag,move,playlist,clean,default +# encode implies read +# normalize implies read +# tag implies cddb,read,encode +# move implies cddb,read,encode,tag +# playlist implies cddb +# An action can be added to the "default" action by specifying it along with +# "default", without having to repeat the default ones: +# ACTIONS=default,playlist +# The default action list (referenced as "default") is defined in the following +# comment: +#ACTIONS=cddb,read,encode,tag,move,clean + +# CD device you want to read from +# It can be defined as a singletrack flac file, but since it might change from +# file to file it makes little sense to define it here. +#CDROM=/dev/cdrom +# If we are using the IDE bus, we need CDPARANOIACDROMBUS defined as "d" +# If we are using the ide-scsi emulation layer, we need to define a "g" +#CDPARANOIACDROMBUS="d" + +# If you'd like to make a default location that overrides the current +# directory for putting mp3's, uncomment this. +OUTPUTDIR="$HOME/Music/" + +# Or if you'd just like to put the temporary .wav files somewhere else +# you can specify that here +#WAVOUTPUTDIR=`pwd` + +# OUTPUTTYPE can be either "ogg", "mp3", "flac" or "spx", or a combination +# of them separated with ",": "ogg,mp3". +OUTPUTTYPE=mp3 + +# Output filename format - change this to reflect your inner desire to +# organize things differently than everyone else :) +# You have the following variables at your disposal: +# OUTPUT, GENRE, ALBUMFILE, ARTISTFILE, TRACKFILE, and TRACKNUM. +# Make sure to single-quote this variable. abcde will automatically create +# the directory portion of this filename. +# NOTICE: OUTPUTTYPE has been deprecated in the OUTPUTFORMAT string. +# Since multiple-output was integrated we always append the file type +# to the files. Remove it from your user defined string if you are getting +# files like ".ogg.ogg". +OUTPUTFORMAT='${ARTISTFILE} - ${ALBUMFILE}/${TRACKNUM} ${TRACKFILE}' + +# Like OUTPUTFORMAT but for Various Artists discs. +VAOUTPUTFORMAT='${ALBUMFILE}/${TRACKNUM} ${ARTISTFILE} - ${TRACKFILE}' + +# Like OUTPUTFORMAT and VAOUTPUTFORMAT but for the ONEFILE rips. +ONETRACKOUTPUTFORMAT=$OUTPUTFORMAT +VAONETRACKOUTPUTFORMAT=$VAOUTPUTFORMAT + +# Define how many encoders to run at once. This makes for huge speedups +# on SMP systems. Defaults to 1. Equivalent to -j. +#MAXPROCS=2 + +# Support for systems with low disk space: +# n: Default parallelization (read entire CD in while encoding) +# y: No parallelization (rip, encode, rip, encode...) +#LOWDISK=n + +# If set to y, enables batch mode normalization, which preserves relative +# volume differences between tracks of an album. +#BATCHNORM=n + +# Enables nogap encoding when using the 'lame' encoder. +#NOGAP + +# Set the playlist file location format. Uses the same variables and format +# as OUTPUTFORMAT. If the playlist is specified to be in a subdirectory, it +# will be created for you and the playlist will reference files from that +# subdirectory. +#PLAYLISTFORMAT='${ARTISTFILE} - ${ALBUMFILE}.${OUTPUT}.m3u' +# If you want to prefix every filename in a playlist with an arbitrary +# string (such as 'http://you/yourstuff/'), use this option +#PLAYLISTDATAPREFIX='' + +#Like PLAYLIST{FORMAT,DATAPREFIX} but for Various Artists discs: +#VAPLAYLISTFORMAT='${ARTISTFILE}-${ALBUMFILE}.${OUTPUT}.m3u' +#VAPLAYLISTDATAPREFIX='' + +#This will give the playlist CR-LF line-endings, if set to "y". +#(some hardware players insist on CR-LF line-endings) +#DOSPLAYLIST=n + +# Custom filename munging: +# By default, abcde will do the following to CDDB data to get a useful +# filename: +# * Translate colons to a space and a dash for Windows compatibility +# * Eat control characters, single quotes, and question marks +# * Translate spaces and forward slashes to underscores +# * Translate stars into pluses. +# To change that, redefine the mungefilename function. +# mungefilename receives the CDDB data (artist, track, title, whatever) +# as $1 and outputs it on stdout. +mungefilename () +{ + echo "$@" | sed s,:,\ -,g | tr /\* _+ | tr -d \'\"\?\[:cntrl:\] +} + +# Custom genre munging: +# By default we just transform uppercase to lowercase. Not much of a fancy +# function, with not much use, but one can disable it or just turn the first +# Uppercase. +#mungegenre () +#{ +# echo $CDGENRE | tr "[:upper:]" "[:lower:]" +#} + + +# Custom pre-read function +# By default it does nothing. +# You can set some things to get abcde function in better ways: +# * Close the CD tray using eject -t (if available in eject and supported by +# your CD device. +# * Set the CD speed. You can also use the built-in options, but you can also +# set it here. In Debian, eject -x and cdset -x do the job. +# KEEP IN MIND that executables included in pre_read must be in your $PATH or +# you have to define them with full /path/to/binary +# Uncomment and substitute the ":" with your commands. +#pre_read () +#{ +#: +#} + +# Custom post-read function +# By default it does nothing. +# You can set some things to get abcde function in better ways: +# * Store a copy of the CD TOC. +# KEEP IN MIND that executables included in post_read must be in your $PATH or +# you have to define them with full /path/to/binary +# Uncomment and substitute the ":" with your commands. +#post_read () +#{ +#: +#} + +# If you'd like to have abcde eject the cdrom after all the tracks have been +# read, uncomment the following line. +#EJECTCD=y + +# To encode on the remote machines foo, bar, baz, quux, and qiix, as well as +# on the local machine (requires distmp3 to be installed on local machine and +# distmp3host to be installed and running on all remote machines - see README) +#REMOTEHOSTS=foo,bar,baz,quux,qiix + +# Set to obtain some information about actions happening in the background +# Useful if you have a slow network or CDDB servers seem unresponsive. +EXTRAVERBOSE=y diff --git a/assets/autohotkey.syntax b/assets/autohotkey.syntax new file mode 100644 index 0000000..aae108c --- /dev/null +++ b/assets/autohotkey.syntax @@ -0,0 +1,197 @@ +# AutoHotkey +# http://www.autohotkey.com/ + +context default + keyword wholeright #+ white black + keyword whole FileInstall white black + + keyword whole Global yellow + keyword whole global yellow + keyword whole Local yellow + keyword whole local yellow + keyword whole Static yellow + keyword whole static yellow + + keyword whole Break brightmagenta + keyword whole break brightmagenta + keyword whole Continue brightmagenta + keyword whole continue brightmagenta + keyword whole Gosub brightmagenta + keyword whole GoSub brightmagenta + keyword whole If brightmagenta + keyword whole IfEqual brightmagenta + keyword whole IfExist brightmagenta + keyword whole IfGreater brightmagenta + keyword whole IfInString brightmagenta + keyword whole IfMsgBox brightmagenta + keyword whole IfNotEqual brightmagenta + keyword whole IfNotExist brightmagenta + keyword whole IfNotInString brightmagenta + keyword whole IfWinExist brightmagenta + keyword whole IfWinNotActive brightmagenta + keyword whole Else brightmagenta + keyword whole Exit brightmagenta + keyword whole ExitApp brightmagenta + keyword whole Goto brightmagenta + keyword whole Loop brightmagenta + keyword whole OnExit brightmagenta + keyword whole Return brightmagenta + keyword whole return brightmagenta + keyword whole Sleep brightmagenta + keyword whole SetTimer brightmagenta + keyword whole Suspend brightmagenta + + keyword whole Control yellow + keyword whole ControlClick yellow + keyword whole ControlGet yellow + keyword whole ControlGetText yellow + keyword whole ControlSetText yellow + keyword whole CoordMode yellow + keyword whole DetectHiddenWindows yellow + keyword whole DllCall yellow + keyword whole EnvGet yellow + keyword whole EnvSet yellow + keyword whole EnvSub yellow + keyword whole FileAppend yellow + keyword whole FileCopy yellow + keyword whole FileCreateDir yellow + keyword whole FileDelete yellow + keyword whole FileExist yellow + keyword whole FileGetAttrib yellow + keyword whole FileGetSize yellow + keyword whole FileGetTime yellow + keyword whole FileGetVersion yellow + keyword whole FileMove yellow + keyword whole FileRead yellow + keyword whole FileRemoveDir yellow + keyword whole FileSelectFile yellow + keyword whole FileSelectFolder yellow + keyword whole FileSetAttrib yellow + keyword whole FileSetTime yellow + keyword whole FormatTime yellow + keyword whole GetKeyState yellow + keyword whole Gui yellow + keyword whole GuiControl yellow + keyword whole GuiControlGet yellow + keyword whole Hotkey yellow + keyword whole IniDelete yellow + keyword whole IniRead yellow + keyword whole IniWrite yellow + keyword whole InStr yellow + keyword whole Menu yellow + keyword whole MouseGetPos yellow + keyword whole MsgBox yellow + keyword whole Process yellow + keyword whole Progress yellow + keyword whole RegDelete yellow + keyword whole RegRead yellow + keyword whole RegWrite yellow + keyword whole Round yellow + keyword whole Run yellow + keyword whole RunWait yellow + keyword whole Send yellow + keyword whole SendRaw yellow + keyword whole SetBatchLines yellow + keyword whole SetFormat yellow + keyword whole SetWinDelay yellow + keyword whole SetWorkingDir yellow + keyword whole Shutdown yellow + keyword whole Sort yellow + keyword whole SplashImage yellow + keyword whole SplitPath yellow + keyword whole StringGetPos yellow + keyword whole StringLeft yellow + keyword whole StringMid yellow + keyword whole StringRight yellow + keyword whole StringLen yellow + keyword whole StringLower yellow + keyword whole StringReplace yellow + keyword whole StringSplit yellow + keyword whole StringTrimLeft yellow + keyword whole StringTrimRight yellow + keyword whole StrLen yellow + keyword whole SubStr yellow + keyword whole Tooltip yellow + keyword whole ToolTip yellow + keyword whole TrayTip yellow + keyword whole VarSetCapacity yellow + keyword whole WinActivate yellow + keyword whole WinClose yellow + keyword whole WinExist yellow + keyword whole WinGet yellow + keyword whole WinGetActiveTitle yellow + keyword whole WinGetClass yellow + keyword whole WinGetPos yellow + keyword whole WinGetTitle yellow + keyword whole WinSet yellow + keyword whole WinWait yellow + keyword whole WinWaitClose yellow + + keyword whole A_AhkPath white + keyword whole A_CaretX white + keyword whole A_CaretY white + keyword whole A_EventInfo white + keyword whole A_GuiControl white + keyword whole A_GuiControlEvent white + keyword whole A_GuiEvent white + keyword whole A_Index white + keyword whole A_IsCompiled white + keyword whole A_Language white + keyword whole A_LoopField white + keyword whole A_LoopFileDir white + keyword whole A_LoopFileFullPath white + keyword whole A_LoopFileLongPath white + keyword whole A_LoopFileName white + keyword whole A_LoopReadLine white + keyword whole A_LoopRegName white + keyword whole A_LoopRegType white + keyword whole A_OSVersion white + keyword whole A_ScreenHeight white + keyword whole A_ScreenWidth white + keyword whole A_ScriptDir white + keyword whole A_ScriptFullPath white + keyword whole A_ThisHotkey white + keyword whole A_ThisHotKey white + keyword whole A_TickCount white + keyword whole AutoHotkey_Path white + keyword whole ErrorLevel white + + keyword %+% brightgreen + + keyword linestart *:: brightgreen black + keyword linestart +: brightblue black + + keyword > white + keyword < white + keyword \+ white + keyword - white + keyword \* white + keyword / white + keyword = white + keyword <> white + keyword == white + keyword & white + keyword | white + keyword := white + keyword whole and white + keyword whole or white + keyword { brightcyan + keyword } brightcyan + keyword ( brightcyan + keyword ) brightcyan + keyword , brightcyan + + keyword /\* brown + keyword \*/ brown + +context ; \n brown + spellcheck + +context exclusive /\* \*/ brown + spellcheck + +context " " green + spellcheck + +#context ' ' green +# spellcheck diff --git a/assets/eztemplate.syntax b/assets/eztemplate.syntax new file mode 100644 index 0000000..c8bd5cc --- /dev/null +++ b/assets/eztemplate.syntax @@ -0,0 +1,108 @@ +# eZPublish Template syntax file + +context default cyan + spellcheck + +context {\* \*} brown + spellcheck + +context {literal} {/literal} brightblue + +context { } lightgray + keyword whole def white + keyword whole set white + + keyword whole if brightmagenta + keyword whole else brightmagenta + keyword whole elseif brightmagenta + keyword whole switch brightmagenta + keyword whole case brightmagenta + keyword whole foreach brightmagenta + keyword whole true brightmagenta + keyword whole false brightmagenta + keyword whole no brightmagenta + keyword whole yes brightmagenta + + keyword whole include brightred + keyword whole debug-accumulator brightred + keyword whole cache-block brightred + + keyword whole array yellow + keyword whole append yellow + keyword whole fetch yellow + keyword whole first_set yellow + keyword whole concat yellow + keyword whole cond yellow + keyword whole count yellow + keyword whole dec yellow + keyword whole extract yellow + keyword whole hash yellow + keyword whole inc yellow + keyword whole i18n yellow + keyword whole implode yellow + keyword whole is_set yellow + keyword whole is_unset yellow + keyword whole is_array yellow + keyword whole trim yellow + keyword whole wash yellow + keyword whole ezhttp yellow + keyword whole ezini yellow + keyword whole ezini_hasvariable yellow + keyword whole ezscript yellow + keyword whole ezimage yellow + keyword whole ezurl yellow + keyword whole ezdesign yellow + keyword whole svt_siteaccess yellow + keyword whole svt_debug yellow + keyword whole svt_set_debug_attribute yellow + keyword whole svt_request_parameters yellow + keyword whole svt_textmodule yellow + +#################################### +# expressions, operators and other + + keyword whole as white + keyword whole and white + keyword whole or white + keyword whole ne white + keyword whole eq white + keyword whole gt white + keyword whole lt white + keyword whole not white + keyword whole contains white + + keyword whole $node brightmagenta + keyword whole $module_result brightmagenta + + keyword wholeright $+ brightgreen + keyword wholeleft += brightgreen + + keyword ( brightcyan + keyword ) brightcyan + keyword [ brightcyan + keyword ] brightcyan + keyword , brightcyan + keyword : brightcyan + keyword '*' green + keyword "*" green + keyword ; brightmagenta + +#context " " green +# spellcheck +# keyword \\" brightgreen +# keyword \\\n brightgreen +# keyword %% brightgreen +# keyword %\[#0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[L\]\{eEfgGoxX\} brightgreen +# keyword %\[0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[hl\]\{diu\} brightgreen +# keyword %\[hl\]n brightgreen +# keyword %\[.\]\[0123456789\]s brightgreen +# keyword %[*] brightgreen +# keyword %c brightgreen +# keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen +# keyword \\\\ brightgreen +# keyword \\' brightgreen +# keyword \\\{abtnvfr\} brightgreen + +#context ' ' brightgreen +# spellcheck +# keyword \\' brightcyan diff --git a/assets/pyyimt.txt b/assets/pyyimt.txt new file mode 100644 index 0000000..a9d27cb --- /dev/null +++ b/assets/pyyimt.txt @@ -0,0 +1,62 @@ +#! /bin/bash +### BEGIN INIT INFO +# Provides: pyyimt +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +### END INIT INFO + +set -e + +export PATH=/sbin:/bin:/usr/sbin:/usr/bin + +NAME=pyyimt +DESC="Yahoo transport for Jabber" + +PIDDIR=/opt/pyyimt +PIDFILE=$PIDDIR/$NAME.pid +USER=jabber +GROUP=jabber + +SSD_OPTS="--pidfile=$PIDFILE --name=python2.5 --user=$USER" + +DAEMON=/usr/bin/python2.5 +OPTIONS="/opt/pyyimt/src/yahoo.py" + +test -f $DAEMON || exit 0 + +if test ! -e $PIDDIR; then + mkdir $PIDDIR + chown $USER:$GROUP $PIDDIR +fi + +case "$1" in +start) + echo -n "Starting $DESC: " + (start-stop-daemon --start $SSD_OPTS --background --chdir "$PIDDIR/src" --startas "$DAEMON" --chuid "$USER" -- $OPTIONS) + if test "$?" = 0; then echo "$NAME."; fi + ;; +stop) + echo -n "Stopping $DESC: " + (start-stop-daemon --stop $SSD_OPTS --retry 10) + if test "$?" = 0; then echo "$NAME."; fi + ;; +reload|force-reload) + echo -n "Reloading $DESC configuration..." + (start-stop-daemon --stop $SSD_OPTS --signal HUP) + if test "$?" = 0; then echo 'done.'; fi + ;; +restart) + $0 stop + $0 start + ;; +*) + echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 + +# vim: filetype=sh \ No newline at end of file diff --git a/assets/zshrc.txt b/assets/zshrc.txt new file mode 100644 index 0000000..5cc37fe --- /dev/null +++ b/assets/zshrc.txt @@ -0,0 +1,191 @@ +# The following lines were added by compinstall + +zstyle ':completion:*' auto-description 'specify: %d' +zstyle ':completion:*' completer _complete _ignored _approximate +zstyle ':completion:*' expand suffix +zstyle ':completion:*' format 'Completing %d' +zstyle ':completion:*' group-name '' +zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} +zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s +zstyle ':completion:*' list-suffixes true +zstyle ':completion:*' max-errors 3 +zstyle ':completion:*' menu select=1 +zstyle ':completion:*' preserve-prefix '//[^/]##/' +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' verbose true +zstyle :compinstall filename '/home/mbirth/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall +# Lines configured by zsh-newuser-install +HISTFILE=~/.zsh_history +HISTSIZE=1000 +SAVEHIST=1000 +# End of lines configured by zsh-newuser-install + +setopt APPEND_HISTORY +unsetopt BG_NICE # do NOT nice bg commands +setopt CORRECT # command CORRECTION +setopt EXTENDED_HISTORY # puts timestamps in the history +setopt notify correct pushdtohome cdablevars autolist +setopt correctall recexact longlistjobs +setopt autoresume histignoredups +setopt autopushd pushdminus rcquotes mailwarning +unsetopt bgnice autoparamslash + +bindkey "^[[3~" delete-char +bindkey "^[3;5~" delete-char +bindkey "^?" backward-delete-char +bindkey '^[OH' beginning-of-line +bindkey '^[OF' end-of-line +bindkey '^[[5~' up-line-or-history +bindkey '^[[6~' down-line-or-history +bindkey "^r" history-incremental-search-backward +bindkey ' ' magic-space # also do history expansion on space +bindkey '^I' complete-word # complete on tab, leave expansion to _expand + +# formatting and messages +zstyle ':completion:*:descriptions' format '%B%d%b' +zstyle ':completion:*:messages' format '%d' +zstyle ':completion:*:warnings' format 'No matches for: %d' +zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b' + +# command for process lists, the local web server details and host completion +# on processes completion complete all user processes +# zstyle ':completion:*:processes' command 'ps -au$USER' + +## add colors to processes for kill completion +zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' + +#zstyle ':completion:*:processes' command 'ps ax -o pid,s,nice,stime,args | sed "/ps/d"' +zstyle ':completion:*:*:kill:*:processes' command 'ps --forest -A -o pid,user,cmd' +zstyle ':completion:*:processes-names' command 'ps axho command' +#zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html' + +#NEW completion: +# 1. All /etc/hosts hostnames are in autocomplete +# 2. If you have a comment in /etc/hosts like #%foobar.domain, +# then foobar.domain will show up in autocomplete! +zstyle ':completion:*' hosts $(awk '/^[^#]/ {print $2 $3" "$4" "$5}' /etc/hosts | grep -v ip6- && grep "^#%" /etc/hosts | awk -F% '{print $2}') + +# ignore completion functions (until the _ignored completer) +zstyle ':completion:*:functions' ignored-patterns '_*' +zstyle ':completion:*:*:*:users' ignored-patterns \ + adm apache bin daemon games gdm halt ident junkbust lp mail mailnull \ + named news nfsnobody nobody nscd ntp operator pcap postgres radvd \ + rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs avahi-autoipd\ + avahi backup messagebus beagleindex debian-tor dhcp dnsmasq fetchmail\ + firebird gnats haldaemon hplip irc klog list man cupsys postfix\ + proxy syslog www-data mldonkey sys snort +# SSH Completion +zstyle ':completion:*:scp:*' tag-order \ + files users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *' +zstyle ':completion:*:scp:*' group-order \ + files all-files users hosts-domain hosts-host hosts-ipaddr +zstyle ':completion:*:ssh:*' tag-order \ + users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *' +zstyle ':completion:*:ssh:*' group-order \ + hosts-domain hosts-host users hosts-ipaddr +zstyle '*' single-ignored show + +# Define colors +autoload colors zsh/terminfo +if [[ "$terminfo[colors]" -ge 8 ]]; then + colors +fi + +for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do + eval PR_LIGHT_$color='%{$terminfo[bold]$fg[${(L)color}]%}' + eval PR_$color='%{$fg[${(L)color}]%}' + (( count = $count + 1 )) +done +PR_NO_COLOR="%{$terminfo[sgr0]%}" + + +# Allow fancy prompting (try adam2!) +autoload promptinit +promptinit + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# Set prompt +PROMPT="${debian_chroot:+($debian_chroot)}$PR_LIGHT_GREEN%n@%m$PR_NO_COLOR:$PR_LIGHT_BLUE%3(~.«.)%2~$PR_NO_COLOR%# " +RPROMPT="[$PR_LIGHT_YELLOW%T$PR_NO_COLOR]" + + + +title_precmd () { + case $TERM in + screen) + print -Pn "\e]0;%n@%m: %~\a" + print -Pn "\ekzsh: %~\e\\" + ;; + xterm*|rxvt) + print -Pn "\e]0;%n@%m: %~\a" + ;; + esac +} + +title_preexec () { + case $TERM in + screen) + print -Pn "\e]0;%n@%m: $1\a" + print -Pn "\ek$1\e\\" + ;; + xterm*|rxvt) + print -Pn "\e]0;%n@%m: $1\a" + ;; + esac +} + +set -A precmd_functions precmd title_precmd +set -A preexec_functions preexec title_preexec + +### OLD BASH STUFF FOLLOWING + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable color support of ls and also add handy aliases +if [ "$TERM" != "dumb" ] && [ -x /usr/bin/dircolors ]; then + eval "`dircolors -b`" + alias ls='ls --color=auto' + #alias dir='ls --color=auto --format=vertical' + #alias vdir='ls --color=auto --format=long' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' + alias diff='colordiff' +fi + +# some more ls aliases +#alias ll='ls -l' +#alias la='ls -A' +#alias l='ls -CF' + +# wcd +function wcd { + /usr/local/bin/wcd.exe -i -K -G $HOME $* + . $HOME/wcd.go + rm $HOME/wcd.go +} + + +if [ -f $HOME/.motd ]; then + cat $HOME/.motd +fi + +export PATH=/opt/mbirth:$PATH + +cowsay -fmoose -W80 "`fortune -a . off de`" diff --git a/know-how/software/linux/_posts/2008-09-01-sudo-insults.md b/know-how/software/linux/_posts/2008-09-01-sudo-insults.md new file mode 100644 index 0000000..49d96fc --- /dev/null +++ b/know-how/software/linux/_posts/2008-09-01-sudo-insults.md @@ -0,0 +1,30 @@ +--- +title: sudo insults on wrong password +layout: default +created: 2008-09-01 09:50:13 +0200 +updated: 2008-09-01 09:50:13 +0200 +toc: false +tags: + - know-how + - software + - linux + - fun +--- +Edit the file `/etc/sudoers` and find the line: + + Defaults env_reset + +Now add `,insults` to the end of the line so that it reads like that: + + Defaults env_reset,insults + + +From now on, *sudo* will insult anyone who mistypes his password. See for yourself: + +> [sudo] password for foo: +> *Hold it up to the light --- not a brain in sight!* +> [sudo] password for foo: +> *Speak English you fool --- there are no subtitles in this scene.* +> [sudo] password for foo: +> *I think … err … I think … I think I'll go home* +> sudo: 3 incorrect password attempts diff --git a/know-how/software/linux/_posts/2008-12-05-gnome-screensaver-settings.md b/know-how/software/linux/_posts/2008-12-05-gnome-screensaver-settings.md new file mode 100644 index 0000000..c5f2e90 --- /dev/null +++ b/know-how/software/linux/_posts/2008-12-05-gnome-screensaver-settings.md @@ -0,0 +1,13 @@ +--- +title: GNOME Screensaver Settings +layout: default +created: 2008-12-05 23:14:26 +0100 +updated: 2008-12-05 23:14:26 +0100 +toc: false +tags: + - know-how + - software + - linux + - settings +--- +The ***Configure*** button is definitely missing in `gnome-screensaver`. To customize the xscreensaver-modules, you can use [xFX Screensaver Settings](http://software.xfx.net/utilities/sss/). diff --git a/know-how/software/linux/_posts/2009-01-11-compiling-php-gtk.md b/know-how/software/linux/_posts/2009-01-11-compiling-php-gtk.md index c371bb2..cae59d7 100644 --- a/know-how/software/linux/_posts/2009-01-11-compiling-php-gtk.md +++ b/know-how/software/linux/_posts/2009-01-11-compiling-php-gtk.md @@ -28,8 +28,8 @@ Zend Extension Api No: 220060519 rebuilding aclocal.m4 rebuilding configure configure.in:77: warning: LTOPTIONS_VERSION is m4_require'd but not m4_defun'd -aclocal.m4:2912: LT_INIT is expanded from... -aclocal.m4:2947: AC_PROG_LIBTOOL is expanded from... +aclocal.m4:2912: LT_INIT is expanded from… +aclocal.m4:2947: AC_PROG_LIBTOOL is expanded from… configure.in:77: the top level configure.in:77: warning: LTSUGAR_VERSION is m4_require'd but not m4_defun'd configure.in:77: warning: LTVERSION_VERSION is m4_require'd but not m4_defun'd diff --git a/know-how/software/linux/_posts/2009-02-10-why-linux.md b/know-how/software/linux/_posts/2009-02-10-why-linux.md new file mode 100644 index 0000000..757cdbe --- /dev/null +++ b/know-how/software/linux/_posts/2009-02-10-why-linux.md @@ -0,0 +1,15 @@ +--- +title: Why Linux? +layout: default +created: 2008-08-27 00:44:54 +0200 +updated: 2009-02-10 17:27:37 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +
+I use Linux because it's like owning a chainsaw compared to owning a pen knife. Not always necessary, but so much more fun. +
+--- [arjayes](http://ubuntuforums.org/member.php?u=387872) of UbuntuForums diff --git a/know-how/software/linux/_posts/2009-02-20-prompt-with-2-dirs.md b/know-how/software/linux/_posts/2009-02-20-prompt-with-2-dirs.md new file mode 100644 index 0000000..812368c --- /dev/null +++ b/know-how/software/linux/_posts/2009-02-20-prompt-with-2-dirs.md @@ -0,0 +1,48 @@ +--- +title: Prompt with 2 directories +layout: default +created: 2008-08-05 17:48:29 +0200 +updated: 2009-02-20 00:32:43 +0100 +toc: false +tags: + - know-how + - software + - linux + - shell +--- +bash +==== + +To only show the last 2 directories in prompt, there are two scripts at the [Muffin Research Labs](http://muffinresearch.co.uk/archives/2007/09/25/showing-last-two-directories-of-pwd-in-bash-prompt/). +The best one would be this: + +{% highlight bash %} +function PWD { + tmp=${PWD%/*/*}; + [ ${#tmp} -gt 0 -a "$tmp" != "$PWD" ] && echo \<${PWD:${#tmp}+1} || echo $PWD; +} +{% endhighlight %} + +Add this to `.bash_profile` and replace `\w` by `$(PWD)` (note the parents!) in your `PS1` line in that file. + +A more comfort version which replaces the home directory by a tilde, is the following. I changed the function name to +`PWD2` to highlight the difference to the normal `PWD` variable. + +{% highlight bash %} +function PWD2 { + xpwd=${PWD/$HOME/"~"}; + tmp=${xpwd%/*/*}; + [ ${#tmp} -gt 0 -a "$tmp" != "$xpwd" ] && echo «${xpwd:${#tmp}+1} || echo $xpwd; +} +{% endhighlight %} + + +zsh +=== + +The zsh has this feature built-in. Use this to show only 2 parts of the PWD: + + %3(~.«.)%2~ + +This says: If `%~` (the prompt incl. replacements such as `~` for homedir) has 3 or more parts, show `«`. +After that show 2 parts of `%~`. diff --git a/know-how/software/linux/_posts/2009-02-22-festival.md b/know-how/software/linux/_posts/2009-02-22-festival.md new file mode 100644 index 0000000..8bcc717 --- /dev/null +++ b/know-how/software/linux/_posts/2009-02-22-festival.md @@ -0,0 +1,52 @@ +--- +title: festival Text-To-Speech +layout: default +created: 2009-02-22 00:53:11 +0100 +updated: 2009-02-22 00:54:41 +0100 +toc: false +tags: + - know-how + - software + - linux + - sound +--- +Simultaneous playback +===================== + +The `festival` text-to-speech synthesizer seems to use normal ALSA playback instead of PulseAudio. This leads to it +failing when there's already something playing. E.g. if you're listening to music with *Rhythmbox*, *festival* fails +with this message: + + Linux: can't open /dev/dsp + +To make it use PulseAudio, we can re-route the audio through the `pacat` utility as proposed on [this bugreport](https://bugzilla.redhat.com/show_bug.cgi?id=467531). +Just add these few lines to your `/usr/share/festival/init.scm`: + +~~~ +(Parameter.set 'Audio_Command "pacat --channels=1 --rate=$SR $FILE") +(Parameter.set 'Audio_Method 'Audio_Command) +(Parameter.set 'Audio_Required_Format 'raw) +~~~ + +**Note:** I had to use `raw` as the required format since the `snd` from the bugreport gave me loud noise instead of +speech. `raw` works fine. + + +Announcing system errors +======================== + +On [fedorabook.com](http://dailypackage.fedorabook.com/index.php?/archives/42-Productive-Monday-Festival-Speech) I +found this little script which will read every new line from `/var/log/messages`: + +{% highlight bash %} +#!/bin/bash +tail -0f /var/log/messages | sed "s/^[^:]*:[^:]*:[^:]*: //" | while read LINE +#tail -0f /var/log/syslog | sed "s/^[^:]*:[^:]*:[^:]*: //" | while read LINE +#tail -0f /var/log/auth.log | sed "s/^[^:]*:[^:]*:[^:]*: //" | while read LINE +#tail -0f /var/log/user.log | sed "s/^[^:]*:[^:]*:[^:]*: //" | while read LINE +do + echo $LINE + echo $LINE | festival --tts + sleep 0.75 +done +{% endhighlight %} diff --git a/know-how/software/linux/_posts/2009-02-22-wcd.md b/know-how/software/linux/_posts/2009-02-22-wcd.md new file mode 100644 index 0000000..a976900 --- /dev/null +++ b/know-how/software/linux/_posts/2009-02-22-wcd.md @@ -0,0 +1,40 @@ +--- +title: Wherever Change Directory +layout: default +created: 2009-02-22 13:40:40 +0100 +updated: 2009-02-22 13:46:25 +0100 +toc: false +tags: + - know-how + - software + - linux + - tools +--- +[wcd](http://www.xs4all.nl/~waterlan/) is a tool which catalogs all directories of your $HOME (can be configured to +catalog the whole drive) and then lets you type `wcd Desktop` and switches over to your `~/Desktop` from wherever you +are. Or you can type `wcd "Rammstein*"` and it will show you a list of your Rammstein-albums of your `~/Music`-directory +and jump to your choice. + +The Ubuntu-Package is very outdated, so you better download the file from the homepage. Unpack it in `/usr/local`: + + /usr/local% sudo tar xvzf wcd-4.1.0-linux.tar.gz + +This will put a `wcd.exe` to your `/usr/local/bin` which is the main executable. But *wcd* doesn't work by directly +calling it, you have to add a function to your shell. But the following code into your `.bash_profile` or `.zshrc`: + +{% highlight bash %} +# wcd +function wcd { + /usr/local/bin/wcd.exe -i -K -G $HOME $* + . $HOME/wcd.go + rm $HOME/wcd.go +} +{% endhighlight %} + +This advises *wcd* to put the `cd`-command into a file `~/wcd.go` which is afterwards sourced by your shell to actually +complete the `cd`. You can also type `wcd -g` to start the graphical `cd`. The switches `-i -K` make *wcd* ignore cases +and put it in color-mode (for the `-g` UI). + +

+Before using it the first time, you might have to issue a `wcd -s` which will scan your $HOME. +

diff --git a/know-how/software/linux/_posts/2009-03-31-boot-colours.md b/know-how/software/linux/_posts/2009-03-31-boot-colours.md index 694b216..828f99b 100644 --- a/know-how/software/linux/_posts/2009-03-31-boot-colours.md +++ b/know-how/software/linux/_posts/2009-03-31-boot-colours.md @@ -18,7 +18,7 @@ in `/etc/lsb-base-logging.sh`. To add colours, in that `init-functions` file find the function *log_use_fancy_output()* and below the `fi` add the lines {% highlight bash %} -... +… else FANCYTTY=0 fi @@ -39,13 +39,13 @@ fi # END --- colour definition case "$FANCYTTY" in 1|Y|yes|true) true;; - ... + … {% endhighlight %} After that, edit the `lsb-base-logging.sh` and change e.g. the output of *log_end_msg()*: {% highlight bash %} - ... + … if [ "$COL" ] && [ -x "$TPUT" ]; then printf "\r" $TPUT hpa $COL @@ -55,7 +55,7 @@ After that, edit the `lsb-base-logging.sh` and change e.g. the output of *log_en echo "${BOLD}${BLUE}[${RED}fail${BLUE}]${NORMAL}" fi else - ... + … {% endhighlight %} Your next boot will look like this: diff --git a/know-how/software/linux/_posts/2009-04-10-mail-notification.md b/know-how/software/linux/_posts/2009-04-10-mail-notification.md new file mode 100644 index 0000000..df23b28 --- /dev/null +++ b/know-how/software/linux/_posts/2009-04-10-mail-notification.md @@ -0,0 +1,19 @@ +--- +title: mail-notification +layout: default +created: 2009-04-10 23:34:36 +0200 +updated: 2009-04-10 23:34:36 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +Keyring error +============= + +If you get the following error message: + +> The password of IMAP/POP3 mailbox xxxxx could not be saved to the keyring. + +Check whether `gnome-keyring-daemon` runs. If not, just run it once and the `mail-notification` should work again. diff --git a/know-how/software/linux/_posts/2009-05-05-enable-usb-sharing.md b/know-how/software/linux/_posts/2009-05-05-enable-usb-sharing.md new file mode 100644 index 0000000..26d4524 --- /dev/null +++ b/know-how/software/linux/_posts/2009-05-05-enable-usb-sharing.md @@ -0,0 +1,51 @@ +--- +title: Enable USB Sharing +layout: default +created: 2008-09-03 23:08:39 +0200 +updated: 2009-05-05 12:25:03 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +To use USB devices under e.g. [VirtualBox](http://virtualbox.org/) in *Hardy*, edit the file +`/etc/init.d/mountdevsubfs.sh` and find the line: + + # Magic to make /proc/bus/usb work + +Remove the following four comments so that it looks like this: + +{% highlight bash %} +# +# Magic to make /proc/bus/usb work +# +mkdir -p /dev/bus/usb/.usbfs +domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644 +ln -s .usbfs/devices /dev/bus/usb/devices +mount --rbind /dev/bus/usb /proc/bus/usb +{% endhighlight %} + +Also add the following line to your `/etc/fstab` (*129* is the group-ID of *vboxusers*)[^1]: + + none /proc/bus/usb usbfs devgid=129,devmode=0666 0 0 + +Now enable the new settings by doing: + + sudo /etc/init.d/mountdevsubfs.sh stop + sudo /etc/init.d/mountdevsubfs.sh start + +Finally, edit the file `/etc/udev/rules.d/40-basic-permissions.rules` and find the line containing the `usb_device` +subsystem. Extend the permissions to `0666` like this: + + SUBSYSTEM="usb_device", MODE="0666" + +Save the file and you should be able to use USB devices inside VirtualBox guest systems. + +According to [Ubuntu Unleashed](http://www.ubuntu-unleashed.com/2008/04/howto-install-virtualbox-in-hardy-heron.html), +you might have to add 2 lines to the `/etc/init.d/mountkernfs.sh` for the *usbfs* to get mounted automatically upon boot. + +I'm also not sure about the permissions. It might work also using `0664` or even `0644`. + + +[^1]: see [Stone.log](http://yoten.blogspot.com/2007/06/virtualbox-usb-error.html) diff --git a/know-how/software/linux/_posts/2009-07-17-filesystems.md b/know-how/software/linux/_posts/2009-07-17-filesystems.md new file mode 100644 index 0000000..5f977f0 --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-17-filesystems.md @@ -0,0 +1,99 @@ +--- +title: Filesystems +layout: default +created: 2009-01-08 22:33:36 +0100 +updated: 2009-07-17 23:04:03 +0200 +toc: false +tags: + - know-how + - software + - linux + - filesystems +--- +Creating +======== + +ext3 +---- + + mkfs.ext3 /dev/sdb1 -L my_external + +You might want to enable additional features using `tune2fs`. + + tune2fs -O +feature /dev/sdb1 + +**`feature`** may be one of the following: + +|feature | Description | +|:------------:|:-----------------------------------------------------------------------------| +|`large_file` |If you have files > 2GiB, this flag should be automatically set by the kernel.| +|`dir_index` |Uses hashed b-trees to speed up lookups in large directories. | +|`sparse_super`|Limits the number of backup superblocks to save space on large filesystems. | + +There are some more, but these are the most interesting. On external drives you might want to set the reserved space +for the root-user to 0% instead of the default 5%: + + tune2fs -m 0 /dev/sdb1 + +You can show all information about the superblock using: + + tune2fs -l /dev/sdb1 + + +Renaming +======== + +To rename a partition (e.g. an USB drive), there are different tools for different filesystems. +There's a nice overview at [ubuntu.com](https://help.ubuntu.com/community/RenameUSBDrive). + +ext2 / ext3 +----------- + +You need the package [e2fsprogs](apt://e2fsprogs). + + sudo e2label /dev/sdb1 + sudo e2label /dev/sdb1 my_external + + +FAT16 / FAT32 +------------- + +You need the package [mtools](apt://mtools). + + sudo mlabel -i /dev/sdb1 -s :: + sudo mlabel -i /dev/sdb1 ::my_external + + +JFS +--- + +You need the package [jfsutils](apt://jfsutils). + + sudo jfs_tune /dev/sdb1 + sudo jfs_tune -L my_external /dev/sdb1 + + +NTFS +---- + +You need the package [ntfsprogs](apt://ntfsprogs). + + sudo ntfslabel /dev/sdb1 + sudo ntfslabel /dev/sdb1 my_external + + +ReiserFS (v3) +------------- + +You need the package [reiserfsprogs](apt://reiserfsprogs). + + sudo reiserfstune -l my_external /dev/sdb1 + + +XFS +--- + +You need the package [xfsprogs](apt://xfsprogs). + + xfs_admin -l /dev/sdb1 + xfs_admin -l my_external /dev/sdb1 diff --git a/know-how/software/linux/_posts/2009-07-17-umts-via-bluetooth.md b/know-how/software/linux/_posts/2009-07-17-umts-via-bluetooth.md new file mode 100644 index 0000000..b3309f0 --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-17-umts-via-bluetooth.md @@ -0,0 +1,52 @@ +--- +title: UMTS via Bluetooth +layout: default +created: 2008-10-07 21:53:51 +0200 +updated: 2009-07-17 23:09:25 +0200 +toc: false +tags: + - know-how + - software + - linux + - umts + - bluetooth +--- +To use UMTS Internet via a bluetooth mobile phone, install the packages [gnome-ppp](apt://gnome-ppp) and [ppp](apt://ppp). + +There's a nice manual at [UbuntuUsers](http://wiki.ubuntuusers.de/Bluetooth/Mobile). + +1. use `hcitool scan` to find the MAC of your mobile +1. use `sdptool search DUN` to find the dial-up networking details of your mobile, note the line `Channel: 7` +1. edit the file `/etc/bluetooth/rfcomm.conf` and uncomment the section and make the changes according to your details: + + rfcomm0 { + # Automatically bind the device at startup + bind yes; + + # Bluetooth address of the device + device 11:22:33:44:55:66; + + # RFCOMM channel for the connection + channel 7; + + # Description of the connection + comment "SonyEricsson P1i"; + } + +1. launch *Gnome-PPP* +1. click *Setup* and change the settings: + * **Modem** Tab + * *Device:* /dev/rfcomm0 + * *Type:* USB-Modem + * *Speed:* 460800 + * [X] *Wait for dialtone* + * **Init Strings** + * *Init 2:* `ATE1` (ATZ is sent automatically by Gnome-PPP) + * **Network** Tab + * Leave everything as it is + * **Options** Tab + * [X] *Ignore terminal strings (stupid mode)* +1. enter following details for dialup: + * **Username:** t-mobile + * **Password:** tm + * **Phone number:** *99# diff --git a/know-how/software/linux/_posts/2009-07-17-wifi-guessnet.md b/know-how/software/linux/_posts/2009-07-17-wifi-guessnet.md new file mode 100644 index 0000000..9c3c4ae --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-17-wifi-guessnet.md @@ -0,0 +1,50 @@ +--- +title: WiFi on bootup with guessnet +layout: default +created: 2008-11-15 18:32:48 +0100 +updated: 2009-07-17 23:10:31 +0200 +toc: false +tags: + - know-how + - software + - linux + - networking + - wifi +--- +Install the [guessnet](apt://guessnet) package. This will install the `guessnet-ifupdown` helper tool. + +Now edit your `/etc/network/interfaces` file and add the following lines: + +~~~ +auto wlan0 +iface wlan0 inet dhcp + wpa-ssid CompanyWLAN + wpa-proto WPA + wpa-key-mgmt WPA-PSK + wpa-psk S3Cr3tKe4 + +mapping wlan0 + script guessnet-ifupdown + map default: wlan0-open + map autofilter: true # look for wlan0- interfaces + map timeout: 9 + map init-time: 9 # for slow drivers + map verbose: true + map debug: false + +iface wlan0-home inet dhcp + test wireless essid WLANatHOME closed + wpa-psk S3cr3tH0meKe4 + wpa-key-mgmt WPA-PSK + wpa-proto WPA + wpa-ssid WLANatHOME + +# if all else fails: pick an open network +iface wlan0-open inet dhcp + test wireless open + wireless-essid any + wireless-mode auto +~~~ + +This will first try to connect to the **CompanyWLAN** network and if this is not found, try the **WLANatHOME**. If +everything fails, it will connect to any open Access Point. diff --git a/know-how/software/linux/_posts/2009-07-17-zsh.md b/know-how/software/linux/_posts/2009-07-17-zsh.md new file mode 100644 index 0000000..43ecd58 --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-17-zsh.md @@ -0,0 +1,50 @@ +--- +title: zsh +layout: default +created: 2009-02-21 12:34:27 +0100 +updated: 2009-07-17 23:13:24 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +I recently switched to using the [zsh](http://zsh.sf.net/) instead of [bash](http://www.gnu.org/software/bash/). +The reasons were those comfort functions of zsh, such as: + +* menu driven completion (you can navigate items using the cursor keys) +* command correction (typing `mkae` gives a `Did you mean 'make'?`) +* parameter completion (shows possible parameters for most commands **incl. a short description**) +* path name guessing (typing `tail /v/l/dmesg` gets corrected into `tail /var/log/dmesg`) + +So I installed the packages: [zsh](apt://zsh), [zsh-doc](apt://zsh-doc) and [zsh-lovers](apt://zsh-lovers). When +starting it for the first time, you'll encounter a configuration tool which asks several questions to make your zsh +experience a good one. + +Bad thing is: This tool can't read the settings you made in a previous session, so be careful running it a second time. + +I found an easy way to make the prompt show only 2 parts of the PWD using some zsh-magic: [Prompt with 2 directories]({% post_url 2009-02-20-prompt-with-2-dirs %}). + +My full configuration file is here: [.zshrc]({{ site.url }}/assets/zshrc.txt). + + +DEL-key not working +=================== + +Using the Del-key changed the 3 letters after the cursor to upper case and then made further editing of the +current line impossible. I found a solution to this problem over at [gnegg.ch](http://www.gnegg.ch/2004/10/delete-key-in-zsh/): +Just add the following bindings to the `.zshrc`: + + bindkey "^[[3~" delete-char + bindkey "^[3;5~" delete-char + + +Problems with mc +================ + +*zsh* seems to cause problems with the *Midnight Commander*. The *mc* can't detect the PWD using *zsh* as a sub-shell +and therefore gives several "`Warning: Cannot change directory to …`" although the path **did** change. But this +message moves the rest of the screen and makes *mc* almost unusable. You can use *mc* without a subshell by starting it +with `mc -u` or just switch your login-shell back to *bash* (in your `/etc/passwd`) and change the link of your +preferred console application to e.g. `gnome-terminal -e zsh` - in the latter case, *mc* will use your login-shell +(*bash*) as a sub-shell and work as expected. diff --git a/know-how/software/linux/_posts/2009-07-18-jabberd2.md b/know-how/software/linux/_posts/2009-07-18-jabberd2.md new file mode 100644 index 0000000..ed58736 --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-18-jabberd2.md @@ -0,0 +1,58 @@ +--- +title: jabberd2 +layout: default +created: 2009-07-18 01:08:21 +0200 +updated: 2009-07-18 12:01:50 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +The setup of [jabberd2](apt://jabberd2) is mostly straight-forward. Just install the package and all needed transports. +The change the config files in `/etc/jabberd2` to your needs, esp. the name/jid of the admin. + + +pyMSNt +====== + +Update +------ + +The most recent version is in a *Mercurial* repository at . There you can +download the `trunk` revision and replace the files in `/usr/share/pymsnt` with the new ones. You might also need to +add the new options from the `config-example.xml` to your `/etc/pymsnt.xml`. Afterwards restart the transport and you +should be set. + +Timeout +------- + +The MSN transport [pyMSNt](https://sharesource.org/hg/pymsnt/summary) is a bit picky. + +If you get error messages like: + + Failed to connect to MSN servers: [Failure instance: Traceback (failure with no frames): : Timeout] + +In the config file, if you are behind a NAT router, specify **your internal LAN IP** for `` otherwise, it won't +work. Always check this setting first before digging for other possible errors. + + +PyYIMt +====== + +A Python Yahoo-Transport can be found at the [xmpppy](http://xmpppy.sf.net/). To install it, do the following: + +1. create a directory `/opt/pyyimt/src` and put the contents of the `yahoo-transport-0.4.tar.gz` in it. You'll also need + the `xmppy-0.5.0rc1.tar.gz` - put it into `/opt/pyyimt/src/xmpp`. +1. now modify the `config.py` to look at another place for the config file. Change the 4th line like this: + + configFiles = ['config.xml', '../pyyimt.conf.xml', '/etc/pyyimt.conf.xml'] + +1. now copy the `config_example.xml` to `/opt/pyyimt/pyyimt.conf.xml` and modify it according to your needs. + Also set the following values: + * **spoolFile:** `../yahoouser.dbm` + * **pid:** `../pyyimt.pid` + * **debugFile:** `../yahooerror.log` +1. make the whole directory `/opt/pyyimt` and all files and sub-dirs belong to the group *jabber* and writable for + that group. +1. use this init.d-script: [pyyimt.txt]({{ site.url }}/assets/pyyimt.txt) diff --git a/know-how/software/linux/_posts/2009-07-21-mixed-locales.md b/know-how/software/linux/_posts/2009-07-21-mixed-locales.md new file mode 100644 index 0000000..ec30a86 --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-21-mixed-locales.md @@ -0,0 +1,67 @@ +--- +title: Mixed Locales +layout: default +created: 2009-04-08 21:06:12 +0200 +updated: 2009-07-21 11:04:50 +0200 +toc: false +tags: + - know-how + - software + - linux + - i18n +--- +I personally like English language operating systems. So I have set my Ubuntu to English language. But I still want +German curency, decimals and time. With most applications, you can define the formats to use inside the application. +But I stumbled at *Evolution* which lets you define 12/24-hour setting for the calendar, but doesn't use this setting +for the mail list display. + +So I added the following lines to the file `/etc/environment` below the `LANG="en_US.UTF-8"`: + +{% highlight bash %} +LC_NUMERIC="de_DE.UTF-8" +LC_MONETARY="de_DE.UTF-8" +LC_PAPER="de_DE.UTF-8" +LC_MEASUREMENT="de_DE.UTF-8" +{% endhighlight %} + +So the most formats where as I wanted them - despite the time. Yes, I could set `LC_TIME="de_DE.UTF-8"`, but this not +only produces German formats but also German names for the months and weekdays. And this is something I didn't want: +The whole application in English language but the months and weekdays in German, e.g. "Freitag 11:42". + +So there are now two possibilities: + +1. you compile your own locale definition, or +1. you take a Hex editor and modify the existing one + +I decided to do the second. + +In `/usr/lib/locale` are all locale definitions. So I made a backup of the original `LC_TIME` below `en_US.utf8` and +fired up *ghex2*. + +So in principle there are two strings of every format - one in ANSI encoding which is directly readable, and one in +Unicode where there are 3x `00`-Bytes between the single characters. So in general I just replaced all `%r` (12hrs time) +by `%R` (24hrs time) and removed the `%p` (AM/PM). I also changed the date format `%m/%d/%Y` to `%Y-%m-%d` to get the +international format. As mentioned, I had to make these changes 2x times - once for the ANSI strings and once for the +Unicode ones. + +To get the first day of the week correctly (Monday here in Europe), I first had to change the location `0x912` from +`02` to `01` (which means: The first workday of the week is now *Sunday* (1st day) instead of *Monday* (2nd day)). So to +finally get the European week, I also had to change location `0x90c` from decimal value `19971130` (a Sunday) to +`19971201` (a Monday, new value in Hex: `81bc3001`). So now the first day of the week was a Monday (Dec. 1st, 1997) and +thus the week and work-week were corrected. + +The *en_US* locale has the first 7-day-week as the first week of the year. In Europe, the first week with at least +4 days is counted as the first week of the year (DIN 1355 / ISO 8601). So I changed location `0x910` from `07` to `04`. + +Finally, I still had *Evolution* showing AM/PM times. I fixed this by overwriting these strings with Null-Bytes +(`00`h) - again, two times for each. This made *Evolution* show 24hrs times. + + +Paper Format +============ + +The default paper format can be changed as described [here](http://www.arsgeek.com/2007/07/02/change-ubuntus-default-paper-size-from-a4-to-letter/): + + sudo dpkg-reconfigure libpaper1 + +Or you just change the file `/etc/papersize`. diff --git a/know-how/software/linux/_posts/2009-07-23-dual-head.md b/know-how/software/linux/_posts/2009-07-23-dual-head.md new file mode 100644 index 0000000..1e75ba4 --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-23-dual-head.md @@ -0,0 +1,91 @@ +--- +title: Dual-headed X11 +layout: default +created: 2008-08-11 18:10:56 +0200 +updated: 2009-07-23 12:44:36 +0200 +toc: false +tags: + - know-how + - software + - linux + - display + - x11 +--- +per user +======== + +The native screen-size detection doesn't work for dual-head installations. To let X11 handle both screens as one large +display, find the section `Screen` in the `/etc/X11/xorg.conf` and add the following lines: + +~~~ +SubSection "Display" + Virtual 2560 1024 +EndSubSection +~~~ + +This is for two 1280x1024 displays side-by-side (1280+1280 = 2560). Now you can use `xrandr` to set displays. + + xrandr -q + +Shows all available displays. Usually it will show the devices `VGA-0` and `LVDS`. To change the output of the external +display to be left of the internal LCD panel, use something like + + xrandr --output VGA-0 --left-of LVDS + +You might also have to use *System* → *Preferences* → *Screen Resolution* to configure the location of the displays. + + +Fix screen order +---------------- + +Under *Intrepid*, it often happens to me that my screenorder is wrong after login. This is shown by a mirrored output on +the left display, but the system thinks that there's a left workspace. On rare occassions, I even have the wrong order +(i.e. if I move the mouse to the right on the right workspace, it appears on the left display's workspace.) This is +quickly fixed by switching the order around: + +{% highlight bash %} +#!/bin/sh +echo Switching position of displays +xrandr --output VGA-0 --right-of LVDS +echo Switching off ext. display +xrandr --output VGA-0 --off +echo Switching back to normal +xrandr --output VGA-0 --mode 1280x1024 --rate 75 --left-of LVDS +{% endhighlight %} + +After calling the script, my displays are showing the correct workspaces. + + +system-wide +=========== + +To configure dual-head system-wide (for Desktop computers), there is a great manual at [UbuntuForums](http://ph.ubuntuforums.com/showthread.php?t=826717). + +1. Use `xrandr -q` to get the output device's names (for me it was `VGA-0` and `DVI-0`) +1. open the `/etc/X11/xorg.conf` in your favorite editor +1. find the section `Device` and add 2 lines so that it looks like this: + + Section "Device" + Identifier "Configured Video Device" + Option "monitor-VGA-0" "right" + Option "monitor-DVI-0" "left" + EndSection +1. The device names have to be prefixed with `monitor-`. The names after that are for you to choose. +1. find the `Monitor` section and change the identifier to one of the names. (e.g. `right`) +1. add another `Monitor` section below and change the identifier to the other name. (`left`) Also add the + line `Option "LeftOf" "right"` in between. +1. now the both monitor sections should look like this: + + Section "Monitor" + Identifier "right" + EndSection + + Section "Monitor" + Identifier "left" + Option "LeftOf" "right" + EndSection +1. find the `Screen` section and add the following line to define the default display. + + Monitor "right" +1. add a `SubSection "Display"` and the `Virtual` line as with the per-user configuration +1. save the file and restart X diff --git a/know-how/software/linux/_posts/2009-07-23-synaptics-touchpad.md b/know-how/software/linux/_posts/2009-07-23-synaptics-touchpad.md new file mode 100644 index 0000000..a983f81 --- /dev/null +++ b/know-how/software/linux/_posts/2009-07-23-synaptics-touchpad.md @@ -0,0 +1,40 @@ +--- +title: Synaptics Touchpad +layout: default +created: 2009-02-28 01:36:04 +0100 +updated: 2009-07-23 12:45:13 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +To use features like *circular scrolling*[^1] of a Synaptics touchpad, you need to add the following lines to +your `/etc/X11/xorg.conf`: + +~~~ +Section "InputDevice" + Identifier "Synaptics Touchpad" + Driver "synaptics" + Option "SHMConfig" "true" + Option "SendCoreEvents" "true" + Option "Device" "/dev/psaux" + Option "Protocol" "auto-dev" + Option "HorizEdgeScroll" "0" +EndSection +~~~ + +You also need to add the following line into your `ServerLayout` section in that file: + + InputDevice "Synaptics Touchpad" + +

+After an upgrade to Jaunty, these lines are commented out by the update-manager. Just uncomment them and everything +should work again. +

+ +Afterwards you can install the [gsynaptics](apt://gsynaptics) package to manage the settings for your touchpad - incl. +enabling the circular scrolling. + + +[^1]: It's like a jogdial: just draw a circle with your finger starting from top-center. Clockwise will scroll down, counter-clockwise will scroll up. \ No newline at end of file diff --git a/know-how/software/linux/_posts/2009-08-09-mpd.md b/know-how/software/linux/_posts/2009-08-09-mpd.md new file mode 100644 index 0000000..4bd0491 --- /dev/null +++ b/know-how/software/linux/_posts/2009-08-09-mpd.md @@ -0,0 +1,71 @@ +--- +title: Music Player Daemon +layout: default +created: 2009-02-21 23:39:43 +0100 +updated: 2009-08-09 00:31:02 +0200 +toc: false +tags: + - know-how + - software + - linux + - audio + - music + - mpd +--- +Instead of playing music through usual audio players, there is the possibility of using the *mpd* - a daemon which +runs in the background and plays music. + +The great advantage is: You can choose between various interfaces and always control the same player with the same +playlist(s) - even via TCP/IP from another PC or even a portable device. + + +Installing the server +===================== + +Install the package [mpd](apt://mpd). After that, edit the file `/etc/mpd.conf` and add the following lines, so that it +uses the PulseAudio daemon instead of ALSA: + +~~~ +audio_output { + type "pulse" + name "My PulseAudio Device" +} +~~~ + +This allows other sounds (e.g. from Gnome) to be played simultaneously. + +You can then symlink your personal music folder to `/var/lib/mpd/music` or - if you are the only user - replace that +directory by the symlink directly. + + +PulseAudio rights +----------------- + +You might encounter the problem that MPD seems playing a song but you don't hear anything at all. This might be a +problem with PulseAudio rights. Install the package [paprefs](apt://paprefs) and enable the *Enable Network Access* +and *Don't require authentication*. If these options are grayed out, do this: + +* edit the file `/etc/pulse/default.pa` +* find the line + + #load-module module-native-protocol-tcp + + and replace it by + + load-module module-native-protocol-tcp auth-anonymous=1 +* do a `killall pulseaudio` +* restart `mpd` + + +Installing a client +=================== + +I found [pympd](http://pympd.sf.net/), [Ario](http://ario-player.sf.net/) and [Sonata](http://sonata.berlios.de/) really +usable (pympd looks a bit like *Rhythmbox*) and for the console: [ncmpc](http://hem.bredband.net/kaw/ncmpc/). For the +latter, you could add an alias: `ncmpc=ncmpc -c -m` to always start it in color-mode and with mouse support. + + +iPhone +------ + +Take a look at [MPoD](http://www.katoemba.net/makesnosenseatall/mpod/). diff --git a/know-how/software/linux/_posts/2009-08-11-incron.md b/know-how/software/linux/_posts/2009-08-11-incron.md new file mode 100644 index 0000000..dd28733 --- /dev/null +++ b/know-how/software/linux/_posts/2009-08-11-incron.md @@ -0,0 +1,12 @@ +--- +title: incron - Jobs by file activity +layout: default +created: 2008-11-12 15:58:48 +0100 +updated: 2009-08-11 15:33:44 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +[incron](apt://incron) allows you to run jobs when the filesystem changes. There is a nice tutorial at [Linux.com](http://www.linux.com/feature/144666). diff --git a/know-how/software/linux/_posts/2009-08-13-unmounting.md b/know-how/software/linux/_posts/2009-08-13-unmounting.md new file mode 100644 index 0000000..22a414a --- /dev/null +++ b/know-how/software/linux/_posts/2009-08-13-unmounting.md @@ -0,0 +1,68 @@ +--- +title: Unmounting +layout: default +created: 2009-01-24 23:09:03 +0100 +updated: 2009-08-13 12:48:35 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +sudo +==== + +Using `sudo umount` you can unmount ANYTHING but need `sudo` access. + + +fusermount +========== + +Using `fusermount -u` you can unmount all FUSE mounts. + + +pumount +======= + +Using `pumount` you can unmount all mounts below `/media` which don't appear in `/etc/fstab`. + + +Shutdown/Reboot hangs +===================== + +If there are mounted *cifs* shares, you might encounter a *"CIFS VFS: no response for cmd 50…"* on shutdown or reboot +which may take about half a minute before the machine actually shuts down (or reboots). This is caused by the network +being shut down before the shares were umounted. + +The thing is, in Jaunty there already is a script to umount network shares before the network is shut down, but it has +the wrong start-type of `S` = start. If you look at the script itself, you'll find this: + +{% highlight bash %} +case "$1" in + start) + # No-op + ;; + restart|reload|force-reload) + echo "Error: argument '$1' not supported" >&2 + exit 3 + ;; + stop|"") + do_stop + ;; + *) + echo "Usage: umountnfs.sh [start|stop]" >&2 + exit 3 + ;; +esac +{% endhighlight %} + +So if called with the argument `start`, it will do nothing. It has to be called with `stop`. + +To fix this (in Jaunty): + +* go to `/etc/rc0.d/` +* find the link `S31umountnfs.sh` (type: S = start) +* do a `sudo mv S31umountnfs.sh K31umountnfs.sh` (type: K = kill/stop) +* now go to `/etc/rc6.d/` and do the same to the link there + +You may find some more info on [this blog](http://whereofwecannotspeak.wordpress.com/2007/12/25/unmount-samba-filesystems-before-shutdown-or-reboot/). diff --git a/know-how/software/linux/_posts/2009-08-24-gajim-notifyosd.md b/know-how/software/linux/_posts/2009-08-24-gajim-notifyosd.md new file mode 100644 index 0000000..d0f636f --- /dev/null +++ b/know-how/software/linux/_posts/2009-08-24-gajim-notifyosd.md @@ -0,0 +1,16 @@ +--- +title: Gajim and Notify-OSD +layout: default +created: 2009-08-24 18:25:41 +0200 +updated: 2009-08-24 18:25:41 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +[gajim](apt://gajim) doesn't support the new (since Jaunty) `libnotify-osd` library of Ubuntu and instead shows a +dialog box. + +There's a patch available at [archlinux.org](http://aur.archlinux.org/packages/gajim-notify-osd/gajim-notify-osd/osd.patch) +which enables support for `libnotify-osd`. diff --git a/know-how/software/linux/_posts/2009-08-24-swapfile.md b/know-how/software/linux/_posts/2009-08-24-swapfile.md new file mode 100644 index 0000000..1617007 --- /dev/null +++ b/know-how/software/linux/_posts/2009-08-24-swapfile.md @@ -0,0 +1,28 @@ +--- +title: Swapfile instead of partition +layout: default +created: 2009-08-24 22:13:58 +0200 +updated: 2009-08-24 22:13:58 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +If you don't want to create a designated swap partition (e.g. if you plan to downsize it later) and don't want to play +around with *GPartEd*, you can create a swap**file** instead. + +To create a 512 MiB swapfile, do the following: + + dd if=/dev/zero of=/swapfile bs=1024K count=512 + mkswap /swapfile + swapon /swapfile + +To automatically add the swapfile upon boot, add this line to the `/etc/fstab`: + + /swapfile swap swap defaults 0 0 + + +You can later easily change the size of the swapfile by re-creating a smaller or larger one. + +You only have to make sure the file is contiguous or `swapon` might give an error. diff --git a/know-how/software/linux/_posts/2009-08-26-make-color.md b/know-how/software/linux/_posts/2009-08-26-make-color.md new file mode 100644 index 0000000..9a7a9e4 --- /dev/null +++ b/know-how/software/linux/_posts/2009-08-26-make-color.md @@ -0,0 +1,20 @@ +--- +title: Colourful make and gcc +layout: default +created: 2009-08-26 09:46:36 +0200 +updated: 2009-08-26 09:46:36 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +Install the packages [colormake](apt://colormake) and [colorgcc](apt://colorgcc). Then create the following alias: + + alias make="colormake" + +Also add this environment variable: + + export CC="colorgcc" + +And you should be set. diff --git a/know-how/software/linux/_posts/2009-12-05-rip-cd-track.md b/know-how/software/linux/_posts/2009-12-05-rip-cd-track.md new file mode 100644 index 0000000..83c7318 --- /dev/null +++ b/know-how/software/linux/_posts/2009-12-05-rip-cd-track.md @@ -0,0 +1,25 @@ +--- +title: Rip CD Track +layout: default +created: 2009-02-16 22:24:06 +0100 +updated: 2009-12-05 00:46:23 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +The default tool for CD ripping under Gnome is *Sound Juicer*, found under *Applications* → *Sound & Video* → +*Audio CD Extractor*. But this tool had severe problems recognizing my custom configuration for LAME encoding (I +changed `vbr-quality` from `6` to `2` but the tool ignored it) also you had to restart it for every configuration +change which means you have to re-enter all CD information. + +So I tried [abcde](http://code.google.com/p/abcde/). + +After installing the package [abcde](apt://abcde) and some other utilities (`id3`, `id3v2`, `flac`, `oggconvert`, +etc.), I copied the file `/etc/abcde.conf` to `~/.abcde.conf` and modified it according to [Andrew Strong's examples](http://www.andrews-corner.org/abcde.html) +and my own preference. + +Now ripping a CD is as simple as typing `abcde` at the prompt. + +* **Download my config:** [abcde.conf]({{ site.url }}/assets/abcde.conf) diff --git a/know-how/software/linux/_posts/2009-12-10-pc-speaker-in-linux.md b/know-how/software/linux/_posts/2009-12-10-pc-speaker-in-linux.md new file mode 100644 index 0000000..28963b0 --- /dev/null +++ b/know-how/software/linux/_posts/2009-12-10-pc-speaker-in-linux.md @@ -0,0 +1,28 @@ +--- +title: PC Speaker in Linux +layout: default +created: 2009-12-10 19:17:02 +0100 +updated: 2009-12-10 19:17:02 +0100 +toc: false +tags: + - know-how + - software + - linux + - sound +--- +Enable in Ubuntu +================ + +If you want some scripts to emit beeps, e.g. because you don't always have your headphones on, you first have to enable +the `pcspkr` module. This is per default disabled in Ubuntu. To enable it again, do the following: + +1. open `/etc/modprobe.d/blacklist.conf` in your favorite editor (using `sudo`) +1. find these lines: + + # ugly and loud noise, getting on everyone's nerves; this should be done by a + # nice pulseaudio bing (Ubuntu: #77010) + blacklist pcspkr +1. comment out the last line +1. finally, do a `sudo modprobe pcspkr` + +After that, you can play around with the [beep](apt://beep) program. diff --git a/know-how/software/linux/_posts/2009-12-31-lightscribe-in-linux.md b/know-how/software/linux/_posts/2009-12-31-lightscribe-in-linux.md new file mode 100644 index 0000000..eb368ff --- /dev/null +++ b/know-how/software/linux/_posts/2009-12-31-lightscribe-in-linux.md @@ -0,0 +1,110 @@ +--- +title: LightScribe in Linux +layout: default +created: 2008-12-06 12:31:38 +0100 +updated: 2009-12-31 10:58:11 +0100 +toc: false +tags: + - know-how + - software + - linux + - lightscribe +--- +To burn/print lightscribe media under Linux, you need two things: + +* the [LightScribe System Software](http://www.lightscribe.com/downloadSection/linux/index.aspx) +* a labelling program, such as [LightScribe Simple Labeler](http://www.lightscribe.com/downloadSection/linux/index.aspx?id=815) + or [4L LaCie LightScribe Labeler](http://www.lacie.com/products/product.htm?pid=10803) + + +Installing 4L +============= + +1. install the lightscribe library: `gksu gdebi-gtk lightscribe-1.14.32.1-linux-2.6-intel.deb` +1. convert the RPM to DEB (you need the packages *fakeroot* and *alien* to be installed!): + `fakeroot alien --fixperms -c -k 4L-1.0-r6.i586.rpm` +1. **on 64-bit systesm** the previous step will abort with an error, if this is the case: + * enter the `4L-1.0` directory + * rename `debian` to `DEBIAN` + * enter the `DEBIAN` directory + * delete the directory `4L` + * edit the file `control` + * remove the blank line between the `Maintainer:` and `Package:` lines + * change the `Depends:` into `Depends: lightscribe` + * add a line `Version: 1.0-r6` + * now go back to the directory containing the `4L-1.0` directory + * run `dpkg --build --force-architecture 4L-1.0` +1. install the newly generated DEB file: `gksu gdebi-gtk 4l_1.0-r6_i386.deb` (on 64-bit systems use + `dpkg -i --force-architecture 4L-1.0.deb`) +1. create a menu shortcut to `/usr/bin/4L-gui` using the *System* → *Preferences* → *Main Menu* tool (as an icon I used + the LightScribe-logo from [WikiPedia](http://de.wikipedia.org/wiki/Bild:LightScribe-Logo.svg)) + + +No drive detected +----------------- + +If *4L-gui* doesn't detect any drive, try running it from a console window. If you see the following error message: + + user@host:/usr/lib% 4L-gui + 4L-cli: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory + +The described library is missing (as with *Karmic Koala*). Either try finding it in `aptitude` or do the following: + +1. create a file `/etc/ld.so.conf/lightscribeApplications.conf` with the following contents: + `/opt/lightscribeApplications/common/Qt` +1. run `sudo ldconfig` + +This will index the libraries in the given folder - where there is the `libstdc++.so.5` found. If this breaks other +programs for you, use this command: + + sudo LD_LIBRARY_PATH=/opt/lightscribeApplications/common/Qt /usr/bin/4L-gui + + +root privileges required +------------------------ + +If you get the error ***Printing requires root privileges*** first check whether you called it with `gksu` or `sudo` +and if yes, check, whether the files `/usr/4L/4L-gui` and `/usr/4L/4L-cli` have any *setuid*-bits set. If so, remove +them. + +Or do it the other way around and make sure, the *setuid* mode is set and make `root` the owner. + + +Installing Simple Labeler +========================= + +1. install the lightscribe library: `gksu gdebi-gtk lightscribe-1.14.32.1-linux-2.6-intel.deb` +1. install the simple labeler: `gksu gdebi-gtk lightscribeApplications-1.10.19.1-linux-2.6-intel.deb` +1. **on 64-bit systems** you have to link the `liblightscribe.so` and `liblightscribe.so.1` into the `/usr/lib32` + directory (moving might also work): + + ln -s /usr/lib/liblightscribe.so /usr/lib32/liblightscribe.so + ln -s /usr/lib/liblightscribe.so.1 /usr/lib32/liblightscribe.so.1 +1. create a menu shortcut to `/opt/lightscribeApplication/SimpleLabeler/SimpleLabeler` using the *System* → + *Preferences* → *Main Menu* tool (as an icon I used the LightScribe-logo from [WikiPedia](http://de.wikipedia.org/wiki/Bild:LightScribe-Logo.svg)) + + +Enabling enhanced Contrast +========================== + +To make burned labels appear darker, you can activate the *enhanced contrast* feature which is present in the library +since version 1.8.15.1. The procedure is described at the [PSE site](http://www.lightscribe.com/downloadSection/pse/). + +Darker contrast needs more time to burn! + +To enable this feature, run the following command from a command-line: + + sudo /usr/lib/lightscribe/elcu.sh + +You will see something like this: + +~~~ +Current contrast setting: Default + +MODIFY CONTRAST SETTINGS: +1 This will make your labels darker, but you will experience a longer label time +2 This will reset your LightScribe contrast to default factory settings +Select new setting: _ +~~~ + +Type 1 and confirm with ENTER. diff --git a/know-how/software/linux/_posts/2010-01-01-wallpaper-changer.md b/know-how/software/linux/_posts/2010-01-01-wallpaper-changer.md new file mode 100644 index 0000000..74fc47f --- /dev/null +++ b/know-how/software/linux/_posts/2010-01-01-wallpaper-changer.md @@ -0,0 +1,39 @@ +--- +title: Wallpaper Changer +layout: default +created: 2010-01-01 23:35:53 +0100 +updated: 2010-01-01 23:36:05 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +Desktop Drapes +============== + +* **Homepage:** +* **Launchpad-Site:** [drapes](https://launchpad.net/drapes) +* **Package:** [drapes](apt://drapes) + +Has some problems under *Karmic Koala* (e.g. the thumbnails are not shown, crashes if you delete a selected image). +The list of enabled images is kept in `~/.gnome2/drapes.xml`. + + +Wally +===== + +* **Homepage:** + +Seems to not work in *Karmic*. + + +Wallpaper Tray +============== + +* **Homepage:** +* **Package:** [wallpaper-tray](apt://wallpaper-tray) + +It is a panel applet which shows a small thumbnail of the current active image. It will show images from your selected +directories (in the preferences) **plus** all images in `~/.gnome2/backgrounds.xml` (see [#355081](https://bugs.launchpad.net/ubuntu/+source/wallpaper-tray/+bug/355081)). +Seems relatively stable and is my preferred choice among these 3. diff --git a/know-how/software/linux/_posts/2010-01-07-remapping-mouse-buttons.md b/know-how/software/linux/_posts/2010-01-07-remapping-mouse-buttons.md index 8d6e63d..db8d6ef 100644 --- a/know-how/software/linux/_posts/2010-01-07-remapping-mouse-buttons.md +++ b/know-how/software/linux/_posts/2010-01-07-remapping-mouse-buttons.md @@ -13,7 +13,8 @@ tags: permanently =========== -To remap mouse buttons permanently, you can use the `xinput set-button-map` command. Every mouse button click issues a button click with a specific id to X11. X11 recognizes the following buttons: +To remap mouse buttons permanently, you can use the `xinput set-button-map` command. Every mouse button click issues a +button click with a specific id to X11. X11 recognizes the following buttons: | ID | Button | |:--:|:--------------| @@ -31,9 +32,10 @@ To remap mouse buttons permanently, you can use the `xinput set-button-map` comm You can use the following command to remap the buttons: - xinput set-button-map ... + xinput set-button-map -The `` is shown in the `xinput list` output - you can use the name as a string or the id number. You can query the actual button state using `xinput query-state `. +The `` is shown in the `xinput list` output - you can use the name as a string or the id number. You can +query the actual button state using `xinput query-state `. So the default configuration (`xinput set-button-map 1 2 3 4 5 6 7 8 9`) would give you the normal behavior. But if you prefer e.g. having the thumb buttons for *WheelLeft* and *WheelRight*, you would run this command: @@ -43,25 +45,29 @@ But if you prefer e.g. having the thumb buttons for *WheelLeft* and *WheelRight* This would map buttons 8→6 and 9→7 and vice versa. -To automatically set your preferred mapping on bootup, you can add the line to *System* → *Preferences* → *Startup Applications* (formerly *Sessions*). +To automatically set your preferred mapping on bootup, you can add the line to *System* → *Preferences* → +*Startup Applications* (formerly *Sessions*). per application (Wheel/Thumb only) ================================== -To remap wheel-/thumb-mouse buttons per application, you can use `imwheel` from the same-named [package](apt://imwheel). After installing the package, copy the default configuration to your homedir: +To remap wheel-/thumb-mouse buttons per application, you can use `imwheel` from the same-named [package](apt://imwheel). +After installing the package, copy the default configuration to your homedir: cp /etc/X11/imwheel/imwheelrc ~/.imwheelrc -And then enable the automatic starting upon start of X11 by editing `/etc/X11/imwheel/startup.conf` and changing the `IMWHEEL_START` value to **`1`**. +And then enable the automatic starting upon start of X11 by editing `/etc/X11/imwheel/startup.conf` and changing the +`IMWHEEL_START` value to **`1`**. Now you can modify your `.imwheelrc` to fit your needs. The format is "window regexp" Modifier, Mousebutton, Keypresses/Mousebutton - ... + … -So for example to use the WheelLeft and WheelRight buttons to switch tabs in Firefox, you could use the following definition: +So for example to use the WheelLeft and WheelRight buttons to switch tabs in Firefox, you could use the following +definition: "^Firefox-bin$" # Flip between browser tabs @@ -70,8 +76,8 @@ So for example to use the WheelLeft and WheelRight buttons to switch tabs in Fir This would map *WheelLeft* to Ctrl-PgUp and *WheelRight* to Ctrl-PgDn. -A *Modifier* of `None` means, this only works if no modifier (`Shift_L`, `Shift_R`, `Control_L`, `Control_R`, `Alt_L`, `Alt_R`) is pressed while clicking. -If you leave this empty, the mapping works regardless of which modifier is held down. +A *Modifier* of `None` means, this only works if no modifier (`Shift_L`, `Shift_R`, `Control_L`, `Control_R`, `Alt_L`, +`Alt_R`) is pressed while clicking. If you leave this empty, the mapping works regardless of which modifier is held down. Use this to go to previous/next track in Rhythmbox using the WheelLeft and WheelRight clicks: @@ -79,8 +85,9 @@ Use this to go to previous/next track in Rhythmbox using the WheelLeft and Wheel None, Left, Alt_L|Left None, Right, Alt_L|Right -(In this case, `Rhythmbox` defines the *window resource name* since Rhythmbox itself puts the currently playing song in the title bar. -You could also match against `rhythmbox` which is the *window class name*. Since `imwheel -c` wasn't able to show them to me, I just guessed.) +(In this case, `Rhythmbox` defines the *window resource name* since Rhythmbox itself puts the currently playing song in +the title bar. You could also match against `rhythmbox` which is the *window class name*. Since `imwheel -c` wasn't able +to show them to me, I just guessed.)

Looks like `imwheel` causes some problems when scrolling in *Opera*: The webpage doesn't get redrawn so that you have diff --git a/know-how/software/linux/_posts/2010-01-22-midnight-commander.md b/know-how/software/linux/_posts/2010-01-22-midnight-commander.md new file mode 100644 index 0000000..4e4e367 --- /dev/null +++ b/know-how/software/linux/_posts/2010-01-22-midnight-commander.md @@ -0,0 +1,55 @@ +--- +title: Midnight Commander (mc) +layout: default +created: 2009-06-21 12:01:38 +0200 +updated: 2010-01-22 18:06:36 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +Open drop-down box +================== + +To open a drop-down box (like those on the *FTP link…* dialog), press Alt+H. + + +ZIP contents not shown +====================== + +The later versions of `unzip` have a slightly different output format but the `uzip`-module still expects the old one. +To fix this, edit the file `/usr/share/mc/extfs/uzip` (as *root*) and change the line + +{% highlight perl %} +# Set this to 1 if zipinfo (unzip -Z) is to be used (recommended), otherwise 0. +my $op_has_zipinfo = 0; +{% endhighlight %} + +to + +{% highlight perl %} +# Set this to 1 if zipinfo (unzip -Z) is to be used (recommended), otherwise 0. +my $op_has_zipinfo = 1; +{% endhighlight %} + + +Highlighter +=========== + +* [autohotkey.syntax]({{ site.url }}/assets/autohotkey.syntax) --- *AutoHotkey* scripts (Windows program!) +* [eztemplate.syntax]({{ site.url }}/assets/eztemplate.syntax) --- *eZ Publish* TPL files + +Download the above files to `~/.mc/cedit` and add the following definitions (as needed) to `~/.mc/cedit/Syntax`. +If you don't have this file, copy it from `/usr/share/mc/syntax/` first. + +~~~ +file ..\*\\.ahk$ AutoHotkey\sFile +include autohotkey.syntax + +file ..\*\\.(tpl|TPL)$ eZPublish\sTemplate +include eztemplate.syntax +~~~ + + +*[FTP]: File Transfer Protocol diff --git a/know-how/software/linux/_posts/2010-02-06-alsa-card-order.md b/know-how/software/linux/_posts/2010-02-06-alsa-card-order.md index 4f5d00e..aa09d25 100644 --- a/know-how/software/linux/_posts/2010-02-06-alsa-card-order.md +++ b/know-how/software/linux/_posts/2010-02-06-alsa-card-order.md @@ -22,3 +22,6 @@ the desired `index` to it in a modprobe file. I appended these lines to my `/etc This way, the internal sound card (which was the primary one) now gets some other index and the USB mini speakers get the index 0 and therefore become the new default device for any sounds. + + +*[ALSA]: Advanced Linux Sound Architecture diff --git a/know-how/software/linux/_posts/2010-02-07-wine.md b/know-how/software/linux/_posts/2010-02-07-wine.md new file mode 100644 index 0000000..009844c --- /dev/null +++ b/know-how/software/linux/_posts/2010-02-07-wine.md @@ -0,0 +1,29 @@ +--- +title: WinE Tricks +layout: default +created: 2010-02-06 01:55:28 +0100 +updated: 2010-02-07 13:29:19 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +Java crashes with EXCEPTION_ACCESS_VIOLATION (0xc00000005) +========================================================== + +The [AirVideo](http://www.inmethod.com/) Server for iPhone runs only under Mac and Windows and needs [Bonjour](http://support.apple.com/downloads/Bonjour_for_Windows) +and [JRE](http://java.sun.com/javase/downloads/index.jsp). Java always crashed with + + EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7d826f48, pid=8, tid=12 + +After some poking around, I found a thread at [nabble.com](http://old.nabble.com/Wine%2BJava%2BNvidia-crashes-td22505117.html). +Disabling the `d3d9.dll` was the solution: + +1. Run `winecfg` +1. Go to the *Libraries* tab +1. Select `d3d9` from the drop-down box, click *Add* +1. Select the new entry `d3d9` and click *Edit…* +1. Select *(X) disabled*, click *OK* + +That was it. Now, Java should run smoothly. diff --git a/know-how/software/linux/_posts/2010-02-12-no-sound-in-flash.md b/know-how/software/linux/_posts/2010-02-12-no-sound-in-flash.md new file mode 100644 index 0000000..81f460e --- /dev/null +++ b/know-how/software/linux/_posts/2010-02-12-no-sound-in-flash.md @@ -0,0 +1,24 @@ +--- +title: No sound in Flash videos +layout: default +created: 2009-11-27 14:27:24 +0100 +updated: 2010-02-12 22:22:35 +0100 +toc: false +tags: + - know-how + - software + - linux + - flash + - sound +--- +If you have no sound in Flash videos but in all other programs, there are two possibilities: + +1. the PCM output is set to silence + * check volume setting with `alsamixer` +1. you might have a second audio device (e.g. a Webcam with a microphone) which gets preferred by ALSA + * fix it by unplugging it, or + * force ALSA to use another device, see [ALSA FAQ#26](http://alsa.opensrc.org/FAQ026) + * set *Skype* → *Options* → *Sound Devices* to *[ ] Allow Skype to automatically adjust my mixer levels* +1. some sound via PulseAudio is currently playing (see [ALSA → PulseAudio for Flash and others]({% post_url 2010-02-12-alsa-to-pulseaudio-for-flash %})) + +Bug report is [#396558](https://bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/396558). diff --git a/know-how/software/linux/_posts/2010-02-13-install-missing-i386-libraries-on-64bit-systems.md b/know-how/software/linux/_posts/2010-02-13-install-missing-i386-libraries-on-64bit-systems.md new file mode 100644 index 0000000..aa0fcef --- /dev/null +++ b/know-how/software/linux/_posts/2010-02-13-install-missing-i386-libraries-on-64bit-systems.md @@ -0,0 +1,19 @@ +--- +title: Install missing i386-libraries on 64bit systems +layout: default +created: 2010-02-13 16:10:20 +0100 +updated: 2010-02-13 16:10:20 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +If you are on a 64bit system, you might sometimes stumple upon 32bit programs which need several libraries of which are +no lib32-packages. A good example is the [Amazon MP3 Downloader](http://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=200317330). + +You can now either search the missing libraries at [packages.ubuntu.com](http://packages.ubuntu.com/) or use a tool +which does this for you: [getlibs](http://ubuntuforums.org/showthread.php?t=474790). You run it with the desired 32bit +program as a parameter and it will locate, download and install all missing libraries the program needs to run. + +Download it at [frozenfox.freehostia.com](http://frozenfox.freehostia.com/cappy/). diff --git a/know-how/software/linux/_posts/2010-02-26-compiling-kismet.md b/know-how/software/linux/_posts/2010-02-26-compiling-kismet.md index 28b1f99..c7cc6b3 100644 --- a/know-how/software/linux/_posts/2010-02-26-compiling-kismet.md +++ b/know-how/software/linux/_posts/2010-02-26-compiling-kismet.md @@ -36,3 +36,6 @@ The shown URL to the PPA is wrong as Festor's account got deactivated. The corre deb http://ppa.launchpad.net/festor/hack-tools/ubuntu jaunty main deb-src http://ppa.launchpad.net/festor/hack-tools/ubuntu jaunty main

+ + +*[PPA]: Personal Package Archive diff --git a/know-how/software/linux/_posts/2010-03-02-merge-video-files.md b/know-how/software/linux/_posts/2010-03-02-merge-video-files.md new file mode 100644 index 0000000..3a77e75 --- /dev/null +++ b/know-how/software/linux/_posts/2010-03-02-merge-video-files.md @@ -0,0 +1,35 @@ +--- +title: Merge Video Files +layout: default +created: 2010-03-02 22:13:26 +0100 +updated: 2010-03-02 23:59:34 +0100 +toc: false +tags: + - know-how + - software + - linux + - video +--- +To merge multiple (similar) video files into one big file, there are different ways. + + +avimerge +======== + +This only works with `avi` files. *avimerge* is part of the [transcode-utils](apt://transcode-utils) package. + + avimerge -o output.avi -i file1.avi file2.avi file3.avi fileN.avi + +If the sound doesn't match from the second file on, use the `-c` switch. + +

+Check your files after merging! If you have no audio near the end of the final video file, use *mencoder* below. +

+ + +mencoder +======== + +This should also work with `mpg` videos. Install the [mencoder](apt://mencoder) package. + + mencoder -oac copy -ovc copy file1.avi file2.avi file3.avi fileN.avi -o output.avi diff --git a/know-how/software/linux/_posts/2010-03-24-sync-package-list.md b/know-how/software/linux/_posts/2010-03-24-sync-package-list.md new file mode 100644 index 0000000..f61d91e --- /dev/null +++ b/know-how/software/linux/_posts/2010-03-24-sync-package-list.md @@ -0,0 +1,30 @@ +--- +title: Sync Package List between 2 PCs +layout: default +created: 2010-03-23 17:53:30 +0100 +updated: 2010-03-24 10:39:37 +0100 +toc: false +tags: + - know-how + - software + - linux + - administration +--- +To export a list of all installed packages, you can use the following command: + + sudo dpkg --get-selections > selections.txt + +But this will loose any `{A}` markers for automatically installed packages and therefore produce a lot of garbage when +dependencies change. + +To export only manually installed packages, use `aptitude` like this: + + sudo aptitude search '~i!~M' -F '%p install' > selections.txt + +(More `aptitude` filterstrings can be found on [their project page](http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html).) + +On the other machine, use the following command to set the new markers: + + sudo dpkg --set-selections < selections.txt + +Now run `aptitude` and resolve the dependencies. diff --git a/know-how/software/linux/_posts/2010-07-29-flashplugin-not-recognizing-mouse-clicks.md b/know-how/software/linux/_posts/2010-07-29-flashplugin-not-recognizing-mouse-clicks.md new file mode 100644 index 0000000..0e6a7a6 --- /dev/null +++ b/know-how/software/linux/_posts/2010-07-29-flashplugin-not-recognizing-mouse-clicks.md @@ -0,0 +1,38 @@ +--- +title: Flashplugin not recognizing mouse clicks +layout: default +created: 2010-02-12 22:21:29 +0100 +updated: 2010-07-29 23:26:44 +0200 +toc: false +tags: + - know-how + - software + - linux +--- +If your flashplugin only recognizes the very first mouse click and then seems to ignore the mouse completely, just +click somewhere outside the area where the flash script is (e.g. on the webpage background) and then flash will +recognize the next click. + +Some more promising solutions are these: + +* [ubuntugeek.com](http://www.ubuntugeek.com/fix-for-flash-is-not-recognizing-mouse-clicks.html): edit the file + `/usr/lib/nspluginwrapper/i386/linux/npviewer` and add the following line just before the last one: + + export GDK_NATIVE_WINDOWS=1 + + The complete file should now look somewhat like this: + + #!/bin/sh + TARGET_OS=linux + TARGET_ARCH=i386 + export GDK_NATIVE_WINDOWS=1 + . /usr/lib/nspluginwrapper/noarch/npviewer + +* if you are on a 64bit machine, install the 64bit flashplugin from [this PPA](https://launchpad.net/~sevenmachines/+archive/flash) + + +Flash Preferences unusable +========================== + +If your clicks onto the Flash preferences are not recognized, close [gnome-do](apt://gnome-do) and/or [docky](apt://docky). +After that, the preferences should be clickable again. (found [here](http://ubuntuforums.org/showpost.php?p=8484828&postcount=19)) diff --git a/know-how/software/linux/_posts/2010-08-04-samba-not-showing-symlinks.md b/know-how/software/linux/_posts/2010-08-04-samba-not-showing-symlinks.md new file mode 100644 index 0000000..8951fda --- /dev/null +++ b/know-how/software/linux/_posts/2010-08-04-samba-not-showing-symlinks.md @@ -0,0 +1,24 @@ +--- +title: Samba not showing Symlinks +layout: default +created: 2010-08-04 10:47:49 +0200 +updated: 2010-08-04 10:47:49 +0200 +toc: false +tags: + - know-how + - software + - linux + - samba +--- +After an upgrade to *Ubuntu Lucid Lynx*, all Samba shares were missing symlinks, esp. symlinks to directories outside +the share. + +To enable these again, add the following lines into the `[global]` section of your `/etc/samba/smb.conf`: + +{% highlight ini %} +follow symlinks = yes +wide links = yes +unix extensions = no +{% endhighlight %} + +Then restart `smbd` and you should see the symlinks again. diff --git a/know-how/software/linux/_posts/2011-04-09-find-ppa-for-package.md b/know-how/software/linux/_posts/2011-04-09-find-ppa-for-package.md new file mode 100644 index 0000000..4c1f367 --- /dev/null +++ b/know-how/software/linux/_posts/2011-04-09-find-ppa-for-package.md @@ -0,0 +1,33 @@ +--- +title: Find PPA for specific package +layout: default +created: 2011-04-09 13:28:16 +0200 +updated: 2011-04-09 13:28:16 +0200 +toc: false +tags: + - know-how + - software + - linux + - administration +--- +If you want to find out from which PPA a specific package was installed or what other PPAs hold it, you can use the +following command: (found at [superuser.com](http://superuser.com/questions/106794/how-to-tell-from-what-ubuntu-or-debian-repository-a-package-comes)) + +~~~ +$ apt-cache policy mpd +mpd: + Installed: 0.16.2+git20110331.6d3ed3f-0ubuntu1~ripps1 + Candidate: 0.16.2+git20110331.6d3ed3f-0ubuntu1~ripps1 + Version table: + *** 0.16.2+git20110331.6d3ed3f-0ubuntu1~ripps1 0 + 500 http://ppa.launchpad.net/gmpc-trunk/mpd-trunk/ubuntu/ maverick/main amd64 Packages + 100 /var/lib/dpkg/status + 0.16.1-1ubuntu1 0 + 500 http://de.archive.ubuntu.com/ubuntu/ natty/universe amd64 Packages +~~~ + +Here you can see that the package `mpg` is in the PPA *gmpc-trunk/mpd-trunk* and also in the *natty/universe* repository. +The installed version is that from the PPA - also indicated by the `/var/lib/dpkg/status` line. + + +*[PPA]: Personal Package Archive diff --git a/know-how/software/linux/_posts/2011-08-31-rip-youtube-files.md b/know-how/software/linux/_posts/2011-08-31-rip-youtube-files.md new file mode 100644 index 0000000..11da992 --- /dev/null +++ b/know-how/software/linux/_posts/2011-08-31-rip-youtube-files.md @@ -0,0 +1,34 @@ +--- +title: Rip YouTube videos/audio +layout: default +created: 2009-12-05 02:52:46 +0100 +updated: 2011-08-31 23:41:50 +0200 +toc: false +tags: + - know-how + - software + - linux + - youtube + - ripping + - audio +--- +The tools you need are described on [blog.joff3.com](http://blog.joff3.com/2008/02/downloading-and-ripping-music-from.html). +There's also the nice [youtube-dl](apt://youtube-dl) package. One thing I noticed: the `ffmpeg` command there re-encodes +the audio which might loose some quality. To just dump the audio off the Flash video, use: + + ffmpeg -i somevideo.flv -acodec copy output.mp3 + +This is for 240px videos. All larger ones use AAC format. Use this: + + ffmpeg -i somevideo.flv -acodec copy output.aac + ffmpeg -i somevideo.mp4 -acodec copy output.aac + +If you happen to have the latest webm format, use this: + + ffmpeg -i somevideo.webm -vn -acodec copy output.ogg + + +This will just extract the audio track without doing anything to it. + + +You could also try [vixy.net](http://vixy.net/). diff --git a/know-how/software/linux/_posts/2012-02-15-xplanet.md b/know-how/software/linux/_posts/2012-02-15-xplanet.md new file mode 100644 index 0000000..1a464c7 --- /dev/null +++ b/know-how/software/linux/_posts/2012-02-15-xplanet.md @@ -0,0 +1,454 @@ +--- +title: XPlanet +layout: default +created: 2009-02-17 09:24:01 +0100 +updated: 2012-02-15 15:10:04 +0100 +toc: false +tags: + - know-how + - software + - linux + - xplanet +--- +XPlanet renders an Earth globe including actual clouds and satellites' positions. It also has data to render the moon, +mars or the sun. You can even put the image on your Desktop so that it shows the current Earth view from space instead +of a boring wallpaper. + +To make things a bit easier, there's [this Python script](http://ubuntuforums.org/showpost.php?s=dba5c223bddb4c7d1e119ad00225548d&p=258035&postcount=6) +which handles downloading new cloudmaps and updating the image. I re-wrote that thing to pure Bash: + + +handle-xplanet.sh +================= + +{% highlight bash %} +#!/bin/sh + +# Script for using xplanet in Gnome +# made after http://ubuntuforums.org/showpost.php?p=259290&postcount=10 + +# XPlanet configuration +BODY="-body earth -latitude 52.51667 -longitude 13.41667" +SCREEN="-geometry 2560x1024 -center +1920+512 -radius 75" +STARS="-starmap /usr/share/xplanet/stars/BSC -marker_file /usr/share/xplanet/markers/brightStars -arc_file /usr/share/xplanet/arcs/constellations" + +# other configuration +TMPDIR="/tmp" +PREFIX="xplanet-" +ORIGINAL="${TMPDIR}/${PREFIX}original.png" +OPTIONS="-config /opt/xplanet/xplanet.conf $BODY $SCREEN $STARS -ephemeris_file ephemeris/unxp1800.406" +TIMING="-wait 300 -hibernate 600" + +if [ $# -gt 0 ]; then + # Update data + ./update-cloudmap.sh + ./update-satellites.sh + + # Update picture + for f in ${TMPDIR}/${PREFIX}background-*.png; do + rm $f + done + TIME=`date +"%s"` + BGFILE="${TMPDIR}/${PREFIX}background-${TIME}.png" + mv $ORIGINAL $BGFILE + # set background picture + gconftool-2 -t str -s /desktop/gnome/background/picture_filename "" + sleep 1 + gconftool-2 -t str -s /desktop/gnome/background/picture_filename "$BGFILE" + # following line is for Compiz + # dbus-send --print-reply --type=method_call --dest=org.freedesktop.compiz /org/freedesktop/compiz/cube/screen0/backgrounds org.freedesktop.compiz.set array:string:"$BGFILE" +else + # Initialize + /usr/bin/nice -19 /usr/bin/xplanet $TIMING -output "$ORIGINAL" $OPTIONS -post_command "/opt/xplanet/handle-xplanet.sh update" +fi +{% endhighlight %} + +This script makes use of the following two helper scripts. + + +update-cloudmap.sh +================== + +{% highlight bash %} +#!/bin/sh + +CLOUDFILE="clouds.jpg" +URLLIST="update-cloudmap.lst" +UPDATE=$((3*60*60)) + +URL=`head -n 2 $URLLIST | tr "\n" " "` +NOW=`date +"%s"` +MTIME=`stat -c "%Y" $CLOUDFILE` +DIFF=$((NOW - MTIME)) + +. ./colors.sh + +echo "${BOLD}Cloudmap$NORMAL is $BOLD$BLUE$DIFF$NORMAL seconds old (outdated after $UPDATE)." + +DOUPDATE=0 +if [ ! -e $CLOUDFILE ]; then + echo "$BOLD${RED}File not found.$NORMAL" + DOUPDATE=1 +fi + +if [ $DIFF -ge $UPDATE ]; then + echo "$BOLD${YELLOW}File is outdated.$NORMAL" + DOUPDATE=1 +fi + +if [ "$1" = "-f" ]; then + echo "$BOLD${GREEN}Update forced.$NORMAL" + DOUPDATE=1 +fi + +if [ $DOUPDATE = 1 ]; then + aria2c $URL --allow-overwrite=true -o $CLOUDFILE +{% endhighlight %} + + +This one reads the URL to download from a file `update-cloudmap.lst`: + +~~~ +http://userpage.fu-berlin.de/~jml/clouds_4096.jpg +http://www.ruwenzori.net/earth/clouds_4096.jpg +http://www.narrabri.atnf.csiro.au/operations/NASA/clouds_4096.jpg +http://userpage.fu-berlin.de/~jml/clouds_2048.jpg +http://rcswww.urz.tu-dresden.de/~es179238/clouds_2048.jpg +http://xplanet.dyndns.org/clouds/clouds_2048.jpg +http://www.ruwenzori.net/earth/clouds_2048.jpg +http://xplanet.arculeo.com/clouds_2048.jpg +http://xplanet.sourceforge.net/clouds/clouds_2048.jpg +ftp://mirror.pacific.net.au/xplanet/clouds_2048.jpg +http://www.narrabri.atnf.csiro.au/operations/NASA/clouds_2048.jpg +http://home.megapass.co.kr/~gitto88/cloud_data/clouds_2048.jpg +http://home.megapass.co.kr/~holywatr/cloud_data/clouds_2048.jpg +http://home.megapass.co.kr/~ysy00/cloud_data/clouds_2048.jpg +http://user.chol.com/~winxplanet/cloud_data/clouds_2048.jpg +ftp://ftp.iastate.edu/pub/xplanet/clouds_2048.jpg +http://xplanet.explore-the-world.net/clouds_2048.jpg +~~~ + + +update-satellites.sh +==================== + +{% highlight bash %} +#!/bin/sh + +TLEFILE="satellites/iss+.tle" +UPDATE=$((12*60*60)) + +FILES="stations.txt science.txt" +BASEURL="http://www.celestrak.com/NORAD/elements/" +NOW=`date +"%s"` +MTIME=`stat -c "%Y" $TLEFILE` +DIFF=$((NOW - MTIME)) + +URLS="" +for f in $FILES; do + URLS="$URLS $BASEURL$f" +done + +. ./colors.sh + +echo "${BOLD}Satellite$NORMAL data is $BOLD$BLUE$DIFF$NORMAL seconds old (outdated after $UPDATE)." + +DOUPDATE=0 +if [ ! -e $TLEFILE ]; then + echo "$BOLD${RED}File not found.$NORMAL" + DOUPDATE=1 +fi + +if [ $DIFF -ge $UPDATE ]; then + echo "$BOLD${YELLOW}File is outdated.$NORMAL" + DOUPDATE=1 +fi + +if [ "$1" = "-f" ]; then + echo "$BOLD${GREEN}Update forced.$NORMAL" + DOUPDATE=1 +fi + +if [ $DOUPDATE = 1 ]; then + wget -O $TLEFILE $URLS +# aria2c $URL --allow-overwrite=true -o $TLEFILE +{% endhighlight %} + + +colors.sh +========= + +This is a helper script which provides ANSI colors through variables. + +{% highlight bash %} +#!/bin/sh + +TPUT=/usr/bin/tput +NORMAL=`$TPUT sgr0` +BOLD=`$TPUT bold` +BLINK=`$TPUT blink` +RED=`$TPUT setaf 1` +GREEN=`$TPUT setaf 2` +YELLOW=`$TPUT setaf 3` +BLUE=`$TPUT setaf 4` +MAGENTA=`$TPUT setaf 5` +CYAN=`$TPUT setaf 6` +WHITE=`$TPUT setaf 7` +{% endhighlight %} + + +get-ephemeris.sh +================ + +This script has to be run only once since the ephemeris is valid for several years. + +{% highlight bash %} +#!/bin/sh + +wget -r ftp://ssd.jpl.nasa.gov/pub/eph/export/unix/* -P ephemeris/ --no-passive-ftp -nd -c +{% endhighlight %} + + +xplanet.conf +============ + +Finally the configuration file for XPlanet: `xplanet.conf`. + +{% highlight ini %} +# This file contains options you might want to customize for each +# body. It's best to leave this file alone and modify a copy. Use the +# -config option to tell xplanet to read your copy. + +[default] # Values in this section apply to all + # bodies unless overridden below. + +arc_color=gray +#arc_file= + +#bump_map= +bump_scale=1 + +cloud_gamma=1 +#cloud_map= +cloud_ssec=false # true if the cloud map is from the + # University of Wisconsin Space + # Science and Engineering Center +cloud_threshold=90 + +color={255,255,255} # fallback color in case an image map + # isn't found + +draw_orbit=false # if true, draw this body's orbit + # about its primary + +grid=false +grid1=6 +grid2=15 + +#image= + +magnify=1 # draw the body as if its radius were + # magnified by this factor + +marker_color=yellow +#marker_file= +#marker_font= +marker_fontsize=8 + +max_radius_for_label=3 # don't draw a label if the body's + # radius in pixels is more than this + +min_radius_for_label=.01 # don't draw a label if the body's + # radius in pixels is less than this + +min_radius_for_markers=40 # don't draw markers if the body's + # radius in pixels is less than this + +#night_map= + +orbit={-.5,.5,2} # extent of orbit to draw, + # {start, end, delta}, where + # start and end are in units of period + # of revolution and delta is angular + # increment in degrees to evaluate + # position + +orbit_color={255,255,255} # color for the orbit + +random_origin=true # Can this body be considered if + # -origin random is used? + +random_target=true # Can this body be considered if + # -target random is used? + +#satellite_file= + +shade=30 # 0 = black, 100 = same as dayside + +#specular_map= + +text_color={255,0,0} # color for text (markers & body label) + +twilight=6 # blend the day and night images for + # pixels within this many degrees of + # the terminator + +[sun] +"Sun" +color={255,255,166} +max_radius_for_label=0 # never draw a label for the sun +shade=100 # No night side! +map=maps/sun/map.jpg + +[mercury] +"Mercury" +color={100, 100, 100} + +min_radius_for_label=0 # always draw a label + +[venus] +"Venus" +color={161, 129, 70} + +min_radius_for_label=0 + +[earth] +"Earth" +color={28, 82, 110} + +cloud_map=clouds.jpg +bump_map=maps/earth/bump.jpg +map=maps/earth/map.jpg +night_map=maps/earth/night.jpg + +# I have day and night maps of Australia centered on Alice Springs, +# which are cropped from higher resolution maps. +#map=alice_springs.png +#night_map=alice_springs_night.png +#mapbounds={-1.2,98.7107,-46.2,169.023} # lat1, lon1, lat2, lon2 + +#marker_file=capitals.mark +marker_file=earth + +min_radius_for_label=0 + +satellite_file=satellites/iss+ + +[moon] +"Moon" +color={100, 100, 100} +map=maps/moon/map.jpg +bump_map=maps/moon/bump.jpg +marker_file=moon + +[mars] +"Mars" +color={172, 123, 67} +map=maps/mars/map.jpg +min_radius_for_label=0 +marker_file=mars + +[phobos] +"Phobos" + +[deimos] +"Deimos" + +[jupiter] +"Jupiter" +color={204, 163, 133} +min_radius_for_label=0 + +[io] +"Io" +color={212, 182, 52} + +[europa] +"Europa" +color={140, 140, 140} + +[ganymede] +"Ganymede" +color={150, 150, 150} + +[callisto] +"Callisto" +color={70, 70, 70} + +[saturn] +"Saturn" +color={244, 199, 134} +min_radius_for_label=0 + +[mimas] +"Mimas" + +[enceladus] +"Enceladus" + +[tethys] +"Tethys" + +[dione] +"Dione" + +[rhea] +"Rhea" + +[titan] +"Titan" + +color={252,94,7} + +[hyperion] +"Hyperion" + +[iapetus] +"Iapetus" + +[phoebe] +"Phoebe" + +[uranus] +"Uranus" + +color={105, 197, 238} + +min_radius_for_label=0 + +[miranda] +"Miranda" + +[ariel] +"Ariel" + +[umbriel] +"Umbriel" + +[titania] +"Titania" + +[oberon] +"Oberon" + +[neptune] +"Neptune" +color={95, 133, 232} + +min_radius_for_label=0 + +[triton] +"Triton" + +[nereid] +"Nereid" + +[pluto] +"Pluto" +color={206, 180, 153} + +min_radius_for_label=0 + +[charon] +"Charon" +{% endhighlight %} diff --git a/know-how/software/linux/_posts/2012-05-14-keepass-under-linux.md b/know-how/software/linux/_posts/2012-05-14-keepass-under-linux.md new file mode 100644 index 0000000..b32afda --- /dev/null +++ b/know-how/software/linux/_posts/2012-05-14-keepass-under-linux.md @@ -0,0 +1,17 @@ +--- +title: KeePass under Linux with Mono +layout: default +created: 2011-08-31 20:33:25 +0200 +updated: 2012-05-14 01:08:11 +0200 +toc: false +tags: + - know-how + - software + - linux + - keepass + - mono +--- +To enable most `.plgx`-Plugins, you need to install the [mono-gmcs](apt://mono-gmcs)-Package. For newer versions of +KeePass, use [mono-dmcs](apt://mono-dmcs). + +For a list of all needed packages, look at [leo.gaggl.com](http://leo.gaggl.com/2011/04/keepass-version-2-on-ubuntu/). diff --git a/know-how/software/linux/_posts/2014-02-10-resize-partition.md b/know-how/software/linux/_posts/2014-02-10-resize-partition.md new file mode 100644 index 0000000..4e8ef5e --- /dev/null +++ b/know-how/software/linux/_posts/2014-02-10-resize-partition.md @@ -0,0 +1,47 @@ +--- +title: Resize partition +layout: default +created: 2013-12-16 14:16:31 +0100 +updated: 2014-02-10 09:09:32 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +Detect new disk size +==================== + +With virtual machines (VMware at least), you can resize the disk drives without restarting the VM itself. After doing +that, you have to get Linux to recognize the new disk drive size. Use one of these (found [here](http://oldblog.renanmarks.net/en/blog/reload-partition-table-without-rebooting-linux-system) +and [here](http://jason-antonacci.blogspot.de/2012/08/recognizing-linux-block-device.html)) - assuming the modified +drive is `/dev/sdc`: + +* `hdparm -z /dev/sdc` +* `echo 1 > /sys/block/sdc/device/rescan` +* `partprobe /dev/sdc` + +

+Make sure to umount all mounts from this drive before rescanning it. Otherwise, it won't work. +

+ +Check the success with `fdisk -l`. + + +Resize partition +================ + +Using `parted`, there's the `resize` command. But this is not as robust, es using `resize2fs` from the [e2fsprogs](apt://e2fsprogs) +package. So the recommended way is to manually resize the partition using `parted` and then run `resize2fs` to do the +actual resize operation. + +Make sure to switch to `unit s` (sectors) in `parted` and `print` the partition table before doing anything to it so +that you can refer to it later. + + +Fill Empty Space +================ + +To fill empty space with zeroes (to e.g. reduce the partition size using `vmkfstools`), use this command (found [here](http://www.zedt.eu/tech/linux/zero-out-free-disk-space/)): + + nice cat /dev/zero > zero.fill; sync; sleep 1; sync; rm -f zero.fill diff --git a/know-how/software/linux/_posts/2014-11-27-rip-dvd-track.md b/know-how/software/linux/_posts/2014-11-27-rip-dvd-track.md new file mode 100644 index 0000000..27e297e --- /dev/null +++ b/know-how/software/linux/_posts/2014-11-27-rip-dvd-track.md @@ -0,0 +1,48 @@ +--- +title: Rip DVD track +layout: default +created: 2008-08-27 00:42:59 +0200 +updated: 2014-11-27 01:52:34 +0100 +toc: false +tags: + - know-how + - software + - linux +--- +To rip a DVD track to a file, you need the [transcode](apt://transcode) package and the encoders you're going to use. + +To rip a single track as ogg, use the command + + transcode -i /dev/scd0 -x dvd -T 5,15 -a 0 -y null,ogg -o ~/Nasty.ogg + +This would rip audio only (video goes to *null*) chapter 5, track 15 to the file `Nasty.ogg`. + + transcode -i /dev/scd0 -x dvd -T 5,15 -a 0 -y null,raw -b 192 -o ~/Nasty.mp3 + +This one rips to a `mp3` file. The codec is `raw` because *transcode* internally works with mp3. + + +**UPDATE:** The `raw` audio encoder is deprecated and `tcaud` should be used instead. Use this: + + transcode -i /dev/scd0 -x null,dvd -y null,tcaud -T 1,8 -a 0 --lame_preset extreme -m outputfile.mp3 + +More information about how to use `transcode` is explained here: [ubuntuforums.org](http://ubuntuforums.org/showthread.php?t=1357157). + + +mplayer +======= + +Find out the longest DVD track using [lsdvd](apt://lsdvd): + + lsdvd | grep Longest + + +Then dump that track with [mplayer](apt://mplayer): + + mplayer dvd://02 -v -dumpstream -dumpfile output.vob + +Convert with [avidemux](apt://avidemux), [avconv](apt://avconv) or similar, e.g.: + + avconv -i output.vob -qscale:0 8 -qscale:2 2 -filter:v yadif output.mp4 + + avconv -i output.vob -map 0:0 -map 0:1 -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k -async 30 output-en.avi