From 187df112487f2d5701b18b6b5fe7ff8125d7fa81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=B6rber?= Date: Tue, 22 Apr 2014 22:15:26 +0200 Subject: [PATCH] Changed lots of things, too lazy to comment it all. --- i3/i3/conky/virtualarch.conkyrc | 42 +- i3/i3/i3bar_wrapper.bash | 14 +- i3/i3/scripts/genconfig.bash | 17 +- i3/i3/scripts/i3exit.bash | 7 +- i3/i3/scripts/pa-volume.bash | 29 +- i3/i3/scripts/status.d/battery.bash | 10 +- i3/i3/scripts/status.d/conky_pacman.bash | 4 +- i3/i3/scripts/status.d/sysinfo.bash | 2 +- i3/i3/scripts/status.d/wireless.bash | 24 +- i3/i3/scripts/update-status.bash | 3 +- mpd/mpd/mpdconf | 477 ----------------------- ncmpcpp/ncmpcpp/config | 23 +- setup/list | 1 + x/Xresources | 2 +- x/xinitrc | 64 ++- 15 files changed, 181 insertions(+), 538 deletions(-) delete mode 100644 mpd/mpd/mpdconf diff --git a/i3/i3/conky/virtualarch.conkyrc b/i3/i3/conky/virtualarch.conkyrc index 52cae3a..b31a0e5 100644 --- a/i3/i3/conky/virtualarch.conkyrc +++ b/i3/i3/conky/virtualarch.conkyrc @@ -16,8 +16,26 @@ update_interval_on_battery 1.0 #use_spacer left TEXT -[ -{ "full_text" : " " }, \ +[\ +{ "full_text" : "\ +${if_running mpd}\ +${if_mpd_playing}\ +${if_match "${mpd_status}" == "Paused"}\ +\ +${else}\ +\ +${endif}\ + ${mpd_artist} - ${mpd_title} ${mpd_elapsed}/${mpd_length}\ +${else}\ + stopped\ +${endif}\ +${else}\ + down\ +${endif}\ + " , "name" : "mpd" },\ +\ +\ +\ ${if_existing /sys/class/net/wlp2s0}\ { "full_text" : "  \ ${if_up wlp2s0}\ @@ -45,11 +63,11 @@ ${endif}\ ${else}\#FF0000\ ${endif}\ " , "name" : "wireless" },\ -${endif} +${endif}\ \ \ \ -${if_existing /sys/class/net/enp0s3} +${if_existing /sys/class/net/enp0s3}\ { "full_text" : " \ enp0s3: \ ${if_up enp0s3}\ @@ -65,11 +83,11 @@ ${endif}\ ${else}\#FF0000\ ${endif}\ " },\ -${endif} +${endif}\ \ \ \ -${if_existing /sys/class/net/enp1s0} +${if_existing /sys/class/net/enp1s0}\ { "full_text" : " \ enp1s0: \ ${if_up enp1s0}\ @@ -85,11 +103,11 @@ ${endif}\ ${else}\#FF0000\ ${endif}\ " },\ -${endif} +${endif}\ \ \ \ -${if_existing /sys/class/net/eth0} +${if_existing /sys/class/net/eth0}\ { "full_text" : " \ eth0: \ ${if_up eth0}\ @@ -105,17 +123,17 @@ ${endif}\ ${else}\#FF0000\ ${endif}\ " },\ -${endif} +${endif}\ \ \ \ { "full_text" : "  \ -${pre_exec bash $HOME/.i3/scripts/pa-volume.bash status} " , "color" : "\#FFFFFF" , "name" : "volume" },\ +${texeci 3600 bash $HOME/.i3/scripts/pa-volume.bash status} " , "color" : "\#FFFFFF" , "name" : "volume" },\ \ \ \ ${if_existing /sys/class/power_supply/BAT1}\ -${execi 10 bash $HOME/.i3/scripts/status.d/battery.bash conky}\ +${texeci 10 bash $HOME/.i3/scripts/status.d/battery.bash conky}\ ${endif}\ \ \ @@ -124,7 +142,7 @@ ${endif}\ \ \ \ -{ "full_text" : "  ${execi 60 bash ~/.i3/scripts/status.d/conky_pacman.bash} " , "color" : "\#FFFFFF" , "name" : "pacman" },\ +{ "full_text" : "  ${texeci 60 bash ~/.i3/scripts/status.d/conky_pacman.bash} " , "color" : "\#FFFFFF" , "name" : "pacman" },\ \ \ \ diff --git a/i3/i3/i3bar_wrapper.bash b/i3/i3/i3bar_wrapper.bash index 27086cf..d0e45e6 100644 --- a/i3/i3/i3bar_wrapper.bash +++ b/i3/i3/i3bar_wrapper.bash @@ -10,12 +10,12 @@ X_MAX=1920 # paths to scripts used. PA_VOLUME_SCRIPT="$HOME/.i3/scripts/pa-volume.bash" I3BAR_UPDATE="$HOME/.i3/scripts/update-status.bash" -LOGFILE="$HOME/.i3/logs/output_i3bar.log" +LOGFILE="$LOGDIR/i3/i3log_wrapper.log" SCRIPTS_SYSINFO="$HOME/.i3/scripts/status.d/sysinfo.bash" SCRIPTS_WIRELESS="$HOME/.i3/scripts/status.d/wireless.bash" SCRIPTS_BATTERY="$HOME/.i3/scripts/status.d/battery.bash" SCRIPTS_PACMAN="$HOME/.i3/scripts/status.d/pacman.bash" -PIDFILE="$HOME/.i3/logs/conky.pid" +PIDFILE="$LOGDIR/i3/conky.pid" COLOR_FG="#FFFFFF" COLOR_BG="#222222" @@ -25,12 +25,15 @@ YAD_PREFIX="GTK2_RC_FILES=$GTK_THEME" FONT="DejaVu Sans Mono 11" +mkdir -p "$(dirname $LOGFILE)" echo > "$LOGFILE" log() { - echo $* >> "$LOGFILE" + echo "[$(date +%FT%T)] $*" >> "$LOGFILE" } +log "START" + update() { bash $I3BAR_UPDATE } @@ -73,12 +76,16 @@ while read line ; do # to i3bar and crash it due to wrong formatting. log "line: $line" + [[ "$line" == "[" ]] && continue name="$(getval "$line" "name")" log "name: $name" case "$name" in + "mpd") + mpc toggle 1>/dev/null 2>%1 + ;; "pacman") width=500 height=700 @@ -198,4 +205,3 @@ while read line ; do esac done - diff --git a/i3/i3/scripts/genconfig.bash b/i3/i3/scripts/genconfig.bash index f410bbe..8823247 100644 --- a/i3/i3/scripts/genconfig.bash +++ b/i3/i3/scripts/genconfig.bash @@ -9,6 +9,14 @@ CONF_DIR="$HOME/.i3/config.d" # file that should be used when no host specific configuration present DEFAULT_CONF="$CONF_DIR/default" +LOGFILE="$LOGDIR/i3/genconfig.log" + +mkdir -p "$(dirname $LOGFILE)" + +log() { + echo "[$(date +%FT%T)] $*" >> "$LOGFILE" +} + host="$(hostname)" host_specific_conf="$CONF_DIR/$host.config" @@ -19,15 +27,19 @@ host_specific_conf="$CONF_DIR/$host.config" if [[ ! -f "$host_specific_conf" ]] && [[ ! -f "$DEFAULT_CONF" ]]; then # if there is no host-specific configuration and no default one, just use # the main config + log "neither config for host $host nor default config at $DEFAULT_CONF found, using main only" ln -sf "$MAIN_CONF" "$SESSION_CONF" else # either use the host specific config if present, or the default if not if [[ -f "$host_specific_conf" ]]; then + log "found config for host $host at $host_specific_conf" conf_to_use="$host_specific_conf" else + log "no config for host $host found, using default one" conf_to_use="$DEFAULT_CONF" fi cat "$MAIN_CONF" <(echo -e "\n###\n### host-specific configuration for host \"$host\"\n###\n") "$conf_to_use" > "$SESSION_CONF" + log "created session config at $SESSION_CONF" fi echo "$SESSION_CONF" @@ -35,4 +47,7 @@ echo "$SESSION_CONF" # if we got any parameters, tell i3 to reload the config # so the script can be used both on startup without reload (as i3 is not even # running yet) and later when reloading -[[ -n "$1" ]] && i3-msg reload +if [[ -n "$1" ]] ; then + log "telling i3 to reload the config file" + i3-msg reload +fi diff --git a/i3/i3/scripts/i3exit.bash b/i3/i3/scripts/i3exit.bash index 3d72b64..6fa69e5 100755 --- a/i3/i3/scripts/i3exit.bash +++ b/i3/i3/scripts/i3exit.bash @@ -2,16 +2,19 @@ ### From http://www.archlinux.org/index.php/i3 -LOGFILE="$HOME/.i3/logs/i3exit.log" +LOGFILE="$LOGDIR/i3/i3exit.log" LOGFILE_MAXSIZE=100000 FALLBACK_COLOR=000000 +mkdir -p "$(dirname $LOGFILE)" +touch "$LOGFILE" + [[ $(stat -c%s "$LOGFILE") -gt $LOGFILE_MAXSIZE ]] && >$LOGFILE log() { - echo "$(date "+%Y-%m-%d %H:%M:%S") $1" >> "$LOGFILE" + echo "[$(date +%FT%T)] $1" >> "$LOGFILE" } lock() diff --git a/i3/i3/scripts/pa-volume.bash b/i3/i3/scripts/pa-volume.bash index 91ec982..7efad4c 100644 --- a/i3/i3/scripts/pa-volume.bash +++ b/i3/i3/scripts/pa-volume.bash @@ -8,7 +8,23 @@ getvol() { } setvol() { - pactl set-sink-volume $SINK $(( $1 * 65536 / 100 )) + if [[ $1 =~ [+-][0-9]+ ]] ; then + oldvol="$(getvol)" + echo "oldvol $oldvol" + delta="$(echo "$1" | cut -c 2-)" + echo "delta $delta" + if [[ "$(echo "$1" | cut -c 1)" == "+" ]] ; then + echo "+" + newvol=$(( $oldvol + $delta )) + else + echo "-" + newvol=$(( $oldvol - $delta )) + fi + echo "newvol $newvol" + else + newvol="$1" + fi + pactl set-sink-volume $SINK $(( $newvol * 65536 / 100 )) } ismuted() { @@ -57,15 +73,19 @@ case "$1" in else setvol "$2" fi + hook="$3" ;; "mute") mute + hook="$2" ;; "unmute") unmute + hook="$2" ;; "mute-toggle") mute-toggle + hook="$2" ;; "is-muted") echo $(ismuted) @@ -74,6 +94,11 @@ case "$1" in echo $(status) ;; *) - echo "wrong usage" + usage ;; esac + +if [[ -n "$hook" ]] ; then + echo "volume changed, executing hook: $hook" + $hook +fi diff --git a/i3/i3/scripts/status.d/battery.bash b/i3/i3/scripts/status.d/battery.bash index f178873..fd88a30 100644 --- a/i3/i3/scripts/status.d/battery.bash +++ b/i3/i3/scripts/status.d/battery.bash @@ -4,8 +4,10 @@ # creating nice output if you click on the status bar # what i done depends on the first paramter -PATH_WARN_1="$HOME/.i3/logs/batwarn1" -PATH_WARN_2="$HOME/.i3/logs/batwarn2" +[[ ! -d "$LOGDIR/batwarn" ]] && mkdir -p "$LOGDIR/batwarn" + +PATH_WARN_1="$LOGDIR/batwarn/batwarn1" +PATH_WARN_2="$LOGDIR/batwarn/batwarn2" THRESHOLD1=25 THRESHOLD2=5 @@ -51,12 +53,12 @@ conky() { if threshold2 ; then if [[ ! -f "$PATH_WARN_2" ]] ; then echo > "$PATH_WARN_2" - notify-send --icon dialog-warning "Battery below 5%" + notify-send --icon dialog-warning "Battery below ${THRESHOLD2}%" fi elif threshold1 ; then if [[ ! -f "$PATH_WARN_1" ]] ; then echo > "$PATH_WARN_1" - notify-send --icon dialog-warning "Battery below 25%" + notify-send --icon dialog-warning "Battery below ${THRESHOLD1}%" fi fi fi diff --git a/i3/i3/scripts/status.d/conky_pacman.bash b/i3/i3/scripts/status.d/conky_pacman.bash index 2766079..97b3ca0 100644 --- a/i3/i3/scripts/status.d/conky_pacman.bash +++ b/i3/i3/scripts/status.d/conky_pacman.bash @@ -1,8 +1,10 @@ #!/bin/bash updates=$(pacman -Quq | wc -l) -if [[ $updates == 0 ]] ; then +if [[ $updates -eq 0 ]] ; then echo "no updates" +elif [[ $updates -eq 1 ]] ; then + echo "1 update" else echo "$updates updates" fi diff --git a/i3/i3/scripts/status.d/sysinfo.bash b/i3/i3/scripts/status.d/sysinfo.bash index 7f70664..c7d23de 100644 --- a/i3/i3/scripts/status.d/sysinfo.bash +++ b/i3/i3/scripts/status.d/sysinfo.bash @@ -20,7 +20,7 @@ echo "Temp:|$(sensors -u | grep "temp1_input" | cut -d ":" -f 2 | cut -d "." -f echo "Load:|$(uptime | tr -s " " | cut -d " " -f 10 | tr -d ",")") | columnate echo "" echo "MEM:" -echo "${memused}MB / ${memtotal}MB ($(( $memused * 100 / $memtotal ))% used)" +echo "${memused}MB / ${memtotal}MB ($(( $memused * 100 / $memtotal ))%) used" echo "" echo "PROCS:" (echo "x x cpu% mem% x x x x x x command" ; ps aux | sort -nrk 3 | tr -s " " | cut -d " " -f -11 | uniq -uf 10 | head -10) | cut -d " " -f 3,4,11 | column -t diff --git a/i3/i3/scripts/status.d/wireless.bash b/i3/i3/scripts/status.d/wireless.bash index d12bd27..1640f63 100644 --- a/i3/i3/scripts/status.d/wireless.bash +++ b/i3/i3/scripts/status.d/wireless.bash @@ -28,7 +28,10 @@ rxtotal=$(echo "$vnstat_output" | grep "^totalrx;" | cut -d ";" -f 2) vnstat_created="$(date --date=@$(echo "$vnstat_output" | grep "^created;" | cut -d ";" -f 2) "$TIMEFORMAT")" vnstat_last_update="$(date --date=@$(echo "$vnstat_output" | grep "^updated;" | cut -d ";" -f 2) "$TIMEFORMAT")" -echo "Interface $INTERFACE:" +txhour=$(( $txhour / 1024 )) +rxhour=$(( $rxhour / 1024 )) + +echo -e "Interface $INTERFACE:\n" ( echo "IP:|$ip" echo "ESSID:|$essid" @@ -39,17 +42,14 @@ echo "Quality:|$qual" echo "Signal level:|$lvl dBm" echo "Bitrate:|$rate Mb/s" ) | columnize -echo "" -echo "Usage:" +echo -e "\nUsage:\n" ( -echo "Hourly up:|${txhour} KiB" -echo "Hourly down:|${rxhour} KiB" -echo "Daily up:|${txtoday} MiB" -echo "Daily down:|${rxtoday} MiB" -echo "Total up:|${txtotal} MiB" -echo "Total down:|${rxtotal} MiB" +echo "Hourly up:|${txhour}|MiB" +echo "Hourly down:|${rxhour}|MiB" +echo "Daily up:|${txtoday}|MiB" +echo "Daily down:|${rxtoday}|MiB" +echo "Total up:|${txtotal}|MiB" +echo "Total down:|${rxtotal}|MiB" echo "" -echo "Database created at:|$vnstat_created" -echo "Last update at:|$vnstat_last_update" ) | columnize - +echo -e "\nLast update at: $vnstat_last_update" diff --git a/i3/i3/scripts/update-status.bash b/i3/i3/scripts/update-status.bash index 981d110..6b9c306 100644 --- a/i3/i3/scripts/update-status.bash +++ b/i3/i3/scripts/update-status.bash @@ -1 +1,2 @@ -kill -SIGUSR1 $(cat $HOME/.i3/logs/conky.pid) +echo "update" >> ~/test.log +kill -SIGUSR1 $(cat $LOGDIR/i3/conky.pid) diff --git a/mpd/mpd/mpdconf b/mpd/mpd/mpdconf deleted file mode 100644 index 393043a..0000000 --- a/mpd/mpd/mpdconf +++ /dev/null @@ -1,477 +0,0 @@ -# An example configuration file for MPD -# See the mpd.conf man page for a more detailed description of each parameter. - - -# Files and directories ####################################################### -# -# This setting controls the top directory which MPD will search to discover the -# available audio files and add them to the daemon's online database. This -# setting defaults to the XDG directory, otherwise the music directory will be -# be disabled and audio files will only be accepted over ipc socket (using -# file:// protocol) or streaming files over an accepted protocol. -# -music_directory "~/music/library/" -# -# This setting sets the MPD internal playlist directory. The purpose of this -# directory is storage for playlists created by MPD. The server will use -# playlist files not created by the server but only if they are in the MPD -# format. This setting defaults to playlist saving being disabled. -# -playlist_directory "~/.mpd/playlists/" -# -# This setting sets the location of the MPD database. This file is used to -# load the database at server start up and store the database while the -# server is not up. This setting defaults to disabled which will allow -# MPD to accept files over ipc socket (using file:// protocol) or streaming -# files over an accepted protocol. -# -db_file "~/.mpd/mpd.db" -# -# These settings are the locations for the daemon log files for the daemon. -# These logs are great for troubleshooting, depending on your log_level -# settings. -# -# The special value "syslog" makes MPD use the local syslog daemon. This -# setting defaults to logging to syslog, otherwise logging is disabled. -# -log_file "~/.mpd/log" -# -# This setting sets the location of the file which stores the process ID -# for use of mpd --kill and some init scripts. This setting is disabled by -# default and the pid file will not be stored. -# -pid_file "~/.mpd/mpd.pid" -# -# This setting sets the location of the file which contains information about -# most variables to get MPD back into the same general shape it was in before -# it was brought down. This setting is disabled by default and the server -# state will be reset on server start up. -# -state_file "~/.mpd/mpdstate" -# -# The location of the sticker database. This is a database which -# manages dynamic information attached to songs. -# -sticker_file "~/.mpd/sticker.sql" -# -############################################################################### - - -# General music daemon options ################################################ -# -# This setting specifies the user that MPD will run as. MPD should never run as -# root and you may use this setting to make MPD change its user ID after -# initialization. This setting is disabled by default and MPD is run as the -# current user. -# -#user "hannes" -# -# This setting specifies the group that MPD will run as. If not specified -# primary group of user specified with "user" setting will be used (if set). -# This is useful if MPD needs to be a member of group such as "audio" to -# have permission to use sound card. -# -#group "nogroup" -# -# This setting sets the address for the daemon to listen on. Careful attention -# should be paid if this is assigned to anything other then the default, any. -# This setting can deny access to control of the daemon. -# -# For network -#bind_to_address "any" -# -# And for Unix Socket -#bind_to_address "~/.mpd/socket" -# -# This setting is the TCP port that is desired for the daemon to get assigned -# to. -# -port "6600" -# -# This setting controls the type of information which is logged. Available -# setting arguments are "default", "secure" or "verbose". The "verbose" setting -# argument is recommended for troubleshooting, though can quickly stretch -# available resources on limited hardware storage. -# -#log_level "default" -# -# If you have a problem with your MP3s ending abruptly it is recommended that -# you set this argument to "no" to attempt to fix the problem. If this solves -# the problem, it is highly recommended to fix the MP3 files with vbrfix -# (available from ), at which -# point gapless MP3 playback can be enabled. -# -#gapless_mp3_playback "yes" -# -# Setting "restore_paused" to "yes" puts MPD into pause mode instead -# of starting playback after startup. -# -#restore_paused "no" -# -# This setting enables MPD to create playlists in a format usable by other -# music players. -# -#save_absolute_paths_in_playlists "no" -# -# This setting defines a list of tag types that will be extracted during the -# audio file discovery process. The complete list of possible values can be -# found in the mpd.conf man page. -#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" -# -# This setting enables automatic update of MPD's database when files in -# music_directory are changed. -# -#auto_update "yes" -# -# Limit the depth of the directories being watched, 0 means only watch -# the music directory itself. There is no limit by default. -# -#auto_update_depth "3" -# -############################################################################### - - -# Symbolic link behavior ###################################################### -# -# If this setting is set to "yes", MPD will discover audio files by following -# symbolic links outside of the configured music_directory. -# -follow_outside_symlinks "yes" -# -# If this setting is set to "yes", MPD will discover audio files by following -# symbolic links inside of the configured music_directory. -# -follow_inside_symlinks "yes" -# -############################################################################### - - -# Zeroconf / Avahi Service Discovery ########################################## -# -# If this setting is set to "yes", service information will be published with -# Zeroconf / Avahi. -# -#zeroconf_enabled "yes" -# -# The argument to this setting will be the Zeroconf / Avahi unique name for -# this MPD server on the network. -# -#zeroconf_name "Music Player" -# -############################################################################### - - -# Permissions ################################################################# -# -# If this setting is set, MPD will require password authorization. The password -# can setting can be specified multiple times for different password profiles. -# -#password "password@read,add,control,admin" -# -# This setting specifies the permissions a user has who has not yet logged in. -# -#default_permissions "read,add,control,admin" -# -############################################################################### - - -# Input ####################################################################### -# - -input { - plugin "curl" -# proxy "proxy.isp.com:8080" -# proxy_user "user" -# proxy_password "password" -} - -# -############################################################################### - -# Audio Output ################################################################ -# -# MPD supports various audio output types, as well as playing through multiple -# audio outputs at the same time, through multiple audio_output settings -# blocks. Setting this block is optional, though the server will only attempt -# autodetection for one sound card. -# -# See for examples of -# other audio outputs. -# -# An example of an ALSA output: -# -#audio_output { -# type "alsa" -# name "My ALSA Device" -## device "hw:0,0" # optional -## format "44100:16:2" # optional -## mixer_type "hardware" # optional -## mixer_device "default" # optional -## mixer_control "PCM" # optional -## mixer_index "0" # optional -#} -# -# An example of an OSS output: -# -#audio_output { -# type "oss" -# name "My OSS Device" -## device "/dev/dsp" # optional -## format "44100:16:2" # optional -## mixer_type "hardware" # optional -## mixer_device "/dev/mixer" # optional -## mixer_control "PCM" # optional -#} -# -# An example of a shout output (for streaming to Icecast): -# -#audio_output { -# type "shout" -# encoding "ogg" # optional -# name "My Shout Stream" -# host "localhost" -# port "8000" -# mount "/mpd.ogg" -# password "hackme" -# quality "5.0" -# bitrate "128" -# format "44100:16:1" -## protocol "icecast2" # optional -## user "source" # optional -## description "My Stream Description" # optional -## url "http://example.com" # optional -## genre "jazz" # optional -## public "no" # optional -## timeout "2" # optional -## mixer_type "software" # optional -#} -# -# An example of a recorder output: -# -#audio_output { -# type "recorder" -# name "My recorder" -# encoder "vorbis" # optional, vorbis or lame -# path "/var/lib/mpd/recorder/mpd.ogg" -## quality "5.0" # do not define if bitrate is defined -# bitrate "128" # do not define if quality is defined -# format "44100:16:1" -#} -# -# An example of a httpd output (built-in HTTP streaming server): -# -#audio_output { -# type "httpd" -# name "My HTTP Stream" -# encoder "vorbis" # optional, vorbis or lame -# port "8000" -# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 -## quality "5.0" # do not define if bitrate is defined -# bitrate "128" # do not define if quality is defined -# format "44100:16:1" -# max_clients "0" # optional 0=no limit -#} -# -# An example of a pulseaudio output (streaming to a remote pulseaudio server) -# -audio_output { - type "pulse" - name "My Pulse Output" -# server "remote_server" # optional -# sink "remote_server_sink" # optional -} -# -# An example of a winmm output (Windows multimedia API). -# -#audio_output { -# type "winmm" -# name "My WinMM output" -## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional -# or -## device "0" # optional -## mixer_type "hardware" # optional -#} -# -# An example of an openal output. -# -#audio_output { -# type "openal" -# name "My OpenAL output" -## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional -#} -# -## Example "pipe" output: -# -#audio_output { -# type "pipe" -# name "my pipe" -# command "aplay -f cd 2>/dev/null" -## Or if you're want to use AudioCompress -# command "AudioCompress -m | aplay -f cd 2>/dev/null" -## Or to send raw PCM stream through PCM: -# command "nc example.org 8765" -# format "44100:16:2" -#} -# -## An example of a null output (for no audio output): -# -#audio_output { -# type "null" -# name "My Null Output" -# mixer_type "none" # optional -#} -# -# This setting will change all decoded audio to be converted to the specified -# format before being passed to the audio outputs. By default, this setting is -# disabled. -# -#audio_output_format "44100:16:2" -# -# If MPD has been compiled with libsamplerate support, this setting specifies -# the sample rate converter to use. Possible values can be found in the -# mpd.conf man page or the libsamplerate documentation. By default, this is -# setting is disabled. -# -#samplerate_converter "Fastest Sinc Interpolator" -# -############################################################################### - - -# Normalization automatic volume adjustments ################################## -# -# This setting specifies the type of ReplayGain to use. This setting can have -# the argument "off", "album", "track" or "auto". "auto" is a special mode that -# chooses between "track" and "album" depending on the current state of -# random playback. If random playback is enabled then "track" mode is used. -# See for more details about ReplayGain. -# This setting is off by default. -# -replaygain "auto" -# -# This setting sets the pre-amp used for files that have ReplayGain tags. By -# default this setting is disabled. -# -#replaygain_preamp "0" -# -# This setting sets the pre-amp used for files that do NOT have ReplayGain tags. -# By default this setting is disabled. -# -#replaygain_missing_preamp "0" -# -# This setting enables or disables ReplayGain limiting. -# MPD calculates actual amplification based on the ReplayGain tags -# and replaygain_preamp / replaygain_missing_preamp setting. -# If replaygain_limit is enabled MPD will never amplify audio signal -# above its original level. If replaygain_limit is disabled such amplification -# might occur. By default this setting is enabled. -# -#replaygain_limit "yes" -# -# This setting enables on-the-fly normalization volume adjustment. This will -# result in the volume of all playing audio to be adjusted so the output has -# equal "loudness". This setting is disabled by default. -# -#volume_normalization "no" -# -############################################################################### - - -# MPD Internal Buffering ###################################################### -# -# This setting adjusts the size of internal decoded audio buffering. Changing -# this may have undesired effects. Don't change this if you don't know what you -# are doing. -# -#audio_buffer_size "2048" -# -# This setting controls the percentage of the buffer which is filled before -# beginning to play. Increasing this reduces the chance of audio file skipping, -# at the cost of increased time prior to audio playback. -# -#buffer_before_play "10%" -# -############################################################################### - - -# Resource Limitations ######################################################## -# -# These settings are various limitations to prevent MPD from using too many -# resources. Generally, these settings should be minimized to prevent security -# risks, depending on the operating resources. -# -#connection_timeout "60" -#max_connections "10" -#max_playlist_length "16384" -#max_command_list_size "2048" -#max_output_buffer_size "8192" -# -############################################################################### - -# Client TCP keep alive ####################################################### -# -# For clients connected by TCP on supported platforms. -# Allows detection of dangling connections due to clients disappearing from -# the network without closing their connections. -# -# This is not usually necessary but can be useful in cases such as wifi connectected -# clients that go in and out of network range or turn off wifi without closing their -# connections. Combined with low max_connections this can soon cause clients to not -# be able to connect. -# -# -# Enable tcp keepalive on new client connections (default is "no") -# -#tcp_keep_alive "no" -# -# Time in seconds since the last communication on the connection and before -# the keepalive probing is started. (default is 7200 seconds) -#tcp_keep_alive_idle "7200" -# -# Interval in seconds between keepalive probes, once a probe started. -# (default is 75 seconds) -#tcp_keep_alive_interval "75" -# -# Number of failed probes before the connection is pronounced dead and -# the connection is closed. (default is 9 times) -#tcp_keep_alive_count "9" -# -############################################################################### - -# Character Encoding ########################################################## -# -# If file or directory names do not display correctly for your locale then you -# may need to modify this setting. -# -filesystem_charset "UTF-8" -# -# This setting controls the encoding that ID3v1 tags should be converted from. -# -#id3v1_encoding "ISO-8859-1" -# -############################################################################### - - -# SIDPlay decoder ############################################################# -# -# songlength_database: -# Location of your songlengths file, as distributed with the HVSC. -# The sidplay plugin checks this for matching MD5 fingerprints. -# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq -# -# default_songlength: -# This is the default playing time in seconds for songs not in the -# songlength database, or in case you're not using a database. -# A value of 0 means play indefinitely. -# -# filter: -# Turns the SID filter emulation on or off. -# -#decoder { -# plugin "sidplay" -# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt" -# default_songlength "120" -# filter "true" -#} -# -############################################################################### - diff --git a/ncmpcpp/ncmpcpp/config b/ncmpcpp/ncmpcpp/config index 5764a62..2532f39 100644 --- a/ncmpcpp/ncmpcpp/config +++ b/ncmpcpp/ncmpcpp/config @@ -20,7 +20,7 @@ ncmpcpp_directory = "~/.ncmpcpp" ## (eg. ncmpc) also use that location. ## # -lyrics_directory = "~/.lyrics" +lyrics_directory = "~/music/lyrics" # ##### connection settings ##### # @@ -30,7 +30,7 @@ mpd_host = "localhost" # mpd_port = "6600" # -mpd_music_dir = "~/Musik" +mpd_music_dir = "~/music/library" # #mpd_connection_timeout = "5" # @@ -254,7 +254,7 @@ mpd_music_dir = "~/Musik" ## not available. ## # -#song_columns_list_format = "(7f)[green]{l} (25)[cyan]{A} (40)[]{t|f} (30)[red]{b}" +#song_columns_list_format = "(7f)[green]{l} (25)[cyan]{a} (40)[]{t|f} (30)[red]{b}" # ##### various settings ##### # @@ -301,7 +301,7 @@ mpd_music_dir = "~/Musik" # #user_interface = "classic" (classic/alternative) # -media_library_left_column = "A" (possible values: a,y,g,c,p, legend above) +#media_library_left_column = "a" (possible values: a,y,g,c,p, legend above) # #default_find_mode = "wrapped" (wrapped/normal) # @@ -409,7 +409,7 @@ media_library_left_column = "A" (possible values: a,y,g,c,p, legend above) # #block_search_constraints_change_if_items_found = "yes" # -mouse_support = "yes" +#mouse_support = "yes" # #mouse_list_scroll_whole_page = "yes" # @@ -437,7 +437,7 @@ mouse_support = "yes" ## in database and local one for searching in current playlist) ## # -search_engine_default_search_mode = "2" +#search_engine_default_search_mode = "1" # ## ## Note: Below variables can allow you to physically @@ -445,18 +445,17 @@ search_engine_default_search_mode = "2" ## ncmpcpp's browser screen. ## # -allow_physical_files_deletion = "no" +#allow_physical_files_deletion = "no" # -allow_physical_directories_deletion = "no" +#allow_physical_directories_deletion = "no" # -external_editor = "vim" +#external_editor = "" # -# set to yes, if your editor is console app -use_console_editor = "yes" +#use_console_editor = "no" (set to yes, if your editor is console app) # ##### colors definitions ##### # -colors_enabled = "yes" +#colors_enabled = "yes" # #empty_tag_color = "cyan" # diff --git a/setup/list b/setup/list index a387e4e..904c458 100644 --- a/setup/list +++ b/setup/list @@ -45,6 +45,7 @@ p7zip thunar thunar-archive-plugin thunar-media-tags-plugin +ranger # taskbars / docks docky conky diff --git a/x/Xresources b/x/Xresources index 370122a..059c436 100644 --- a/x/Xresources +++ b/x/Xresources @@ -17,7 +17,7 @@ URxvt.intensityStyles: false URxvt.saveLines: 10000 -URxvt.fading: 30 +URxvt.fading: 20 URxvt.termName: urxvt diff --git a/x/xinitrc b/x/xinitrc index fc9b9c1..e95703b 100755 --- a/x/xinitrc +++ b/x/xinitrc @@ -1,5 +1,18 @@ #!/bin/bash +export LOGDIR="$HOME/.var/log/" +export RUNDIR="$HOME/.var/run" + +[[ ! -d "LOGDIR" ]] && mkdir -p "$LOGDIR" + +LOGFILE="$LOGDIR/xinitrc.log" + +log() { + echo "[$(date +%FT%T)] $*" >> "$LOGFILE" +} + +log "START" + if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" @@ -21,43 +34,78 @@ keyboard_repeat_speed=30 # path and options for the wallpaper changer script path_wallchanger="$HOME/.i3/scripts/wallchanger.bash" wallpaper_directory="$HOME/pictures/wallpaper/misc" -wallpaper_logfile="$HOME/.i3/logs/wallpaper.log" +wallpaper_logfile="$LOGDIR/wallpaper.log" wallpaper_fallback="$HOME/.i3/data/wallpaper/" wallpaper_interval="900" # redshift settings redshift_lat_long="49.5:11" -redshift_colortemp="5500:3700" +redshift_colortemp="5500:4000" + +# start mpd +if [[ -z "$(pgrep --euid hannes --exact "^mpd$")" ]] ; then + log "mpd is not running, starting mpd" + mpd "$HOME/.mpd/mpd.conf" +else + log "mpd already running, will not start another instance" +fi # start the pulseaudio volume control tray applet +log "starting pasystray" pasystray & # start dropbox +log "starting dropboxd" dropboxd & # start the wallpaper changer +log "starting $path_wallchanger" $path_wallchanger "$wallpaper_directory" "$wallpaper_interval" "$wallpaper_fallback" > "$wallpaper_logfile" & # start redshift +log "starting redshift-gtk" redshift-gtk -l "$redshift_lat_long" -t "$redshift_colortemp" & # set keyboard layout +log "setting keyboard layout" setxkbmap -layout "$keyboard_layout" -variant "$keyboard_variant" & # set key repeat delay +log "setting key repeat delay" xset r rate "$keyboard_repeat_delay" "$keyboard_repeat_speed" & # execute the host-specific .xinitrc-addition hostfile="$HOME/.xinitrc.d/$(hostname).xinitrc" -[[ -f "$hostfile" ]] && bash "$hostfile" & +log "looking for host specific xinitrc addition at $hostfile" +if [[ -f "$hostfile" ]] ; then + log "found it. executing" + bash "$hostfile" & +else + log "found none" +fi -[[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources & +if [[ -f ~/.Xresources ]] ; then + log "found ~/.Xresources, merging it into xrdb" + xrdb -merge ~/.Xresources & +else + log "~/.Xresources not found" +fi -LOG="$HOME/.i3/logs/i3.log" -LOGOLD="$HOME/.i3/logs/i3.log.old" +I3_LOG="$LOGDIR/i3/i3.log" +I3_LOGOLD="${I3_LOG}.old" # simple logrotate so we can still get info about the last session -[[ -f "$LOG" ]] && mv -f "$LOG" "$LOGOLD" +if [[ -f "$I3_LOG" ]] ; then + log "moving old i3 log at $I3_LOG to $I3_LOGOLD" + mv -f "$I3_LOG" "$I3_LOGOLD" +fi + +[[ ! -d "$(dirname $I3_LOG)" ]] && mkdir -p "$(dirname $I3_LOG)" + +log "generating i3 config" + SESSION_CONF=$(bash "$HOME/.i3/scripts/genconfig.bash") -exec i3 -c "$SESSION_CONF" >> ~/.i3/logs/i3.log +log "generated, starting i3" +exec i3 -c "$SESSION_CONF" >> "$LOGDIR/i3/i3.log" +