mirror of
https://github.com/mbirth/wiki.git
synced 2024-12-24 22:54:09 +00:00
Added various Linux posts.
This commit is contained in:
parent
a914dbf05e
commit
fd9db71293
358
assets/abcde.conf
Normal file
358
assets/abcde.conf
Normal file
@ -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
|
197
assets/autohotkey.syntax
Normal file
197
assets/autohotkey.syntax
Normal file
@ -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
|
108
assets/eztemplate.syntax
Normal file
108
assets/eztemplate.syntax
Normal file
@ -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
|
62
assets/pyyimt.txt
Normal file
62
assets/pyyimt.txt
Normal file
@ -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
|
191
assets/zshrc.txt
Normal file
191
assets/zshrc.txt
Normal file
@ -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`"
|
30
know-how/software/linux/_posts/2008-09-01-sudo-insults.md
Normal file
30
know-how/software/linux/_posts/2008-09-01-sudo-insults.md
Normal file
@ -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
|
@ -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/).
|
@ -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
|
||||
|
15
know-how/software/linux/_posts/2009-02-10-why-linux.md
Normal file
15
know-how/software/linux/_posts/2009-02-10-why-linux.md
Normal file
@ -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
|
||||
---
|
||||
<blockquote>
|
||||
I use Linux because it's like owning a chainsaw compared to owning a pen knife. Not always necessary, but so much more fun.
|
||||
</blockquote>
|
||||
--- [arjayes](http://ubuntuforums.org/member.php?u=387872) of UbuntuForums
|
@ -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 `%~`.
|
52
know-how/software/linux/_posts/2009-02-22-festival.md
Normal file
52
know-how/software/linux/_posts/2009-02-22-festival.md
Normal file
@ -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 %}
|
40
know-how/software/linux/_posts/2009-02-22-wcd.md
Normal file
40
know-how/software/linux/_posts/2009-02-22-wcd.md
Normal file
@ -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).
|
||||
|
||||
<p><div class="noteclassic" markdown="1">
|
||||
Before using it the first time, you might have to issue a `wcd -s` which will scan your $HOME.
|
||||
</div></p>
|
@ -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:
|
||||
|
@ -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.
|
@ -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)
|
99
know-how/software/linux/_posts/2009-07-17-filesystems.md
Normal file
99
know-how/software/linux/_posts/2009-07-17-filesystems.md
Normal file
@ -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
|
@ -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#
|
50
know-how/software/linux/_posts/2009-07-17-wifi-guessnet.md
Normal file
50
know-how/software/linux/_posts/2009-07-17-wifi-guessnet.md
Normal file
@ -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.
|
50
know-how/software/linux/_posts/2009-07-17-zsh.md
Normal file
50
know-how/software/linux/_posts/2009-07-17-zsh.md
Normal file
@ -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 <kbd>Del</kbd>-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.
|
58
know-how/software/linux/_posts/2009-07-18-jabberd2.md
Normal file
58
know-how/software/linux/_posts/2009-07-18-jabberd2.md
Normal file
@ -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 <https://sharesource.org/hg/pymsnt/summary>. 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): <type 'exceptions.Exception'>: Timeout]
|
||||
|
||||
In the config file, if you are behind a NAT router, specify **your internal LAN IP** for `<host>` 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)
|
67
know-how/software/linux/_posts/2009-07-21-mixed-locales.md
Normal file
67
know-how/software/linux/_posts/2009-07-21-mixed-locales.md
Normal file
@ -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`.
|
91
know-how/software/linux/_posts/2009-07-23-dual-head.md
Normal file
91
know-how/software/linux/_posts/2009-07-23-dual-head.md
Normal file
@ -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
|
@ -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"
|
||||
|
||||
<p><div class="noteclassic">
|
||||
After an upgrade to Jaunty, these lines are commented out by the update-manager. Just uncomment them and everything
|
||||
should work again.
|
||||
</div></p>
|
||||
|
||||
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.
|
71
know-how/software/linux/_posts/2009-08-09-mpd.md
Normal file
71
know-how/software/linux/_posts/2009-08-09-mpd.md
Normal file
@ -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/).
|
12
know-how/software/linux/_posts/2009-08-11-incron.md
Normal file
12
know-how/software/linux/_posts/2009-08-11-incron.md
Normal file
@ -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).
|
68
know-how/software/linux/_posts/2009-08-13-unmounting.md
Normal file
68
know-how/software/linux/_posts/2009-08-13-unmounting.md
Normal file
@ -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/).
|
16
know-how/software/linux/_posts/2009-08-24-gajim-notifyosd.md
Normal file
16
know-how/software/linux/_posts/2009-08-24-gajim-notifyosd.md
Normal file
@ -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`.
|
28
know-how/software/linux/_posts/2009-08-24-swapfile.md
Normal file
28
know-how/software/linux/_posts/2009-08-24-swapfile.md
Normal file
@ -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.
|
20
know-how/software/linux/_posts/2009-08-26-make-color.md
Normal file
20
know-how/software/linux/_posts/2009-08-26-make-color.md
Normal file
@ -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.
|
25
know-how/software/linux/_posts/2009-12-05-rip-cd-track.md
Normal file
25
know-how/software/linux/_posts/2009-12-05-rip-cd-track.md
Normal file
@ -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)
|
@ -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.
|
@ -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 <kbd>1</kbd> and confirm with <kbd>ENTER</kbd>.
|
@ -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:** <http://drapes.mindtouchsoftware.com/>
|
||||
* **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:** <http://www.becrux.com/index.php?page=projects&name=wally>
|
||||
|
||||
Seems to not work in *Karmic*.
|
||||
|
||||
|
||||
Wallpaper Tray
|
||||
==============
|
||||
|
||||
* **Homepage:** <http://freshmeat.net/projects/wp_tray/>
|
||||
* **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.
|
@ -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 <device-id> <button1> <button2> <button3> ... <buttonN>
|
||||
xinput set-button-map <device-id> <button1> <button2> <button3> … <buttonN>
|
||||
|
||||
The `<device-id>` 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 <device-id>`.
|
||||
The `<device-id>` 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 <device-id>`.
|
||||
|
||||
So the default configuration (`xinput set-button-map <device-id> 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 <kbd>Ctrl</kbd>-<kbd>PgUp</kbd> and *WheelRight* to <kbd>Ctrl</kbd>-<kbd>PgDn</kbd>.
|
||||
|
||||
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.)
|
||||
|
||||
<p><div class="noteimportant" markdown="1">
|
||||
Looks like `imwheel` causes some problems when scrolling in *Opera*: The webpage doesn't get redrawn so that you have
|
||||
|
@ -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 <kbd>Alt</kbd>+<kbd>H</kbd>.
|
||||
|
||||
|
||||
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
|
@ -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
|
||||
|
29
know-how/software/linux/_posts/2010-02-07-wine.md
Normal file
29
know-how/software/linux/_posts/2010-02-07-wine.md
Normal file
@ -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.
|
@ -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).
|
@ -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/).
|
@ -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
|
||||
</div></p>
|
||||
|
||||
|
||||
*[PPA]: Personal Package Archive
|
||||
|
@ -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.
|
||||
|
||||
<p><div class="noteimportant" markdown="1">
|
||||
Check your files after merging! If you have no audio near the end of the final video file, use *mencoder* below.
|
||||
</div></p>
|
||||
|
||||
|
||||
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
|
@ -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.
|
@ -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))
|
@ -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.
|
@ -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
|
@ -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/).
|
454
know-how/software/linux/_posts/2012-02-15-xplanet.md
Normal file
454
know-how/software/linux/_posts/2012-02-15-xplanet.md
Normal file
@ -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 %}
|
@ -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/).
|
@ -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`
|
||||
|
||||
<p><div class="notewarning">
|
||||
Make sure to umount all mounts from this drive before rescanning it. Otherwise, it won't work.
|
||||
</div></p>
|
||||
|
||||
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
|
48
know-how/software/linux/_posts/2014-11-27-rip-dvd-track.md
Normal file
48
know-how/software/linux/_posts/2014-11-27-rip-dvd-track.md
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user