diff options
195 files changed, 14202 insertions, 0 deletions
diff --git a/.Xmodmap b/.Xmodmap new file mode 100644 index 0000000..4cbe5e7 --- /dev/null +++ b/.Xmodmap @@ -0,0 +1,6 @@ +! map escape to caps lock +!remove Lock = Caps_Lock +clear lock +keycode 66 = Escape +!keysym Caps_Lock = Escape + diff --git a/.Xresources b/.Xresources new file mode 100644 index 0000000..7ea2fa7 --- /dev/null +++ b/.Xresources @@ -0,0 +1,142 @@ +!! * uses rxvt-unicode +!! * themed for solarized +!! * includes font settings for powerline +!! * some xscreensaver theming + +!! SOLARIZED COLORS ---------------------------------------------------- +!! http://github.com/altercation/solarized + +! black dark/light +*color0 : #073642 +*color8 : #002b36 + +! red dark/light +*color1 : #dc322f +*color9 : #cb4b16 + +! green dark/light +*color2 : #859900 +*color10 : #b3cd01 + +! yellow dark/light +*color3 : #b58900 +*color11 : #f4c32f + +! blue dark/light +*color4 : #268bd2 +*color12 : #30a6f8 + +! magenta dark/light +*color5 : #d33682 +*color13 : #6c71c4 + +! cyan dark/light +!*color6 : #2aa198 +*color6 : #00afff +*color14 : #69b3ad + +! white dark/light +*color7 : #eee8d5 +*color15 : #fdf6e3 +!! --------------------------------------------------------------------- + + +!! Xft ----------------------------------------------------------------- +Xft.antialias : true +Xft.autohint : true +Xft.hinting : true +Xft.hintstyle : hintslight +Xft.dpi : 96 +Xft.rgba : rgb +Xft.lcdfilter : lcddefault +!! --------------------------------------------------------------------- + +!! URxvt FONT ---------------------------------------------------------- +!! Monospace +URxvt*font : xft:Monaco for Monospace:regular:size=9 +URxvt*imFont : xft:Monaco for Monospace:regular:size=9 +URxvt*boldFont : xft:Monaco for Monospace:bold:size=9 +URxvt*italicFont : xft:Monaco for Monospace:italic:size=9 +URxvt*boldItalicFont : xft:Monaco for Monospace:bold:italic:size=9 + +!! URxvt COLORS--------------------------------------------------------- +URxvt*depth : 32 +URxvt.foreground : #a4b6bd +URxvt*background : [95]#000000 +URxvt.fading : 15 +URxvt.fadeColor : #121212 +URxvt.scrollBar : false +URxvt*visualBell : false + +!! URxvt HIGHLIGHTING -------------------------------------------------- +URxvt.perl-ext-common : default,matcher,vtwheel +URxvt.matcher.button : 1 +URxvt.url-launcher : firefox +URxvt.colorUL : #268bd2 + +!! BUFFER AND SCROLLING ------------------------------------------------ +URxvt.saveLines : 65536 +URxvt*scrollTtyOutput : false +URxvt*scrollWithBuffer : true +URxvt*scrollTtyKeypress : true + +!! CURSOR AND POINTER -------------------------------------------------- +URxvt.cursorBlink : false +URxvt.cursorColor : #268bd2 +URxvt.cursorColor2 : #4e4e4e +URxvt.cursorUnderline : false +URxvt.pointerColorBackground : #586e75 +URxvt.pointerColorForeground : #93a1a1 +URxvt.pointerBlank : false +!! --------------------------------------------------------------------- +URxvt.borderLess: true + +!! ICON ----------------------------------------------------------------- +URxvt.iconFile: /usr/share/icons/HighContrast/scalable/apps/utilities-terminal.svg +!! --------------------------------------------------------------------- + +!! xscreensaver FONT --------------------------------------------------- +xscreensaver.Dialog.headingFont : -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* +xscreensaver.Dialog.bodyFont : -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* +xscreensaver.Dialog.labelFont : -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* +xscreensaver.Dialog.unameFont : -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* +xscreensaver.Dialog.buttonFont : -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* +xscreensaver.Dialog.dateFont : -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* +xscreensaver.passwd.passwdFont : -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* + +!! xscreensaver DIALOG BOX --------------------------------------------- +xscreensaver.Dialog.foreground : #ffffff +xscreensaver.Dialog.background : #111111 +xscreensaver.Dialog.topShadowColor : #111111 +xscreensaver.Dialog.bottomShadowColor : #111111 +xscreensaver.Dialog.Button.foreground : #666666 +xscreensaver.Dialog.Button.background : #ffffff + +!! xscreensaver INPUT BOX ---------------------------------------------- +xscreensaver.Dialog.text.foreground : #666666 +xscreensaver.Dialog.text.background : #ffffff +xscreensaver.Dialog.internalBorderWidth : 24 +xscreensaver.Dialog.borderWidth : 20 +xscreensaver.Dialog.shadowThickness : 2 + +!! xscreensaver TIMEOUT BAR -------------------------------------------- +xscreensaver.passwd.thermometer.foreground : #ff0000 +xscreensaver.passwd.thermometer.background : #000000 +xscreensaver.passwd.thermometer.width : 8 + +!! xscreensaver DATESTAMP FORMAT --------------------------------------- +xscreensaver.dateFormat : %I:%M%P %a %b %d, %Y + +!! xscreensaver LIGHTDM COMPATIBILITY ---------------------------------- +xscreensaver.newLoginCommand : dm-tool switch-to-greeter + +!! XTERM KEY CODES +!URxvt.keysym.Control-Up : [1;5A] +!URxvt.keysym.Control-Down : [1;5B] +!URxvt.keysym.Control-Left : [1;5D] +!URxvt.keysym.Control-Right : [1;5C] +!URxvt.keysym.Control-Shift-C : perl:clipboard:copy +!URxvt.keysym.Control-Shift-V : perl:clipboard:paste +!URxvt.keysym.F1 : F1 +!URxvt.keysym.F2 : F2 + diff --git a/.amSynth.presets b/.amSynth.presets new file mode 100644 index 0000000..f852b10 --- /dev/null +++ b/.amSynth.presets @@ -0,0 +1,964 @@ +amSynth +<preset> <name> Derren 1 +<parameter> amp_attack 0.15 +<parameter> amp_decay 0.74009 +<parameter> amp_sustain 0.211222 +<parameter> amp_release 0.111362 +<parameter> osc1_waveform 1 +<parameter> filter_attack 6.95688e-09 +<parameter> filter_decay 1.1006 +<parameter> filter_sustain 0.232886 +<parameter> filter_release 0.33064 +<parameter> filter_resonance 0.917114 +<parameter> filter_env_amount 10.5934 +<parameter> filter_cutoff -0.358078 +<parameter> osc2_detune 0 +<parameter> osc2_waveform 1 +<parameter> master_vol 0.5229 +<parameter> lfo_freq 0.808204 +<parameter> lfo_waveform 0 +<parameter> osc2_range -1 +<parameter> osc_mix 0.20171 +<parameter> freq_mod_amount 0.251984 +<parameter> filter_mod_amount -0.228579 +<parameter> amp_mod_amount -0.416837 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.287752 +<parameter> osc2_pulsewidth 0.59915 +<parameter> reverb_roomsize 0.339957 +<parameter> reverb_damp 0.177191 +<parameter> reverb_wet 0.32997 +<parameter> reverb_width 0.979909 +<parameter> distortion_crunch 2.50448e-09 +<parameter> osc2_sync 1 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Synth Strings 1 +<parameter> amp_attack 0.960411 +<parameter> amp_decay 0.02 +<parameter> amp_sustain 1 +<parameter> amp_release 1 +<parameter> osc1_waveform 2 +<parameter> filter_attack 0.0195569 +<parameter> filter_decay 0.02 +<parameter> filter_sustain 1 +<parameter> filter_release 1.05095 +<parameter> filter_resonance 0.594336 +<parameter> filter_env_amount 0 +<parameter> filter_cutoff 0.851124 +<parameter> osc2_detune 0.011899 +<parameter> osc2_waveform 2 +<parameter> master_vol 0.955268 +<parameter> lfo_freq 2.38653 +<parameter> lfo_waveform 0 +<parameter> osc2_range 0 +<parameter> osc_mix 0.0127277 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -0.86315 +<parameter> amp_mod_amount -0.993575 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.788778 +<parameter> osc2_pulsewidth 0.83 +<parameter> reverb_roomsize 0.675502 +<parameter> reverb_damp 0.00193077 +<parameter> reverb_wet 0.0824253 +<parameter> reverb_width 0.477634 +<parameter> distortion_crunch 2.50448e-09 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Violin 1 +<parameter> amp_attack 0.391711 +<parameter> amp_decay 0.11 +<parameter> amp_sustain 0.85 +<parameter> amp_release 0.15 +<parameter> osc1_waveform 2 +<parameter> filter_attack 0.511366 +<parameter> filter_decay 0.02 +<parameter> filter_sustain 0.707847 +<parameter> filter_release 0.3 +<parameter> filter_resonance 0.530301 +<parameter> filter_env_amount 8.63406 +<parameter> filter_cutoff 0.736762 +<parameter> osc2_detune 6.70552e-07 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 2.25779 +<parameter> lfo_waveform 0 +<parameter> osc2_range 1 +<parameter> osc_mix -0.277557 +<parameter> freq_mod_amount 0.207631 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.954063 +<parameter> osc2_pulsewidth 0.682296 +<parameter> reverb_roomsize 0 +<parameter> reverb_damp 0 +<parameter> reverb_wet 0 +<parameter> reverb_width 0 +<parameter> distortion_crunch 1.49012e-08 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Sweet Bass +<parameter> amp_attack 0.0591818 +<parameter> amp_decay 0.350065 +<parameter> amp_sustain 0.5 +<parameter> amp_release 0.868007 +<parameter> osc1_waveform 2 +<parameter> filter_attack 0 +<parameter> filter_decay 1.36265 +<parameter> filter_sustain 2.78275e-09 +<parameter> filter_release 1.04671 +<parameter> filter_resonance 0.897859 +<parameter> filter_env_amount 16 +<parameter> filter_cutoff 0.271993 +<parameter> osc2_detune 0 +<parameter> osc2_waveform 1 +<parameter> master_vol 0.603862 +<parameter> lfo_freq 1.76685 +<parameter> lfo_waveform 1 +<parameter> osc2_range -1 +<parameter> osc_mix -0.447776 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount 0.4229 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.451552 +<parameter> osc2_pulsewidth 0.0784359 +<parameter> reverb_roomsize 0.62 +<parameter> reverb_damp 0.571492 +<parameter> reverb_wet 0.5 +<parameter> reverb_width 0.994642 +<parameter> distortion_crunch 0.02 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Formant Synth Lead +<parameter> amp_attack 0.465953 +<parameter> amp_decay 0.282384 +<parameter> amp_sustain 2.78275e-09 +<parameter> amp_release 0.322351 +<parameter> osc1_waveform 2 +<parameter> filter_attack 0.383031 +<parameter> filter_decay 1.33222 +<parameter> filter_sustain 2.78275e-09 +<parameter> filter_release 1.0589 +<parameter> filter_resonance 0.893929 +<parameter> filter_env_amount 16 +<parameter> filter_cutoff -0.265736 +<parameter> osc2_detune 0.0615489 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 0.864093 +<parameter> lfo_waveform 2 +<parameter> osc2_range 1 +<parameter> osc_mix 0 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -0.46097 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 1 +<parameter> osc2_pulsewidth 1 +<parameter> reverb_roomsize 0.741581 +<parameter> reverb_damp 0.557009 +<parameter> reverb_wet 0.078985 +<parameter> reverb_width 1 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 1 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Caves +<parameter> amp_attack 1.67792 +<parameter> amp_decay 0.25158 +<parameter> amp_sustain 0.930628 +<parameter> amp_release 2.13689 +<parameter> osc1_waveform 2 +<parameter> filter_attack 1.20148 +<parameter> filter_decay 1.88466 +<parameter> filter_sustain 0.629477 +<parameter> filter_release 0.743643 +<parameter> filter_resonance 0.522167 +<parameter> filter_env_amount 8.74291 +<parameter> filter_cutoff 0.894262 +<parameter> osc2_detune 0.273525 +<parameter> osc2_waveform 4 +<parameter> master_vol 1 +<parameter> lfo_freq 7.41958 +<parameter> lfo_waveform 4 +<parameter> osc2_range 0 +<parameter> osc_mix -0.238359 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount 0.932784 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.63605 +<parameter> osc2_pulsewidth 0.694407 +<parameter> reverb_roomsize 0.943169 +<parameter> reverb_damp 0.767595 +<parameter> reverb_wet 0.566246 +<parameter> reverb_width 0.689255 +<parameter> distortion_crunch 0.619883 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Xylophone +<parameter> amp_attack 0 +<parameter> amp_decay 0.529803 +<parameter> amp_sustain 2.78275e-09 +<parameter> amp_release 0.52916 +<parameter> osc1_waveform 0 +<parameter> filter_attack 0 +<parameter> filter_decay 0.536456 +<parameter> filter_sustain 2.78275e-09 +<parameter> filter_release 0.53 +<parameter> filter_resonance 2.78275e-09 +<parameter> filter_env_amount 9.23726 +<parameter> filter_cutoff -0.353677 +<parameter> osc2_detune 0 +<parameter> osc2_waveform 0 +<parameter> master_vol 1 +<parameter> lfo_freq 0 +<parameter> lfo_waveform 0 +<parameter> osc2_range 2 +<parameter> osc_mix 1 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.469297 +<parameter> osc2_pulsewidth 0.531541 +<parameter> reverb_roomsize 0.0457566 +<parameter> reverb_damp 0.150639 +<parameter> reverb_wet 0.179853 +<parameter> reverb_width 0.951605 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Electric Organ 1 +<parameter> amp_attack 0.17 +<parameter> amp_decay 0 +<parameter> amp_sustain 1 +<parameter> amp_release 0.17 +<parameter> osc1_waveform 1 +<parameter> filter_attack 0 +<parameter> filter_decay 0 +<parameter> filter_sustain 1 +<parameter> filter_release 0 +<parameter> filter_resonance 0.464052 +<parameter> filter_env_amount 0 +<parameter> filter_cutoff 0.324272 +<parameter> osc2_detune 0.01 +<parameter> osc2_waveform 0 +<parameter> master_vol 0.92 +<parameter> lfo_freq 1.0773 +<parameter> lfo_waveform 2 +<parameter> osc2_range 0 +<parameter> osc_mix 0.0246093 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -0.874988 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 2.78275e-09 +<parameter> osc2_pulsewidth 0 +<parameter> reverb_roomsize 0.660043 +<parameter> reverb_damp 0 +<parameter> reverb_wet 0.0205412 +<parameter> reverb_width 0.991763 +<parameter> distortion_crunch 1.49012e-08 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Church Organ +<parameter> amp_attack 0.17 +<parameter> amp_decay 0 +<parameter> amp_sustain 1 +<parameter> amp_release 0.17 +<parameter> osc1_waveform 1 +<parameter> filter_attack 0 +<parameter> filter_decay 0 +<parameter> filter_sustain 1 +<parameter> filter_release 0 +<parameter> filter_resonance 0.427329 +<parameter> filter_env_amount 0 +<parameter> filter_cutoff 0.603278 +<parameter> osc2_detune 0.04 +<parameter> osc2_waveform 0 +<parameter> master_vol 0.546404 +<parameter> lfo_freq 1.04254 +<parameter> lfo_waveform 2 +<parameter> osc2_range -1 +<parameter> osc_mix 0.0246093 +<parameter> freq_mod_amount 0.01 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -0.764157 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.785879 +<parameter> osc2_pulsewidth 0 +<parameter> reverb_roomsize 0.785879 +<parameter> reverb_damp 1 +<parameter> reverb_wet 0.115122 +<parameter> reverb_width 0.972108 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Reed Organ +<parameter> amp_attack 0.17 +<parameter> amp_decay 0 +<parameter> amp_sustain 1 +<parameter> amp_release 0.17 +<parameter> osc1_waveform 1 +<parameter> filter_attack 0 +<parameter> filter_decay 0 +<parameter> filter_sustain 1 +<parameter> filter_release 0 +<parameter> filter_resonance 0.763715 +<parameter> filter_env_amount 0 +<parameter> filter_cutoff 0.706986 +<parameter> osc2_detune 0.04 +<parameter> osc2_waveform 0 +<parameter> master_vol 0.546404 +<parameter> lfo_freq 1.04254 +<parameter> lfo_waveform 2 +<parameter> osc2_range -1 +<parameter> osc_mix 0.0246093 +<parameter> freq_mod_amount 0.01 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -0.764157 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.785879 +<parameter> osc2_pulsewidth 0 +<parameter> reverb_roomsize 0.785879 +<parameter> reverb_damp 1 +<parameter> reverb_wet 0.115122 +<parameter> reverb_width 0.972108 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Sexy Boy +<parameter> amp_attack 0.01 +<parameter> amp_decay 1.92115 +<parameter> amp_sustain 2.78275e-09 +<parameter> amp_release 0.39645 +<parameter> osc1_waveform 2 +<parameter> filter_attack 6.95688e-09 +<parameter> filter_decay 1.94992 +<parameter> filter_sustain 2.78275e-09 +<parameter> filter_release 0.964041 +<parameter> filter_resonance 0.878329 +<parameter> filter_env_amount 16 +<parameter> filter_cutoff -0.329533 +<parameter> osc2_detune 0 +<parameter> osc2_waveform 1 +<parameter> master_vol 0.54167 +<parameter> lfo_freq 1.7625 +<parameter> lfo_waveform 1 +<parameter> osc2_range -1 +<parameter> osc_mix -0.447776 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.451552 +<parameter> osc2_pulsewidth 0.0784359 +<parameter> reverb_roomsize 0.628866 +<parameter> reverb_damp 0.35 +<parameter> reverb_wet 0.343417 +<parameter> reverb_width 1 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Flangey Bass 1 +<parameter> amp_attack 0.148853 +<parameter> amp_decay 0.918287 +<parameter> amp_sustain 0.610371 +<parameter> amp_release 0.313828 +<parameter> osc1_waveform 1 +<parameter> filter_attack 0.536656 +<parameter> filter_decay 0.811711 +<parameter> filter_sustain 2.78275e-09 +<parameter> filter_release 0.51 +<parameter> filter_resonance 0.814662 +<parameter> filter_env_amount 16 +<parameter> filter_cutoff 0.420799 +<parameter> osc2_detune 0.0500005 +<parameter> osc2_waveform 1 +<parameter> master_vol 1 +<parameter> lfo_freq 2.08707e-08 +<parameter> lfo_waveform 0 +<parameter> osc2_range 0 +<parameter> osc_mix 0.109264 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0 +<parameter> osc2_pulsewidth 0 +<parameter> reverb_roomsize 0.857009 +<parameter> reverb_damp 0.919699 +<parameter> reverb_wet 0.11453 +<parameter> reverb_width 0.980541 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> My Friend +<parameter> amp_attack 0.17 +<parameter> amp_decay 0 +<parameter> amp_sustain 1 +<parameter> amp_release 0.412571 +<parameter> osc1_waveform 1 +<parameter> filter_attack 0 +<parameter> filter_decay 0 +<parameter> filter_sustain 1 +<parameter> filter_release 0 +<parameter> filter_resonance 0.544135 +<parameter> filter_env_amount 0 +<parameter> filter_cutoff 0.440235 +<parameter> osc2_detune -0.00763828 +<parameter> osc2_waveform 2 +<parameter> master_vol 0.504732 +<parameter> lfo_freq 1.0773 +<parameter> lfo_waveform 2 +<parameter> osc2_range 0 +<parameter> osc_mix 0.752224 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -0.874988 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.93233 +<parameter> osc2_pulsewidth 2.78275e-09 +<parameter> reverb_roomsize 0.660043 +<parameter> reverb_damp 0 +<parameter> reverb_wet 0.0166401 +<parameter> reverb_width 0.991763 +<parameter> distortion_crunch 2.50448e-09 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Lazy Moon Lead +<parameter> amp_attack 0 +<parameter> amp_decay 0.64 +<parameter> amp_sustain 0.944545 +<parameter> amp_release 0.58 +<parameter> osc1_waveform 2 +<parameter> filter_attack 0.19 +<parameter> filter_decay 0.721678 +<parameter> filter_sustain 2.78275e-09 +<parameter> filter_release 0.493298 +<parameter> filter_resonance 0.61918 +<parameter> filter_env_amount 11.6103 +<parameter> filter_cutoff 0.386277 +<parameter> osc2_detune 0 +<parameter> osc2_waveform 2 +<parameter> master_vol 0.421929 +<parameter> lfo_freq 2.08707e-08 +<parameter> lfo_waveform 2 +<parameter> osc2_range 0 +<parameter> osc_mix 0.0784552 +<parameter> freq_mod_amount 3.50605e-09 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.95 +<parameter> osc2_pulsewidth 0.913866 +<parameter> reverb_roomsize 0.511921 +<parameter> reverb_damp 0 +<parameter> reverb_wet 2.78275e-09 +<parameter> reverb_width 0 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> BubbleBath +<parameter> amp_attack 0.594498 +<parameter> amp_decay 0.377137 +<parameter> amp_sustain 2.78275e-09 +<parameter> amp_release 0.423647 +<parameter> osc1_waveform 2 +<parameter> filter_attack 0.621376 +<parameter> filter_decay 6.95688e-09 +<parameter> filter_sustain 1 +<parameter> filter_release 0.425709 +<parameter> filter_resonance 0.935028 +<parameter> filter_env_amount 16 +<parameter> filter_cutoff -0.2 +<parameter> osc2_detune 0.01 +<parameter> osc2_waveform 1 +<parameter> master_vol 0.470001 +<parameter> lfo_freq 0 +<parameter> lfo_waveform 0 +<parameter> osc2_range 0 +<parameter> osc_mix -0.103494 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 1 +<parameter> osc2_pulsewidth 0.947062 +<parameter> reverb_roomsize 0.618459 +<parameter> reverb_damp 0 +<parameter> reverb_wet 0.214121 +<parameter> reverb_width 1 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Cosmonic +<parameter> amp_attack 1.18408 +<parameter> amp_decay 0.840999 +<parameter> amp_sustain 0.139107 +<parameter> amp_release 1.05476 +<parameter> osc1_waveform 4 +<parameter> filter_attack 1.24032 +<parameter> filter_decay 0.767937 +<parameter> filter_sustain 0.0471062 +<parameter> filter_release 0.883595 +<parameter> filter_resonance 0.636697 +<parameter> filter_env_amount 3.66455 +<parameter> filter_cutoff 0.639928 +<parameter> osc2_detune -0.513336 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 4.61906 +<parameter> lfo_waveform 0 +<parameter> osc2_range 2 +<parameter> osc_mix 0.770227 +<parameter> freq_mod_amount 1.07907 +<parameter> filter_mod_amount 0.996136 +<parameter> amp_mod_amount -0.967442 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.442048 +<parameter> osc2_pulsewidth 0.729531 +<parameter> reverb_roomsize 0.106133 +<parameter> reverb_damp 0.532089 +<parameter> reverb_wet 0.436212 +<parameter> reverb_width 0.00140755 +<parameter> distortion_crunch 0.387434 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Cosmonic 2 +<parameter> amp_attack 1.18408 +<parameter> amp_decay 0.840999 +<parameter> amp_sustain 0.139107 +<parameter> amp_release 1.05476 +<parameter> osc1_waveform 4 +<parameter> filter_attack 1.24032 +<parameter> filter_decay 0.767937 +<parameter> filter_sustain 0.0471062 +<parameter> filter_release 0.883595 +<parameter> filter_resonance 0.604765 +<parameter> filter_env_amount 6.5832 +<parameter> filter_cutoff 0.639928 +<parameter> osc2_detune 0.9 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 5.84977 +<parameter> lfo_waveform 0 +<parameter> osc2_range 2 +<parameter> osc_mix 0.6 +<parameter> freq_mod_amount 1.13501 +<parameter> filter_mod_amount 0.996136 +<parameter> amp_mod_amount 0.918175 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.4352 +<parameter> osc2_pulsewidth 0.628866 +<parameter> reverb_roomsize 0.106133 +<parameter> reverb_damp 0.532089 +<parameter> reverb_wet 0.754765 +<parameter> reverb_width 0.554632 +<parameter> distortion_crunch 0.366566 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Deeck +<parameter> amp_attack 0.252126 +<parameter> amp_decay 0.934375 +<parameter> amp_sustain 0.467114 +<parameter> amp_release 0 +<parameter> osc1_waveform 0 +<parameter> filter_attack 0.616969 +<parameter> filter_decay 1.30008 +<parameter> filter_sustain 0.574163 +<parameter> filter_release 0.25626 +<parameter> filter_resonance 0.877329 +<parameter> filter_env_amount 11.6666 +<parameter> filter_cutoff -0.310832 +<parameter> osc2_detune -0.584729 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 0.474773 +<parameter> lfo_waveform 0 +<parameter> osc2_range 1 +<parameter> osc_mix 0 +<parameter> freq_mod_amount 0.121945 +<parameter> filter_mod_amount 0.106303 +<parameter> amp_mod_amount -0.0200853 +<parameter> osc_mix_mode 1 +<parameter> osc1_pulsewidth 0.181575 +<parameter> osc2_pulsewidth 0.863419 +<parameter> reverb_roomsize 0.850228 +<parameter> reverb_damp 0.783434 +<parameter> reverb_wet 0.244986 +<parameter> reverb_width 0.343841 +<parameter> distortion_crunch 0.153213 +<parameter> osc2_sync 1 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Encounter +<parameter> amp_attack 0.158258 +<parameter> amp_decay 0.693322 +<parameter> amp_sustain 0.186849 +<parameter> amp_release 0.918287 +<parameter> osc1_waveform 1 +<parameter> filter_attack 1.20859 +<parameter> filter_decay 1.14779 +<parameter> filter_sustain 0.442991 +<parameter> filter_release 1.30938 +<parameter> filter_resonance 0.145799 +<parameter> filter_env_amount 9.4168 +<parameter> filter_cutoff 0.237552 +<parameter> osc2_detune 0.0131663 +<parameter> osc2_waveform 0 +<parameter> master_vol 1 +<parameter> lfo_freq 2.27409 +<parameter> lfo_waveform 2 +<parameter> osc2_range 0 +<parameter> osc_mix 0 +<parameter> freq_mod_amount 0.0896232 +<parameter> filter_mod_amount 0.13704 +<parameter> amp_mod_amount -0.5525 +<parameter> osc_mix_mode 1 +<parameter> osc1_pulsewidth 0.4729 +<parameter> osc2_pulsewidth 0.408157 +<parameter> reverb_roomsize 0.50707 +<parameter> reverb_damp 0.530301 +<parameter> reverb_wet 0.470846 +<parameter> reverb_width 0.492365 +<parameter> distortion_crunch 2.78275e-09 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Glassic +<parameter> amp_attack 0.161656 +<parameter> amp_decay 0 +<parameter> amp_sustain 1 +<parameter> amp_release 0 +<parameter> osc1_waveform 0 +<parameter> filter_attack 0.946797 +<parameter> filter_decay 0.7916 +<parameter> filter_sustain 0.58855 +<parameter> filter_release 1.01752 +<parameter> filter_resonance 0.306685 +<parameter> filter_env_amount 12.1724 +<parameter> filter_cutoff 0.795467 +<parameter> osc2_detune 0 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 0 +<parameter> lfo_waveform 0 +<parameter> osc2_range 2 +<parameter> osc_mix 0.102814 +<parameter> freq_mod_amount 0 +<parameter> filter_mod_amount -1 +<parameter> amp_mod_amount -1 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.59915 +<parameter> osc2_pulsewidth 0.341702 +<parameter> reverb_roomsize 0 +<parameter> reverb_damp 0 +<parameter> reverb_wet 0 +<parameter> reverb_width 0 +<parameter> distortion_crunch 0 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Periodic Junk +<parameter> amp_attack 1.10748 +<parameter> amp_decay 1.3855 +<parameter> amp_sustain 0.549145 +<parameter> amp_release 0.70646 +<parameter> osc1_waveform 2 +<parameter> filter_attack 1.22195 +<parameter> filter_decay 0.77421 +<parameter> filter_sustain 0.280759 +<parameter> filter_release 0.758031 +<parameter> filter_resonance 0.836285 +<parameter> filter_env_amount 1.90376 +<parameter> filter_cutoff 0.0692091 +<parameter> osc2_detune 0.3 +<parameter> osc2_waveform 0 +<parameter> master_vol 1 +<parameter> lfo_freq 2.03427 +<parameter> lfo_waveform 0 +<parameter> osc2_range -1 +<parameter> osc_mix -0.0200853 +<parameter> freq_mod_amount 0.167045 +<parameter> filter_mod_amount -0.506425 +<parameter> amp_mod_amount 0.506425 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.427329 +<parameter> osc2_pulsewidth 0.328866 +<parameter> reverb_roomsize 0.58855 +<parameter> reverb_damp 0.267416 +<parameter> reverb_wet 0.451766 +<parameter> reverb_width 0.608731 +<parameter> distortion_crunch 0.108641 +<parameter> osc2_sync 1 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Soft Simple +<parameter> amp_attack 1.15929 +<parameter> amp_decay 1.38035 +<parameter> amp_sustain 0.563645 +<parameter> amp_release 1.58834 +<parameter> osc1_waveform 1 +<parameter> filter_attack 1.20859 +<parameter> filter_decay 1.14779 +<parameter> filter_sustain 0.442991 +<parameter> filter_release 1.30938 +<parameter> filter_resonance 0.140851 +<parameter> filter_env_amount 9.05594 +<parameter> filter_cutoff 0.261013 +<parameter> osc2_detune 0.068699 +<parameter> osc2_waveform 1 +<parameter> master_vol 1 +<parameter> lfo_freq 3.8295 +<parameter> lfo_waveform 2 +<parameter> osc2_range 0 +<parameter> osc_mix 0 +<parameter> freq_mod_amount 0.120685 +<parameter> filter_mod_amount -0.65618 +<parameter> amp_mod_amount 0 +<parameter> osc_mix_mode 1 +<parameter> osc1_pulsewidth 0.519687 +<parameter> osc2_pulsewidth 0.408157 +<parameter> reverb_roomsize 0.50707 +<parameter> reverb_damp 0.530301 +<parameter> reverb_wet 0.470846 +<parameter> reverb_width 0.492365 +<parameter> distortion_crunch 0.129875 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Vibratio +<parameter> amp_attack 0.158258 +<parameter> amp_decay 0.693322 +<parameter> amp_sustain 0.186849 +<parameter> amp_release 0.918287 +<parameter> osc1_waveform 1 +<parameter> filter_attack 1.20859 +<parameter> filter_decay 1.14779 +<parameter> filter_sustain 0.442991 +<parameter> filter_release 1.30938 +<parameter> filter_resonance 0.91664 +<parameter> filter_env_amount 15.3795 +<parameter> filter_cutoff 0.237552 +<parameter> osc2_detune -0.0173503 +<parameter> osc2_waveform 0 +<parameter> master_vol 1 +<parameter> lfo_freq 0.640491 +<parameter> lfo_waveform 2 +<parameter> osc2_range 0 +<parameter> osc_mix 0.44025 +<parameter> freq_mod_amount 0.0719041 +<parameter> filter_mod_amount 0.13704 +<parameter> amp_mod_amount -0.1229 +<parameter> osc_mix_mode 1 +<parameter> osc1_pulsewidth 0.4729 +<parameter> osc2_pulsewidth 0.509088 +<parameter> reverb_roomsize 0.50707 +<parameter> reverb_damp 0.530301 +<parameter> reverb_wet 0.470846 +<parameter> reverb_width 0.492365 +<parameter> distortion_crunch 2.78275e-09 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Wave +<parameter> amp_attack 0.752137 +<parameter> amp_decay 0.898853 +<parameter> amp_sustain 0.354657 +<parameter> amp_release 1.27075 +<parameter> osc1_waveform 3 +<parameter> filter_attack 0.875 +<parameter> filter_decay 0.831713 +<parameter> filter_sustain 0.5 +<parameter> filter_release 1.81195 +<parameter> filter_resonance 0.431791 +<parameter> filter_env_amount 0.150695 +<parameter> filter_cutoff 0.581686 +<parameter> osc2_detune -0.133221 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 0.40993 +<parameter> lfo_waveform 0 +<parameter> osc2_range 2 +<parameter> osc_mix 0.358308 +<parameter> freq_mod_amount 0.273799 +<parameter> filter_mod_amount -0.15975 +<parameter> amp_mod_amount -0.320085 +<parameter> osc_mix_mode 1 +<parameter> osc1_pulsewidth 0.486381 +<parameter> osc2_pulsewidth 0.300855 +<parameter> reverb_roomsize 0.779973 +<parameter> reverb_damp 0.553151 +<parameter> reverb_wet 0.0280135 +<parameter> reverb_width 0.430614 +<parameter> distortion_crunch 0.0534721 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Artic +<parameter> amp_attack 0.576081 +<parameter> amp_decay 1.19447 +<parameter> amp_sustain 0.316166 +<parameter> amp_release 2.06007 +<parameter> osc1_waveform 0 +<parameter> filter_attack 1.2606 +<parameter> filter_decay 2.49172 +<parameter> filter_sustain 0.966529 +<parameter> filter_release 0.804126 +<parameter> filter_resonance 0.157868 +<parameter> filter_env_amount 10.5769 +<parameter> filter_cutoff -0.393938 +<parameter> osc2_detune -0.171913 +<parameter> osc2_waveform 2 +<parameter> master_vol 1 +<parameter> lfo_freq 1.3676 +<parameter> lfo_waveform 2 +<parameter> osc2_range 1 +<parameter> osc_mix 0.88311 +<parameter> freq_mod_amount 0.226119 +<parameter> filter_mod_amount -0.127432 +<parameter> amp_mod_amount 0.293271 +<parameter> osc_mix_mode 1 +<parameter> osc1_pulsewidth 0.565404 +<parameter> osc2_pulsewidth 0.39667 +<parameter> reverb_roomsize 0.995892 +<parameter> reverb_damp 0.966247 +<parameter> reverb_wet 0.388953 +<parameter> reverb_width 0.19668 +<parameter> distortion_crunch 0.0186385 +<parameter> osc2_sync 1 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +<preset> <name> Dirty Pulsating Bass +<parameter> amp_attack 0.177835 +<parameter> amp_decay 0 +<parameter> amp_sustain 1 +<parameter> amp_release 0.313499 +<parameter> osc1_waveform 1 +<parameter> filter_attack 0.9584 +<parameter> filter_decay 0 +<parameter> filter_sustain 1 +<parameter> filter_release 0.383031 +<parameter> filter_resonance 0.790223 +<parameter> filter_env_amount -0.60913 +<parameter> filter_cutoff 0.7246 +<parameter> osc2_detune -0.985579 +<parameter> osc2_waveform 1 +<parameter> master_vol 0.551537 +<parameter> lfo_freq 2.94987 +<parameter> lfo_waveform 0 +<parameter> osc2_range -1 +<parameter> osc_mix 0.342268 +<parameter> freq_mod_amount 3.50605e-09 +<parameter> filter_mod_amount -0.014684 +<parameter> amp_mod_amount 0.303265 +<parameter> osc_mix_mode 0 +<parameter> osc1_pulsewidth 0.673177 +<parameter> osc2_pulsewidth 2.78275e-09 +<parameter> reverb_roomsize 0.0544407 +<parameter> reverb_damp 0.975315 +<parameter> reverb_wet 2.78275e-09 +<parameter> reverb_width 2.78275e-09 +<parameter> distortion_crunch 0.310438 +<parameter> osc2_sync 0 +<parameter> portamento_time 0 +<parameter> keyboard_mode 0 +<parameter> osc2_pitch 0 +<parameter> filter_type 0 +<parameter> filter_slope 1 +EOF diff --git a/.amSynthrc b/.amSynthrc new file mode 100644 index 0000000..decccad --- /dev/null +++ b/.amSynthrc @@ -0,0 +1,9 @@ +midi_driver auto +oss_midi_device /dev/midi +midi_channel 0 +audio_driver auto +oss_audio_device /dev/dsp +alsa_audio_device default +sample_rate 44100 +polyphony 16 +pitch_bend_range 2 diff --git a/.arduino/preferences.txt b/.arduino/preferences.txt new file mode 100644 index 0000000..6724ae7 --- /dev/null +++ b/.arduino/preferences.txt @@ -0,0 +1,76 @@ +board=uno +browser=mozilla +build.warn_data_percentage=75 +console=true +console.auto_clear=true +console.error.file=stderr.txt +console.length=500 +console.lines=4 +console.output.file=stdout.txt +editor.antialias=false +editor.caret.blink=true +editor.divider.size=0 +editor.external=false +editor.font=Monospaced,plain,12 +editor.indent=true +editor.invalid=false +editor.keys.alternative_cut_copy_paste=true +editor.keys.home_and_end_travel_far=false +editor.keys.shift_backspace_is_delete=true +editor.languages.current= +editor.linenumbers=false +editor.save_on_verify=true +editor.tabs.expand=true +editor.tabs.size=2 +editor.window.height.default=600 +editor.window.height.min=290 +editor.window.width.default=500 +editor.window.width.min=400 +export.applet.separate_jar_files=false +export.application.fullscreen=false +export.application.platform=true +export.application.stop=true +export.delete_target_folder=true +last.ide.1.0.6.daterun=1411912958 +last.ide.1.0.6.hardwarepath=/usr/share/arduino/hardware +last.ide.1.6.0.daterun=1424022507 +last.ide.1.6.0.hardwarepath=/usr/share/arduino/hardware +last.screen.height=1200 +last.screen.width=1920 +last.sketch.count=0 +last.sketch0.path= +launcher=xdg-open +platform.auto_file_type_associations=true +preproc.color_datatype=true +preproc.enhanced_casting=true +preproc.imports.list=java.applet.*,java.awt.Dimension,java.awt.Frame,java.awt.event.MouseEvent,java.awt.event.KeyEvent,java.awt.event.FocusEvent,java.awt.Image,java.io.*,java.net.*,java.text.*,java.util.*,java.util.zip.*,java.util.regex.* +preproc.output_parse_tree=false +preproc.save_build_files=false +preproc.substitute_floats=true +preproc.substitute_unicode=true +preproc.web_colors=true +programmer=arduino:avrispmkii +run.display=1 +run.options= +run.options.memory=false +run.options.memory.initial=64 +run.options.memory.maximum=256 +run.present.bgcolor=#666666 +run.present.exclusive=false +run.present.stop.color=#cccccc +run.window.bgcolor=#DFDFDF +serial.databits=8 +serial.debug_rate=9600 +serial.parity=N +serial.port=COM1 +serial.stopbits=1 +sketchbook.path=/home/dave/git/sketchbooks/arduino-sketchbook +software=ARDUINO +target=arduino +target_package=arduino +target_platform=avr +update.check=true +update.id=-5111801774645063504 +update.last=1424022508963 +upload.using=bootloader +upload.verify=true diff --git a/.arduino15 b/.arduino15 new file mode 120000 index 0000000..0fbb8ea --- /dev/null +++ b/.arduino15 @@ -0,0 +1 @@ +.arduino
\ No newline at end of file diff --git a/.bashburnrc b/.bashburnrc new file mode 100644 index 0000000..4a3ea24 --- /dev/null +++ b/.bashburnrc @@ -0,0 +1,39 @@ +VERSION: 3.1.0 +BBCDWRITER: <Change me> +BBCDROM: <Change me> +BBCDMNT: <Change me> +BBSPEED: -1 +BBBLANKING: fast +BBNUMDEV: 1 +BBBURNDIR: /tmp/burn +BBLABEL: BashBurn CD/DVD +BBDESCRIPTION: Burnt with BashBurn +BBAUTHOR: David Runge +BBNORMALIZE: no +BBDRIVEROPT: +BBFIFODIR: /tmp +BBDELTEMPBURN: no +BBOVERBURN: no +BBBITRATE: 192 +BBLANG: English +BBISCONF: 0 +BBDTAO: -tao +BBPADDING: -pad +BBCONFFILE: /home/dave/.bashburnrc +BB_CDBURNCMD: cdrecord +BB_DVDBURNCMD: growisofs +BB_DVDBURNCMDOPTS: -r -f -v -J -joliet-long +BB_ISOCMD: mkisofs +BB_DVDBLANK: dvd+rw-format +BB_CDIMAGECMD: cdrdao +BB_CDAUDIORIP: cdparanoia +BB_READ_OPTS: -r -R -J -l --allow-leading-dots +BB_READCD: mkisofs +BB_MP3ENC: lame +BB_MP3DEC: mpg123 +BB_OGGENC: oggenc +BB_OGGDEC: oggdec +BB_FLACCMD: flac +BB_EJECT: eject +BB_NORMCMD: normalize +BB_NRG2ISO: nrg2iso diff --git a/.baudline/baudline_rc b/.baudline/baudline_rc new file mode 100644 index 0000000..81eab48 --- /dev/null +++ b/.baudline/baudline_rc @@ -0,0 +1,93 @@ +pause +memory 42 +fftsize 2048 +slidesize 384 +samplerate 44100.000000 +inchannels 1 +outchannels 2 +spectrum_w_divisions 108 +Hz_reduction 1 +average.geometry 1920x410-1-1 +average.zoom 1x1+0+0 +histogram.geometry 512x256-1-1 +histogram.zoom 7x1+0+0 +spectro.geometry 1024x1031+0+24 +spectro.zoom 1x1+0+0 +waveform.geometry 1920x180-1-1 +waveform.zoom 1x1+302784+0 +inputdevices.geometry +0+0 +playdeck.lpf 768 +playdeck.hpf 256 +file.open.lines 15 +file.open.option_value 0 +file.save.lines 15 +file.average.lines 15 +file.equalization.lines 15 +average.timer 0 +average.last_bank 11 +average.duration 60 +coloraperture.upper 0 +coloraperture.lower -136 +driftintegrator.beamslices 0 +driftintegrator.driftrate 0 +driftintegrator.increment 1000 +driftintegrator.optimumoverlap 1 +driftintegrator.limiter 1000 +driftintegrator.paste_algorithm 0 +driftintegrator.auto_drift_quality 1 +equalization.type 0 +equalization.alpha 100 +equalization.level 0 +histogram.decay 0 +measurements.bin_start 0 +measurements.bin_end 32768 +windowing.type 5 +windowing.beta 600 +color.mono 4 +color.left 1 +color.right 3 +color.r 0 +color.g 1 +color.b 2 +color.0.0.0 0 +color.0.0.1 0 +color.0.0.2 0 +color.0.1.0 512 +color.0.1.1 512 +color.0.1.2 512 +color.0.ops 0 +color.0.map 0 +color.0.palette 9 +color.1.0.0 80 +color.1.0.1 0 +color.1.0.2 -40 +color.1.1.0 512 +color.1.1.1 340 +color.1.1.2 512 +color.1.ops 0 +color.1.map 0 +color.1.palette 0 +color.2.0.0 75 +color.2.0.1 96 +color.2.0.2 42 +color.2.1.0 366 +color.2.1.1 255 +color.2.1.2 499 +color.2.ops 8 +color.2.map 5 +color.2.palette 5 +tone.f.type 1 +tone.f.main_frequency 72000 +tone.f.lower_frequency 20000 +tone.f.upper_frequency 90000 +tone.m.type 0 +tone.m.f.type 1 +tone.m.f.frequency 372 +tone.m.amplitude_depth 90 +tone.m.pulse_duration 100 +tone.m.sweep_duration 1000 +tone.m.positive_phase 1 +tone.m.up_direction 1 +tone.m.exponential_sweep 0 +tone.dual_channel_mode 2 +tone.digital_gain_dB -20 diff --git a/.config/SuperCollider/sc_ide_conf.yaml b/.config/SuperCollider/sc_ide_conf.yaml new file mode 100644 index 0000000..b15ee2b --- /dev/null +++ b/.config/SuperCollider/sc_ide_conf.yaml @@ -0,0 +1,79 @@ +IDE: + editor: + blinkDuration: 600 + colors: + evaluatedCode: !textFormat + color: "#000000" + background: "#f8a200" + lineNumbers: !textFormat + {} + matchingBrackets: !textFormat + color: "#ff0000" + bold: true + mismatchedBrackets: !textFormat + color: "#ffffff" + background: "#960000" + searchResult: !textFormat + color: "#7a7a7a" + background: "#36475a" + selection: !textFormat + {} + text: !textFormat + {} + font: + antialias: 2 + family: DejaVu Sans Mono + size: 10 + highlighting: + built-in: !textFormat + color: "#3333bf" + char: !textFormat + color: "#007300" + class: !textFormat + color: "#0000d2" + comment: !textFormat + color: "#bf0000" + env-var: !textFormat + color: "#8c4614" + keyword: !textFormat + color: "#0000e6" + bold: true + number: !textFormat + color: "#980099" + primitive: !textFormat + color: "#3333bf" + string: !textFormat + color: "#5f5f5f" + symbol: !textFormat + color: "#007300" + indentWidth: 4 + lineWrap: true + spaceIndent: false + stepForwardEvaluation: false + interpreter: + autoStart: true + runtimeDir: "" + mainWindow: + detached: !QVariantMap + documents-dock: "" + help-dock: "" + post-dock: "" + geometry: AdnQywABAAAAAAAAAAAAAAAABP8AAAMIAAAAAAAAAC0AAAN/AAADTAAAAAACAA== + state: AAAA/wAAAAD9AAAAAgAAAAAAAAAAAAAAAPwCAAAAAfsAAAAcAGQAbwBjAHUAbQBlAG4AdABzAC0AZABvAGMAawAAAAAA/////wAAAGMA////AAAAAQAAAlsAAAK//AIAAAAC+wAAABIAaABlAGwAcAAtAGQAbwBjAGsBAAAAFQAAAhIAAABMAP////sAAAASAHAAbwBzAHQALQBkAG8AYwBrAQAAAigAAACsAAAATAD///8AAAKkAAACvwAAAAEAAAACAAAAAQAAAAL8AAAAAA== + postWindow: + lineWrap: false + scrollback: 1000 + recentDocuments: !QVariantList + - /home/dave/.config/SuperCollider/startup.scd + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/scoreTick.scd + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/scoreTest.scd + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/HabitSynth.sc + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/HabitScheduler.sc + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/habits + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/habit.scd + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/Habit.sc + - /home/dave/Dropbox/tu-berlin/courses/SE Time and space perceptions in sound installations/habits/HabitTimer.sc + shortcuts: + editor-document-next: Alt+K + editor-document-previous: Alt+J + startWithSession: last
\ No newline at end of file diff --git a/.config/SuperCollider/sclang_conf.yaml b/.config/SuperCollider/sclang_conf.yaml new file mode 100644 index 0000000..dcf7a25 --- /dev/null +++ b/.config/SuperCollider/sclang_conf.yaml @@ -0,0 +1,5 @@ +includePaths: + [] +excludePaths: + [] +postInlineWarnings: false
\ No newline at end of file diff --git a/.config/SuperCollider/startupfiles/electronicStudio.scd b/.config/SuperCollider/startupfiles/electronicStudio.scd new file mode 100644 index 0000000..b37b732 --- /dev/null +++ b/.config/SuperCollider/startupfiles/electronicStudio.scd @@ -0,0 +1,49 @@ +//Server.local.options.numOutputBusChannels = 12; // change number of input and output channels +Server.local.options.numOutputBusChannels = 8; // change number of input and output channels +Server.local.options.numInputBusChannels = 0;//8; +//Server.local.options.blockSize = 128; //256; // increase block size (default is 64) +Server.local.options.sampleRate = 41000; //96000; // increase sampling rate (if your hardware supports it) +Server.local.options.memSize = 6291456;//2097152; // 1048576; +Server.local.options.maxNodes = 65536; +//Server.local.options.maxSynthDefs = 16384; + +// hook up jack ports to audio channels +//"SC_JACK_DEFAULT_INPUTS".setenv( +//"rme_fireface:adat-01-in, +// rme_fireface:adat-02-in, +// rme_fireface:adat-03-in, +// rme_fireface:adat-04-in, +// rme_fireface:adat-05-in, +// rme_fireface:adat-06-in, +// rme_fireface:adat-07-in, +// rme_fireface:adat-08-in, +// rme_fireface:adat-09-in, +// rme_fireface:adat-10-in, +// rme_fireface:adat-11-in, +// rme_fireface:adat-12-in, +// rme_fireface:adat-13-in, +// rme_fireface:adat-14-in, +// rme_fireface:adat-15-in, +// rme_fireface:adat-16-in" +//); +//"SC_JACK_DEFAULT_OUTPUTS".setenv( +//"system" +//"firewire_pcm:0000a350026756bfa_pbk_analog-1_out" +//"rme_fireface:adat-01-out" +//"rme_fireface:adat-01-out, +// rme_fireface:adat-02-out, +// rme_fireface:adat-03-out, +// rme_fireface:adat-04-out, +// rme_fireface:adat-05-out, +// rme_fireface:adat-06-out, +// rme_fireface:adat-07-out, +// rme_fireface:adat-08-out, +// rme_fireface:adat-09-out, +// rme_fireface:adat-10-out, +// rme_fireface:adat-11-out, +// rme_fireface:adat-12-out, +// rme_fireface:adat-13-out, +// rme_fireface:adat-14-out, +// rme_fireface:adat-15-out, +// rme_fireface:adat-16-out" +//); diff --git a/.config/SuperCollider/startupfiles/shared.scd b/.config/SuperCollider/startupfiles/shared.scd new file mode 100644 index 0000000..6f6cfc3 --- /dev/null +++ b/.config/SuperCollider/startupfiles/shared.scd @@ -0,0 +1,5 @@ +// change the standard archive path to a custom one: +"Applying shared system settings.".postln; +MP3.lamepath = "/usr/bin/lame"; +MP3.oggdecpath = "/usr/bin/oggdec"; +Archive.archiveDir = "~/Dropbox/software/SuperCollider".standardizePath; diff --git a/.config/SuperCollider/startupfiles/startupMotu.scd b/.config/SuperCollider/startupfiles/startupMotu.scd new file mode 100644 index 0000000..c3626f7 --- /dev/null +++ b/.config/SuperCollider/startupfiles/startupMotu.scd @@ -0,0 +1,14 @@ +Server.local.options.numOutputBusChannels = 8; // change number of input and output channels +Server.local.options.numInputBusChannels = 0;//8; +//Server.local.options.device = "MOTU Traveler"; +//Server.local.options.device = "firewire_pcm"; +//Server.local.options.device = nil; // use the system default soundcard +Server.local.options.blockSize = 128; //256; // increase block size (default is 64) +Server.local.options.sampleRate = 48000; //96000; // increase sampling rate (if your hardware supports it) +Server.local.options.memSize = 6291456;//2097152; // 1048576; +//Server.local.options.maxNodes = 65536; +//Server.local.options.maxSynthDefs = 16384; + +// hook up jack ports to audio channels +"SC_JACK_DEFAULT_INPUTS".setenv("firewire_pcm:dev0_cap_Analog1_in,firewire_pcm:dev0_cap_Analog2_in,firewire_pcm:dev0_cap_Analog3_in,firewire_pcm:dev0_cap_Analog4_in,firewire_pcm:dev0_cap_Analog5_in,firewire_pcm:dev0_cap_Analog6_in,firewire_pcm:dev0_cap_Analog7_in,firewire_pcm:dev0_cap_Analog8_in"); +"SC_JACK_DEFAULT_OUTPUTS".setenv("firewire_pcm:dev0_pbk_Analog1_out,firewire_pcm:dev0_pbk_Analog2_out,firewire_pcm:dev0_pbk_Analog3_out,firewire_pcm:dev0_pbk_Analog4_out,firewire_pcm:dev0_pbk_Analog5_out,firewire_pcm:dev0_pbk_Analog6_out,firewire_pcm:dev0_pbk_Analog7_out,firewire_pcm:dev0_pbk_Analog8_out"); diff --git a/.config/SuperCollider/startupfiles/startupSystem.scd b/.config/SuperCollider/startupfiles/startupSystem.scd new file mode 100644 index 0000000..51c4009 --- /dev/null +++ b/.config/SuperCollider/startupfiles/startupSystem.scd @@ -0,0 +1,16 @@ +load("/home/dave/.config/SuperCollider/startupfiles/shared.scd"); +"Starting with internal system settings.".postln; +Server.local.options.sampleRate = 48000.0; +Server.local.options.blockSize = 128; +//Server.local.options.numOutputBusChannels = 4; +Server.local.options.numOutputBusChannels = 2; +Server.local.options.numInputBusChannels = 2; +Server.local.options.maxNodes = 65536; +Server.local.options.memSize = 2097152; // 1048576 +Server.local.options.maxSynthDefs = 16384; + +// hook up jack ports to audio channels +//"SC_JACK_DEFAULT_INPUTS".setenv("system:capture_1,system:capture_2"); +"SC_JACK_DEFAULT_INPUTS".setenv("system"); +//"SC_JACK_DEFAULT_OUTPUTS".setenv("system:playback_1,system:playback_2,system:playback_3,system:playback_4"); +"SC_JACK_DEFAULT_OUTPUTS".setenv("system"); diff --git a/.config/SuperCollider/startupfiles/startup_example_customize.scd b/.config/SuperCollider/startupfiles/startup_example_customize.scd new file mode 100644 index 0000000..6bd342e --- /dev/null +++ b/.config/SuperCollider/startupfiles/startup_example_customize.scd @@ -0,0 +1,98 @@ +"startup example - customising Menus.".postln; + + // choose which server to use, + // e.g. for teaching, take internal, so scope works +Server.default = s = Server.internal; +{ try { Server.local.window.close } }.defer(0.5); + +s.options + .numAudioBusChannels_(1024) // lots of busses for JITLib + .zeroConf_(false) // don't wait for zeroconf when booting server +// .device_() // maybe set a specific device ? +// .numInputBusChannels_() // with a specific number of ins +// .numOutputBusChannels() // ... and outs - default is 8. + .memSize_(8192 * 32) // memSize is in kB, so 8 * 32 = 256 MB for soundfiles, buffers + + ; + + + // JIT preparation +q = q ? (); // make a global dictionary for everything +p = ProxySpace.push(s); // make a proxyspace and push it. +q.numChans = 8; // number of channels of audio setup + + //text editor tweaks & Library Menu +Platform.case(\osx, { + // put the post window where you prefer + Document.listener.bounds_(Rect(Window.screenBounds.width - 400, 2, 400, 300)); Document.listener.background_(Color.blue(0.2, 0.9)); // and color it. // .alwaysOnTop_(true); + Document.listener.stringColor_(Color(1, 0.62, 0)); + Document.postColor_(Document.listener.stringColor); + + + SkipJack.verbose = false; // reduce info posting + + + // put things in the Library menu: + // Custom Menu Items - OSX only - configure here + CocoaMenuItem.add(["server meter"],{ Server.default.meter }); + CocoaMenuItem.add(["server window"],{ Server.default.window }); + CocoaMenuItem.add(["scope Ins"],{ q.scope = s.scope(q.numChans, index: s.options.numOutputBusChannels, zoom: 9) }); + CocoaMenuItem.add(["scope Outs"],{ q.scope = s.scope(q.numChans, index: 0, zoom: 9) }); + CocoaMenuItem.add(["FreqScope"],{ q.fscope = FreqScope.new }); + + // an 8 chan test sound + CocoaMenuItem.add(["TestSound8"],{ + p[\zztest] = { BPF.ar(Dust.ar(5 ! q.numChans, 50), { exprand(200, 2010) } ! q.numChans, 0.05) + * GrayNoise.ar(0.1, 1) }; + p[\zztest].playN(vol: 0.25); + }); + + CocoaMenuItem.add(["places", "recordings"],{ unixCmd("open" + quote(thisProcess.platform.recordingsDir)) }); + CocoaMenuItem.add(["places", "~/scwork"],{ unixCmd("open ~/scwork") }); + CocoaMenuItem.add(["places", "supportDirs"],{ + unixCmd("open " ++ Platform.userAppSupportDir.asCompileString); + unixCmd("open " ++ Platform.systemAppSupportDir.asCompileString); + }); + CocoaMenuItem.add(["places", "extensionDirs"],{ + unixCmd("open " ++ Platform.userExtensionDir.asCompileString); + unixCmd("open " ++ Platform.systemExtensionDir.asCompileString); + }); + + CocoaMenuItem.add(["quarks", "Quarks.find"], { Window("find in Quarks folder dialog ...").front }); + CocoaMenuItem.add(["quarks", "Quarks.listInstalled"], { + var str = "/**** All currently installed quarks: ****/\n"; + Quarks.installed.do { |quark| + str = str + ("\t" ++ quark.name.asCompileString ++ ".include;\n"); + }; + Document("All currently installed quarks", str); + }); + CocoaMenuItem.add(["quarks", "Quarks.gui"], { Quarks.gui; }); + CocoaMenuItem.add(["quarks", "Quarks.update"], { Quarks.checkoutAll; }); +}); + + // now really start the server, then load setup in doWhenBooted +Task { + 0.5.wait; + s.quit; // sometimes the server must be quit first, + 1.wait; // and waiting between steps can be helpful. + // tell me the new server configuration when booting: + s.boot; // now boot. + s.sync; // wait for doWhenBooted before continuing + + 1.wait; + // do whatever else belongs to setup: e.g. load some buffers, +// q.bufs = "~/scwork/XYZ/sounds/*".pathMatch.do { |path| Buffer.read(s, path) }; +// s.sync; // wit till buffers are there + + // load some code files, wait between loads +// 1.wait; +// "~/scwork/XYZ/patches/*.rtf".pathMatch.collect { |path| +// path.load; 0.5.wait; +// }; + + // s.scope(q.numChans, zoom: 9); + + "startup example with custom Menus done.".postln; + +}.play(AppClock); + diff --git a/.config/SuperCollider/startupfiles/startup_example_simpleJIT.scd b/.config/SuperCollider/startupfiles/startup_example_simpleJIT.scd new file mode 100644 index 0000000..92664e0 --- /dev/null +++ b/.config/SuperCollider/startupfiles/startup_example_simpleJIT.scd @@ -0,0 +1,54 @@ + +"simple JIT startup example.".postln; + + // choose which server to use, + // e.g. for teaching, take internal, so scope works +Server.default = s = Server.internal; +{ try { Server.local.window.close } }.defer(0.5); + +s.options + .numAudioBusChannels_(1024) + .zeroConf_(false) // don't wait for zeroconf when booting server + .memSize_(8192 * 32) // memSize is in kB, so 8 * 32 = 256 MB for soundfiles, buffers + +// // keep several combinations of audio devices + numChannels +// .device_("MicLineOut") // an aggregate device +// .hardwareBufferSize_(512) // 512 is default +// .numInputBusChannels_(8) // 8 is default +// .numOutputBusChannels_(8) // 8 is default + + // comment out unused devices. +// .device_("Fireface 400") +// .hardwareBufferSize_(128) +// .numInputBusChannels_(18) +// .numOutputBusChannels_(18) +; + + +q = q ? (); // make a global dictionary for everything + +p = Ndef.dictFor(s); // make a proxyspace for Ndefs on the default server +p.push(s); // and push it - so Ndef(\asd) === ~asd now. + +s.quit; // in case the server is still running, quit it. + + // decide what should happen after server has booted: +s.doWhenBooted({ + 1.wait; + "server is booted - do further setup here...".postln; + // make some JIT guis: + try { q.pxmix.win.close }; q.pxmix = ProxyMixer(p, 16); + try { q.tdg.win.close }; q.tdg = TdefAllGui(16); q.tdg.moveTo(210, 600); + try { q.pdg.win.close }; q.pdg = PdefAllGui(16); q.pdg.moveTo(420, 600); + + 1.wait; + + Env.perc.test; // and play a test sound if you like + "simple JIT setup done.".postln; +}); + +Task({ + 1.wait; // wait till quit has happened - make longer if needed. + s.boot; // boot again +}).play(AppClock); + diff --git a/.config/ardour3/.a3 b/.config/ardour3/.a3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.config/ardour3/.a3 diff --git a/.config/ardour3/.nevernag b/.config/ardour3/.nevernag new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.config/ardour3/.nevernag diff --git a/.config/ardour3/ardour.rc b/.config/ardour3/ardour.rc new file mode 100644 index 0000000..a5737e6 --- /dev/null +++ b/.config/ardour3/ardour.rc @@ -0,0 +1,365 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Ardour> + <Config> + <Option name="auto-connect-standard-busses" value="1"/> + <Option name="output-auto-connect" value="AutoConnectPhysical"/> + <Option name="input-auto-connect" value=""/> + <Option name="trace-midi-input" value="0"/> + <Option name="trace-midi-output" value="0"/> + <Option name="send-mtc" value="0"/> + <Option name="send-mmc" value="0"/> + <Option name="send-midi-clock" value="0"/> + <Option name="mmc-control" value="0"/> + <Option name="midi-feedback" value="0"/> + <Option name="mmc-receive-device-id" value="127"/> + <Option name="mmc-send-device-id" value="0"/> + <Option name="initial-program-change" value="-1"/> + <Option name="diplay-first-midi-bank-as-zero" value="0"/> + <Option name="mtc-qf-speed-tolerance" value="5"/> + <Option name="timecode-sync-frame-rate" value="1"/> + <Option name="timecode-source-is-synced" value="1"/> + <Option name="timecode-source-2997" value="0"/> + <Option name="sync-source" value="JACK"/> + <Option name="ltc-source-port" value="system:capture_1"/> + <Option name="send-ltc" value="0"/> + <Option name="ltc-send-continuously" value="1"/> + <Option name="ltc-output-port" value=""/> + <Option name="ltc-output-volume" value="0.125892"/> + <Option name="feedback-interval-ms" value="100"/> + <Option name="use-tranzport" value="1"/> + <Option name="remote-model" value="UserOrdered"/> + <Option name="minimum-disk-io-bytes" value="262144"/> + <Option name="midi-readahead" value="1"/> + <Option name="capture-buffer-seconds" value="5"/> + <Option name="playback-buffer-seconds" value="5"/> + <Option name="midi-track-buffer-seconds" value="1"/> + <Option name="disk-choice-space-threshold" value="57600000"/> + <Option name="auto-analyse-audio" value="0"/> + <Option name="osc-port" value="3819"/> + <Option name="use-osc" value="0"/> + <Option name="edit-mode" value="Slide"/> + <Option name="link-region-and-track-selection" value="0"/> + <Option name="link-editor-and-mixer-selection" value="0"/> + <Option name="keyboard-layout-name" value="ansi"/> + <Option name="automation-follows-regions" value="1"/> + <Option name="region-boundaries-from-selected-tracks" value="1"/> + <Option name="region-boundaries-from-onscreen_tracks" value="1"/> + <Option name="autoscroll-editor" value="1"/> + <Option name="mute-affects-pre-fader" value="1"/> + <Option name="mute-affects-post-fader" value="1"/> + <Option name="mute-affects-control-outs" value="1"/> + <Option name="mute-affects-main-outs" value="1"/> + <Option name="monitoring-model" value="ExternalMonitoring"/> + <Option name="listen-position" value="PreFaderListen"/> + <Option name="pfl-position" value="PFLFromAfterProcessors"/> + <Option name="afl-position" value="AFLFromAfterProcessors"/> + <Option name="use-monitor-bus" value="1"/> + <Option name="solo-control-is-listen-control" value="0"/> + <Option name="exclusive-solo" value="0"/> + <Option name="latched-record-enable" value="0"/> + <Option name="all-safe" value="0"/> + <Option name="show-solo-mutes" value="1"/> + <Option name="solo-mute-override" value="0"/> + <Option name="tape-machine-mode" value="0"/> + <Option name="solo-mute-gain" value="0"/> + <Option name="monitor-bus-preferred-bundle" value=""/> + <Option name="quieten-at-speed" value="0"/> + <Option name="link-send-and-route-panner" value="1"/> + <Option name="midi-audition-synth-uri" value="http://calf.sourceforge.net/plugins/Fluidsynth"/> + <Option name="clicking" value="0"/> + <Option name="click-sound" value=""/> + <Option name="click-emphasis-sound" value=""/> + <Option name="click-gain" value="1.38036"/> + <Option name="plugins-stop-with-transport" value="0"/> + <Option name="stop-recording-on-xrun" value="0"/> + <Option name="create-xrun-marker" value="1"/> + <Option name="stop-at-session-end" value="1"/> + <Option name="seamless-loop" value="0"/> + <Option name="preroll" value="0"/> + <Option name="postroll" value="0"/> + <Option name="rf-speed" value="2"/> + <Option name="shuttle-speed-factor" value="1"/> + <Option name="shuttle-speed-threshold" value="5"/> + <Option name="shuttle-behaviour" value="Wheel"/> + <Option name="shuttle-units" value="Percentage"/> + <Option name="primary-clock-delta-edit-cursor" value="0"/> + <Option name="secondary-clock-delta-edit-cursor" value="0"/> + <Option name="show-track-meters" value="1"/> + <Option name="locate-while-waiting-for-sync" value="0"/> + <Option name="disable-disarm-during-roll" value="0"/> + <Option name="always-play-range" value="0"/> + <Option name="super-rapid-clock-update" value="0"/> + <Option name="meter-hold" value="100"/> + <Option name="meter-falloff" value="32"/> + <Option name="meter-vu-standard" value="MeteringVUstandard"/> + <Option name="meter-line-up-level" value="MeteringLineUp18"/> + <Option name="meter-line-up-din" value="MeteringLineUp15"/> + <Option name="meter-peak" value="0"/> + <Option name="meter-style-led" value="1"/> + <Option name="show-editor-meter" value="1"/> + <Option name="auditioner-output-left" value="ardour:monitor/audio_in 1"/> + <Option name="auditioner-output-right" value="ardour:monitor/audio_in 2"/> + <Option name="replicate-missing-region-channels" value="0"/> + <Option name="hiding-groups-deactivates-groups" value="1"/> + <Option name="verify-remove-last-capture" value="1"/> + <Option name="no-new-session-dialog" value="1"/> + <Option name="use-windows-vst" value="1"/> + <Option name="use-lxvst" value="1"/> + <Option name="save-history" value="1"/> + <Option name="save-history-depth" value="20"/> + <Option name="history-depth" value="20"/> + <Option name="use-overlap-equivalency" value="0"/> + <Option name="periodic-safety-backups" value="1"/> + <Option name="periodic-safety-backup-interval" value="120"/> + <Option name="automation-interval-msecs" value="30"/> + <Option name="only-copy-imported-files" value="1"/> + <Option name="keep-tearoffs" value="0"/> + <Option name="new-plugins-active" value="1"/> + <Option name="keyboard-layout" value="ansi"/> + <Option name="default-bindings" value="ardour"/> + <Option name="default-narrow_ms" value="0"/> + <Option name="name-new-markers" value="0"/> + <Option name="rubberbanding-snaps-to-grid" value="0"/> + <Option name="font-scale" value="102400"/> + <Option name="default-session-parent-dir" value="/media/Data/Audio"/> + <Option name="show-waveforms" value="1"/> + <Option name="show-waveforms-while-recording" value="1"/> + <Option name="waveform-scale" value="Linear"/> + <Option name="waveform-shape" value="Traditional"/> + <Option name="allow-special-bus-removal" value="0"/> + <Option name="processor-usage" value="0"/> + <Option name="color-regions-using-track-color" value="0"/> + <Option name="max-gain" value="2"/> + <Option name="update-editor-during-summary-drag" value="1"/> + <Option name="never-display-periodic-midi" value="1"/> + <Option name="sound-midi-notes" value="1"/> + <Option name="use-plugin-own-gui" value="1"/> + <Option name="max-recent-sessions" value="10"/> + <Option name="automation-thinning-factor" value="20"/> + <Option name="freesound-download-dir" value="/home/dave/Freesound/snd"/> + <Option name="denormal-protection" value="0"/> + <Option name="denormal-model" value="DenormalFTZDAZ"/> + <Option name="show-zoom-tools" value="1"/> + <Option name="widget-prelight" value="1"/> + <Option name="use-tooltips" value="1"/> + <Option name="mixer-strip-visibility" value="PhaseInvert,SoloSafe,SoloIsolated,MeterPoint"/> + <Option name="allow-non-quarter-pulse" value="0"/> + <Option name="show-region-gain" value="0"/> + <Option name="osx-pingback-url" value="http://community.ardour.org/pingback/osx/"/> + <Option name="linux-pingback-url" value="http://community.ardour.org/pingback/linux/"/> + <Option name="tutorial-manual-url" value="http://ardour.org/flossmanual"/> + <Option name="reference-manual-url" value="http://manual.ardour.org/"/> + <Option name="updates-url" value="http://ardour.org/whatsnew.html"/> + <Option name="donate-url" value="http://ardour.org/donate"/> + <Option name="video-advanced-setup" value="0"/> + <Option name="video-server-url" value="http://localhost:1554"/> + <Option name="video-server-docroot" value="/"/> + <Option name="show-video-export-info" value="1"/> + <Option name="show-video-server-dialog" value="1"/> + </Config> + <Metadata/> + <Extra> + <AudioSetup> + <periods val="2"/> + <ports val="128"/> + <inlatency val="0"/> + <outlatency val="0"/> + <realtime val="1"/> + <nomemorylock val="0"/> + <unlockmemory val="0"/> + <softmode val="0"/> + <force16bit val="0"/> + <hwmonitor val="0"/> + <hwmeter val="0"/> + <verbose val="0"/> + <samplerate val="48000Hz"/> + <periodsize val="1024"/> + <serverpath val="/usr/bin/jackd"/> + <driver val="FFADO"/> + <interface val=""/> + <timeout val=""/> + <dither val="None"/> + <audiomode val="Playback/recording on 1 device"/> + <inputdevice val=""/> + <outputdevice val=""/> + <mididriver val="None"/> + </AudioSetup> + <Keyboard edit-button="3" edit-modifier="4" delete-button="3" delete-modifier="1" snap-modifier="32" insert-note-button="1" insert-note-modifier="4"/> + <TransportControllables roll="2" stop="3" goto-start="4" goto-end="5" auto-loop="6" play-selection="7" rec="8" shuttle="20"/> + <UI status-bar="Disk,DSP,Buffers,Audio,Format"> + <Window name="theme-manager" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="key-editor" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="rc-options-editor" visible="no" x-off="189" y-off="224" x-size="806" y-size="635"/> + <Window name="session-options-editor" visible="no" x-off="0" y-off="235" x-size="697" y-size="366"/> + <Window name="speaker-config" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="about" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="add-routes" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="add-video" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="inspector" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="audio-midi-setup" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="bundle-manager" visible="no" x-off="422" y-off="0" x-size="480" y-size="240"/> + <Window name="locations" visible="no" x-off="0" y-off="25" x-size="857" y-size="487"/> + <Window name="big-clock" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="audio-connection-manager" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="midi-connection-manager" visible="no" x-off="304" y-off="427" x-size="940" y-size="811"/> + <Window name="R-27-46" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-27-49" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-27-50" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8372" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8365" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8388" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8506" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8484" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8669" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8368" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8369" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-8346-8377" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-187-206" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-187-209" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-187-210" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-252" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-378" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-255" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-256" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-284" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-398" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-287" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-288" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-316" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-472" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-418" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-319" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-320" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-539" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-532" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-535" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-536" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1438-1464" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1438-1457" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1438-1460" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1438-1461" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1438-1469" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1479-1505" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1479-1498" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1479-1569" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1479-1608" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1479-1501" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1479-1502" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1479-1541" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8372" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8365" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8388" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8506" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8484" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8669" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8368" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8369" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8346-8377" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8565-8591" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8565-8584" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8565-8607" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8565-8587" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8565-8588" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8565-8596" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1241-1260" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1241-1374" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1241-4478" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1241-1263" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1241-1264" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1241-1305" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1273-1292" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1273-1406" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1273-4497" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1273-1295" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1273-1296" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-1273-1312" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2808-2827" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2808-2830" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2808-2831" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2808-2843" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2883-2902" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2883-2905" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2883-2906" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2883-2918" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2956-2975" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2956-4622" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2956-8649" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2956-2978" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2956-2979" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-2956-2988" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5023-5042" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5023-5324" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5023-8630" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5023-5045" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5023-5046" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5023-5055" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-3024-3043" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-3024-3046" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-3024-3047" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-3024-3059" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5480-5499" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5480-5502" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5480-5503" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5480-5515" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5554-5573" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5554-5576" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5554-5577" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5554-5589" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5628-5647" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5628-5650" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5628-5651" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5628-5663" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5776-5795" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5776-5798" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5776-5799" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-5776-5811" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8199-8218" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8199-8721" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8199-8527" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8199-8546" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8199-8221" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8199-8222" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8199-8234" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8274-8293" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8274-8296" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8274-8297" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-8274-8309" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-27-46" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-27-49" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-27-50" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Tearoffs> + <transport tornoff="no" width="1147" height="84" xpos="1847" ypos="27"/> + <monitor-section tornoff="no" width="275" height="689" xpos="1648" ypos="3"/> + <mouse-mode tornoff="no"/> + </Tearoffs> + </UI> + <AudioMIDISetup> + <EngineStates> + <State backend="JACK" driver="ALSA" device="HDA NVidia" sample-rate="44100" buffer-size="256" input-latency="0" output-latency="0" input-channels="0" output-channels="0" active="no" midi-option="None"/> + <State backend="JACK" driver="ALSA" device="" sample-rate="48000" buffer-size="1024" input-latency="0" output-latency="0" input-channels="0" output-channels="0" active="no" midi-option="None"/> + <State backend="JACK" driver="FFADO" device="Default" sample-rate="48000" buffer-size="128" input-latency="0" output-latency="0" input-channels="0" output-channels="0" active="no" midi-option="(legacy) ALSA raw devices"/> + <State backend="JACK" driver="FFADO" device="" sample-rate="44100" buffer-size="256" input-latency="0" output-latency="0" input-channels="0" output-channels="0" active="yes" midi-option="(legacy) ALSA raw devices"/> + </EngineStates> + </AudioMIDISetup> + </Extra> + <ControlProtocols> + <Protocol name="Mackie" bank="0" ipmidi-base="21928" device-profile="" device-name="Mackie Control Universal Pro" active="no"> + <Surfaces> + <surface-0> + <Port> + <Input> + <Port name="mackie control in" direction="input"/> + </Input> + <Output> + <Port name="mackie control out" direction="output"/> + </Output> + </Port> + </surface-0> + </Surfaces> + </Protocol> + <Protocol name="Open Sound Control (OSC)" feedback="0" active="yes"/> + <Protocol name="Generic MIDI" feedback="1" feedback-interval="10000" threshold="10" binding="Korg nanoKONTROL2 With Master" active="yes"> + <Controls/> + </Protocol> + </ControlProtocols> +</Ardour> diff --git a/.config/ardour3/ardour3_ui.conf b/.config/ardour3/ardour3_ui.conf new file mode 100644 index 0000000..c309b9c --- /dev/null +++ b/.config/ardour3/ardour3_ui.conf @@ -0,0 +1,506 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Ardour> + <UI> + <Option name="ui-rc-file" value="ardour3_ui_dark.rc"/> + <Option name="flat-buttons" value="00000001"/> + <Option name="gradient-waveforms" value="00000000"/> + <Option name="all-floating-windows-are-dialogs" value="00000000"/> + </UI> + <Canvas> + <Option name="active crossfade" value="3967af79"/> + <Option name="audio bus base" value="73829968"/> + <Option name="audio master bus base" value="00000000"/> + <Option name="audio track base" value="9daac468"/> + <Option name="automation line" value="44bc59ff"/> + <Option name="automation track fill" value="a0a0ce68"/> + <Option name="automation track outline" value="282828ff"/> + <Option name="cd marker bar" value="9496a3ff"/> + <Option name="crossfade editor base" value="282d49ff"/> + <Option name="crossfade editor line" value="000000ff"/> + <Option name="crossfade editor line shading" value="00a0d154"/> + <Option name="crossfade editor point fill" value="00ff00ff"/> + <Option name="crossfade editor point outline" value="0000ffff"/> + <Option name="crossfade editor wave" value="ffffff28"/> + <Option name="selected crossfade editor wave fill" value="00000000"/> + <Option name="crossfade line" value="000000ff"/> + <Option name="edit point" value="0000ffff"/> + <Option name="entered automation line" value="dd6363ff"/> + <Option name="control point fill" value="ffffff66"/> + <Option name="control point outline" value="ff0000ee"/> + <Option name="control point selected" value="55ccccff"/> + <Option name="entered gain line" value="dd6363ff"/> + <Option name="entered marker" value="dd6363ff"/> + <Option name="frame handle" value="7c00ff96"/> + <Option name="gain line" value="00bc20ff"/> + <Option name="gain line inactive" value="9fbca4c5"/> + <Option name="ghost track base" value="44007c7f"/> + <Option name="ghost track midi outline" value="00000000"/> + <Option name="ghost track wave" value="02fd004c"/> + <Option name="ghost track wave fill" value="00000000"/> + <Option name="ghost track wave clip" value="ff000000"/> + <Option name="ghost track zero line" value="e500e566"/> + <Option name="image track" value="ddddd8ff"/> + <Option name="inactive crossfade" value="e8ed3d77"/> + <Option name="location cd marker" value="1ee8c4ff"/> + <Option name="location loop" value="35964fff"/> + <Option name="location marker" value="c4f411ff"/> + <Option name="location punch" value="7c3a3aff"/> + <Option name="location range" value="497a59ff"/> + <Option name="marker bar" value="99a1adff"/> + <Option name="marker bar separator" value="555555ff"/> + <Option name="marker drag line" value="004f00f9"/> + <Option name="marker label" value="000000ff"/> + <Option name="marker track" value="ddddd8ff"/> + <Option name="measure line bar" value="ffffff9c"/> + <Option name="measure line beat" value="a29e9e76"/> + <Option name="meter bar" value="626470ff"/> + <Option name="meterbridge peaklabel" value="cc4422ff"/> + <Option name="meter color BBC" value="ffa500ff"/> + <Option name="meter fill: 0" value="008800ff"/> + <Option name="meter fill: 1" value="008800ff"/> + <Option name="meter fill: 2" value="00ff00ff"/> + <Option name="meter fill: 3" value="00ff00ff"/> + <Option name="meter fill: 4" value="fff000ff"/> + <Option name="meter fill: 5" value="fff000ff"/> + <Option name="meter fill: 6" value="ff8000ff"/> + <Option name="meter fill: 7" value="ff8000ff"/> + <Option name="meter fill: 8" value="ff0000ff"/> + <Option name="meter fill: 9" value="ff0000ff"/> + <Option name="midi meter fill: 0" value="effaa1ff"/> + <Option name="midi meter fill: 1" value="f2c97dff"/> + <Option name="midi meter fill: 2" value="f2c97dff"/> + <Option name="midi meter fill: 3" value="f48f52ff"/> + <Option name="midi meter fill: 4" value="f48f52ff"/> + <Option name="midi meter fill: 5" value="f83913ff"/> + <Option name="midi meter fill: 6" value="f83913ff"/> + <Option name="midi meter fill: 7" value="8fc78eff"/> + <Option name="midi meter fill: 8" value="8fc78eff"/> + <Option name="midi meter fill: 9" value="00f45600"/> + <Option name="meter background: bottom" value="333333ff"/> + <Option name="meter background: top" value="444444ff"/> + <Option name="meterbridge peakindicator: fill start" value="444444ff"/> + <Option name="meterbridge peakindicator: fill end" value="333333ff"/> + <Option name="meterbridge peakindicator on: fill start" value="ff0000ff"/> + <Option name="meterbridge peakindicator on: fill end" value="880000ff"/> + <Option name="meterbridge label: fill start" value="444444ff"/> + <Option name="meterbridge label: fill end" value="333333ff"/> + <Option name="meterbridge label: text" value="c7c7d8ff"/> + <Option name="meter marker" value="f2425bff"/> + <Option name="midi bus base" value="00000000"/> + <Option name="midi frame base" value="393d3766"/> + <Option name="midi note inactive channel" value="00000000"/> + <Option name="midi note color min" value="3f542aff"/> + <Option name="midi note color mid" value="7ea854ff"/> + <Option name="midi note color max" value="bfff80ff"/> + <Option name="selected midi note color min" value="1e1e33ff"/> + <Option name="selected midi note color mid" value="51518aff"/> + <Option name="selected midi note color max" value="8383deff"/> + <Option name="midi note selected" value="b2b2ffff"/> + <Option name="midi note velocity text" value="f4f214bc"/> + <Option name="midi patch change fill" value="0000ffa0"/> + <Option name="midi patch change outline" value="a7a7d4ff"/> + <Option name="midi patch change inactive channel fill" value="00000000"/> + <Option name="midi patch change inactive channel outline" value="222222ff"/> + <Option name="midi sysex fill" value="f1e139a0"/> + <Option name="midi sysex outline" value="a7a7d4ff"/> + <Option name="midi select rect fill" value="8888ff88"/> + <Option name="midi select rect outline" value="5555ffff"/> + <Option name="midi track base" value="b3cca35f"/> + <Option name="name highlight fill" value="0000ffff"/> + <Option name="name highlight outline" value="7c00ff96"/> + <Option name="piano roll black outline" value="f4f4f476"/> + <Option name="piano roll black" value="6c6e6a6b"/> + <Option name="piano roll white" value="979b9565"/> + <Option name="play head" value="ff0000ff"/> + <Option name="processor automation line" value="7aa3f9ff"/> + <Option name="punch line" value="a80000ff"/> + <Option name="range drag bar rect" value="969696c6"/> + <Option name="range drag rect" value="82c696c6"/> + <Option name="range marker bar" value="7d7f8cff"/> + <Option name="recording rect" value="cc2828ff"/> + <Option name="recorded waveform fill" value="ffffffff"/> + <Option name="recorded waveform outline" value="0f0f1fff"/> + <Option name="rubber band rect" value="c6c6c659"/> + <Option name="selected crossfade editor line" value="00dbdbff"/> + <Option name="selected crossfade editor wave" value="f9ea14a0"/> + <Option name="selected region base" value="51518a97"/> + <Option name="selected waveform fill" value="51518ac8"/> + <Option name="selected waveform outline" value="0f0f0fcc"/> + <Option name="selection rect" value="e8f4d377"/> + <Option name="selection" value="636363b2"/> + <Option name="shuttle" value="6bb620ff"/> + <Option name="silence" value="9efffd7a"/> + <Option name="silence text" value="0e066cff"/> + <Option name="mono panner outline" value="33445eff"/> + <Option name="mono panner fill" value="7a9bccc9"/> + <Option name="mono panner text" value="000000ff"/> + <Option name="mono panner bg" value="2e2929ff"/> + <Option name="mono panner position fill" value="7a89b3ff"/> + <Option name="mono panner position outline" value="33445eff"/> + <Option name="stereo panner outline" value="33445eff"/> + <Option name="stereo panner fill" value="7a9accc9"/> + <Option name="stereo panner text" value="000000ff"/> + <Option name="stereo panner bg" value="2e2929ff"/> + <Option name="stereo panner rule" value="455c7fff"/> + <Option name="stereo panner mono outline" value="a05600ff"/> + <Option name="stereo panner mono fill" value="e99668ca"/> + <Option name="stereo panner mono text" value="000000ff"/> + <Option name="stereo panner mono bg" value="2e2929ff"/> + <Option name="stereo panner inverted outline" value="bf0a00ff"/> + <Option name="stereo panner inverted fill" value="e4a19cc9"/> + <Option name="stereo panner inverted text" value="000000ff"/> + <Option name="stereo panner inverted bg" value="2e2929ff"/> + <Option name="tempo bar" value="70727fff"/> + <Option name="tempo marker" value="f2425bff"/> + <Option name="time axis frame" value="000000ff"/> + <Option name="selected time axis frame" value="000000ff"/> + <Option name="time stretch fill" value="e2b5b596"/> + <Option name="time stretch outline" value="63636396"/> + <Option name="transport drag rect" value="969696c6"/> + <Option name="transport loop rect" value="1e7728f9"/> + <Option name="transport marker bar" value="8c8e98ff"/> + <Option name="transport punch rect" value="6d2828e5"/> + <Option name="trim handle locked" value="ea0f0f28"/> + <Option name="trim handle" value="1900ff44"/> + <Option name="verbose canvas cursor" value="fffd2ebc"/> + <Option name="vestigial frame" value="0000000f"/> + <Option name="video timeline bar" value="303030ff"/> + <Option name="region base" value="99a7b5a0"/> + <Option name="region area covered by another region" value="505050b0"/> + <Option name="waveform outline" value="0f0f0fc8"/> + <Option name="clipped waveform" value="ff0000e5"/> + <Option name="waveform fill" value="3d4753dc"/> + <Option name="zero line" value="b5b5b525"/> + <Option name="zoom rect" value="c6d1b26d"/> + <Option name="monitor knob" value="329edfff"/> + <Option name="border color" value="00000000"/> + <Option name="processor prefader: fill start" value="873c3cff"/> + <Option name="processor prefader: fill end" value="542525ff"/> + <Option name="processor prefader: fill start active" value="873c3cff"/> + <Option name="processor prefader: fill end active" value="542525ff"/> + <Option name="processor prefader: led" value="26550eff"/> + <Option name="processor prefader: led active" value="78cb4eff"/> + <Option name="processor prefader: text" value="aaaaa3ff"/> + <Option name="processor prefader: text active" value="eeeeecff"/> + <Option name="processor fader: fill start" value="5d90b0ff"/> + <Option name="processor fader: fill end" value="154c6eff"/> + <Option name="processor fader: fill start active" value="5d90b0ff"/> + <Option name="processor fader: fill end active" value="154d6fff"/> + <Option name="processor fader: led" value="26550eff"/> + <Option name="processor fader: led active" value="78cb4eff"/> + <Option name="processor fader: text" value="aaaaa3ff"/> + <Option name="processor fader: text active" value="eeeeecff"/> + <Option name="processor postfader: fill start" value="415947ff"/> + <Option name="processor postfader: fill end" value="202d23ff"/> + <Option name="processor postfader: fill start active" value="415947ff"/> + <Option name="processor postfader: fill end active" value="202d23ff"/> + <Option name="processor postfader: led" value="26550eff"/> + <Option name="processor postfader: led active" value="78cb4eff"/> + <Option name="processor postfader: text" value="aaaaa3ff"/> + <Option name="processor postfader: text active" value="eeeeecff"/> + <Option name="processor control button: fill start" value="000000ff"/> + <Option name="processor control button: fill end" value="000000ff"/> + <Option name="processor control button: fill start active" value="000000ff"/> + <Option name="processor control button: fill end active" value="000000ff"/> + <Option name="processor control button: led" value="000000ff"/> + <Option name="processor control button: led active" value="ff0000ff"/> + <Option name="processor control button: text" value="ffffffff"/> + <Option name="processor control button: text active" value="ffffffff"/> + <Option name="monitor button: fill start" value="5d5856ff"/> + <Option name="monitor button: fill end" value="564d48ff"/> + <Option name="monitor button: fill start active" value="46a344ff"/> + <Option name="monitor button: fill end active" value="3c723bff"/> + <Option name="monitor button: led" value="660000ff"/> + <Option name="monitor button: led active" value="ff0000ff"/> + <Option name="monitor button: text" value="aaaaa3ff"/> + <Option name="monitor button: text active" value="1a1a1aff"/> + <Option name="solo isolate: fill start" value="5d5856ff"/> + <Option name="solo isolate: fill end" value="564d48ff"/> + <Option name="solo isolate: fill start active" value="5d5856ff"/> + <Option name="solo isolate: fill end active" value="564d48ff"/> + <Option name="solo isolate: led" value="660000ff"/> + <Option name="solo isolate: led active" value="ff0000ff"/> + <Option name="solo isolate: text" value="c7c7d8ff"/> + <Option name="solo isolate: text active" value="c8c8d9ff"/> + <Option name="solo safe: fill start" value="5d5856ff"/> + <Option name="solo safe: fill end" value="564d48ff"/> + <Option name="solo safe: fill start active" value="5d5856ff"/> + <Option name="solo safe: fill end active" value="564d48ff"/> + <Option name="solo safe: led" value="660000ff"/> + <Option name="solo safe: led active" value="ff0000ff"/> + <Option name="solo safe: text" value="c7c7d8ff"/> + <Option name="solo safe: text active" value="c8c8d9ff"/> + <Option name="monitor section cut: fill start" value="5d5856ff"/> + <Option name="monitor section cut: fill end" value="564d48ff"/> + <Option name="monitor section cut: fill start active" value="f7bb0aff"/> + <Option name="monitor section cut: fill end active" value="ed8f00ff"/> + <Option name="monitor section cut: led" value="473812ff"/> + <Option name="monitor section cut: led active" value="78cb4eff"/> + <Option name="monitor section cut: text" value="c7c7d8ff"/> + <Option name="monitor section cut: text active" value="000000ff"/> + <Option name="monitor section dim: fill start" value="5d5856ff"/> + <Option name="monitor section dim: fill end" value="564d48ff"/> + <Option name="monitor section dim: fill start active" value="04af02ff"/> + <Option name="monitor section dim: fill end active" value="008a00ff"/> + <Option name="monitor section dim: led" value="473812ff"/> + <Option name="monitor section dim: led active" value="78cb4eff"/> + <Option name="monitor section dim: text" value="c8c8d9ff"/> + <Option name="monitor section dim: text active" value="c8c8d9ff"/> + <Option name="monitor section solo: fill start" value="5d5856ff"/> + <Option name="monitor section solo: fill end" value="564d48ff"/> + <Option name="monitor section solo: fill start active" value="f4f395ff"/> + <Option name="monitor section solo: fill end active" value="fffe1dff"/> + <Option name="monitor section solo: led" value="473812ff"/> + <Option name="monitor section solo: led active" value="ffa500ff"/> + <Option name="monitor section solo: text" value="00000000"/> + <Option name="monitor section solo: text active" value="00000000"/> + <Option name="monitor section invert: fill start" value="5d5856ff"/> + <Option name="monitor section invert: fill end" value="564d48ff"/> + <Option name="monitor section invert: fill start active" value="03af01ff"/> + <Option name="monitor section invert: fill end active" value="008a00ff"/> + <Option name="monitor section invert: led" value="473812ff"/> + <Option name="monitor section invert: led active" value="78cb4eff"/> + <Option name="monitor section invert: text" value="00000000"/> + <Option name="monitor section invert: text active" value="00000000"/> + <Option name="monitor section mono: fill start" value="5d5856ff"/> + <Option name="monitor section mono: fill end" value="564d48ff"/> + <Option name="monitor section mono: fill start active" value="04af02ff"/> + <Option name="monitor section mono: fill end active" value="008a00ff"/> + <Option name="monitor section mono: led" value="473812ff"/> + <Option name="monitor section mono: led active" value="78cb4eff"/> + <Option name="monitor section mono: text" value="c7c7d8ff"/> + <Option name="monitor section mono: text active" value="c8c8d9ff"/> + <Option name="monitor section solo model: fill start" value="5d5856ff"/> + <Option name="monitor section solo model: fill end" value="564d48ff"/> + <Option name="monitor section solo model: fill start active" value="5d5856ff"/> + <Option name="monitor section solo model: fill end active" value="564d48ff"/> + <Option name="monitor section solo model: led" value="4f3300ff"/> + <Option name="monitor section solo model: led active" value="ffa500ff"/> + <Option name="monitor section solo model: text" value="c7c7d8ff"/> + <Option name="monitor section solo model: text active" value="c8c8d9ff"/> + <Option name="monitor solo override: fill start" value="5d5856ff"/> + <Option name="monitor solo override: fill end" value="564d48ff"/> + <Option name="monitor solo override: fill start active" value="5d5856ff"/> + <Option name="monitor solo override: fill end active" value="564d48ff"/> + <Option name="monitor solo override: led" value="4f3300ff"/> + <Option name="monitor solo override: led active" value="ffa500ff"/> + <Option name="monitor solo override: text" value="c7c7d8ff"/> + <Option name="monitor solo override: text active" value="c8c8d9ff"/> + <Option name="monitor solo exclusive: fill start" value="5d5856ff"/> + <Option name="monitor solo exclusive: fill end" value="564d48ff"/> + <Option name="monitor solo exclusive: fill start active" value="5d5856ff"/> + <Option name="monitor solo exclusive: fill end active" value="564c47ff"/> + <Option name="monitor solo exclusive: led" value="4f3300ff"/> + <Option name="monitor solo exclusive: led active" value="ffa500ff"/> + <Option name="monitor solo exclusive: text" value="c7c7d8ff"/> + <Option name="monitor solo exclusive: text active" value="c8c8d9ff"/> + <Option name="rude solo: fill start" value="684d4dff"/> + <Option name="rude solo: fill end" value="513c3cff"/> + <Option name="rude solo: fill start active" value="ff1f1fff"/> + <Option name="rude solo: fill end active" value="e21b1bff"/> + <Option name="rude solo: led" value="00000000"/> + <Option name="rude solo: led active" value="00000000"/> + <Option name="rude solo: text" value="969696ff"/> + <Option name="rude solo: text active" value="e5e5e5ff"/> + <Option name="rude isolate: fill start" value="21414fff"/> + <Option name="rude isolate: fill end" value="192930ff"/> + <Option name="rude isolate: fill start active" value="e5f7ffff"/> + <Option name="rude isolate: fill end active" value="b6e5fdff"/> + <Option name="rude isolate: led" value="00000000"/> + <Option name="rude isolate: led active" value="000000ff"/> + <Option name="rude isolate: text" value="979797ff"/> + <Option name="rude isolate: text active" value="000000ff"/> + <Option name="rude audition: fill start" value="684d4dff"/> + <Option name="rude audition: fill end" value="513c3cff"/> + <Option name="rude audition: fill start active" value="ff1f1fff"/> + <Option name="rude audition: fill end active" value="e21b1bff"/> + <Option name="rude audition: led" value="00000000"/> + <Option name="rude audition: led active" value="00000000"/> + <Option name="rude audition: text" value="979797ff"/> + <Option name="rude audition: text active" value="ffffffff"/> + <Option name="feedback alert: fill start" value="684d4dff"/> + <Option name="feedback alert: fill end" value="513c3cff"/> + <Option name="feedback alert: fill start active" value="ff1f1fff"/> + <Option name="feedback alert: fill end active" value="e21b1bff"/> + <Option name="feedback alert: led" value="00000000"/> + <Option name="feedback alert: led active" value="00000000"/> + <Option name="feedback alert: text" value="969696ff"/> + <Option name="feedback alert: text active" value="e5e5e5ff"/> + <Option name="invert button: fill start" value="565659ff"/> + <Option name="invert button: fill end" value="484853ff"/> + <Option name="invert button: fill start active" value="222260ff"/> + <Option name="invert button: fill end active" value="4242d0ff"/> + <Option name="invert button: led" value="473812ff"/> + <Option name="invert button: led active" value="78cb4eff"/> + <Option name="invert button: text" value="bfbfbfff"/> + <Option name="invert button: text active" value="bfbfbfff"/> + <Option name="mute button: fill start" value="bf9a24ff"/> + <Option name="mute button: fill end" value="846137ff"/> + <Option name="mute button: fill start active" value="ffc300ff"/> + <Option name="mute button: fill end active" value="ea8400ff"/> + <Option name="mute button: led" value="00000000"/> + <Option name="mute button: led active" value="00000000"/> + <Option name="mute button: text" value="bfbfbfff"/> + <Option name="mute button: text active" value="191919ff"/> + <Option name="solo button: fill start" value="a09865ff"/> + <Option name="solo button: fill end" value="4c5b2aff"/> + <Option name="solo button: fill start active" value="fffd9bff"/> + <Option name="solo button: fill end active" value="ffff00ff"/> + <Option name="solo button: led" value="00000000"/> + <Option name="solo button: led active" value="00000000"/> + <Option name="solo button: text" value="bfbfbfff"/> + <Option name="solo button: text active" value="191919ff"/> + <Option name="record enable button: fill start" value="603f3fff"/> + <Option name="record enable button: fill end" value="3d2828ff"/> + <Option name="record enable button: fill start active" value="fb0c0cff"/> + <Option name="record enable button: fill end active" value="b50f0fff"/> + <Option name="record enable button: led" value="00000000"/> + <Option name="record enable button: led active" value="00000000"/> + <Option name="record enable button: text" value="a5a5a5ff"/> + <Option name="record enable button: text active" value="d8d8d8ff"/> + <Option name="send alert button: fill start" value="4e5647ff"/> + <Option name="send alert button: fill end" value="43493cff"/> + <Option name="send alert button: fill start active" value="91f928ff"/> + <Option name="send alert button: fill end active" value="85e524ff"/> + <Option name="send alert button: led" value="00000000"/> + <Option name="send alert button: led active" value="00000000"/> + <Option name="send alert button: text" value="ccccccff"/> + <Option name="send alert button: text active" value="000000ff"/> + <Option name="transport button: fill start" value="656867ff"/> + <Option name="transport button: fill end" value="333333ff"/> + <Option name="transport button: fill start active" value="a1ff43ff"/> + <Option name="transport button: fill end active" value="00a300ff"/> + <Option name="transport button: led" value="00000000"/> + <Option name="transport button: led active" value="00000000"/> + <Option name="transport button: text" value="00000000"/> + <Option name="transport button: text active" value="00000000"/> + <Option name="transport recenable button: fill start" value="5f3f3fff"/> + <Option name="transport recenable button: fill end" value="3d2828ff"/> + <Option name="transport recenable button: fill start active" value="f80b0bff"/> + <Option name="transport recenable button: fill end active" value="b50e0eff"/> + <Option name="transport recenable button: led" value="00000000"/> + <Option name="transport recenable button: led active" value="00000000"/> + <Option name="transport recenable button: text" value="00000000"/> + <Option name="transport recenable button: text active" value="00000000"/> + <Option name="transport option button: fill start" value="636470ff"/> + <Option name="transport option button: fill end" value="4a4b51ff"/> + <Option name="transport option button: fill start active" value="636470ff"/> + <Option name="transport option button: fill end active" value="4a4b51ff"/> + <Option name="transport option button: led" value="4f3300ff"/> + <Option name="transport option button: led active" value="ffa500ff"/> + <Option name="transport option button: text" value="c7c7d8ff"/> + <Option name="transport option button: text active" value="c8c8d9ff"/> + <Option name="transport active option button: fill start" value="606b60ff"/> + <Option name="transport active option button: fill end" value="555d54ff"/> + <Option name="transport active option button: fill start active" value="a1ff43ff"/> + <Option name="transport active option button: fill end active" value="00a300ff"/> + <Option name="transport active option button: led" value="4f3300ff"/> + <Option name="transport active option button: led active" value="ffa500ff"/> + <Option name="transport active option button: text" value="c7c7d8ff"/> + <Option name="transport active option button: text active" value="000000ff"/> + <Option name="plugin bypass button: fill start" value="5d5856ff"/> + <Option name="plugin bypass button: fill end" value="564d48ff"/> + <Option name="plugin bypass button: fill start active" value="5d5856ff"/> + <Option name="plugin bypass button: fill end active" value="564d48ff"/> + <Option name="plugin bypass button: led" value="660000ff"/> + <Option name="plugin bypass button: led active" value="ff0000ff"/> + <Option name="plugin bypass button: text" value="c7c7d8ff"/> + <Option name="plugin bypass button: text active" value="c8c8d9ff"/> + <Option name="punch button: fill start" value="603f3fff"/> + <Option name="punch button: fill end" value="3d2828ff"/> + <Option name="punch button: fill start active" value="fb0c0cff"/> + <Option name="punch button: fill end active" value="b50f0fff"/> + <Option name="punch button: led" value="00000000"/> + <Option name="punch button: led active" value="00000000"/> + <Option name="punch button: text" value="a5a5a5ff"/> + <Option name="punch button: text active" value="d8d8d8ff"/> + <Option name="mouse mode button: fill start" value="6e8755ff"/> + <Option name="mouse mode button: fill end" value="274e00ff"/> + <Option name="mouse mode button: fill start active" value="c5ff95ff"/> + <Option name="mouse mode button: fill end active" value="14ae08ff"/> + <Option name="mouse mode button: led" value="4f3300ff"/> + <Option name="mouse mode button: led active" value="ffa500ff"/> + <Option name="mouse mode button: text" value="c7c7d8ff"/> + <Option name="mouse mode button: text active" value="000000ff"/> + <Option name="zoom button: fill start" value="626370ff"/> + <Option name="zoom button: fill end" value="4a4b51ff"/> + <Option name="zoom button: fill start active" value="4d4d4dff"/> + <Option name="zoom button: fill end active" value="121212ff"/> + <Option name="zoom button: led" value="4f3300ff"/> + <Option name="zoom button: led active" value="ffa500ff"/> + <Option name="zoom button: text" value="c7c7d8ff"/> + <Option name="zoom button: text active" value="c8c8d9ff"/> + <Option name="route button: fill start" value="56565dff"/> + <Option name="route button: fill end" value="484856ff"/> + <Option name="route button: fill start active" value="4d4d4dff"/> + <Option name="route button: fill end active" value="121212ff"/> + <Option name="route button: led" value="4f3300ff"/> + <Option name="route button: led active" value="ffa500ff"/> + <Option name="route button: text" value="c7c7d8ff"/> + <Option name="route button: text active" value="c8c8d9ff"/> + <Option name="mixer strip button: fill start" value="56565dff"/> + <Option name="mixer strip button: fill end" value="484856ff"/> + <Option name="mixer strip button: fill start active" value="ffd993ff"/> + <Option name="mixer strip button: fill end active" value="ffa500ff"/> + <Option name="mixer strip button: led" value="4f3300ff"/> + <Option name="mixer strip button: led active" value="ffa500ff"/> + <Option name="mixer strip button: text" value="c7c7d7ff"/> + <Option name="mixer strip button: text active" value="000000ff"/> + <Option name="mixer strip name button: fill start" value="56565dff"/> + <Option name="mixer strip name button: fill end" value="484856ff"/> + <Option name="mixer strip name button: fill start active" value="4d4d4dff"/> + <Option name="mixer strip name button: fill end active" value="121212ff"/> + <Option name="mixer strip name button: led" value="4f3300ff"/> + <Option name="mixer strip name button: led active" value="ffa500ff"/> + <Option name="mixer strip name button: text" value="c7c7d8ff"/> + <Option name="mixer strip name button: text active" value="c8c8d9ff"/> + <Option name="midi input button: fill start" value="656867ff"/> + <Option name="midi input button: fill end" value="333333ff"/> + <Option name="midi input button: fill start active" value="a1ff43ff"/> + <Option name="midi input button: fill end active" value="00a300ff"/> + <Option name="midi input button: led" value="00000000"/> + <Option name="midi input button: led active" value="00000000"/> + <Option name="midi input button: text" value="00000000"/> + <Option name="midi input button: text active" value="00000000"/> + <Option name="transport clock: background" value="000000ff"/> + <Option name="transport clock: text" value="6bb620ff"/> + <Option name="transport clock: edited text" value="ffa500ff"/> + <Option name="transport clock: cursor" value="ffa500ff"/> + <Option name="secondary clock: background" value="000000ff"/> + <Option name="secondary clock: text" value="6bb620ff"/> + <Option name="secondary clock: edited text" value="ffa500ff"/> + <Option name="secondary clock: cursor" value="ffa500ff"/> + <Option name="transport delta clock: background" value="000000ff"/> + <Option name="transport delta clock: text" value="0009f3ff"/> + <Option name="transport delta clock: edited text" value="ff0000ff"/> + <Option name="transport delta clock: cursor" value="f11000ff"/> + <Option name="secondary delta clock: background" value="000000ff"/> + <Option name="secondary delta clock: text" value="0009f3ff"/> + <Option name="secondary delta clock: edited text" value="ff0000ff"/> + <Option name="secondary delta clock: cursor" value="f11000ff"/> + <Option name="big clock: background" value="020202ff"/> + <Option name="big clock: text" value="f0f0f0ff"/> + <Option name="big clock: edited text" value="ffa500ff"/> + <Option name="big clock: cursor" value="ffa500ff"/> + <Option name="big clock active: background" value="020202ff"/> + <Option name="big clock active: text" value="f11000ff"/> + <Option name="big clock active: edited text" value="ffa500ff"/> + <Option name="big clock active: cursor" value="ffa500ff"/> + <Option name="punch clock: background" value="000000ff"/> + <Option name="punch clock: text" value="6bb620ff"/> + <Option name="punch clock: edited text" value="ff0000ff"/> + <Option name="punch clock: cursor" value="f11000ff"/> + <Option name="selection clock: background" value="000000ff"/> + <Option name="selection clock: text" value="6bb620ff"/> + <Option name="selection clock: edited text" value="ff0000ff"/> + <Option name="selection clock: cursor" value="f11000ff"/> + <Option name="nudge clock: background" value="000000ff"/> + <Option name="nudge clock: text" value="6bb620ff"/> + <Option name="nudge clock: edited text" value="ffa500ff"/> + <Option name="nudge clock: cursor" value="ffa500ff"/> + <Option name="clock: background" value="000000ff"/> + <Option name="clock: text" value="6bb620ff"/> + <Option name="clock: edited text" value="ffa500ff"/> + <Option name="clock: cursor" value="ffa500ff"/> + </Canvas> +</Ardour> diff --git a/.config/ardour3/export/FLAC 24 bit (tagged).format b/.config/ardour3/export/FLAC 24 bit (tagged).format new file mode 100644 index 0000000..d45ca8c --- /dev/null +++ b/.config/ardour3/export/FLAC 24 bit (tagged).format @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ExportFormatSpecification name="FLAC 24 bit (tagged)" id="0627662f-f190-468d-9bb8-db0cca42eac5" with-cue="false" with-toc="false"> + <Encoding id="F_FLAC" type="T_Sndfile" extension="flac" name="FLAC" has-sample-format="true" channel-limit="8"/> + <SampleRate rate="1"/> + <SRCQuality quality="SRC_SincBest"/> + <EncodingOptions> + <Option name="sample-format" value="SF_16"/> + <Option name="dithering" value="D_Shaped"/> + <Option name="tag-metadata" value="false"/> + <Option name="tag-support" value="true"/> + <Option name="broadcast-info" value="false"/> + </EncodingOptions> + <Processing> + <Normalize enabled="true" target="-0"/> + <Silence> + <Start> + <Trim enabled="false"/> + <Add enabled="false"> + <Duration format="Timecode" hours="0" minutes="0" seconds="0" frames="0"/> + </Add> + </Start> + <End> + <Trim enabled="false"/> + <Add enabled="false"> + <Duration format="Timecode" hours="0" minutes="0" seconds="0" frames="0"/> + </Add> + </End> + </Silence> + </Processing> +</ExportFormatSpecification> diff --git a/.config/ardour3/gdk-pixbuf.loaders b/.config/ardour3/gdk-pixbuf.loaders new file mode 100644 index 0000000..cb25d92 --- /dev/null +++ b/.config/ardour3/gdk-pixbuf.loaders @@ -0,0 +1,125 @@ +# GdkPixbuf Image Loader Modules file +# Automatically generated file, do not edit +# Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.25.0 +# +# LoaderDir = /opt/ardour/lib/loaders +# +"/opt/ardour/lib/loaders/libpixbufloader-xbm.so" +"xbm" 4 "gdk-pixbuf" "The XBM image format" "LGPL" +"image/x-xbitmap" "" +"xbm" "" +"#define " "" 100 +"/*" "" 50 + +"/opt/ardour/lib/loaders/libpixbufloader-icns.so" +"icns" 4 "gdk-pixbuf" "The ICNS image format" "GPL" +"image/x-icns" "" +"icns" "" +"icns" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-ani.so" +"ani" 4 "gdk-pixbuf" "The ANI image format" "LGPL" +"application/x-navi-animation" "" +"ani" "" +"RIFF ACON" " xxxx " 100 + +"/opt/ardour/lib/loaders/libpixbufloader-gif.so" +"gif" 4 "gdk-pixbuf" "The GIF image format" "LGPL" +"image/gif" "" +"gif" "" +"GIF8" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-ras.so" +"ras" 4 "gdk-pixbuf" "The Sun raster image format" "LGPL" +"image/x-cmu-raster" "image/x-sun-raster" "" +"ras" "" +"Y\246j\225" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-bmp.so" +"bmp" 5 "gdk-pixbuf" "The BMP image format" "LGPL" +"image/bmp" "image/x-bmp" "image/x-MS-bmp" "" +"bmp" "" +"BM" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-pcx.so" +"pcx" 4 "gdk-pixbuf" "The PCX image format" "LGPL" +"image/x-pcx" "" +"pcx" "" +"\n \001" "" 100 +"\n\002\001" "" 100 +"\n\003\001" "" 100 +"\n\004\001" "" 100 +"\n\005\001" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-qtif.so" +"qtif" 4 "gdk-pixbuf" "The QTIF image format" "LGPL" +"image/x-quicktime" "image/qtif" "" +"qtif" "qif" "" +"abcdidsc" "xxxx " 100 +"abcdidat" "xxxx " 100 + +"/opt/ardour/lib/loaders/libpixbufloader-png.so" +"png" 5 "gdk-pixbuf" "The PNG image format" "LGPL" +"image/png" "" +"png" "" +"\211PNG\r\n\032\n" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-tiff.so" +"tiff" 1 "gdk-pixbuf" "The TIFF image format" "LGPL" +"image/tiff" "" +"tiff" "tif" "" +"MM *" " z " 100 +"II* " " z" 100 +"II* \020 CR\002 " " z zzz z" 0 + +"/opt/ardour/lib/loaders/libpixbufloader-xpm.so" +"xpm" 4 "gdk-pixbuf" "The XPM image format" "LGPL" +"image/x-xpixmap" "" +"xpm" "" +"/* XPM */" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-ico.so" +"ico" 5 "gdk-pixbuf" "The ICO image format" "LGPL" +"image/x-icon" "image/x-ico" "image/x-win-bitmap" "" +"ico" "cur" "" +" \001 " "zz znz" 100 +" \002 " "zz znz" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-wbmp.so" +"wbmp" 4 "gdk-pixbuf" "The WBMP image format" "LGPL" +"image/vnd.wap.wbmp" "" +"wbmp" "" +" " "zz" 1 +" `" "z " 1 +" @" "z " 1 +" " "z " 1 + +"/opt/ardour/lib/loaders/libpixbufloader-jpeg.so" +"jpeg" 5 "gdk-pixbuf" "The JPEG image format" "LGPL" +"image/jpeg" "" +"jpeg" "jpe" "jpg" "" +"\377\330" "" 100 + +"/opt/ardour/lib/loaders/libpixbufloader-tga.so" +"tga" 4 "gdk-pixbuf" "The Targa image format" "LGPL" +"image/x-tga" "" +"tga" "targa" "" +" \001\001" "x " 100 +" \001\t" "x " 100 +" \002" "xz " 99 +" \003" "xz " 100 +" \n" "xz " 100 +" \v" "xz " 100 + +"/opt/ardour/lib/loaders/libpixbufloader-pnm.so" +"pnm" 4 "gdk-pixbuf" "The PNM/PBM/PGM/PPM image format family" "LGPL" +"image/x-portable-anymap" "image/x-portable-bitmap" "image/x-portable-graymap" "image/x-portable-pixmap" "" +"pnm" "pbm" "pgm" "ppm" "" +"P1" "" 100 +"P2" "" 100 +"P3" "" 100 +"P4" "" 100 +"P5" "" 100 +"P6" "" 100 + + diff --git a/.config/ardour3/instant.xml b/.config/ardour3/instant.xml new file mode 100644 index 0000000..f3c01db --- /dev/null +++ b/.config/ardour3/instant.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<instant> + <LocationUI clock-mode="Frames"/> + <ExportRevision revision="1"/> + <Editor id="18" mixer-width="Wide" zoom-focus="ZoomFocusLeft" zoom="542886.010900" snap-to="SnapToBeat" snap-mode="SnapMagnetic" internal-snap-to="SnapToBeat" internal-snap-mode="SnapOff" pre-internal-snap-to="SnapToBeat" pre-internal-snap-mode="SnapMagnetic" edit-point="EditAtMouse" playhead="67457472" left-frame="0" y-origin="0.000000" show-measures="yes" maximised="no" follow-playhead="yes" stationary-playhead="no" region-list-sort-type="ByEndInFile" mouse-mode="MouseObject" internal-edit="no" join-object-range="no" show-editor-mixer="yes" show-editor-list="no" editor-list-page="0" show-marker-lines="no" nudge-clock-value="240000"> + <geometry x-size="1398" y-size="1175" x-pos="518" y-pos="21" edit-horizontal-pane-pos="1109" notebook-shrunk="0" edit-vertical-pane-pos="972"/> + <Buttons> + <Press/> + <Release/> + </Buttons> + <Selection> + <RouteView id="8346"/> + <Marker id="555" start="yes"/> + </Selection> + <RegionList sort-type="ByEndInFile" sort-ascending="yes" show-all="no" show-automatic-regions="yes"/> + </Editor> + <Mixer narrow-strips="no" show-mixer="no" maximised="no"/> + <Meterbridge show-meterbridge="yes"> + <geometry x-size="514" y-size="1161" x-pos="0" y-pos="21"/> + </Meterbridge> +</instant> diff --git a/.config/ardour3/pango.modules b/.config/ardour3/pango.modules new file mode 100644 index 0000000..f335b9e --- /dev/null +++ b/.config/ardour3/pango.modules @@ -0,0 +1,35 @@ +# Pango Modules file +# Automatically generated file, do not edit +# +# ModulesPath = /opt/ardour/lib/modules +# +/opt/ardour/lib/modules/pango-tibetan-fc.so TibetanScriptEngineFc PangoEngineShape PangoRenderFc tibetan:* +/opt/ardour/lib/modules/pango-basic-x.so BasicScriptEngineX PangoEngineShape PangoRenderX common: +/opt/ardour/lib/modules/pango-arabic-lang.so ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:* +/opt/ardour/lib/modules/pango-khmer-fc.so KhmerScriptEngineFc PangoEngineShape PangoRenderFc khmer:* +/opt/ardour/lib/modules/pango-hangul-fc.so HangulScriptEngineFc PangoEngineShape PangoRenderFc hangul:* +/opt/ardour/lib/modules/pango-arabic-fc.so ArabicScriptEngineFc PangoEngineShape PangoRenderFc arabic:* nko:* +/opt/ardour/lib/modules/pango-basic-fc.so BasicScriptEngineFc PangoEngineShape PangoRenderFc latin:* cyrillic:* greek:* armenian:* georgian:* runic:* ogham:* bopomofo:* cherokee:* coptic:* deseret:* ethiopic:* gothic:* han:* hiragana:* katakana:* old-italic:* canadian-aboriginal:* yi:* braille:* cypriot:* limbu:* osmanya:* shavian:* linear-b:* ugaritic:* glagolitic:* cuneiform:* phoenician:* common: +/opt/ardour/lib/modules/pango-indic-fc.so devaScriptEngineFc PangoEngineShape PangoRenderFc devanagari:* +/opt/ardour/lib/modules/pango-indic-fc.so bengScriptEngineFc PangoEngineShape PangoRenderFc bengali:* +/opt/ardour/lib/modules/pango-indic-fc.so guruScriptEngineFc PangoEngineShape PangoRenderFc gurmukhi:* +/opt/ardour/lib/modules/pango-indic-fc.so gujrScriptEngineFc PangoEngineShape PangoRenderFc gujarati:* +/opt/ardour/lib/modules/pango-indic-fc.so oryaScriptEngineFc PangoEngineShape PangoRenderFc oriya:* +/opt/ardour/lib/modules/pango-indic-fc.so tamlScriptEngineFc PangoEngineShape PangoRenderFc tamil:* +/opt/ardour/lib/modules/pango-indic-fc.so teluScriptEngineFc PangoEngineShape PangoRenderFc telugu:* +/opt/ardour/lib/modules/pango-indic-fc.so kndaScriptEngineFc PangoEngineShape PangoRenderFc kannada:* +/opt/ardour/lib/modules/pango-indic-fc.so mlymScriptEngineFc PangoEngineShape PangoRenderFc malayalam:* +/opt/ardour/lib/modules/pango-indic-fc.so sinhScriptEngineFc PangoEngineShape PangoRenderFc sinhala:* +/opt/ardour/lib/modules/pango-hebrew-fc.so HebrewScriptEngineFc PangoEngineShape PangoRenderFc hebrew:* +/opt/ardour/lib/modules/pango-thai-fc.so ThaiScriptEngineFc PangoEngineShape PangoRenderFc thai:* lao:* +/opt/ardour/lib/modules/pango-syriac-fc.so SyriacScriptEngineFc PangoEngineShape PangoRenderFc syriac:* +/opt/ardour/lib/modules/pango-indic-lang.so devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:* +/opt/ardour/lib/modules/pango-indic-lang.so bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:* +/opt/ardour/lib/modules/pango-indic-lang.so guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:* +/opt/ardour/lib/modules/pango-indic-lang.so gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:* +/opt/ardour/lib/modules/pango-indic-lang.so oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:* +/opt/ardour/lib/modules/pango-indic-lang.so tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:* +/opt/ardour/lib/modules/pango-indic-lang.so teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:* +/opt/ardour/lib/modules/pango-indic-lang.so kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:* +/opt/ardour/lib/modules/pango-indic-lang.so mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:* +/opt/ardour/lib/modules/pango-indic-lang.so sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:* diff --git a/.config/ardour3/pango.rc b/.config/ardour3/pango.rc new file mode 100644 index 0000000..0ae8270 --- /dev/null +++ b/.config/ardour3/pango.rc @@ -0,0 +1,2 @@ +[Pango] +ModuleFiles=/home/dave/.config/ardour3/pango.modules diff --git a/.config/ardour3/plugin_statuses b/.config/ardour3/plugin_statuses new file mode 100644 index 0000000..2bd3f51 --- /dev/null +++ b/.config/ardour3/plugin_statuses @@ -0,0 +1,58 @@ +LXVST Favorite 1515476290 +LXVST Favorite 1515405652 +LXVST Favorite 1515015474 +LXVST Favorite 1515012944 +LXVST Favorite 1514615601 +LXVST Favorite 1514492210 +LXVST Favorite 1514360882 +LXVST Favorite 1514360144 +LV2 Favorite urn:juce:TalReverb +LV2 Favorite https://github.com/asb2m10/dexed +LV2 Favorite http://yoshimi.sourceforge.net/lv2_plugin +LV2 Favorite http://www.drowaudio.co.uk/audio/audio_plugins/tremolo +LV2 Favorite http://plugin.org.uk/swh-plugins/split +LV2 Favorite http://nedko.arnaudov.name/ssg/1 +LV2 Favorite http://linuxsampler.org/plugins/linuxsampler +LV2 Favorite http://kunz.corrupt.ch/products/tal-noisemaker +LV2 Favorite http://guitarix.sourceforge.net/plugins/gx_tremolo#_tremolo +LV2 Favorite http://guitarix.sourceforge.net/plugins/gx_switched_tremolo_#_switched_tremolo_ +LV2 Favorite http://guitarix.sourceforge.net/plugins/gx_room_simulator_#_room_simulator_ +LV2 Favorite http://elephly.net/lv2/mdaPiano +LV2 Favorite http://calf.sourceforge.net/plugins/Wavetable +LV2 Favorite http://calf.sourceforge.net/plugins/VintageDelay +LV2 Favorite http://calf.sourceforge.net/plugins/StereoTools +LV2 Favorite http://calf.sourceforge.net/plugins/Sidechaingate +LV2 Favorite http://calf.sourceforge.net/plugins/Sidechaincompressor +LV2 Favorite http://calf.sourceforge.net/plugins/Saturator +LV2 Favorite http://calf.sourceforge.net/plugins/RotarySpeaker +LV2 Favorite http://calf.sourceforge.net/plugins/Reverb +LV2 Favorite http://calf.sourceforge.net/plugins/Pulsator +LV2 Favorite http://calf.sourceforge.net/plugins/Phaser +LV2 Favorite http://calf.sourceforge.net/plugins/Organ +LV2 Favorite http://calf.sourceforge.net/plugins/Multibandlimiter +LV2 Favorite http://calf.sourceforge.net/plugins/Multibandgate +LV2 Favorite http://calf.sourceforge.net/plugins/Multibandcompressor +LV2 Favorite http://calf.sourceforge.net/plugins/MultiChorus +LV2 Favorite http://calf.sourceforge.net/plugins/Monosynth +LV2 Favorite http://calf.sourceforge.net/plugins/MonoInput +LV2 Favorite http://calf.sourceforge.net/plugins/Limiter +LV2 Favorite http://calf.sourceforge.net/plugins/Gate +LV2 Favorite http://calf.sourceforge.net/plugins/Fluidsynth +LV2 Favorite http://calf.sourceforge.net/plugins/Flanger +LV2 Favorite http://calf.sourceforge.net/plugins/Filterclavier +LV2 Favorite http://calf.sourceforge.net/plugins/Filter +LV2 Favorite http://calf.sourceforge.net/plugins/Exciter +LV2 Favorite http://calf.sourceforge.net/plugins/Equalizer8Band +LV2 Favorite http://calf.sourceforge.net/plugins/Equalizer5Band +LV2 Favorite http://calf.sourceforge.net/plugins/Equalizer12Band +LV2 Favorite http://calf.sourceforge.net/plugins/Deesser +LV2 Favorite http://calf.sourceforge.net/plugins/Compressor +LV2 Favorite http://calf.sourceforge.net/plugins/BassEnhancer +LV2 Favorite http://calf.sourceforge.net/plugins/Analyzer +LADSPA Favorite 1515476290 +LADSPA Favorite 1515015474 +LADSPA Favorite 1515012944 +LADSPA Favorite 1514615601 +LADSPA Favorite 1514492210 +LADSPA Favorite 1514360882 +LADSPA Favorite 1514360144 diff --git a/.config/ardour3/templates/2014_Deviser_Synth_And_Microphones/2014_Deviser_Synth_And_Microphones.template b/.config/ardour3/templates/2014_Deviser_Synth_And_Microphones/2014_Deviser_Synth_And_Microphones.template new file mode 100644 index 0000000..fa7bd07 --- /dev/null +++ b/.config/ardour3/templates/2014_Deviser_Synth_And_Microphones/2014_Deviser_Synth_And_Microphones.template @@ -0,0 +1,678 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Session version="3001" id-counter="554" event-counter="0"> + <MIDIPorts> + <Port name="MIDI Clock in" direction="input"/> + <Port name="MIDI Clock out" direction="output"/> + <Port name="MIDI control in" direction="input"/> + <Port name="MIDI control out" direction="output"/> + <Port name="MMC in" direction="input"/> + <Port name="MMC out" direction="output"/> + <Port name="MTC in" direction="input"/> + <Port name="MTC out" direction="output"/> + </MIDIPorts> + <Config> + <Option name="xfade-choice" value="ConstantPowerMinus3dB"/> + <Option name="destructive-xfade-msecs" value="2"/> + <Option name="use-region-fades" value="1"/> + <Option name="show-region-fades" value="1"/> + <Option name="native-file-data-format" value="FormatFloat"/> + <Option name="native-file-header-format" value="WAVE"/> + <Option name="auto-play" value="0"/> + <Option name="auto-return" value="0"/> + <Option name="auto-input" value="1"/> + <Option name="punch-in" value="0"/> + <Option name="punch-out" value="0"/> + <Option name="subframes-per-frame" value="100"/> + <Option name="timecode-format" value="timecode_30"/> + <Option name="raid-path" value=""/> + <Option name="audio-search-path" value=""/> + <Option name="midi-search-path" value=""/> + <Option name="jack-time-master" value="1"/> + <Option name="use-video-sync" value="0"/> + <Option name="video-pullup" value="0"/> + <Option name="show-summary" value="1"/> + <Option name="show-group-tabs" value="1"/> + <Option name="external-sync" value="0"/> + <Option name="insert-merge-policy" value="InsertMergeRelax"/> + <Option name="timecode-offset" value="0"/> + <Option name="timecode-offset-negative" value="1"/> + <Option name="slave-timecode-offset" value=" 00:00:00:00"/> + <Option name="timecode-generator-offset" value=" 00:00:00:00"/> + <Option name="glue-new-markers-to-bars-and-beats" value="0"/> + <Option name="midi-copy-is-fork" value="0"/> + <Option name="glue-new-regions-to-bars-and-beats" value="0"/> + <Option name="use-video-file-fps" value="0"/> + <Option name="videotimeline-pullup" value="1"/> + <Option name="show-busses-on-meterbridge" value="0"/> + <Option name="show-master-on-meterbridge" value="1"/> + <Option name="show-midi-on-meterbridge" value="1"/> + <Option name="show-rec-on-meterbridge" value="1"/> + <Option name="show-mute-on-meterbridge" value="0"/> + <Option name="show-solo-on-meterbridge" value="0"/> + <Option name="show-monitor-on-meterbridge" value="0"/> + <Option name="show-name-on-meterbridge" value="1"/> + <Option name="meterbridge-label-height" value="0"/> + </Config> + <Metadata/> + <Sources/> + <Regions/> + <Locations> + <Location id="555" name="session" start="0" end="0" flags="IsSessionRange" locked="no" position-lock-style="AudioTime"/> + </Locations> + <Bundles/> + <Routes> + <Route id="52" name="monitor" default-type="audio" flags="MonitorOut" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" meter-type="MeterPeak" order-key="1" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no"> + <IO name="monitor" id="58" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="monitor/audio_in 1"> + <Connection other="master/audio_out 1"/> + <Connection other="auditioner/audio_out 1"/> + </Port> + <Port type="audio" name="monitor/audio_in 2"> + <Connection other="master/audio_out 2"/> + <Connection other="auditioner/audio_out 2"/> + </Port> + </IO> + <IO name="monitor" id="59" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="monitor/audio_out 1"> + <Connection other="firewire_pcm:000a3500ada83262_pbk_analog-1_out"/> + </Port> + <Port type="audio" name="monitor/audio_out 2"> + <Connection other="firewire_pcm:000a3500ada83262_pbk_analog-2_out"/> + </Port> + </IO> + <Controllable name="solo" id="54" flags="Toggle" value="0.000000000000"/> + <Controllable name="mute" id="56" flags="Toggle" value="0.000000000000"/> + <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> + <RemoteControl id="0"/> + <Processor id="65" name="return 1" active="yes" user-latency="0" own-input="yes" own-output="yes" type="intreturn" bitslot="0"/> + <Processor id="70" name="MonitorOut" active="yes" user-latency="0" type="monitor" dim-level="0.251188635826" solo-boost-level="1" cut-all="no" dim-all="no" mono="no" channels="2"> + <Channel id="0" cut="no" invert="no" dim="no" solo="no"/> + <Channel id="1" cut="no" invert="no" dim="no" solo="no"/> + </Processor> + <Processor id="60" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="62" flags="GainLike" value="1.000000000000"/> + </Processor> + <Processor id="63" name="meter-monitor" active="yes" user-latency="0" type="meter"/> + <Processor id="64" name="monitor" active="yes" user-latency="0" own-input="yes" own-output="no" output="monitor" type="main-outs" role="Main"/> + </Route> + <Route id="27" name="master" default-type="audio" flags="MasterOut" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" meter-type="MeterK20" order-key="0" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no"> + <IO name="master" id="44" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="master/audio_in 1"> + <Connection other="Microphones/audio_out 1"/> + </Port> + <Port type="audio" name="master/audio_in 2"> + <Connection other="Microphones/audio_out 2"/> + </Port> + </IO> + <IO name="master" id="45" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="master/audio_out 1"> + <Connection other="monitor/audio_in 1"/> + </Port> + <Port type="audio" name="master/audio_out 2"> + <Connection other="monitor/audio_in 2"/> + </Port> + </IO> + <Controllable name="solo" id="29" flags="Toggle" value="0.000000000000"/> + <Controllable name="mute" id="31" flags="Toggle" value="0.000000000000"/> + <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> + <RemoteControl id="0"/> + <Pannable> + <Controllable name="pan-azimuth" id="35" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="39" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="37" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="41" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="43" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + <Processor id="46" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="48" flags="GainLike" value="1.000000000000"/> + </Processor> + <Processor id="49" name="meter-master" active="yes" user-latency="0" type="meter"/> + <Processor id="50" name="master" active="yes" user-latency="0" own-input="yes" own-output="no" output="master" type="main-outs" role="Main"> + <PannerShell bypassed="no" user-panner="" linked-to-route="yes"/> + <Pannable> + <Controllable name="pan-azimuth" id="35" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="39" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="37" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="41" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="43" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + </Processor> + </Route> + <Route id="187" name="Synth" default-type="audio" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterInput" meter-type="MeterPeak" order-key="1" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> + <IO name="Synth" id="204" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="Synth/audio_in 1"> + <Connection other="firewire_pcm:000a3500ada83262_cap_analog-1_in"/> + </Port> + <Port type="audio" name="Synth/audio_in 2"> + <Connection other="firewire_pcm:000a3500ada83262_cap_analog-2_in"/> + </Port> + </IO> + <IO name="Synth" id="205" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="Synth/audio_out 1"/> + <Port type="audio" name="Synth/audio_out 2"/> + </IO> + <Controllable name="solo" id="189" flags="Toggle" value="0.000000000000"/> + <Controllable name="mute" id="191" flags="Toggle" value="0.000000000000"/> + <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> + <RemoteControl id="1"/> + <Pannable> + <Controllable name="pan-azimuth" id="195" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="199" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="197" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="201" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="203" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + <Processor id="209" name="meter-Synth" active="yes" user-latency="0" type="meter"/> + <Processor id="206" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="208" flags="GainLike" value="1.000000000000"/> + </Processor> + <Processor id="210" name="Synth" active="yes" user-latency="0" own-input="yes" own-output="no" output="Synth" type="main-outs" role="Main"> + <PannerShell bypassed="no" user-panner="" linked-to-route="yes"/> + <Pannable> + <Controllable name="pan-azimuth" id="195" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="199" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="197" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="201" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="203" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + </Processor> + <Controllable name="recenable" id="212" flags="Toggle" value="1.000000000000"/> + <Diskstream flags="Recordable" playlist="Synth.1" name="Synth" id="214" speed="1.000000" capture-alignment="Automatic" channels="2"/> + </Route> + <Route id="233" name="Mic Bowl" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterInput" meter-type="MeterPeak" route-group="Microphones" order-key="2" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="MonitorInput" saved-meter-point="MeterPostFader" mode="Normal"> + <IO name="Mic Bowl" id="250" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="Mic Bowl/audio_in 1"> + <Connection other="firewire_pcm:000a3500ada83262_cap_analog-3_in"/> + </Port> + </IO> + <IO name="Mic Bowl" id="251" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="Mic Bowl/audio_out 1"> + <Connection other="Microphones/audio_in 1"/> + </Port> + <Port type="audio" name="Mic Bowl/audio_out 2"> + <Connection other="Microphones/audio_in 2"/> + </Port> + </IO> + <Controllable name="solo" id="235" flags="Toggle" value="0.000000000000"/> + <Controllable name="mute" id="237" flags="Toggle" value="0.000000000000"/> + <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> + <RemoteControl id="2"/> + <Pannable> + <Controllable name="pan-azimuth" id="241" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="245" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="243" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="247" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="249" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + <Processor id="255" name="meter-Mic 1" active="yes" user-latency="0" type="meter"/> + <Processor id="252" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="254" flags="GainLike" value="1.000000000000"/> + </Processor> + <Processor id="360" name="Mono to Stereo splitter" active="yes" user-latency="0" type="lv2" unique-id="http://plugin.org.uk/swh-plugins/split" count="1"> + <lv2 last-preset-uri="" last-preset-label="" parameter-changed-since-last-preset="no"/> + </Processor> + <Processor id="378" name="Calf Reverb" active="yes" user-latency="0" type="lv2" unique-id="http://calf.sourceforge.net/plugins/Reverb" count="1"> + <lv2 last-preset-uri="" last-preset-label="" parameter-changed-since-last-preset="yes"> + <Port symbol="decay_time" value="+14.190271"/> + <Port symbol="hf_damp" value="+7744.083008"/> + <Port symbol="room_size" value="+3.000000"/> + <Port symbol="diffusion" value="+0.740000"/> + <Port symbol="amount" value="+0.250000"/> + <Port symbol="dry" value="+0.234881"/> + <Port symbol="predelay" value="+9.500000"/> + <Port symbol="bass_cut" value="+300.000000"/> + <Port symbol="treble_cut" value="+5000.000000"/> + </lv2> + <Controllable name="Decay time" id="380" flags="" value="14.190271377563" parameter="7"/> + <Controllable name="High Frq Damp" id="382" flags="" value="7744.083007812500" parameter="8"/> + <Controllable name="Room size" id="384" flags="" value="3.000000000000" parameter="9"/> + <Controllable name="Diffusion" id="386" flags="" value="0.740000009537" parameter="10"/> + <Controllable name="Wet Amount" id="388" flags="" value="0.250000000000" parameter="11"/> + <Controllable name="Dry Amount" id="390" flags="" value="0.234880685806" parameter="12"/> + <Controllable name="Pre Delay" id="392" flags="" value="9.500000000000" parameter="13"/> + <Controllable name="Bass Cut" id="394" flags="" value="300.000000000000" parameter="14"/> + <Controllable name="Treble Cut" id="396" flags="" value="5000.000000000000" parameter="15"/> + </Processor> + <Processor id="256" name="Mic Bowl" active="yes" user-latency="0" own-input="yes" own-output="no" output="Mic Bowl" type="main-outs" role="Main"> + <PannerShell bypassed="no" user-panner="" linked-to-route="yes"/> + <Pannable> + <Controllable name="pan-azimuth" id="241" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="245" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="243" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="247" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="249" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + </Processor> + <Controllable name="recenable" id="258" flags="Toggle" value="1.000000000000"/> + <Diskstream flags="Recordable" playlist="Mic Bowl" name="Mic Bowl" id="260" speed="1.000000" capture-alignment="Automatic" channels="1"/> + </Route> + <Route id="265" name="Mic Gong" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterInput" meter-type="MeterPeak" route-group="Microphones" order-key="3" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> + <IO name="Mic Gong" id="282" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="Mic Gong/audio_in 1"> + <Connection other="firewire_pcm:000a3500ada83262_cap_analog-4_in"/> + </Port> + </IO> + <IO name="Mic Gong" id="283" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="Mic Gong/audio_out 1"> + <Connection other="Microphones/audio_in 1"/> + </Port> + <Port type="audio" name="Mic Gong/audio_out 2"> + <Connection other="Microphones/audio_in 2"/> + </Port> + </IO> + <Controllable name="solo" id="267" flags="Toggle" value="0.000000000000"/> + <Controllable name="mute" id="269" flags="Toggle" value="0.000000000000"/> + <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> + <RemoteControl id="2"/> + <Pannable> + <Controllable name="pan-azimuth" id="273" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="277" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="275" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="279" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="281" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + <Processor id="287" name="meter-Mic 2" active="yes" user-latency="0" type="meter"/> + <Processor id="284" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="286" flags="GainLike" value="0.964963614941"/> + </Processor> + <Processor id="360" name="Mono to Stereo splitter" active="yes" user-latency="0" type="lv2" unique-id="http://plugin.org.uk/swh-plugins/split" count="1"> + <lv2 last-preset-uri="" last-preset-label="" parameter-changed-since-last-preset="no"/> + </Processor> + <Processor id="398" name="Calf Reverb" active="yes" user-latency="0" type="lv2" unique-id="http://calf.sourceforge.net/plugins/Reverb" count="1"> + <lv2 last-preset-uri="" last-preset-label="" parameter-changed-since-last-preset="yes"> + <Port symbol="decay_time" value="+10.618622"/> + <Port symbol="hf_damp" value="+10446.480469"/> + <Port symbol="room_size" value="+4.000000"/> + <Port symbol="diffusion" value="+0.720000"/> + <Port symbol="amount" value="+0.426317"/> + <Port symbol="dry" value="+0.201660"/> + <Port symbol="predelay" value="+4.000000"/> + <Port symbol="bass_cut" value="+114.056816"/> + <Port symbol="treble_cut" value="+1025.722778"/> + </lv2> + <Controllable name="Decay time" id="400" flags="" value="10.618621826172" parameter="7"/> + <Controllable name="High Frq Damp" id="402" flags="" value="10446.480468750000" parameter="8"/> + <Controllable name="Room size" id="404" flags="" value="4.000000000000" parameter="9"/> + <Controllable name="Diffusion" id="406" flags="" value="0.720000028610" parameter="10"/> + <Controllable name="Wet Amount" id="408" flags="" value="0.426317453384" parameter="11"/> + <Controllable name="Dry Amount" id="410" flags="" value="0.201660439372" parameter="12"/> + <Controllable name="Pre Delay" id="412" flags="" value="4.000000000000" parameter="13"/> + <Controllable name="Bass Cut" id="414" flags="" value="114.056816101074" parameter="14"/> + <Controllable name="Treble Cut" id="416" flags="" value="1025.722778320312" parameter="15"/> + </Processor> + <Processor id="288" name="Mic Gong" active="yes" user-latency="0" own-input="yes" own-output="no" output="Mic Gong" type="main-outs" role="Main"> + <PannerShell bypassed="no" user-panner="" linked-to-route="yes"/> + <Pannable> + <Controllable name="pan-azimuth" id="273" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="277" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="275" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="279" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="281" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + </Processor> + <Controllable name="recenable" id="290" flags="Toggle" value="1.000000000000"/> + <Diskstream flags="Recordable" playlist="Mic Gong" name="Mic Gong" id="292" speed="1.000000" capture-alignment="Automatic" channels="1"/> + </Route> + <Route id="297" name="Mic Coil" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterInput" meter-type="MeterPeak" route-group="Microphones" order-key="4" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> + <IO name="Mic Coil" id="314" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="Mic Coil/audio_in 1"> + <Connection other="firewire_pcm:000a3500ada83262_cap_analog-5_in"/> + </Port> + </IO> + <IO name="Mic Coil" id="315" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="Mic Coil/audio_out 1"> + <Connection other="Microphones/audio_in 1"/> + </Port> + <Port type="audio" name="Mic Coil/audio_out 2"> + <Connection other="Microphones/audio_in 2"/> + </Port> + </IO> + <Controllable name="solo" id="299" flags="Toggle" value="0.000000000000"/> + <Controllable name="mute" id="301" flags="Toggle" value="0.000000000000"/> + <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> + <RemoteControl id="2"/> + <Pannable> + <Controllable name="pan-azimuth" id="305" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="309" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="307" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="311" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="313" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + <Processor id="319" name="meter-Mic 3" active="yes" user-latency="0" type="meter"/> + <Processor id="316" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="318" flags="GainLike" value="1.000000000000"/> + </Processor> + <Processor id="472" name="Calf Mono Input" active="yes" user-latency="0" type="lv2" unique-id="http://calf.sourceforge.net/plugins/MonoInput" count="1"> + <lv2 last-preset-uri="" last-preset-label="" parameter-changed-since-last-preset="no"> + <Port symbol="bypass" value="+0.000000"/> + <Port symbol="level_in" value="+1.000000"/> + <Port symbol="level_out" value="+1.000000"/> + <Port symbol="balance_out" value="+0.000000"/> + <Port symbol="softclip" value="+0.000000"/> + <Port symbol="mutel" value="+0.000000"/> + <Port symbol="muter" value="+0.000000"/> + <Port symbol="phasel" value="+0.000000"/> + <Port symbol="phaser" value="+0.000000"/> + <Port symbol="delay" value="+0.000000"/> + <Port symbol="stereo_base" value="+0.000000"/> + <Port symbol="stereo_phase" value="+0.000000"/> + <Port symbol="sc_level" value="+1.000000"/> + </lv2> + <Controllable name="Bypass" id="474" flags="Toggle" value="0.000000000000" parameter="3"/> + <Controllable name="Input" id="476" flags="" value="1.000000000000" parameter="4"/> + <Controllable name="Output" id="478" flags="" value="1.000000000000" parameter="5"/> + <Controllable name="Balance" id="480" flags="" value="0.000000000000" parameter="12"/> + <Controllable name="Softclip" id="482" flags="Toggle" value="0.000000000000" parameter="13"/> + <Controllable name="Mute L" id="484" flags="Toggle" value="0.000000000000" parameter="14"/> + <Controllable name="Mute R" id="486" flags="Toggle" value="0.000000000000" parameter="15"/> + <Controllable name="Phase L" id="488" flags="Toggle" value="0.000000000000" parameter="16"/> + <Controllable name="Phase R" id="490" flags="Toggle" value="0.000000000000" parameter="17"/> + <Controllable name="Delay" id="492" flags="" value="0.000000000000" parameter="18"/> + <Controllable name="Stereo Base" id="494" flags="" value="0.000000000000" parameter="19"/> + <Controllable name="Stereo Phase" id="496" flags="" value="0.000000000000" parameter="20"/> + <Controllable name="S/C Level" id="498" flags="" value="1.000000000000" parameter="21"/> + </Processor> + <Processor id="418" name="Calf MultiChorus" active="yes" user-latency="0" type="lv2" unique-id="http://calf.sourceforge.net/plugins/MultiChorus" count="1"> + <lv2 last-preset-uri="" last-preset-label="" parameter-changed-since-last-preset="no"> + <Port symbol="min_delay" value="+5.000000"/> + <Port symbol="mod_depth" value="+6.000000"/> + <Port symbol="mod_rate" value="+0.500000"/> + <Port symbol="stereo" value="+180.000000"/> + <Port symbol="voices" value="+4.000000"/> + <Port symbol="vphase" value="+64.000000"/> + <Port symbol="amount" value="+2.000000"/> + <Port symbol="dry" value="+1.000000"/> + <Port symbol="freq" value="+100.000000"/> + <Port symbol="freq2" value="+5000.000000"/> + <Port symbol="q" value="+0.125000"/> + <Port symbol="overlap" value="+1.000000"/> + </lv2> + <Controllable name="Min delay" id="420" flags="" value="5.000000000000" parameter="4"/> + <Controllable name="Mod depth" id="422" flags="" value="6.000000000000" parameter="5"/> + <Controllable name="Modulation rate" id="424" flags="" value="0.500000000000" parameter="6"/> + <Controllable name="Stereo phase" id="426" flags="" value="180.000000000000" parameter="7"/> + <Controllable name="Voices" id="428" flags="" value="4.000000000000" parameter="8"/> + <Controllable name="Inter-voice phase" id="430" flags="" value="64.000000000000" parameter="9"/> + <Controllable name="Amount" id="432" flags="" value="2.000000000000" parameter="10"/> + <Controllable name="Dry Amount" id="434" flags="" value="1.000000000000" parameter="11"/> + <Controllable name="Center Frq 1" id="436" flags="" value="100.000000000000" parameter="12"/> + <Controllable name="Center Frq 2" id="438" flags="" value="5000.000000000000" parameter="13"/> + <Controllable name="Q" id="440" flags="" value="0.125000000000" parameter="14"/> + <Controllable name="Overlap" id="442" flags="" value="1.000000000000" parameter="15"/> + </Processor> + <Processor id="320" name="Mic Coil" active="yes" user-latency="0" own-input="yes" own-output="no" output="Mic Coil" type="main-outs" role="Main"> + <PannerShell bypassed="no" user-panner="" linked-to-route="yes"/> + <Pannable> + <Controllable name="pan-azimuth" id="305" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="309" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="307" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="311" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="313" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + </Processor> + <Controllable name="recenable" id="322" flags="Toggle" value="1.000000000000"/> + <Diskstream flags="Recordable" playlist="Mic Coil" name="Mic Coil" id="324" speed="1.000000" capture-alignment="Automatic" channels="1"/> + </Route> + <Route id="513" name="Microphones" default-type="audio" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" meter-type="MeterPeak" order-key="5" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no"> + <IO name="Microphones" id="530" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="Microphones/audio_in 1"> + <Connection other="Mic Bowl/audio_out 1"/> + <Connection other="Mic Gong/audio_out 1"/> + <Connection other="Mic Coil/audio_out 1"/> + </Port> + <Port type="audio" name="Microphones/audio_in 2"> + <Connection other="Mic Bowl/audio_out 2"/> + <Connection other="Mic Gong/audio_out 2"/> + <Connection other="Mic Coil/audio_out 2"/> + </Port> + </IO> + <IO name="Microphones" id="531" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="Microphones/audio_out 1"> + <Connection other="master/audio_in 1"/> + </Port> + <Port type="audio" name="Microphones/audio_out 2"> + <Connection other="master/audio_in 2"/> + </Port> + </IO> + <Controllable name="solo" id="515" flags="Toggle" value="0.000000000000"/> + <Controllable name="mute" id="517" flags="Toggle" value="0.000000000000"/> + <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> + <RemoteControl id="5"/> + <Pannable> + <Controllable name="pan-azimuth" id="521" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="525" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="523" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="527" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="529" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + <Processor id="539" name="return 2" active="yes" user-latency="0" own-input="yes" own-output="yes" type="intreturn" bitslot="1"/> + <Processor id="532" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="534" flags="GainLike" value="1.000000000000"/> + </Processor> + <Processor id="535" name="meter-Bus 1" active="yes" user-latency="0" type="meter"/> + <Processor id="536" name="Microphones" active="yes" user-latency="0" own-input="yes" own-output="no" output="Microphones" type="main-outs" role="Main"> + <PannerShell bypassed="no" user-panner="" linked-to-route="yes"/> + <Pannable> + <Controllable name="pan-azimuth" id="521" flags="" value="0.500000000000"/> + <Controllable name="pan-width" id="525" flags="" value="1.000000000000"/> + <Controllable name="pan-elevation" id="523" flags="" value="0.000000000000"/> + <Controllable name="pan-frontback" id="527" flags="" value="0.000000000000"/> + <Controllable name="pan-lfe" id="529" flags="" value="0.000000000000"/> + <Automation/> + </Pannable> + </Processor> + </Route> + </Routes> + <Playlists> + <Playlist id="293" name="Mic Gong" type="audio" orig-track-id="265" frozen="no"/> + <Playlist id="215" name="Synth.1" type="audio" orig-track-id="187" frozen="no"/> + <Playlist id="325" name="Mic Coil" type="audio" orig-track-id="297" frozen="no"/> + <Playlist id="261" name="Mic Bowl" type="audio" orig-track-id="233" frozen="no"/> + </Playlists> + <UnusedPlaylists/> + <RouteGroups> + <RouteGroup id="232" name="Microphones" hidden="0" relative="0" active="0" gain="0" mute="0" solo="0" recenable="0" select="0" route-active="1" color="1" monitoring="1" routes="233 265 297 "/> + </RouteGroups> + <Click> + <IO name="Click" id="23" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="Click/audio_out 1"> + <Connection other="firewire_pcm:000a3500ada83262_pbk_analog-1_out"/> + </Port> + <Port type="audio" name="Click/audio_out 2"> + <Connection other="firewire_pcm:000a3500ada83262_pbk_analog-2_out"/> + </Port> + </IO> + <Processor id="24" name="Amp" active="yes" user-latency="0" type="amp"> + <Controllable name="gaincontrol" id="26" flags="GainLike" value="1.380360007286"/> + </Processor> + </Click> + <LTC-In> + <IO name="LTC In" id="21" direction="Input" default-type="audio" user-latency="0"> + <Port type="audio" name="LTC-in"> + <Connection other="firewire_pcm:000a3500ada83262_cap_analog-1_in"/> + </Port> + </IO> + </LTC-In> + <LTC-Out> + <IO name="LTC Out" id="22" direction="Output" default-type="audio" user-latency="0"> + <Port type="audio" name="LTC-out"/> + </IO> + </LTC-Out> + <Speakers> + <Speaker azimuth="240" elevation="0" distance="1"/> + <Speaker azimuth="120" elevation="0" distance="1"/> + </Speakers> + <TempoMap> + <Tempo start="1|1|0" beats-per-minute="120.000000" note-type="4.000000" movable="no"/> + <Meter start="1|1|0" note-type="4.000000" divisions-per-bar="4.000000" movable="no"/> + </TempoMap> + <ControlProtocols> + <Protocol name="Mackie" bank="0" ipmidi-base="21928" device-profile="" device-name="Mackie Control Universal Pro" active="no"> + <Surfaces> + <surface-0> + <Port> + <Input> + <Port name="mackie control in" direction="input"/> + </Input> + <Output> + <Port name="mackie control out" direction="output"/> + </Output> + </Port> + </surface-0> + </Surfaces> + </Protocol> + <Protocol name="Open Sound Control (OSC)" feedback="0" active="yes"/> + <Protocol name="Generic MIDI" feedback="1" feedback-interval="10000" threshold="10" binding="Korg nanoKONTROL2 With Master" active="yes"> + <Controls/> + </Protocol> + </ControlProtocols> + <Extra> + <UI> + <Window name="theme-manager" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="key-editor" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="rc-options-editor" visible="no" x-off="189" y-off="224" x-size="806" y-size="635"/> + <Window name="session-options-editor" visible="no" x-off="0" y-off="235" x-size="697" y-size="366"/> + <Window name="speaker-config" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="about" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="add-routes" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="add-video" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="inspector" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="audio-midi-setup" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="bundle-manager" visible="no" x-off="422" y-off="0" x-size="480" y-size="240"/> + <Window name="locations" visible="no" x-off="0" y-off="25" x-size="857" y-size="487"/> + <Window name="big-clock" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="audio-connection-manager" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> + <Window name="midi-connection-manager" visible="no" x-off="304" y-off="427" x-size="940" y-size="811"/> + <Window name="R-27-46" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-27-49" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-27-50" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-27-46" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-27-49" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-27-50" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-187-206" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-187-209" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-187-210" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-187-222" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-187-206" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-187-209" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-187-210" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-187-222" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-252" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-255" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-256" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-329" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-284" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-287" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-288" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-336" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-316" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-319" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-320" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-343" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-233-252" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-233-255" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-233-256" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-233-329" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-265-284" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-265-287" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-265-288" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-265-336" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-297-316" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-297-319" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-297-320" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-297-343" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-360" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-233-360" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-265-360" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-265-360" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-233-378" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-233-378" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="yes"/> + <Window name="M-265-398" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-265-398" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="yes"/> + <Window name="M-297-418" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-297-418" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-297-472" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-297-472" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="yes"/> + <Window name="M-513-539" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-532" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-535" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-536" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="M-513-544" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-513-539" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-513-532" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-513-535" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-513-536" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <Window name="R-513-544" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="no"/> + <GUIObjectState> + <Object id="route 27" color="45714:47381:14193"/> + <Object id="rtav 27" height="72" visible="1"/> + <Object id="automation 48" height="72" visible="0"/> + <Object id="automation 35" height="72" visible="0"/> + <Object id="automation 39" height="72" visible="0"/> + <Object id="strip 27" visible="1" strip-width="Wide"> + <Object id="processor 46"/> + </Object> + <Object id="route 187" color="46700:24654:17730"/> + <Object id="strip 187" visible="1" strip-width="Wide"> + <Object id="processor 206"/> + </Object> + <Object id="rtav 187" height="72" visible="1"/> + <Object id="automation 208" height="72" visible="0"/> + <Object id="automation 195" height="72" visible="0"/> + <Object id="automation 199" height="72" visible="0"/> + <Object id="route_group 232" color="37683:13926:15342"/> + <Object id="route 233" color="13948:734:41979"/> + <Object id="route 265" color="42838:10418:3737"/> + <Object id="route 297" color="3314:45777:47807"/> + <Object id="strip 233" visible="1" strip-width="Wide"> + <Object id="processor 252"/> + <Object id="processor 360"/> + <Object id="processor 378"/> + </Object> + <Object id="strip 265" visible="1" strip-width="Wide"> + <Object id="processor 284"/> + <Object id="processor 360"/> + <Object id="processor 398"/> + </Object> + <Object id="strip 297" visible="1" strip-width="Wide"> + <Object id="processor 316"/> + <Object id="processor 360"/> + <Object id="processor 418"/> + <Object id="processor 472"/> + </Object> + <Object id="rtav 233" height="72" visible="1"/> + <Object id="automation 254" height="72" visible="0"/> + <Object id="rtav 265" height="72" visible="1"/> + <Object id="automation 286" height="72" visible="0"/> + <Object id="rtav 297" height="72" visible="1"/> + <Object id="automation 318" height="72" visible="0"/> + <Object id="automation 241" height="72" visible="0"/> + <Object id="automation 245" height="72" visible="0"/> + <Object id="automation 273" height="72" visible="0"/> + <Object id="automation 277" height="72" visible="0"/> + <Object id="automation 305" height="72" visible="0"/> + <Object id="automation 309" height="72" visible="0"/> + <Object id="route 513" color="7262:37314:38032"/> + <Object id="strip 513" visible="1" strip-width="Wide"> + <Object id="processor 532"/> + </Object> + <Object id="rtav 513" height="72" visible="1"/> + <Object id="automation 534" height="72" visible="0"/> + <Object id="automation 521" height="72" visible="0"/> + <Object id="automation 525" height="72" visible="0"/> + </GUIObjectState> + </UI> + <Videomonitor active="no"/> + </Extra> +</Session> diff --git a/.config/compton.conf b/.config/compton.conf new file mode 100644 index 0000000..378058e --- /dev/null +++ b/.config/compton.conf @@ -0,0 +1,114 @@ +# Shadow +shadow = true; # Enabled client-side shadows on windows. +no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows. +no-dnd-shadow = true; # Don't draw shadows on DND windows. +clear-shadow = true; # Zero the part of the shadow's mask behind the + # window. Fix some weirdness with ARGB windows. +shadow-radius = 7; # The blur radius for shadows. (default 12) +shadow-offset-x = -7; # The left offset for shadows. (default -15) +shadow-offset-y = -7; # The top offset for shadows. (default -15) +# shadow-opacity = 0.7; # The translucency for shadows. (default .75) +# shadow-red = 0.0; # Red color value of shadow. (0.0 - 1.0, defaults to 0) +# shadow-green = 0.0; # Green color value of shadow. (0.0 - 1.0, defaults to 0) +# shadow-blue = 0.0; # Blue color value of shadow. (0.0 - 1.0, defaults to 0) +shadow-exclude = [ + "n:e:Notification", + "class_g = 'conky'", + "_GTK_FRAME_EXTENTS@:c", + "_NET_WM_OPAQUE_REGION@:c" +]; # Exclude conditions for shadows. + +# shadow-exclude = "n:e:Notification"; +shadow-ignore-shaped = true; # Avoid drawing shadow on all shaped windows + # (see also: --detect-rounded-corners) + +# Opacity +menu-opacity = 0.9; # The opacity for menus. (default 1.0) +inactive-opacity = 0.95; # Default opacity of inactive windows. (0.0 - 1.0) +# active-opacity = 0.8; # Default opacity for active windows. (0.0 - 1.0) +# frame-opacity = 0.8; # Opacity of window titlebars and borders. (0.1 - 1.0) +# inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides + # value of _NET_WM_OPACITY. Bad choice. +alpha-step = 0.06; # XRender backend: Step size for alpha pictures. Increasing + # it may result in less X resource usage, + # Yet fading may look bad. +# inactive-dim = 0.2; # Dim inactive windows. (0.0 - 1.0) +# inactive-dim-fixed = true; # Do not let dimness adjust based on window opacity. +# blur-background = true; # Blur background of transparent windows. + # Bad performance with X Render backend. + # GLX backend is preferred. +# blur-background-frame = true; # Blur background of opaque windows with transparent + # frames as well. +blur-background-fixed = false; # Do not let blur radius adjust based on window opacity. +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "name *= 'VLC'", + "name *= 'Firefox'", + "name *= 'Vimperator'", + "name *= 'MPlayer'" +]; +# Exclude conditions for background blur. + +# Fading +fading = true; # Fade windows during opacity changes. +# fade-delta = 30; # The time between steps in a fade in milliseconds. (default 10). +fade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028). +fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03). +# no-fading-openclose = true; # Avoid fade windows in/out when opening/closing. +fade-exclude = [ + "name *= 'VLC'", + "name *= 'Firefox'", + "name *= 'Vimperator'", + "name *= 'MPlayer'" +]; # Exclude conditions for fading. + +# Other +backend = "glx" # Backend to use: "xrender" or "glx". GLX backend is typically + # much faster but depends on a sane driver. +mark-wmwin-focused = true; # Try to detect WM windows and mark them as active. +mark-ovredir-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus). +use-ewmh-active-win = false; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused + # instead of using FocusIn/Out events. Usually more reliable but + # depends on a EWMH-compliant WM. +detect-rounded-corners = true; # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. +detect-client-opacity = true; # Detect _NET_WM_OPACITY on client windows, useful for window + # managers not passing _NET_WM_OPACITY of client windows to frame + # windows. +refresh-rate = 0; # For --sw-opti: Specify refresh rate of the screen. 0 for auto. +vsync = "opengl"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc" + # See man page for more details. +dbe = false; # Enable DBE painting mode. Rarely needed. +paint-on-overlay = false; # Painting on X Composite overlay window. Recommended. +sw-opti = false; # Limit compton to repaint at most once every 1 / refresh_rate. + # Incompatible with certain VSync methods. +unredir-if-possible = false; # Unredirect all windows if a full-screen opaque window is + # detected, to maximize performance for full-screen windows. +focus-exclude = [ + "name *= 'VLC'", + "name *= 'Firefox'", + "name *= 'Vimperator'", + "name *= 'MPlayer'" +]; # A list of conditions of windows that should always be considered + # focused. +detect-transient = true; # Use WM_TRANSIENT_FOR to group windows, and consider windows in + # the same group focused at the same time. +detect-client-leader = true; # Use WM_CLIENT_LEADER to group windows. +invert-color-include = [ ]; # Conditions for windows to be painted with inverted color. + +# GLX backend # GLX backend fine-tune options. See man page for more info. +# glx-no-stencil = true; # Recommended. +glx-copy-from-front = false; # Useful with --glx-swap-method, +# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync. +# glx-no-rebind-pixmap = true; # Recommended if it works. +glx-swap-method = "undefined"; # See man page. + +# Window type settings +wintypes: +{ + tooltip = { fade = true; shadow = false; opacity = 0.9; focus = true; }; + # fade: Fade the particular type of windows. + # shadow: Give those windows shadow + # opacity: Default opacity for the type of windows. + # focus: Whether to always consider windows of this type focused. +}; diff --git a/.config/conky/bottom b/.config/conky/bottom new file mode 100755 index 0000000..aa2f13b --- /dev/null +++ b/.config/conky/bottom @@ -0,0 +1,47 @@ +use_xft yes +xftfont 123:size=8 +xftalpha 0.1 +background true +update_interval 0.1 +total_run_times 0 +own_window yes +own_window_type override +own_window_argb_visual true +own_window_argb_value 100 +own_window_hints undecorated,sticky,below,skip_taskbar,skip_pager +double_buffer yes +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +default_color white +default_shade_color 222222 +default_outline_color green +alignment bottom_left +minimum_size 1920 30 +#maximum_width 160 +gap_x 0 +gap_y -10 +no_buffers yes +uppercase no +cpu_avg_samples 1 +net_avg_samples 1 +override_utf8_locale yes +use_spacer left +color1 EAEAEA +color2 00FF66 +color3 11EAEA +color4 EAEAEA +color5 FFA300 +color6 22FFFF +color7 FF8888 +text_buffer_size 256 +pad_percents 0 +short_units yes +format_human_readable yes +default_bar_size 100 6 +if_up_strictness link +draw_shades yes + +TEXT +${font Terminus:pixelsize=14}${color1} CPU: ${color3}${cpu cpu0}% ${goto 110}${color1}Memory: ${color3}[$memmax] $mem / $buffers / $cached ${goto 440}${color1}HD: ${color3}$diskio ${goto 540}${color1}Network: ${color3}${downspeedf wlp3s0} KB / ${upspeedf wlp3s0} KB ${goto 1750}${color5} ${time %H:%M:%S %d-%m-%Y} diff --git a/.config/conky/right b/.config/conky/right new file mode 100755 index 0000000..b6c4d25 --- /dev/null +++ b/.config/conky/right @@ -0,0 +1,97 @@ +use_xft yes +xftfont 123:size=8 +xftalpha 0.1 +background true +total_run_times 0 +own_window yes +own_window_type override +update_interval 1 +own_window_argb_visual true +own_window_argb_value 100 +own_window_hints undecorated,sticky,below,skip_taskbar,skip_pager +double_buffer yes +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +default_color white +default_shade_color 222222 +default_outline_color green +alignment top_right +minimum_size 100 1020 +#maximum_width 160 +gap_x 0 +gap_y 30 +no_buffers yes +uppercase no +cpu_avg_samples 1 +net_avg_samples 1 +override_utf8_locale yes +use_spacer left +color1 EAEAEA +color2 00FF66 +color3 11EAEA +color4 EAEAEA +color5 FFA300 +color6 22FFFF +color7 FF8888 +text_buffer_size 512 +pad_percents 0 +short_units yes +format_human_readable yes +default_bar_size 115 5 +if_up_strictness link +draw_shades yes + +TEXT +${font Inconsolata:pixelsize=12}${color5} ${kernel} +${color1} ${loadavg} + +${color5} ${time %H:%M:%S %d-%m-%Y} + +${color5} CPU: ${color3}${freq} Mhz +${color5} total: ${color3}${cpubar cpu0} +${color1} 1: ${color3}${cpubar cpu1} +${color1} 2: ${color3}${cpubar cpu2} +${color1} 3: ${color3}${cpubar cpu3} +${color1} 4: ${color3}${cpubar cpu4} +${color1} 5: ${color3}${cpubar cpu5} +${color1} 6: ${color3}${cpubar cpu6} +${color1} 7: ${color3}${cpubar cpu7} +${color1} 8: ${color3}${cpubar cpu8} + +${color5} Memory: ${color3}$memmax +${color1} in use: ${color3}$mem +${color1} buffer: ${color3}$buffers +${color1} cached: ${color3}$cached + +${color5} HD: +${color1}/dev/sda: ${color3}${diskio /dev/sda} +${color1}/dev/sdb: ${color3}${diskio /dev/sdb} + +${color5} Network: +${if_up wlp3s0} +${color1} net: ${color3}${exec iwgetid | cut -d ":" -f2} +${color1} wlp3s0: ${color3}${addr wlp3s0} +${color1} ext: ${color3}${exec dig +short myip.opendns.com @resolver1.opendns.com} +${color1} gway: ${color3}${exec route -n | grep wlp3s0 | grep UG | awk '{print $2}'} +${color1} dns: ${color3}${exec grep "nameserver" /etc/resolv.conf | awk '{print $2}'} +${color1} speed: ${color3}${exec iwconfig wlp3s0 | grep "Bit Rate" | cut -d"=" -f2 | cut -d" " -f1} Mb/s +${color1} frq: ${color3}${exec iwconfig wlp3s0 | grep "Frequency" | cut -d":" -f3 | cut -d " " -f1} GHz +${color1} qual: ${color3}${exec iwconfig wlp3s0 | grep "Quality" | cut -d"=" -f2 | cut -d" " -f1 } +${color1} level: ${color3}${exec iwconfig wlp3s0 | grep "Signal" | cut -d"=" -f3 } +${color1} rate: ${color3}${downspeed wlp3s0} / ${upspeed wlp3s0} +${endif} +${if_up enp0s25} +${color1}enp0s25: ${color3}${addr enp0s25} +${color1} ext: ${color3}${exec dig +short myip.opendns.com @resolver1.opendns.com} +${color1} gway: ${color3}${exec route -n | grep enp0s25 | grep UG |awk '{print $2}'} +${color1} dns: ${color3}${exec grep "nameserver" /etc/resolv.conf | awk '{print $2}'} +${color1} rate: ${color3}${downspeed enp0s25} / ${upspeed enp0s25} +${endif} + +${color5} Process: +${color1}${execi 1 ps ax -o pcpu,comm,%mem --sort=-c | head -n 12 | tail -n 14} + +${color5} Connections: +${color1}${execpi 1 netstat --protocol=inet 2>/dev/null | grep -v localhost | grep ESTABLISHED | head -n 9 | sed -n "s/tcp.*\:.*\ \(.*\)\:\([^ ]*\)\ \(.*\)/ \$\{color2\}\2:\$\{color1\}\1/p" | sort | uniq } diff --git a/.config/conky/side b/.config/conky/side new file mode 100755 index 0000000..830e407 --- /dev/null +++ b/.config/conky/side @@ -0,0 +1,116 @@ +use_xft yes +xftfont 123:size=8 +xftalpha 0.1 +background true +total_run_times 0 +update_interval 1 +own_window yes +own_window_type override +#own_window_type desktop +own_window_argb_visual true +own_window_argb_value 0 +own_window_hints undecorated,sticky,below,skip_taskbar,skip_pager +double_buffer yes +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +#default_color white +#default_shade_color 222222 +#default_outline_color green +alignment top_right +minimum_size 100 1020 +maximum_width 160 +gap_x 0 +gap_y 26 +no_buffers yes +uppercase no +cpu_avg_samples 1 +net_avg_samples 1 +override_utf8_locale yes +#use_spacer left +color1 EAEAEA +color2 00FF66 +color3 11EAEA +color4 EAEAEA +color5 FFA300 +color6 22FFFF +color7 FF8888 +text_buffer_size 512 +pad_percents 0 +short_units yes +format_human_readable yes +default_bar_size 115 5 +if_up_strictness link + +TEXT +${color5} Kernel: ${color1}${kernel} +${color5} Date: ${color1}${time %Y%m%d} +${color5} Time: ${color1}${time %H:%M:%S}\ +\ +${if_existing /etc/hostname trvlr} +${color5} CPU: ${color3}${freq} Mhz +${color1} ${color3}${cpubar cpu1} +${color1} ${color3}${cpubar cpu2} +${color1} ${color3}${cpubar cpu3} +${color1} ${color3}${cpubar cpu4}\ +${endif}\ +${if_existing /etc/hostname dvzrv} +${color5} CPU: ${color3}${freq} Mhz +${color1} ${color3}${cpubar cpu1} +${color1} ${color3}${cpubar cpu2} +${color1} ${color3}${cpubar cpu3} +${color1} ${color3}${cpubar cpu4} +${color1} ${color3}${cpubar cpu5} +${color1} ${color3}${cpubar cpu6} +${color1} ${color3}${cpubar cpu7} +${color1} ${color3}${cpubar cpu8}\ +${endif}\ + +${color5} Load: ${color3}${loadavg} +${color5} Memory: ${color1}$memmax +${color1} in use: ${color3}$mem +${color1} buffer: ${color3}$buffers +${color1} cached: ${color3}$cached +\ +${color5} I/O: +${color1} /dev/sda: ${color3}${diskio /dev/sda} +${if_existing /dev/sdb} +${color1} /dev/sdb: ${color3}${diskio /dev/sdb} +${endif}\ +${if_existing /dev/sdc} +${color1} /dev/sdc: ${color3}${diskio /dev/sdc} +${endif}\ +${if_existing /dev/sdd} +${color1} /dev/sdd: ${color3}${diskio /dev/sdd} +${endif}\ +${if_existing /dev/sde} +${color1} /dev/sde: ${color3}${diskio /dev/sde} +${endif}\ +\ +${color5} Network:\ +${if_up wlp3s0} +${color1} wlp3s0: ${color3}${addr wlp3s0} +${color1} net: ${color3}${exec iwgetid | cut -d ":" -f2} +${color1} ext: ${color3}${exec dig +short myip.opendns.com @resolver1.opendns.com} +${color1} gway: ${color3}${exec route -n | grep wlp3s0 | grep UG | awk '{print $2}'} +${color1} dns: ${color3}${exec grep "nameserver" /etc/resolv.conf | awk '{print $2}'} +${color1} speed: ${color3}${exec iwconfig wlp3s0 | grep "Bit Rate" | cut -d"=" -f2 | cut -d" " -f1} Mb/s +${color1} frq: ${color3}${exec iwconfig wlp3s0 | grep "Frequency" | cut -d":" -f3 | cut -d " " -f1} GHz +${color1} qual: ${color3}${exec iwconfig wlp3s0 | grep "Quality" | cut -d"=" -f2 | cut -d" " -f1 } +${color1} level: ${color3}${exec iwconfig wlp3s0 | grep "Signal" | cut -d"=" -f3 } +${color1} rate: ${color3}${downspeed wlp3s0} / ${upspeed wlp3s0}\ +${endif}\ +${if_up enp0s25} +${color1} enp0s25: ${color3}${addr enp0s25} +${color1} ext: ${color3}${exec dig +short myip.opendns.com @resolver1.opendns.com} +${color1} gway: ${color3}${exec route -n | grep enp0s25 | grep UG |awk '{print $2}'} +${color1} dns: ${color3}${exec grep "nameserver" /etc/resolv.conf | awk '{print $2}'} +${color1} rate: ${color3}${downspeed enp0s25} / ${upspeed enp0s25}\ +${endif}\ + +${color5} Processes: +${color1}${execi 1 ps ax -o pcpu,%mem,comm --sort=-c | head -n 11 | tail -n 10}\ + +${color5} Connections: +${color1}${execpi 1 netstat --protocol=inet 2>/dev/null | grep -v localhost | grep ESTABLISHED | head -n 10 | sed -n "s/tcp.*\:.*\ \(.*\)\:\([^ ]*\)\ \(.*\)/ \$\{color2\}\2:\$\{color1\}\1/p" | sort | uniq }\ diff --git a/.config/conky/top b/.config/conky/top new file mode 100755 index 0000000..257be2a --- /dev/null +++ b/.config/conky/top @@ -0,0 +1,47 @@ +use_xft yes +xftfont 123:size=8 +xftalpha 0.1 +background true +update_interval 0.1 +total_run_times 0 +own_window yes +own_window_type override +own_window_argb_visual true +own_window_argb_value 100 +own_window_hints undecorated,sticky,below,skip_taskbar,skip_pager +double_buffer yes +draw_shades no +draw_outline no +draw_borders no +draw_graph_borders no +default_color white +default_shade_color 222222 +default_outline_color green +alignment top_left +minimum_size 1920 15 +#maximum_width 160 +gap_x 0 +gap_y 5 +no_buffers yes +uppercase no +cpu_avg_samples 1 +net_avg_samples 1 +override_utf8_locale yes +use_spacer left +color1 EAEAEA +color2 00FF66 +color3 11EAEA +color4 EAEAEA +color5 FFA300 +color6 22FFFF +color7 FF8888 +text_buffer_size 256 +pad_percents 0 +short_units yes +format_human_readable yes +default_bar_size 40 6 +if_up_strictness link +draw_shades yes + +TEXT +${font Terminus:pixelsize=14}${color2}[ ${color3}${exec ~/ownCloud/sys-pref/conky-helpers/get-tag.sh} ${color5}${exec ~/ownCloud/sys-pref/conky-helpers/get-layout.sh}${color2} ]${color1} ${goto 500}Music: ${color1}[ ${color5}${mpd_elapsed}${color1} / ${color5}${mpd_length}${color1} ] ${color2}${mpd_status} ${color3}${if_match "${mpd_artist}" == ""}${mpd_file}${endif}${if_match "${mpd_artist}" != ""}${mpd_artist}${color1} - ${color3}${mpd_title}${endif}${image ~/ownCloud/sys-pref/conky-icons/volume.png -s 12x12 -n -p 1584,1}${goto 1605}${color3}${execbar pamixer --get-volume} ${image ~/ownCloud/sys-pref/conky-icons/brightness.png -s 12x12 -n -p 1657,1}${goto 1680}${color3}${execbar xbacklight} diff --git a/.config/crypted-backups b/.config/crypted-backups new file mode 100644 index 0000000..0b6c1b7 --- /dev/null +++ b/.config/crypted-backups @@ -0,0 +1,56 @@ +# Settings for user scripts in /usr/lib/systemd/system/scripts/{backup-*,cleanup-backup}. +# The following environment variables will be made available through a systemd unit file. +# Note: No variable expansion! +# Read more on "EnvironmentFile" and "Environment" in the following systemd man page: man 5 systemd.exec + +## General settings + +# Suffix settings (don't change these) +tar_suffix=".tar.xz" +gpg_suffix=".gpg" +sql_suffix=".sql" + +# The temporary folder to use. +# For security and speed, use tmpfs (your /tmp directory)! +# Defaults to "/tmp/" +# You might want to set it to your user's /tmp directory +# Mind a trailing slash! +# Example: tmp="/tmp/username/" +tmp="/tmp/dave" + +# Your public gpg key, with which to encrypt the backups. +# Make sure that root has this public key its keyring! +# Example: gpg_public_key="your.name@example.com" +gpg_public_key="dave@sleepmap.de" + + +## Cleanup settings + +# Deletes files that are older than the given time (in days) +# Set time in days. Defaults to 90 +older_than=90 +# Set the folder to cleanup. +# Mind a trailing slash! +# Example: cleanup_folder="/some/folder/to/cleanup/" +cleanup_folder="" + + +## User backup settings + +# ~/.mozilla/firefox/<profile> +# Will backup every folder of given user beneath ~/.mozilla/firefox/ separately (ignoring Crash*, profiles.ini, *-backup). +# You don't need to change the source path. +firefox_folder_source=".mozilla/firefox/" +# Set a backup destination for firefox (make sure you're allowed to write in there!) +# Mind a trailing slash! +# Example: firefox_folder_destination="/some/place/to/backup/firefox/to/" +firefox_folder_destination="/mnt/backup/dvzrv/firefox/" + +# Settings for ~/.thunderbird/<profile> backup +# Will backup every folder of given user beneath ~/.thunderbird/ separately (ignoring Crash*, profiles.ini, *-backup). +# You don't need to change the source path. +thunderbird_folder_source=".thunderbird/" +# Set a backup destination for thunderbird (make sure you're allowed to write in there!) +# Mind a trailing slash! +# Example: thunderbird_folder_destination="/some/place/to/backup/thunderbird/to/" +thunderbird_folder_destination="/mnt/backup/dvzrv/thunderbird/" diff --git a/.config/dpms b/.config/dpms new file mode 100644 index 0000000..0a4c29b --- /dev/null +++ b/.config/dpms @@ -0,0 +1,10 @@ +# Config file for bin/adjust_dpms +# The arrays below define the programs to monitor and unset +# screen blanking for. +# Arrays must be of the form array=( program otherprogram ) + +# Pre-compiled programs +programs=( supercollider sclang scsynth ardour-3.5.403 pdextended vlc keepnote ) + +# tmp locations for dpms and screensaver settings +adjust_dpms=/tmp/adjust_dpms diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf new file mode 100644 index 0000000..baef22e --- /dev/null +++ b/.config/fontconfig/fonts.conf @@ -0,0 +1,5 @@ +<?xml version="1.0"?> +<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> +<fontconfig> + <cachedir>~/.local/share/fontconfig</cachedir> +</fontconfig> diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks new file mode 100644 index 0000000..a9c81f4 --- /dev/null +++ b/.config/gtk-3.0/bookmarks @@ -0,0 +1,8 @@ +file:///home/dave/ownCloud ownCloud +file:///home/dave/git +file:///home/dave/Downloads +file:///home/dave/Music +file:///home/dave/ownCloud/photos +file:///home/dave/ownCloud/Notes +file:///home/dave/ownCloud/documents +file:///home/dave/Videos diff --git a/.config/gtk-3.0/gtk.css b/.config/gtk-3.0/gtk.css new file mode 100644 index 0000000..5dead4a --- /dev/null +++ b/.config/gtk-3.0/gtk.css @@ -0,0 +1,10 @@ +.window-frame, .window-frame:backdrop { + box-shadow: 0 0 0 black; + border-style: none; + margin: 0; + border-radius: 0; +} + +.titlebar { + border-radius: 0; +} diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..39ca34a --- /dev/null +++ b/.config/gtk-3.0/settings.ini @@ -0,0 +1,6 @@ +[Settings] +gtk-application-prefer-dark-theme=1 +gtk-fallback-icon-theme = gnome +gtk-recent-files-max-age=0 +gtk-recent-files-limit=0 +#gtk-decoration-layout=menu: diff --git a/.config/khal/khal.conf b/.config/khal/khal.conf new file mode 100644 index 0000000..5e4fa78 --- /dev/null +++ b/.config/khal/khal.conf @@ -0,0 +1,95 @@ +[calendars] + +# SLEEPMAP +[[akt]] +path = ~/.calendars/akt +color = dark magenta + +[[birthdays]] +path = ~/.calendars/contact_birthdays +readonly = True +color = white + +[[concerts]] +path = ~/.calendars/concerts +color = brown + +[[courses]] +path = ~/.calendars/courses +color = light red + +[[flat]] +path = ~/.calendars/flat +color = light blue + +[[live]] +path = ~/.calendars/live +color = light green + +[[private]] +path = ~/.calendars/private +color = dark cyan + +[[unix-pool]] +path = ~/.calendars/unix-pool +color = dark magenta + +[[work]] +path = ~/.calendars/work +color = dark magenta + +# AKT +[[ak]] +path = ~/.calendars/ak_shared_by_mvoigt +color = dark magenta + +[[grossesstudio]] +path = ~/.calendars/grossesstudio_shared_by_mvoigt +color = brown + +[[kleinesstudio]] +path = ~/.calendars/kleinesstudio_shared_by_mvoigt +color = dark red + +[[labs]] +path = ~/.calendars/labs_shared_by_mvoigt +color = light grey + +[[rechencluster]] +path = ~/.calendars/rechencluster_shared_by_mvoigt +color = light grey + +[[studioausleihe]] +path = ~/.calendars/studioausleihe_shared_by_mvoigt +color = light red + +[[studiotermine]] +path = ~/.calendars/studiotermine_shared_by_mvoigt +color = dark red + +[[urlaub]] +path = ~/.calendars/akurlaub_shared_by_mvoigt +color = yellow + + +[sqlite] +path = ~/.config/khal/khal.db + +[locale] +local_timezone = Europe/Berlin +default_timezone = Europe/Berlin + +timeformat = %H:%M +dateformat = %d.%m. +longdateformat = %d.%m.%Y +datetimeformat = %d.%m. %H:%M +longdatetimeformat = %d.%m.%Y %H:%M + +firstweekday = 0 +weeknumbers = left + +[default] +default_command = agenda +default_calendar = private +# in agenda/calendar display, shows all days even if there is no event +show_all_days = False diff --git a/.config/khard/khard.conf b/.config/khard/khard.conf new file mode 100644 index 0000000..9a92f3b --- /dev/null +++ b/.config/khard/khard.conf @@ -0,0 +1,33 @@ +[general] +editor = /usr/bin/vim +merge_editor = /usr/bin/vimdiff +default_country = Germany +default_action = list +show_nicknames = yes + +[addressbooks] +#SLEEPMAP +[[bands]] +path = ~/.contacts/bands/ + +[[private]] +path = ~/.contacts/private/ + +[[services]] +path = ~/.contacts/services/ + +[[unixpool]] +path = ~/.contacts/unixpool/ + +[[venues]] +path = ~/.contacts/venues/ + +#TU-BERLIN +[[exteam]] +path = ~/.contacts/exteam + +[[studio]] +path = ~/.contacts/studio/ + +[[team]] +path = ~/.contacts/team diff --git a/.config/linuxsampler.org/Qsampler.conf b/.config/linuxsampler.org/Qsampler.conf new file mode 100644 index 0000000..bb420d0 --- /dev/null +++ b/.config/linuxsampler.org/Qsampler.conf @@ -0,0 +1,63 @@ +[Geometry] +qsamplerInstrumentListForm\x=1 +qsamplerInstrumentListForm\y=25 +qsamplerInstrumentListForm\width=720 +qsamplerInstrumentListForm\height=340 +qsamplerInstrumentListForm\visible=true +qsamplerDeviceForm\x=0 +qsamplerDeviceForm\y=0 +qsamplerDeviceForm\width=530 +qsamplerDeviceForm\height=488 +qsamplerDeviceForm\visible=false +qsamplerMainForm\x=961 +qsamplerMainForm\y=25 +qsamplerMainForm\width=958 +qsamplerMainForm\height=1174 +qsamplerMainForm\visible=true + +[Layout] +DockWindows=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\x3\0\0\x3\xbe\0\0\0\xd4\xfc\x1\0\0\0\x1\xfb\0\0\0 \0q\0s\0\x61\0m\0p\0l\0\x65\0r\0M\0\x65\0s\0s\0\x61\0g\0\x65\0s\x1\0\0\0\0\0\0\x3\xbe\0\0\0\x46\0\xff\xff\xff\0\0\x3\xbe\0\0\x3t\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x3\0\0\0\x16\0\x66\0i\0l\0\x65\0T\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x16\0\x65\0\x64\0i\0t\0T\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\0\xf3\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x1e\0\x63\0h\0\x61\0n\0n\0\x65\0l\0s\0T\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\x1\xc7\xff\xff\xff\xff\0\0\0\0\0\0\0\0) + +[Program] +Version=0.2.3 + +[Options] +Server\ServerHost=localhost +Server\ServerPort=8888 +Server\ServerTimeout=1000 +Server\ServerStart=true +Server\ServerCmdLine=linuxsampler +Server\StartDelay=3 +Logging\MessagesLog=false +Logging\MessagesLogPath=qsampler.log +Display\DisplayFont=",9,-1,5,50,0,0,0,0,0" +Display\DisplayEffect=true +Display\AutoRefresh=true +Display\AutoRefreshTime=1000 +Display\MaxVolume=100 +Display\MessagesFont="Sans Serif,9,-1,5,50,0,0,0,0,0" +Display\MessagesLimit=true +Display\MessagesLimitLines=1000 +Display\ConfirmRemove=true +Display\KeepOnTop=true +Display\StdoutCapture=true +Display\CompletePath=true +Display\MaxRecentFiles=5 +Display\BaseFontSize=0 +Display\InstrumentNames=true +View\Menubar=true +View\Toolbar=true +View\Statusbar=true +View\AutoArrange=true + +[Default] +SessionDir= +InstrumentDir= +EngineName= +AudioDriver= +MidiDriver= +MidiMap=1 +MidiBank=0 +MidiProg=0 +Volume=100 +Loadmode=0 diff --git a/.config/mc/ini b/.config/mc/ini new file mode 100644 index 0000000..63b44a9 --- /dev/null +++ b/.config/mc/ini @@ -0,0 +1,141 @@ +[Midnight-Commander] +verbose=1 +pause_after_run=1 +shell_patterns=1 +auto_save_setup=1 +preallocate_space=0 +auto_menu=0 +use_internal_view=1 +use_internal_edit=1 +clear_before_exec=1 +confirm_delete=1 +confirm_overwrite=1 +confirm_execute=0 +confirm_history_cleanup=1 +confirm_exit=0 +confirm_directory_hotlist_delete=1 +safe_delete=0 +mouse_repeat_rate=100 +double_click_speed=250 +use_8th_bit_as_meta=0 +confirm_view_dir=0 +mouse_move_pages_viewer=1 +mouse_close_dialog=0 +fast_refresh=0 +drop_menus=0 +wrap_mode=1 +old_esc_mode=0 +old_esc_mode_timeout=1000000 +cd_symlinks=1 +show_all_if_ambiguous=0 +max_dirt_limit=10 +use_file_to_guess_type=1 +alternate_plus_minus=0 +only_leading_plus_minus=1 +show_output_starts_shell=0 +xtree_mode=0 +num_history_items_recorded=60 +file_op_compute_totals=1 +classic_progressbar=1 +vfs_timeout=60 +ftpfs_directory_timeout=900 +use_netrc=1 +ftpfs_retry_seconds=30 +ftpfs_always_use_proxy=0 +ftpfs_use_passive_connections=1 +ftpfs_use_passive_connections_over_proxy=0 +ftpfs_use_unix_list_options=1 +ftpfs_first_cd_then_ls=1 +fish_directory_timeout=900 +editor_tab_spacing=8 +editor_word_wrap_line_length=72 +editor_fill_tabs_with_spaces=0 +editor_return_does_auto_indent=1 +editor_backspace_through_tabs=0 +editor_fake_half_tabs=1 +editor_option_save_mode=0 +editor_option_save_position=1 +editor_option_auto_para_formatting=0 +editor_option_typewriter_wrap=0 +editor_edit_confirm_save=1 +editor_syntax_highlighting=1 +editor_persistent_selections=1 +editor_drop_selection_on_copy=1 +editor_cursor_beyond_eol=0 +editor_cursor_after_inserted_block=0 +editor_visible_tabs=1 +editor_visible_spaces=1 +editor_line_state=0 +editor_simple_statusbar=0 +editor_check_new_line=0 +editor_show_right_margin=0 +editor_group_undo=0 +editor_ask_filename_before_edit=0 +nice_rotating_dash=1 +mcview_remember_file_position=0 +auto_fill_mkdir_name=1 +copymove_persistent_attr=1 +editor_backup_extension=~ +editor_filesize_threshold=64M +editor_stop_format_chars=-+*\\,.;:&> +mcview_eof= +ignore_ftp_chattr_errors=true +skin=default + +[Layout] +message_visible=1 +keybar_visible=1 +xterm_title=1 +output_lines=0 +command_prompt=1 +menubar_visible=1 +free_space=1 +horizontal_split=0 +vertical_equal=1 +left_panel_size=136 +horizontal_equal=1 +top_panel_size=1 + +[Misc] +timeformat_recent=%b %e %H:%M +timeformat_old=%b %e %Y +ftp_proxy_host=gate +ftpfs_password=anonymous@ +display_codepage=UTF-8 +source_codepage=Other_8_bit +autodetect_codeset= +clipboard_store= +clipboard_paste= + +[Colors] +base_color= +xterm-termite= +color_terminals= + +xterm-color= + +[Panels] +show_mini_info=true +kilobyte_si=false +mix_all_files=false +show_backups=true +show_dot_files=true +fast_reload=false +fast_reload_msg_shown=false +mark_moves_down=true +reverse_files_only=true +auto_save_setup_panels=false +navigate_with_arrows=false +panel_scroll_pages=true +mouse_move_pages=true +filetype_mode=true +permission_mode=false +torben_fj_mode=false +quick_search_mode=2 +select_flags=6 + +[Panelize] +Find *.orig after patching=find . -name \\*.orig -print +Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print +Find rejects after patching=find . -name \\*.rej -print +Modified git files=git ls-files --modified diff --git a/.config/mc/panels.ini b/.config/mc/panels.ini new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.config/mc/panels.ini diff --git a/.config/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..85dbc4f --- /dev/null +++ b/.config/mimeapps.list @@ -0,0 +1,25 @@ +[Default Applications] +x-scheme-handler/http=firefox.desktop +x-scheme-handler/https=firefox.desktop +x-scheme-handler/ftp=firefox.desktop +x-scheme-handler/chrome=firefox.desktop +text/html=firefox.desktop +application/x-extension-htm=firefox.desktop +application/x-extension-html=firefox.desktop +application/x-extension-shtml=firefox.desktop +application/xhtml+xml=firefox.desktop +application/x-extension-xhtml=firefox.desktop +application/x-extension-xht=firefox.desktop + +[Added Associations] +x-scheme-handler/http=firefox.desktop; +x-scheme-handler/https=firefox.desktop; +x-scheme-handler/ftp=firefox.desktop; +x-scheme-handler/chrome=firefox.desktop; +text/html=firefox.desktop; +application/x-extension-htm=firefox.desktop; +application/x-extension-html=firefox.desktop; +application/x-extension-shtml=firefox.desktop; +application/xhtml+xml=firefox.desktop; +application/x-extension-xhtml=firefox.desktop; +application/x-extension-xht=firefox.desktop; diff --git a/.config/mpd/folders/Artists b/.config/mpd/folders/Artists new file mode 120000 index 0000000..a2225ce --- /dev/null +++ b/.config/mpd/folders/Artists @@ -0,0 +1 @@ +/mnt/music/Artists
\ No newline at end of file diff --git a/.config/mpd/folders/Various Artists b/.config/mpd/folders/Various Artists new file mode 120000 index 0000000..d21d487 --- /dev/null +++ b/.config/mpd/folders/Various Artists @@ -0,0 +1 @@ +/mnt/music/Various Artists
\ No newline at end of file diff --git a/.config/mpd/mpd-marx.conf b/.config/mpd/mpd-marx.conf new file mode 100644 index 0000000..4e32dfc --- /dev/null +++ b/.config/mpd/mpd-marx.conf @@ -0,0 +1,31 @@ +music_directory "/home/dave/.config/mpd/folders" +playlist_directory "/home/dave/.config/mpd/playlists" +db_file "/home/dave/.config/mpd/mpd.db" +log_file "/home/dave/.config/mpd/mpd.log" +pid_file "/home/dave/.config/mpd/mpd.pid" +state_file "/home/dave/.config/mpd/mpdstate" +bind_to_address "127.0.0.1" +port "6600" +gapless_mp3_playback "yes" +save_absolute_paths_in_playlists "yes" +#zeroconf_enabled "yes" +#zeroconf_name "dvzrv mpd" + +input { + plugin "curl" +} + +audio_output { + type "pulse" + name "mpd" + mixer_type "software" + server "marx.ak.tu-berlin.de" #optional +} + +audio_output { + type "fifo" + name "mpd_fifo" + path "/run/user/1000/mpd/fifo" + format "44100:16:2" +} + diff --git a/.config/mpd/mpd-s4.conf b/.config/mpd/mpd-s4.conf new file mode 100644 index 0000000..45207d9 --- /dev/null +++ b/.config/mpd/mpd-s4.conf @@ -0,0 +1,31 @@ +music_directory "/home/dave/.config/mpd/folders" +playlist_directory "/home/dave/.config/mpd/playlists" +db_file "/home/dave/.config/mpd/mpd.db" +log_file "/home/dave/.config/mpd/mpd.log" +pid_file "/home/dave/.config/mpd/mpd.pid" +state_file "/home/dave/.config/mpd/mpdstate" +bind_to_address "127.0.0.1" +port "6600" +gapless_mp3_playback "yes" +save_absolute_paths_in_playlists "yes" +#zeroconf_enabled "yes" +#zeroconf_name "dvzrv mpd" + +input { + plugin "curl" +} + +audio_output { + type "pulse" + name "mpd" + mixer_type "software" + server "s4" #optional +} + +audio_output { + type "fifo" + name "mpd_fifo" + path "/run/user/1000/mpd/fifo" + format "44100:16:2" +} + diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf new file mode 100644 index 0000000..294d26a --- /dev/null +++ b/.config/mpd/mpd.conf @@ -0,0 +1,30 @@ +music_directory "/home/dave/.config/mpd/folders" +playlist_directory "/home/dave/.config/mpd/playlists" +db_file "/home/dave/.config/mpd/mpd.db" +log_file "/home/dave/.config/mpd/mpd.log" +pid_file "/home/dave/.config/mpd/mpd.pid" +state_file "/home/dave/.config/mpd/mpdstate" +bind_to_address "127.0.0.1" +port "6600" +gapless_mp3_playback "yes" +save_absolute_paths_in_playlists "yes" +#zeroconf_enabled "yes" +#zeroconf_name "dvzrv mpd" + +input { + plugin "curl" +} + +audio_output { + type "pulse" + name "mpd" + mixer_type "software" +} + +audio_output { + type "fifo" + name "mpd_fifo" + path "/run/user/1000/mpd/fifo" + format "44100:16:2" +} + diff --git a/.config/patchagerc b/.config/patchagerc new file mode 100644 index 0000000..ff1a691 --- /dev/null +++ b/.config/patchagerc @@ -0,0 +1,19 @@ +window_location 0 0 +window_size 958 1174 +zoom_level 0.960316 +font_size 11 +show_toolbar 1 +sprung_layout 1 +module_position "Midi Through" input 587 147 +module_position "Midi Through" output 102 147 +module_position "a2j" input 490 6322 +module_position "a2j" output 8 4787 +module_position "ardour" inputoutput 519 2431.5 +module_position "firewire_pcm" input 353.351 259.03 +module_position "firewire_pcm" output 45 2551.5 +module_position "gx_head_amp" inputoutput 726.598 297.735 +module_position "gx_head_fx" inputoutput 836.681 368.929 +module_position "nanoKONTROL2" input 579 77 +module_position "nanoKONTROL2" output 94 77 +module_position "nanoPAD2" input 595 8 +module_position "nanoPAD2" output 110 8 diff --git a/.config/profile-cleaner.conf b/.config/profile-cleaner.conf new file mode 100644 index 0000000..470cc00 --- /dev/null +++ b/.config/profile-cleaner.conf @@ -0,0 +1,9 @@ +# +# /home/dave/.config/profile-cleaner.conf +# + +# Define the background of your terminal theme here. +# A setting of dark will produce colors that nicely contrast a dark background. +# A setting of light will produce colors that nicely contrast a light background. +COLORS=dark +#COLORS=light diff --git a/.config/psd/.psd.conf b/.config/psd/.psd.conf new file mode 100644 index 0000000..68c26c5 --- /dev/null +++ b/.config/psd/.psd.conf @@ -0,0 +1,67 @@ +# +# $XDG_HOME_CONFIG/psd/psd.conf +# +# For documentation, refer to the psd man page or the wiki page +# https://wiki.archlinux.org/index.php/Profile-sync-daemon + +## NOTE the following: +## To protect data from corruption, in the event that you do make an edit while +## psd is active, any changes made will be applied the next time you start psd. + +# Uncomment and set to "yes" to use overlayfs instead of a full copy to reduce +# the memory costs and to improve sync/unsync operations. Note that your kernel +# MUST have this module available in order to use this mode +# +#USE_OVERLAYFS="no" + +# List browsers separated by spaces to include in the sync. Useful if you do not +# wish to have all possible browser profiles sync'ed which is the default if +# this variable is left commented. +# +# Possible values: +# chromium +# chromium-dev +# conkeror.mozdev.org +# epiphany +# firefox +# firefox-trunk +# google-chrome +# google-chrome-beta +# google-chrome-unstable +# heftig-aurora +# icecat +# inox +# luakit +# midori +# opera +# opera-beta +# opera-developer +# opera-legacy +# otter-browser +# qupzilla +# palemoon +# rekonq +# seamonkey +# vivaldi +# vivaldi-snapshot +# +BROWSERS="firefox chromium" + +# Define where browser profiles will reside in tmpfs if $XDG_RUNTIME_DIR isn't +# defined. This location must be mounted to tmpfs and MUST have permissions +# of at least 700. +# Use NO trailing backslash! +# +# Suggested locations based on distro defaults: +# Arch Linux/Chakra, Fedora, and Gentoo leave this commented out +# Debian 8+ use a setting of "/dev/shm" +# Ubuntu 15.05+ use "/dev/shm" +VOLATILE="/tmp/dave" + +# Uncomment and set to "no" to completely disable the crash recovery feature. +# +# The default is to create crash recovery backups if the system is ungracefully +# powered-down due to a kernel panic, hitting the reset switch, battery going +# dead, etc. Some users keep very diligent backups and don't care to have this +# feature enabled. +#USE_BACKUPS="yes" diff --git a/.config/psd/psd.conf b/.config/psd/psd.conf new file mode 100644 index 0000000..68c26c5 --- /dev/null +++ b/.config/psd/psd.conf @@ -0,0 +1,67 @@ +# +# $XDG_HOME_CONFIG/psd/psd.conf +# +# For documentation, refer to the psd man page or the wiki page +# https://wiki.archlinux.org/index.php/Profile-sync-daemon + +## NOTE the following: +## To protect data from corruption, in the event that you do make an edit while +## psd is active, any changes made will be applied the next time you start psd. + +# Uncomment and set to "yes" to use overlayfs instead of a full copy to reduce +# the memory costs and to improve sync/unsync operations. Note that your kernel +# MUST have this module available in order to use this mode +# +#USE_OVERLAYFS="no" + +# List browsers separated by spaces to include in the sync. Useful if you do not +# wish to have all possible browser profiles sync'ed which is the default if +# this variable is left commented. +# +# Possible values: +# chromium +# chromium-dev +# conkeror.mozdev.org +# epiphany +# firefox +# firefox-trunk +# google-chrome +# google-chrome-beta +# google-chrome-unstable +# heftig-aurora +# icecat +# inox +# luakit +# midori +# opera +# opera-beta +# opera-developer +# opera-legacy +# otter-browser +# qupzilla +# palemoon +# rekonq +# seamonkey +# vivaldi +# vivaldi-snapshot +# +BROWSERS="firefox chromium" + +# Define where browser profiles will reside in tmpfs if $XDG_RUNTIME_DIR isn't +# defined. This location must be mounted to tmpfs and MUST have permissions +# of at least 700. +# Use NO trailing backslash! +# +# Suggested locations based on distro defaults: +# Arch Linux/Chakra, Fedora, and Gentoo leave this commented out +# Debian 8+ use a setting of "/dev/shm" +# Ubuntu 15.05+ use "/dev/shm" +VOLATILE="/tmp/dave" + +# Uncomment and set to "no" to completely disable the crash recovery feature. +# +# The default is to create crash recovery backups if the system is ungracefully +# powered-down due to a kernel panic, hitting the reset switch, battery going +# dead, etc. Some users keep very diligent backups and don't care to have this +# feature enabled. +#USE_BACKUPS="yes" diff --git a/.config/pulse/client.conf b/.config/pulse/client.conf new file mode 100644 index 0000000..bb94907 --- /dev/null +++ b/.config/pulse/client.conf @@ -0,0 +1,3 @@ +autospawn = no +extra-arguments = --log-target=syslog -vvvv + diff --git a/.config/redshift.conf b/.config/redshift.conf new file mode 100644 index 0000000..1cdedf3 --- /dev/null +++ b/.config/redshift.conf @@ -0,0 +1,25 @@ +; Global settings +[redshift] +temp-day=6500 +temp-night=4700 +brightness-day=1.0 +brightness-night=0.92 +transition=0 +gamma-day=0.97:0.94:0.95 +gamma-night=0.93:0.9:0.88 +location-provider=manual +adjustment-method=randr + +; The location provider and adjustment method settings +; are in their own sections. +[manual] +; Berlin +lat=52.31 +lon=13.23 + +; In this example screen 1 is adjusted by vidmode. Note +; that the numbering starts from 0, so this is actually +; the second screen. +[randr] +screen=0 +;screen=1 diff --git a/.config/synergy-s4.conf b/.config/synergy-s4.conf new file mode 100644 index 0000000..6d7c579 --- /dev/null +++ b/.config/synergy-s4.conf @@ -0,0 +1,27 @@ +# sample synergy configuration file +# +# comments begin with the # character and continue to the end of +# line. comments may appear anywhere the syntax permits. + +section: screens + dvzrv: + s4: + s5: + c75: +end + +section: links + dvzrv: + right= s4 + left = c75 + + s4: + right = s5 + left = dvzrv + + s5: + left = s4 + + c75: + right = dvzrv +end diff --git a/.config/synergy-s5.conf b/.config/synergy-s5.conf new file mode 100644 index 0000000..bd87aa0 --- /dev/null +++ b/.config/synergy-s5.conf @@ -0,0 +1,22 @@ +# sample synergy configuration file +# +# comments begin with the # character and continue to the end of +# line. comments may appear anywhere the syntax permits. + +section: screens + s4: + s5: + dvzrv: +end + +section: links + s4: + right = dvzrv + + s5: + left = dvzrv + + dvzrv: + left = s4 + right = s5 +end diff --git a/.config/terminology/config/standard/base.cfg b/.config/terminology/config/standard/base.cfg Binary files differnew file mode 100644 index 0000000..ad4940a --- /dev/null +++ b/.config/terminology/config/standard/base.cfg diff --git a/.config/termite/config b/.config/termite/config new file mode 100644 index 0000000..16d01da --- /dev/null +++ b/.config/termite/config @@ -0,0 +1,72 @@ +[options] +scroll_on_output = false +scroll_on_keystroke = true +audible_bell = false +mouse_autohide = false +allow_bold = true +dynamic_title = true +urgent_on_bell = true +clickable_url = true +font = Inconsolata 10 +scrollback_lines = 10000 +search_wrap = true +icon_name = terminal +#geometry = 640x480 + +# "system", "on" or "off" +cursor_blink = system + +# "block", "underline" or "ibeam" +cursor_shape = ibeam + +# $BROWSER is used by default +browser = firefox + +# set size hints for the window +#size_hints = false + +# emit escape sequences for other keys modified by Control +#modify_other_keys = false + +[colors] +#cursor = #dcdccc +foreground = #dcdccc +foreground_bold = #ffffff +background = #000000 + +# 20% background transparency (requires a compositor) +background = rgba(00, 00, 00, 0.79) + +# if unset, will reverse foreground and background +highlight = #2f2f2f + +# colors from color0 to color254 can be set +color0 = #3f3f3f +color1 = #705050 +color2 = #60b48a +color3 = #dfaf8f +color4 = #506070 +color5 = #dc8cc3 +color6 = #8cd0d3 +color7 = #dcdccc +color8 = #709080 +color9 = #dca3a3 +color10 = #c3bf9f +color11 = #f0dfaf +color12 = #94bff3 +color13 = #ec93d3 +color14 = #93e0e3 +color15 = #ffffff + +[hints] +#font = Monospace 12 +#foreground = #dcdccc +#background = #3f3f3f +#active_foreground = #e68080 +#active_background = #3f3f3f +#padding = 2 +#border = #3f3f3f +#border_width = 0.5 +#roundness = 2.0 + +# vim: ft=dosini cms=#%s diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..35371ca --- /dev/null +++ b/.config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/Desktop" +XDG_DOWNLOAD_DIR="$HOME/Downloads" +XDG_PUBLICSHARE_DIR="$HOME/ownCloud" +XDG_DOCUMENTS_DIR="$HOME/ownCloud/documents" +XDG_MUSIC_DIR="$HOME/Music" +XDG_PICTURES_DIR="$HOME/ownCloud/photos" +XDG_VIDEOS_DIR="$HOME/Videos" +XDG_TEMPLATES_DIR="$HOME/ownCloud/Notes" @@ -0,0 +1,26 @@ +--langdef=js +--langmap=js:.js +--regex-JavaScript=/([A-Za-z0-9._$\(\)]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/m,method/ +--regex-JavaScript=/([A-Za-z0-9._$\#\(\)]+)[ \t]*[:][ \t]*([A-Za-z0-9._\-\#\'\"]+)[ \t]*/\1/p,property/ +--regex-JavaScript=/([A-Za-z0-9._$\#\(\)]+)[ \t]*[:][ \t]*([A-Za-z0-9\'\"._\-\#\(]+)[ \t]*\{/\1/p,property/ +--regex-JavaScript=/var ([A-Za-z0-9._$\#]+)[ \t]*[=][ \t]*([A-Za-z0-9._'"\$\#\[\{]+)[,|;]/\1/v,variable/ +--regex-JavaScript=/([A-Za-z0-9._$\#]+)[ \t]*[=][ \t]*([A-Za-z0-9._'"\$\#]+)extend\(/\1/c,class/ + +--regex-ruby=/(^|[:;])[ \t]*([A-Z][[:alnum:]_]+) *=/\2/c,class,constant/ +--regex-ruby=/(^|;)[ \t]*(has_many|belongs_to|has_one|has_and_belongs_to_many)\(? *:([[:alnum:]_]+)/\3/f,function,association/ +--regex-ruby=/(^|;)[ \t]*(named_)?scope\(? *:([[:alnum:]_]+)/\3/f,function,named_scope/ +--regex-ruby=/(^|;)[ \t]*expose\(? *:([[:alnum:]_]+)/\2/f,function,exposure/ +--regex-ruby=/(^|;)[ \t]*event\(? *:([[:alnum:]_]+)/\2/f,function,aasm_event/ +--regex-ruby=/(^|;)[ \t]*event\(? *:([[:alnum:]_]+)/\2!/f,function,aasm_event/ +--regex-ruby=/(^|;)[ \t]*event\(? *:([[:alnum:]_]+)/\2?/f,function,aasm_event/ + +--langdef=markdown +--langmap=markdown:.md.markdown.mdown.mkd.mkdn +--regex-markdown=/^#[ \t]+(.*)/\1/h,heading1/ +--regex-markdown=/^##[ \t]+(.*)/\1/h,heading2/ +--regex-markdown=/^###[ \t]+(.*)/\1/h,heading3/ + +--langdef=coffee +--langmap=coffee:.coffee +--regex-coffee=/^[ \t]*([A-Za-z.]+)[ \t]+=.*->.*$/\1/f,function/ +--regex-coffee=/^[ \t]*([A-Za-z.]+)[ \t]+=[^->\n]*$/\1/v,variable/ diff --git a/.dircolors b/.dircolors new file mode 100644 index 0000000..2e95ad9 --- /dev/null +++ b/.dircolors @@ -0,0 +1,218 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copying and distribution of this file, with or without modification, +# are permitted provided the copyright notice and this notice are preserved. +# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the +# slackware version of dircolors) are recognized but ignored. +# Below, there should be one TERM entry for each termtype that is colorizable +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM eterm-color +TERM gnome +TERM gnome-256color +TERM hurd +TERM jfbterm +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mach-gnu-color +TERM mlterm +TERM putty +TERM putty-256color +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode-256color +TERM rxvt-unicode256 +TERM screen +TERM screen-256color +TERM screen-256color-bce +TERM screen-bce +TERM screen-w +TERM screen.Eterm +TERM screen.rxvt +TERM screen.linux +TERM st +TERM st-256color +TERM terminator +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian +TERM xterm-termite +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +#NORMAL 00 # no color code at all +#FILE 00 # regular file: use no color at all +RESET 0 # reset to "normal" color +DIR 01;34 # directory +LINK 01;36 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +MULTIHARDLINK 00 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +# This is for files with execute permission: +EXEC 01;32 +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') +# If you use DOS-style suffixes, you may want to uncomment the following: +#.cmd 01;32 # executables (bright green) +#.exe 01;32 +#.com 01;32 +#.btm 01;32 +#.bat 01;32 +# Or if you want to colorize scripts even if they do not have the +# executable bit actually set. +#.sh 01;32 +#.csh 01;32 + # archives or compressed (bright red) +.tar 01;31 +.tgz 01;31 +.arc 01;31 +.arj 01;31 +.taz 01;31 +.lha 01;31 +.lz4 01;31 +.lzh 01;31 +.lzma 01;31 +.tlz 01;31 +.txz 01;31 +.tzo 01;31 +.t7z 01;31 +.zip 01;31 +.z 01;31 +.Z 01;31 +.dz 01;31 +.gz 01;31 +.lrz 01;31 +.lz 01;31 +.lzo 01;31 +.xz 01;31 +.bz2 01;31 +.bz 01;31 +.tbz 01;31 +.tbz2 01;31 +.tz 01;31 +.deb 01;31 +.rpm 01;31 +.jar 01;31 +.war 01;31 +.ear 01;31 +.sar 01;31 +.rar 01;31 +.alz 01;31 +.ace 01;31 +.zoo 01;31 +.cpio 01;31 +.7z 01;31 +.rz 01;31 +.cab 01;31 +# image formats +.jpg 01;35 +.jpeg 01;35 +.gif 01;35 +.bmp 01;35 +.pbm 01;35 +.pgm 01;35 +.ppm 01;35 +.tga 01;35 +.xbm 01;35 +.xpm 01;35 +.tif 01;35 +.tiff 01;35 +.png 01;35 +.svg 01;35 +.svgz 01;35 +.mng 01;35 +.pcx 01;35 +.mov 01;35 +.mpg 01;35 +.mpeg 01;35 +.m2v 01;35 +.mkv 01;35 +.webm 01;35 +.ogm 01;35 +.mp4 01;35 +.m4v 01;35 +.mp4v 01;35 +.vob 01;35 +.qt 01;35 +.nuv 01;35 +.wmv 01;35 +.asf 01;35 +.rm 01;35 +.rmvb 01;35 +.flc 01;35 +.avi 01;35 +.fli 01;35 +.flv 01;35 +.gl 01;35 +.dl 01;35 +.xcf 01;35 +.xwd 01;35 +.yuv 01;35 +.cgm 01;35 +.emf 01;35 +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.axv 01;35 +.anx 01;35 +.ogv 01;35 +.ogx 01;35 +# audio formats +.aac 00;36 +.au 00;36 +.flac 00;36 +.m4a 00;36 +.mid 00;36 +.midi 00;36 +.mka 00;36 +.mp3 00;36 +.mpc 00;36 +.ogg 00;36 +.ra 00;36 +.wav 00;36 +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.axa 00;36 +.oga 00;36 +.spx 00;36 +.xspf 00;36 diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..3a55d72 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,128 @@ +# set your user tokens as environment variables, such as ~/.secrets +# See the README for examples. +[color] + ui = true +[color "branch"] + current = yellow reverse + local = yellow + remote = green +[color "diff"] + meta = yellow bold + frag = magenta bold + old = red + new = green +[alias] + # add + a = add # add + chunkyadd = add --patch # stage commits chunk by chunk + + # via http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/ + snapshot = !git stash save "snapshot: $(date)" && git stash apply "stash@{0}" + snapshots = !git stash list --grep snapshot + + #via http://stackoverflow.com/questions/5188320/how-can-i-get-a-list-of-git-branches-ordered-by-most-recent-commit + recent-branches = !git for-each-ref --count=15 --sort=-committerdate refs/heads/ --format='%(refname:short)' + + # branch + b = branch -v # branch (verbose) + + # commit + c = commit -m # commit with message + ca = commit -am # commit all with message + ci = commit # commit + amend = commit --amend # ammend your last commit + ammend = commit --amend # ammend your last commit + + # checkout + co = checkout # checkout + nb = checkout -b # create and switch to a new branch (mnemonic: "git new branch branchname...") + + # cherry-pick + cp = cherry-pick -x # grab a change from a branch + + # diff + d = diff # diff unstaged changes + dc = diff --cached # diff staged changes + last = diff HEAD^ # diff last committed change + + # log + l = log --graph --date=short + changes = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" --name-status + short = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" + simple = log --pretty=format:\" * %s\" + shortnocolor = log --pretty=format:\"%h %cr %cn %s\" + + # pull + pl = pull # pull + + # push + ps = push # push + + # rebase + rc = rebase --continue # continue rebase + rs = rebase --skip # skip rebase + + # remote + r = remote -v # show remotes (verbose) + + # reset + unstage = reset HEAD # remove files from index (tracking) + uncommit = reset --soft HEAD^ # go back before last commit, with files in uncommitted state + filelog = log -u # show changes to a file + mt = mergetool # fire up the merge tool + + # stash + ss = stash # stash changes + sl = stash list # list stashes + sa = stash apply # apply stash (restore changes) + sd = stash drop # drop stashes (destory changes) + + # status + s = status # status + st = status # status + stat = status # status + + # tag + t = tag -n # show tags with <n> lines of each tag message + + # svn helpers + svnr = svn rebase + svnd = svn dcommit + svnl = svn log --oneline --show-commit +[format] + pretty = format:%C(blue)%ad%Creset %C(yellow)%h%C(green)%d%Creset %C(blue)%s %C(magenta) [%an]%Creset +[mergetool] + prompt = false +[mergetool "mvimdiff"] + cmd="mvim -c 'Gdiff' $MERGED" # use fugitive.vim for 3-way merge + keepbackup=false +[merge] + summary = true + verbosity = 1 + tool = mvimdiff +[apply] + whitespace = nowarn +[branch] + autosetupmerge = true +[push] + # 'git push' will push the current branch to its tracking branch + # the usual default is to push all branches + default = tracking +[core] + autocrlf = false + editor = vim + excludesfile = ~/.yadr/git/gitignore +[advice] + statusHints = false +[diff] + # Git diff will use (i)ndex, (w)ork tree, (c)ommit and (o)bject + # instead of a/b/c/d as prefixes for patches + mnemonicprefix = true + algorithm = patience +[rerere] + # Remember my merges + # http://gitfu.wordpress.com/2008/04/20/git-rerere-rereremember-what-you-did-last-time/ + enabled = true +[user] + email = dave@sleepmap.de + name = David Runge diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39797d3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,378 @@ +# OSX taken from: https://github.com/github/gitignore/blob/master/Global/OSX.gitignore +# ---------------------------------------------------------------------------------------------- +.DS_Store +# Thumbnails +._* +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Windows taken from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +# ---------------------------------------------------------------------------------------------- +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + +# Tags taken from: https://github.com/github/gitignore/blob/master/Global/Tags.gitignore +# ---------------------------------------------------------------------------------------------- +# Ignore tags created by etags and ctags +TAGS +tags + +# Vim taken from: https://github.com/github/gitignore/blob/master/Global/vim.gitignore +# ---------------------------------------------------------------------------------------------- +.*.sw[a-z] +*.un~ +Session.vim + +# SASS +# ---------------------------------------------------------------------------------------------- +.sass-cache + +# Files/folders that appear in my home +# ---------------------------------------------------------------------------------------------- +Desktop/ +Documents/ +Downloads/ +Mail/ +Music/ +Pictures/ +Videos/ +backup/ +bin/pass2offlineimapc +build/ +git/ +make/ +ownCloud/ +svn/ + +.ICEauthority +.Mathematica/ +.Osmos/ +.Skype/ +.TrueCrypt/ +.Xauthority +.android/ +.aprc +.arduino/console +.arduino/recent.txt +.armagetronad/ +.audacity-data/ +.avidemux/ +.bash_history +.bash_login +.bash_logout +.bash_profile +.bashburn_history +.bashrc +.benutzerordnung +.bundle/ +.bzr.log +.cache/ +.calfrc +.calendars +.cddb* +.cdemu-daemon.log +.certs/ +.chromium-bsu +.chromium-bsu-score +.cmake/ +.config/Cadence/ +.config/EgoSoft/ +.config/Fidra/ +.config/ImageMagick/ +.config/MusE/ +.config/Mumble/ +.config/MusicBrainz/ +.config/QtProject.conf +.config/Skype/ +.config/SubDownloader/ +.config/SuperCollider/sessions/ +.config/SuperCollider/startup.scd +.config/Thunar/ +.config/Trolltech.conf +.config/Trolltech/ +.config/ardour3/ardour.bindings +.config/ardour3/Ardour_announcements* +.config/ardour3/recent +.config/ardour3/sfdb +.config/ario +.config/asunder +.config/aurvote +.config/autostart/ +.config/autorandr/ +.config/awesome/ +.config/brasero/ +.config/calibre/ +.config/caja/ +.config/chromium* +.config/comix/ +.config/dconf/ +.config/deluge/ +.config/enchant/ +.config/eog/ +.config/evince/ +.config/evolution/ +.config/gconf/ +.config/gedit/ +.config/geeqie/ +.config/ghb/ +.config/goobox/ +.config/gsmartcontrol/ +.config/gtk-2.0/ +.config/guitarix/ +.config/htop/ +.config/ibus/ +.config/icedtea-web/ +.config/inkscape/ +.config/ipython/ +.config/jack/ +.config/khal/khal.db +.config/keepnote/ +.config/libaccounts-glib/ +.config/libreoffice/ +.config/lxterminal/ +.config/mate/ +.config/mpd/mpd.db +.config/mpd/mpd.log +.config/mpd/mpd.pid +.config/mpd/mpdstate +.config/mpd/playlists/ +.config/mpd/sticker.sql +.config/menus/ +.config/nautilus-actions/ +.config/nautilus/ +.config/octave/ +.config/pavucontrol.ini +.config/pd-extended/ +.config/pulse/ +.config/pure-data/ +.config/q4wine +.config/rncbc.org/ +.config/rubyripper/ +.config/smplayer +.config/sound-juicer/ +.config/synergy-dvzrv.conf +.config/systemd/ +.config/tint2/ +.config/user-dirs.locale +.config/vlc/ +.config/xarchiver +.config/xfce4 +.config/yelp/ +.contacts +.converseen.conf +.dbus/ +.dcron.log +.dingrc +.dmrc +.docear/ +.dvdcss/ +.dvdrip* +.e +.editrc +.electrum/ +.elementary/ +.escaped_colors.rb +.esd_auth +.envtab +.fasd +.fasd-init-bash +.festival_history +.fehbg +.ffado/ +.ffxrc.json +.filebot/ +.filezilla/ +.fltk/ +.flexlmrc +.fontconfig/ +.fonts/ +.forward +.fst/ +.gconf/ +.gem/ +.gemrc +.gimp-2.8/ +.gnaural/ +.gnome2/ +.gnupg/gpg.conf +.gnupg/.* +.gnupg/pubring* +.gnupg/trustdb* +.gnupg/private*/ +.gnupg/crls.d/ +.gnupg/random* +.gnupg/S.* +.gpg-agent-info +.grip +.grip-lame +.grsync/ +.gspiceui.conf +.gstreamer-0.10/ +.gtickrc +.gtk* +.h264enc/ +.hplip/ +.htoprc +.hugin +.hydrogen +.icedtea/ +.inkscape/ +.irssi/ +.iscan_preference +.jackdrc +.java/ +.jdownloader/ +.jsampler/ +.kde4/ +.keychain/ +.kicad +.lesshst +.lfm_history +.linphone-history* +.lives +.lives-dir/ +.log +.local/share/.converted-launchers +.local/share/Psychonauts/ +.local/share/Steam/ +.local/share/SuperCollider* +.local/share/applications/ +.local/share/birdie/ +.local/share/comix/ +.local/share/data/ +.local/share/desktop-directories +.local/share/fontconfig/ +.local/share/gegl-0.1/ +.local/share/gegl-0.2/ +.local/share/goobox/ +.local/share/gsettings-data-convert +.local/share/mateconf-gsettings-data-convert +.local/share/gtg/ +.local/share/gvfs-metadata/ +.local/share/icc/ +.local/share/icons/ +.local/share/mc/ +.local/share/mime/ +.local/share/recently-used.xbel +.local/share/spacepiratesandzombies/ +.local/share/systemd/ +.local/share/Trash/ +.local/share/telepathy/ +.local/share/vlc/ +.local/share/webkit/ +.local/share/desktop-directoriey.log/ +.lyrics/ +.macromedia/ +.magick/ +.maple/ +.mateconfd/ +.matlab/ +.minecraft/ +.minetest +.mozilla/firefox/Crash Reports/ +.mozilla/firefox/dvzrv +.mozilla/firefox/dvzrv-backup/ +.mpdscribble/ +.mplayer/ +.muttator/ +.mutt/gpg-auto.rc +.mutt/mailboxes.rc +.mysql* +.ncftp/ +.neocomplcache/ +.neocomplete/ +.neocon/ +.nicotine/ +.nvidia-settings-rc +.nviminfo +.nvimlog +.octave_hist +.offlineimap/ +.openra +.p7zip +.parallel/ +.password-store/ +.pdextended +.pdfedit/ +.pdirc +.pip/ +.pki/ +.profile +.processing/console +.processing/recent.txt +.pryrc +.pulse +.pulse-cookie +.purple/ +.python-eggs/ +.q3a +.qucs +.qt +.rdebugrc +.recently-used +.revenge_of_the_titans/ +.revenge_of_the_titans_1.80/ +.rubberband* +.rvm/ +.sane/ +.scummvm/ +.scummvmrc +.scvim/ +.secrets +.skypecallrecorder.rc +.snes9x/ +.solfege/ +.solfegerc +.spumux/ +.ssh/ +.steam/ +.steampath +.steampid +.subversion/ +.synfig +.task/ +.taskrc +.taxbird/ +.tex2pdf.log +.texlive/ +.thumbnails/ +.thunderbird/ +.tmux/ +.tor-browser-en +.trousers/ +.ts3client/ +.tuxguitar-1.2/ +.unescaped_colors.rb +.unknown-horizons/ +.vdirsyncer/status +.vim/backups/ +.vim/sessions/ +.vim/vim-addons/ +.vim/.* +.vim/yankring* +.vimperator/ +.vimpressrc +.viminfo +.viminfo.tmp +.vmoviedb/ +.wine +.wireshark/ +.wolf3d/ +.wxcam +.xine/ +.xournal/ +.xsession +.xsession-errors +.xsession-errors.old +.yankring-history_v2.txt +.yaourtrc +.zcompcache/ +.zcompdump +.zcompdump.zwc +.zdirs +.zsh-update +.zhistory diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..cad61ab --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule ".zprezto"] + path = .zprezto + url = https://github.com/sorin-ionescu/prezto + branch = master diff --git a/.gnupg/dirmngr.conf b/.gnupg/dirmngr.conf new file mode 100644 index 0000000..d5a02d9 --- /dev/null +++ b/.gnupg/dirmngr.conf @@ -0,0 +1,69 @@ +# dirmngr-conf.skel - Skeleton to create dirmngr.conf. +# (Note that the first three lines are not copied.) +# +# dirmngr.conf - Options for Dirmngr +# Written in 2015 by The GnuPG Project <https://gnupg.org> +# +# To the extent possible under law, the authors have dedicated all +# copyright and related and neighboring rights to this file to the +# public domain worldwide. This file is distributed without any +# warranty. You should have received a copy of the CC0 Public Domain +# Dedication along with this file. If not, see +# <http://creativecommons.org/publicdomain/zero/1.0/>. +# +# +# Unless you specify which option file to use (with the command line +# option "--options filename"), the file ~/.gnupg/dirmngr.conf is used +# by dirmngr. The file can contain any long options which are valid +# for Dirmngr. If the first non white space character of a line is a +# '#', the line is ignored. Empty lines are also ignored. See the +# dirmngr man page or the manual for a list of options. +# + +# --keyserver URI +# +# GPG can send and receive keys to and from a keyserver. These +# servers can be HKP, Email, or LDAP (if GnuPG is built with LDAP +# support). +# +# Example HKP keyservers: +# hkp://keys.gnupg.net +# +# Example HKP keyserver using a Tor hidden service +# hkp://dyh2j3qyrirn43iw.onion +# +# Example HKPS keyservers (see --hkp-cacert below): +# hkps://hkps.pool.sks-keyservers.net +# +# Example LDAP keyservers: +# ldap://pgp.surfnet.nl:11370 +# +# Regular URL syntax applies, and you can set an alternate port +# through the usual method: +# hkp://keyserver.example.net:22742 +# +# Most users just set the name and type of their preferred keyserver. +# Note that most servers (with the notable exception of +# ldap://keyserver.pgp.com) synchronize changes with each other. Note +# also that a single server name may actually point to multiple +# servers via DNS round-robin. hkp://keys.gnupg.net is an example of +# such a "server", which spreads the load over a number of physical +# servers. +# +# If exactly two keyservers are configured and only one is a Tor hidden +# service, Dirmngr selects the keyserver to use depending on whether +# Tor is locally running or not (on a per session base). + +keyserver hkp://dyh2j3qyrirn43iw.onion +keyserver hkp://keys.gnupg.net + +# --hkp-cacert FILENAME +# +# For the "hkps" scheme (keyserver access over TLS), Dirmngr needs to +# know the root certificates for verification of the TLS certificates +# used for the connection. Enter the full name of a file with the +# root certificates here. If that file is in PEM format a ".pem" +# suffix is expected. This option may be given multiple times to add +# more root certificates. Tilde expansion is supported. + +#hkp-cacert /path/to/CA/sks-keyservers.netCA.pem diff --git a/.gnupg/gpg-agent.conf b/.gnupg/gpg-agent.conf new file mode 100644 index 0000000..c478fc2 --- /dev/null +++ b/.gnupg/gpg-agent.conf @@ -0,0 +1,8 @@ +# Sets the default pinentry program to use the ncurses interface +pinentry-program /usr/bin/pinentry-curses + +# allow clients to use the loopback pinentry features +allow-loopback-pinentry + +# set the time a chace entry is valid to 20minutes +default-cache-ttl 1200 diff --git a/.inputrc b/.inputrc new file mode 100644 index 0000000..b2cc9d6 --- /dev/null +++ b/.inputrc @@ -0,0 +1 @@ +set editing-mode vi @@ -0,0 +1,111 @@ +########## lfm - Last File Manager Configuration File ########## + +[Programs] +audio: mplayer +ebook: FBReader +editor: vi +graphics: gthumb +pager: pyview +pdf: evince +shell: bash +video: mplayer +web: firefox + +[File Types] +audio: ogg, flac, mp3, wav, au, midi +ebook: epub, chm, mobi, prc, azw, lit, fb2 +graphics: png, jpeg, jpg, gif, tiff, tif, xpm, svg +pdf: pdf, ps +video: mpeg, mpg, avi, asf, ogv, flv, mkv +web: html, htm + +[Bookmarks] +0: / +1: / +2: / +3: / +4: / +5: / +6: / +7: / +8: / +9: / + +[PowerCLI commands] +0: mv "$f" "{$f.replace('', '')}" +1: pyview "$f" % +2: find "$d" -name "*" -print0 | xargs --null grep -EHcni "TODO|WARNING|FIXME|BUG" +3: find "$d" -name "*" -print0 | xargs --null grep -EHcni "TODO|WARNING|FIXME|BUG" >output.txt & +4: cp $s "$o" +5: +6: +7: +8: +9: + +[Colors] +archive_files: yellow black +buttons: yellow red +cli_prompt: blue black +cli_text: white black +current_file: blue cyan +current_file_otherpane: black white +current_selected_file: yellow cyan +current_selected_file_otherpane: yellow white +data_files: magenta black +directories: green black +document_files: blue black +error_messages1: white red +error_messages2: black red +exe_files: red black +file_info: red black +files: white black +graphics_files: magenta black +help: green black +media_files: blue black +messages: magenta cyan +selected_file: yellow black +source_files: cyan black +tabs: white blue +temp_files: white black +title: yellow blue + +[Options] +# automatic_file_encoding_conversion: never = -1, ask = 0, always = 1 +# sort: None = 0, byName = 1, byName_rev = 2, bySize = 3, +# bySize_rev = 4, byDate = 5, byDate_rev = 6 +automatic_file_encoding_conversion: 0 +color_files: 1 +detach_terminal_at_exec: 1 +grep_ignorecase: 1 +grep_regex: 1 +manage_otherpane: 0 +num_panes: 2 +rebuild_vfs: 0 +save_conf_at_exit: 1 +save_history_at_exit: 1 +show_dotfiles: 1 +show_output_after_exec: 1 +sort: 1 +sort_mix_cases: 1 +sort_mix_dirs: 0 + +[Misc] +# diff_type: context, unified, ndiff +backup_extension: .bak +diff_type: unified + +[Confirmations] +ask_rebuild_vfs: 1 +delete: 1 +overwrite: 1 +quit: 1 + +[Files] +archive_files: .gz, .bz2, .xz, .tar, .tgz, .Z, .zip, .rar, .7z, .arj, .cab, .lzh, .lha, .zoo, .arc, .ark, .rpm, .deb +data_files: .dta, .nc, .dbf, .mdn, .db, .mdb, .dat, .fox, .dbx, .mdx, .sql, .mssql, .msql, .ssql, .pgsql, .cdx, .dbi, .sqlite +document_files: .txt, .text, .rtf, .odt, .odc, .odp, .abw, .gnumeric, .sxw, .sxc, .sxp, .sdw, .sdc, .sdp, .ps, .pdf, .djvu, .dvi, .bib, .tex, .epub, .chm, .prc, .mobi, .azw, .lit, .imp.fb2, .xml, .xsd, .xslt, .sgml, .dtd, .html, .shtml, .htm, .css, .mail, .msg, .letter, .ics, .vcs, .vcard, .lsm, .po, .man, .1, .info, .doc, .xls, .ppt, .pps, .docx, .xlsx, .pptx +graphics_files: .jpg, .jpeg, .gif, .png, .tif, .tiff, .pcx, .bmp, .xpm, .xbm, .eps, .pic, .rle, .ico, .wmf, .omf, .ai, .cdr, .xcf, .dwb, .dwg, .dxf, .svg, .dia +media_files: .mp2, .mp3, .mpg, .ogg, .flac, .mpeg, .wav, .avi, .asf, .mov, .mol, .mpl, .xm, .med, .mid, .midi, .umx, .wma, .acc, .wmv, .swf, .flv, .ogv, .mkv +source_files: .c, .h, .cc, .hh, .cpp, .hpp, .py, .pyw, .lua, .pl, .pm, .inc, .rb, .asm, .pas, .f, .f90, .pov, .m, .pas, .cgi, .php, .phps, .tcl, .tk, .js, .java, .jav, .jasm, .vala, .glade, .ui, .diff, .patch, .sh, .bash, .awk, .m4, .el, .st, .mak, .sl, .ada, .caml, .ml, .mli, .mly, .mll, .mlp, .prg +temp_files: .tmp, .$$$, ~, .bak diff --git a/.linphonerc b/.linphonerc new file mode 100644 index 0000000..da3467e --- /dev/null +++ b/.linphonerc @@ -0,0 +1,152 @@ +[sip] +media_encryption=none +default_proxy=-1 +multi_transport_migration_done=1 +guess_hostname=1 +contact="" <sip:dave@46.246.38.243:5060> +inc_timeout=30 +in_call_timeout=0 +delayed_timeout=4 +use_ipv6=0 +register_only_when_network_is_up=1 +register_only_when_upnp_is_ok=1 + +[misc] +uuid=63830b54-7f5b-4f3a-a271-c1b84bdd2a0d + +[video] +capture=1 +display=1 +automatically_initiate=1 +automatically_accept=1 +show_local=0 +self_view=0 +device=V4L2: /dev/video0 +size=cif + +[net] +download_bw=0 +upload_bw=0 +adaptive_rate_control=1 +mtu=1300 + +[GtkUi] +videoselfview=0 +advanced_ui=1 + +[sound] +playback_dev_id=ALSA: default device +ringer_dev_id=ALSA: default device +capture_dev_id=ALSA: default device +echocancellation=1 +remote_ring=/usr/share/sounds/linphone/ringback.wav +playback_gain_db=0.000000 +mic_gain_db=0.000000 + +[rtp] +audio_rtp_port=7078 +video_rtp_port=9078 +audio_jitt_comp=60 +video_jitt_comp=60 +nortp_timeout=30 +audio_adaptive_jitt_comp_enabled=1 +video_adaptive_jitt_comp_enabled=1 + +[audio_codec_0] +mime=opus +rate=48000 +channels=1 +enabled=1 + +[audio_codec_1] +mime=speex +rate=16000 +channels=1 +enabled=1 + +[audio_codec_2] +mime=speex +rate=8000 +channels=1 +enabled=1 + +[audio_codec_3] +mime=PCMU +rate=8000 +channels=1 +enabled=1 + +[audio_codec_4] +mime=PCMA +rate=8000 +channels=1 +enabled=1 + +[audio_codec_5] +mime=G729 +rate=8000 +channels=1 +enabled=0 + +[audio_codec_6] +mime=speex +rate=32000 +channels=1 +enabled=0 + +[audio_codec_7] +mime=L16 +rate=44100 +channels=1 +enabled=0 + +[audio_codec_8] +mime=L16 +rate=44100 +channels=2 +enabled=0 + +[audio_codec_9] +mime=G722 +rate=8000 +channels=1 +enabled=0 + +[video_codec_0] +mime=VP8 +rate=90000 +enabled=1 + +[video_codec_1] +mime=MP4V-ES +rate=90000 +enabled=1 +recv_fmtp=profile-level-id=3 + +[video_codec_2] +mime=H263-1998 +rate=90000 +enabled=0 +recv_fmtp=CIF=1;QCIF=1 + +[video_codec_3] +mime=theora +rate=90000 +enabled=0 + +[video_codec_4] +mime=x-snow +rate=90000 +enabled=0 + +[video_codec_5] +mime=H263 +rate=90000 +enabled=0 + +[audio_codec_10] +mime=GSM +rate=8000 +channels=1 +enabled=0 + diff --git a/.local/share/applications/incognichrome.desktop b/.local/share/applications/incognichrome.desktop new file mode 100644 index 0000000..a8b4a09 --- /dev/null +++ b/.local/share/applications/incognichrome.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Terminal=false +Exec=chromium -incognito +Name=Incognichrome +Icon=chromium +Categories=GTK;Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; diff --git a/.local/share/applications/nautilus.desktop b/.local/share/applications/nautilus.desktop new file mode 100644 index 0000000..3c8477d --- /dev/null +++ b/.local/share/applications/nautilus.desktop @@ -0,0 +1,205 @@ +[Desktop Entry] +Name=Files +Name[af]=Lêers +Name[an]=Fichers +Name[ar]=الملفات +Name[as]=ফাইলসমূহ +Name[ast]=Ficheros +Name[be]=Файлы +Name[bg]=Файлове +Name[bn]=ফাইল +Name[ca]=Fitxers +Name[ca@valencia]=Fitxers +Name[crh]=Dosyeler +Name[cs]=Soubory +Name[da]=Filer +Name[de]=Dateien +Name[el]=Αρχεία +Name[en_CA]=Files +Name[en_GB]=Files +Name[eo]=Dosieroj +Name[es]=Archivos +Name[et]=Failid +Name[eu]=Fitxategiak +Name[fa]=پروندهها +Name[fi]=Tiedostot +Name[fr]=Fichiers +Name[ga]=Comhaid +Name[gl]=Ficheiros +Name[gu]=ફાઇલો +Name[he]=קבצים +Name[hi]=फ़ाइल +Name[hu]=Fájlok +Name[id]=Berkas +Name[it]=File +Name[ja]=ファイル +Name[kk]=Файлдар +Name[kn]=ಕಡತಗಳು +Name[ko]=파일 +Name[ky]=Файлдар +Name[lt]=Failai +Name[lv]=Datnes +Name[mk]=Датотеки +Name[ml]=ഫയലുകള് +Name[mr]=फाइल्स् +Name[nb]=Filer +Name[nl]=Bestanden +Name[nn]=Filer +Name[or]=ଫାଇଲଗୁଡିକ +Name[pa]=ਫਾਇਲਾਂ +Name[pl]=Pliki +Name[pt]=Ficheiros +Name[pt_BR]=Arquivos +Name[ro]=Fișiere +Name[ru]=Nautilus +Name[sk]=Súbory +Name[sl]=Datoteke +Name[sr]=Датотеке +Name[sr@latin]=Datoteke +Name[sv]=Filer +Name[ta]=கோப்புகள் +Name[te]=దస్త్రాలు +Name[tg]=Файлҳо +Name[th]=แฟ้ม +Name[tr]=Dosyalar +Name[ug]=ھۆججەتلەر +Name[uk]=Файли +Name[vi]=Tập tin +Name[zh_CN]=文件 +Name[zh_HK]=檔案 +Name[zh_TW]=檔案 +Comment=Access and organize files +Comment[an]=Accedir a os fichers y organizar-los +Comment[ar]=نظم الملفات وصِل إليها +Comment[as]=অভিগম কৰক আৰু ফাইলসমূহ আয়োজিত কৰক +Comment[ast]=Acceder a los ficheros y organizalos +Comment[be]=Доступ і кіраванне файламі +Comment[bg]=Достъп и управление на файлове +Comment[bn]=ফাইলে ব্যবাহর এবং সাজানো +Comment[ca]=Organitzeu i accediu a fitxers +Comment[ca@valencia]=Organitzeu i accediu a fitxers +Comment[crh]=Dosyelerge iriş ve olarnı tertiple +Comment[cs]=Přístup k souborům a jejich správa +Comment[da]=Tilgå og organisér filer +Comment[de]=Auf Dateien zugreifen und diese organisieren +Comment[el]=Προσπέλαση και οργάνωση αρχείων +Comment[en_CA]=Access and organize files +Comment[en_GB]=Access and organise files +Comment[eo]=Atingi kaj organizi dosierojn +Comment[es]=Acceder a los archivos y organizarlos +Comment[et]=Ligipääs failidele ning failipuu korrastamine +Comment[eu]=Atzitu eta antolatu fitxategiak +Comment[fa]=دسترسی و سازماندهی پروندهها +Comment[fi]=Käsittele ja järjestä tiedostoja +Comment[fr]=Accéder aux fichiers et les organiser +Comment[ga]=Déan rochtain ar chomhaid agus eagraigh iad +Comment[gl]=Acceda e organice ficheiros +Comment[gu]=ફાઇલોને વાપરો અને સંચાલિત કરો +Comment[he]=גישה לקבצים וארגונם +Comment[hi]=फ़ाइलों को व्यवस्थित और पहुँच प्राप्त करें +Comment[hu]=Fájlok elérése és rendszerezése +Comment[id]=Mengakses dan mengelola berkas +Comment[it]=Accede ai file e li organizza +Comment[ja]=ファイルの操作や整理をします +Comment[kk]=Файлдарға қатынау және реттеу +Comment[kn]=ಕಡತಗಳನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಿ ಹಾಗು ವ್ಯವಸ್ಥಿತವಾಗಿ ಜೋಡಿಸಿ +Comment[ko]=파일 조작 및 정리 +Comment[lt]=Atverti ir tvarkyti failus +Comment[lv]=Piekļūt un organizēt datnes +Comment[mk]=Пристапувајте и организирајте датотеки +Comment[ml]=ഫയലുകള് ലഭ്യമാക്കി ക്രമത്തിലാക്കുക +Comment[mr]=फाइल्स्ला प्रवेश द्वया व संघटित करा +Comment[nb]=Aksesser og organiser filer +Comment[nl]=Bestanden gebruiken en organiseren +Comment[nn]=Aksesser og organiser filer +Comment[or]=ଫାଇଲମାନଙ୍କୁ ଅଭିଗମ କରନ୍ତୁ ଏବଂ ସଙ୍ଗଠନ କରନ୍ତୁ +Comment[pa]=ਫਾਇਲਾਂ ਦੀ ਵਰਤੋਂ ਤੇ ਪਰਬੰਧ +Comment[pl]=Organizowanie plików +Comment[pt]=Aceder e organizar ficheiros +Comment[pt_BR]=Acesse e organize arquivos +Comment[ro]=Accesați și organizați fișiere +Comment[ru]=Управление файлами +Comment[sk]=Prístupuje k súborom a organizuje ich +Comment[sl]=Dostop in razvrščanje datotek +Comment[sr]=Приступите датотекама и организујте их +Comment[sr@latin]=Pristupite datotekama i organizujte ih +Comment[sv]=Kom åt och organisera filer +Comment[ta]=கோப்புகளை அணுகு மற்றும் ஒழுங்கு படுத்து +Comment[te]=దస్త్రాలను నిర్వహించండి మరియు ప్రాప్తించండి +Comment[tg]=Кушодан ва мураттабсозии файлҳо +Comment[th]=เข้าถึงและจัดระเบียบแฟ้ม +Comment[tr]=Dosyalara erişin ve düzenleyin +Comment[ug]=ھۆججەتلەرنى تەشكىللەش ۋە زىيارەت +Comment[uk]=Доступ до файлів +Comment[vi]=Truy cập và tổ chức tập tin +Comment[zh_CN]=访问和组织文件 +Comment[zh_HK]=存取與組織檔案 +Comment[zh_TW]=存取與組織檔案 +Keywords=folder;manager;explore;disk;filesystem; +Keywords[af]=folder;manager;explore;disk;filesystem;gids;bestuurder;ontdek;skyf;lêerstelsel;leer; +Keywords[ar]=مجلد;مدير;ملفات;قرص;تصفح; +Keywords[as]=ফোল্ডাৰ;ব্যৱস্থাপক;অন্বেষণ;ডিস্ক;ফাইলচিস্টেম; +Keywords[be]=папка;кіраўнік;прагляд;дыск;файлавая сістэма; +Keywords[ca]=carpeta;gestor;explora;disc;sistema de fitxers; +Keywords[ca@valencia]=carpeta;gestor;explora;disc;sistema de fitxers; +Keywords[crh]=cilbent;idareci;araştır;disk;dosyesistemi; +Keywords[cs]=složka;správce;správa;prohlížení;procházení;disk;souborový systém;systém souborů; +Keywords[da]=mappe;håndtering;udforsk;gennemse;disk;filsystem; +Keywords[de]=Ordner;Verwaltung;Laufwerk;Festplatte;Dateisystem;Dateien; +Keywords[el]=φάκελος;διαχειριστής;εξερεύνηση;δίσκος;σύστημα αρχείων; +Keywords[en_GB]=folder;manager;explore;disk;filesystem; +Keywords[eo]=dosierujo;administrilo;foliumi;esplori;disko;dosiersistemo; +Keywords[es]=carpeta;gestor;explorar;disco;sistema de archivos; +Keywords[et]=kaust;kataloog;haldur;haldus;sirvija;sirvimine;ketas;kõvaketas;failisüsteem; +Keywords[eu]=karpeta;kudeatzailea;arakatu;diskoa;fitxategi-sistema; +Keywords[fa]=پوشه;مدیر;پویش;دیسک;سیستمپرونده;folder;manager;explore;disk;filesystem; +Keywords[fi]=folder;manager;explore;disk;filesystem;kansio;tiedostoselain;levy;tiedostojärjestelmä; +Keywords[fr]=dossier;gestionnaire;explorer;disque;système de fichiers; +Keywords[gl]=cartafol;xestor;explorar;disco;sistema de ficheiros; +Keywords[gu]=ફોલ્ડર;સંચાલક;સંશોધન;ડિસ્ક;ફાઇલસિસ્ટમ; +Keywords[he]=תיקייה;מנהל;עיון;סיור;כונן;מערכת קבצים; +Keywords[hi]=folder;manager;explore;disk;filesystem; +Keywords[hu]=mappa;könyvtár;kezelés;kezelő;intéző;lemez;fájlrendszer;commander; +Keywords[id]=folder;manager;explore;disk;filesystem;pengelola;peramban;sistem;berkas; +Keywords[it]=cartella;gestore;esplora;disco;file;file system; +Keywords[ja]=folder;manager;explore;disk;filesystem;フォルダー;マネージャー;エクスプローラー;ディスク;ファイルシステム; +Keywords[kk]=бума;басқарушы;шолу;диск;файлдық жүйе; +Keywords[kn]=ಕಡತಕೋಶ;ವ್ಯವಸ್ಥಾಪಕ;ಹುಡುಕು;ಡಿಸ್ಕ್;ಕಡತವ್ಯವಸ್ಥೆ; +Keywords[ko]=folder;폴더;manager;관리;explore;찾아보기;disk;디스크;filesystem;파일;시스템; +Keywords[lt]=aplankas;naršyklė;naršyti;diskas;failų sistema; +Keywords[lv]=mape;pārvaldnieks;pārlūkot;disks;datņu sistēma;datne; +Keywords[ml]=folder;manager;explore;disk;filesystem; +Keywords[mr]=फोल्डर;मॅनेजर;एक्सप्लोर;डिस्क;फाइलसिस्टम; +Keywords[nb]=mappe;håndterer;utforsk;disk;filsystem; +Keywords[nl]=folder;manager;explore;disk;filesystem;map;beheer;verkenner;schijf;bestandssysteem; +Keywords[or]=ଫୋଲଡର;ପରିଚାଳକ;ଅନ୍ୱେଷଣ;ଡିସ୍କ;ଫାଇଲତନ୍ତ୍ର; +Keywords[pa]=ਫੋਲਡਰ;ਮੈਨੇਜਰ;explore;ਡਿਸਕ;ਫਾਇਲ-ਸਿਸਟਮ; +Keywords[pl]=katalog;folder;menedżer;menadżer;manadżer;manedżer;manager;eksploruj;dysk;system plików; +Keywords[pt]=pasta;gestor;explorar;disco;sistema;ficheiros; +Keywords[pt_BR]=pasta;gerenciador;explorar;disco;sistema de arquivos; +Keywords[ru]=папка;менеджер;обзор;диск;файловая система; +Keywords[sk]=priečinok;správca;prehliadať;disk;systém súborov; +Keywords[sl]=mapa;upravljalnik;datoteke;raziskovalec;datotečni sistem;disk +Keywords[sr]=фасцикла;датотека;управник;истражи;диск;систем датотека; +Keywords[sr@latin]=fascikla;datoteka;upravnik;istraži;disk;sistem datoteka; +Keywords[ta]=அடைவு;மேலாளர்;ஆராய்வு;வட்டு;கோப்புமுறைமை; +Keywords[te]=సంచయం;నిర్వాహకం;అన్వేషించండి;డిస్కు;దస్త్రవ్యవస్థ; +Keywords[tg]=ҷузвдон;мудир;тамошо;диск;системаи файлӣ; +Keywords[ug]=folder;manager;explore;disk;filesystem;قىسقۇچ;باشقۇرغۇ;دىسكا;ھۆججەت سىستېمىسى; +Keywords[uk]=тека;менеджер;папка;диск;файл; +Keywords[vi]=folder;thư;mục;thu;muc;;manager;quản;lý;quan;lý;;explore;khám;phá;kham;pha;;disk;đĩa;dia;;filesystem;hệ;thống;tập;tin;he;thong;tap;tin; +Keywords[zh_CN]=目录;文件夹;管理;浏览;磁盘;硬盘;文件系统;folder;manager;explore;disk;filesystem; +Keywords[zh_HK]=folder;manager;explore;disk;filesystem;資料夾;管理程式;磁碟;檔案系統; +Keywords[zh_TW]=folder;manager;explore;disk;filesystem;資料夾;管理程式;磁碟;檔案系統; +Exec=nautilus --new-window %U +Icon=system-file-manager +Terminal=false +Type=Application +StartupNotify=true +Categories=GNOME;GTK;Utility;Core;FileManager; +MimeType=inode/directory;application/x-gnome-saved-search; +X-GNOME-Bugzilla-Bugzilla=GNOME +X-GNOME-Bugzilla-Product=nautilus +X-GNOME-Bugzilla-Component=general +X-GNOME-Bugzilla-Version=3.10.1 +X-GNOME-UsesNotifications=true diff --git a/.local/share/applications/pd.desktop b/.local/share/applications/pd.desktop new file mode 100644 index 0000000..4201621 --- /dev/null +++ b/.local/share/applications/pd.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Terminal=false +Exec=pd +Name=PureData +Icon=pd +Categories=Audio;AudioVideo;Midi;X-Alsa;X-Jack;GTK; diff --git a/.local/share/applications/securium.desktop b/.local/share/applications/securium.desktop new file mode 100644 index 0000000..47c2625 --- /dev/null +++ b/.local/share/applications/securium.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Terminal=false +Exec=securium +Name=Securium +Icon=chromium +Categories=GTK;Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; diff --git a/.local/share/applications/systemadm.desktop b/.local/share/applications/systemadm.desktop new file mode 100644 index 0000000..a724455 --- /dev/null +++ b/.local/share/applications/systemadm.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Terminal=false +Exec=systemadm +Name=SystemAdm +Icon=system +Categories=System;GTK; diff --git a/.local/share/shotwell b/.local/share/shotwell new file mode 120000 index 0000000..e497ac3 --- /dev/null +++ b/.local/share/shotwell @@ -0,0 +1 @@ +/mnt/photos/shotwell
\ No newline at end of file diff --git a/.mozilla/firefox/profiles.ini b/.mozilla/firefox/profiles.ini new file mode 100644 index 0000000..68905f0 --- /dev/null +++ b/.mozilla/firefox/profiles.ini @@ -0,0 +1,9 @@ +[General] +StartWithLastProfile=1 + +[Profile0] +Name=dvzrv +IsRelative=1 +Path=dvzrv +Default=1 + diff --git a/.msmtprc b/.msmtprc new file mode 100644 index 0000000..49b7a71 --- /dev/null +++ b/.msmtprc @@ -0,0 +1,44 @@ +# Set default values for all following accounts. +defaults +auth on +port 587 +tls on +protocol smtp +#logfile ~/.log/msmtp.log + +# dave@sleepmap.de +account sleepmap.de +host mail.sleepmap.de +from dave@sleepmap.de +user dave@sleepmap.de +passwordeval "pass2msmtp dave@sleepmap.de" +tls_trust_file ~/.certs/sleepmap.crt + +# david.runge@campus.tu-berlin.de +account tu-berlin.de +host mail.tu-berlin.de +from david.runge@campus.tu-berlin.de +user davezerave +passwordeval "pass2msmtp davezerave@mail.tu-berlin.de" +tls_trust_file ~/.certs/tu-berlin.crt + +# dave@c-base.org +account c-base.org +host c-mail.c-base.org +from dave@c-base.org +user dave +passwordeval "pass2msmtp dave@c-base.org" +tls_trust_file ~/.certs/c-base.crt + +# lac@linuxaudio.org +account linuxaudio.org +host linuxaudio.org +from lac@linuxaudio.org +user lac +port 25 +passwordeval "pass2msmtp lac@linuxaudio.org" +tls_fingerprint 1A:22:57:04:93:C4:4A:EC:B0:18:F8:3C:63:50:2B:C6:9A:5C:76:3A + + +# Set a default account +account default : sleepmap.de diff --git a/.mutt/accounts.rc b/.mutt/accounts.rc new file mode 100644 index 0000000..8e69ba3 --- /dev/null +++ b/.mutt/accounts.rc @@ -0,0 +1,13 @@ +# dave@sleepmap.de (default) +set spoolfile = "+sleepmap.de/INBOX" +source "~/.mutt/dave@sleepmap.de.rc" +folder-hook sleepmap.de/* source ~/.mutt/dave@sleepmap.de.rc + +# lac@linuxaudio.org +folder-hook linuxaudio.org/* source ~/.mutt/lac@linuxaudio.org.rc + +# david.runge@tu-berlin.de +folder-hook tu-berlin.de/* source ~/.mutt/david.runge@campus.tu-berlin.de.rc + +# dave@c-base.org +folder-hook c-base.org/* source ~/.mutt/dave@c-base.org.rc diff --git a/.mutt/attachments.rc b/.mutt/attachments.rc new file mode 100644 index 0000000..693f174 --- /dev/null +++ b/.mutt/attachments.rc @@ -0,0 +1,2 @@ +set mime_forward=yes +set mime_forward_rest=yes diff --git a/.mutt/color.rc b/.mutt/color.rc new file mode 100644 index 0000000..b413dca --- /dev/null +++ b/.mutt/color.rc @@ -0,0 +1,84 @@ +# Colors for items in the index +color index brightcyan default ~N +color index brightred default ~O +color index brightyellow default ~F +color index black green ~T +color index brightred default ~D +mono index bold ~N +mono index bold ~F +mono index bold ~T +mono index bold ~D + +# Highlights inside the body of a message. + +# URLs +color body brightgreen default "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*" +color body brightgreen default "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" +mono body bold "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*" +mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" + +# Email addresses. +color body brightgreen default "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" + +# Header +color header green default "^from:" +color header green default "^to:" +color header green default "^cc:" +color header green default "^date:" +color header yellow default "^newsgroups:" +color header yellow default "^reply-to:" +color header brightcyan default "^subject:" +color header red default "^x-spam-rule:" +color header green default "^x-mailer:" +color header yellow default "^message-id:" +color header yellow default "^Organization:" +color header yellow default "^Organisation:" +color header yellow default "^User-Agent:" +color header yellow default "^message-id: .*pine" +color header yellow default "^X-Fnord:" +color header yellow default "^X-WebTV-Stationery:" + +color header red default "^x-spam-rule:" +color header green default "^x-mailer:" +color header yellow default "^message-id:" +color header yellow default "^Organization:" +color header yellow default "^Organisation:" +color header yellow default "^User-Agent:" +color header yellow default "^message-id: .*pine" +color header yellow default "^X-Fnord:" +color header yellow default "^X-WebTV-Stationery:" +color header yellow default "^X-Message-Flag:" +color header yellow default "^X-Spam-Status:" +color header yellow default "^X-SpamProbe:" +color header red default "^X-SpamProbe: SPAM" + +# Coloring quoted text - coloring the first 7 levels: +color quoted cyan default +color quoted1 yellow default +color quoted2 red default +color quoted3 green default +color quoted4 cyan default +color quoted5 yellow default +color quoted6 red default +color quoted7 green default + +# Default color definitions +#color hdrdefault white green +color signature brightmagenta default +color indicator black cyan +color attachment black green +color error red default +color message white default +color search brightwhite magenta +color status brightyellow blue +color tree brightblue default +color normal white default +color tilde green default +color bold brightyellow default +color underline magenta default +color markers brightcyan default + +# Color definitions when on a mono screen +mono bold bold +mono underline underline +mono indicator reverse diff --git a/.mutt/dave@c-base.org.rc b/.mutt/dave@c-base.org.rc new file mode 100644 index 0000000..77921ac --- /dev/null +++ b/.mutt/dave@c-base.org.rc @@ -0,0 +1,17 @@ +set from = "David Runge <dave@c-base.org>" +set sendmail = "/usr/bin/msmtp -a c-base.org" +set folder = "~/Mail/c-base.org" +set spoolfile = "+INBOX" +set postponed = "+INBOX.Drafts" +set record = "+INBOX.Sent" +set signature = "~/.mutt/dave@c-base.org.sig" + +color status blue default + +macro index D \ + "<save-message>+INBOX.Trash<enter>" \ + "move message to the trash" + +macro index S \ + "<save-message>+INBOX.Spam<enter>" \ + "mark message as spam" diff --git a/.mutt/dave@c-base.org.sig b/.mutt/dave@c-base.org.sig new file mode 100644 index 0000000..1e6a3ea --- /dev/null +++ b/.mutt/dave@c-base.org.sig @@ -0,0 +1 @@ +I can feel my mind is going... diff --git a/.mutt/dave@sleepmap.de.rc b/.mutt/dave@sleepmap.de.rc new file mode 100644 index 0000000..75c1efb --- /dev/null +++ b/.mutt/dave@sleepmap.de.rc @@ -0,0 +1,18 @@ +set from = "David Runge <dave@sleepmap.de>" +set sendmail = "/usr/bin/msmtp -a sleepmap.de" +set folder = "~/Mail/sleepmap.de" +set spoolfile = "+INBOX" +set postponed = "+Drafts" +set record = "+Sent" +set realname = "David Runge" +set signature = "~/.mutt/dave@sleepmap.de.sig" + +color status green default + +macro index D \ + "<save-message>+Trash<enter>" \ + "move message to the trash" + +macro index S \ + "<save-message>+Spam<enter>" \ + "mark message as spam" diff --git a/.mutt/dave@sleepmap.de.sig b/.mutt/dave@sleepmap.de.sig new file mode 100644 index 0000000..c8ad85c --- /dev/null +++ b/.mutt/dave@sleepmap.de.sig @@ -0,0 +1,4 @@ +David Runge +Schreinerstraße 11 +10247 Berlin +http://sleepmap.de diff --git a/.mutt/david.runge@campus.tu-berlin.de.rc b/.mutt/david.runge@campus.tu-berlin.de.rc new file mode 100644 index 0000000..8ea2283 --- /dev/null +++ b/.mutt/david.runge@campus.tu-berlin.de.rc @@ -0,0 +1,18 @@ +# Receive options +set from = "David Runge <david.runge@campus.tu-berlin.de>" +set sendmail = "/usr/bin/msmtp -a tu-berlin.de" +set folder = "~/Mail/tu-berlin.de" +set spoolfile = "+INBOX" +set postponed = "+Drafts" +set record = "+Sent" +set signature = "~/.mutt/david.runge@campus.tu-berlin.de.sig" + +color status red default + +macro index D \ + "<save-message>+Trash<enter>" \ + "move message to the trash" + +macro index S \ + "<save-message>+Spam<enter>" \ + "mark message as spam" diff --git a/.mutt/david.runge@campus.tu-berlin.de.sig b/.mutt/david.runge@campus.tu-berlin.de.sig new file mode 100644 index 0000000..3a5497f --- /dev/null +++ b/.mutt/david.runge@campus.tu-berlin.de.sig @@ -0,0 +1,11 @@ +David Runge +Elektronisches Studio, Fachgebiet Audiokommunikation + +Technische Universität Berlin +Fakultät I Geistes- und Bildungswissenschaften +Institut für Sprache und Kommunikation +Einsteinufer 17c, Sekr. E-N 8, 10587 Berlin + +Website: http://www.ak.tu-berlin.de/studio +E-Mail: studio@ak.tu-berlin.de +Telefon: +493031422327 diff --git a/.mutt/default.rc b/.mutt/default.rc new file mode 100644 index 0000000..7d3dfc6 --- /dev/null +++ b/.mutt/default.rc @@ -0,0 +1,8 @@ +set editor=`echo \$EDITOR` +set folder = "~/Mail" +set mbox_type = Maildir +set mail_check = 60 + +set date_format = "%F %T (%Z)" +set index_format = "%4C %D %Z %-15.15L (%?l?%4l&%4c?) %s" +set folder_format = "%2C %N %2l %-8.8u %-8.8g %8s %d %f" diff --git a/.mutt/gpg.rc b/.mutt/gpg.rc new file mode 100644 index 0000000..002730d --- /dev/null +++ b/.mutt/gpg.rc @@ -0,0 +1,14 @@ +set pgp_good_sign="^gpg: Good signature from " +set pgp_use_gpg_agent = yes +set pgp_sign_as = 0xF5A1A949 +set pgp_timeout = 60 +set crypt_use_gpgme = yes +set crypt_autosign = yes +set crypt_replyencrypt = yes +set crypt_replysignencrypted = yes + +# add message-hook for non standard-compliant (old) gnupg style messages +message-hook '!(~g|~G) ~b"^-----BEGIN\ PGP\ (SIGNED\ )?MESSAGE"' "exec check-traditional-pgp" + +send-hook . 'reset crypt_autoencrypt' +source "~/.mutt/gpg-auto.rc" diff --git a/.mutt/khard.rc b/.mutt/khard.rc new file mode 100644 index 0000000..1899e79 --- /dev/null +++ b/.mutt/khard.rc @@ -0,0 +1,5 @@ +# auto-completing mails when pressing tab in "new mail" dialog using khard address books +set query_command= "khard email --search '%s'" +bind editor <Tab> complete-query +bind editor ^T complete + diff --git a/.mutt/lac@linuxaudio.org.rc b/.mutt/lac@linuxaudio.org.rc new file mode 100644 index 0000000..7e4bb85 --- /dev/null +++ b/.mutt/lac@linuxaudio.org.rc @@ -0,0 +1,18 @@ +set from = "David Runge <lac@linuxaudio.org>" +set sendmail = "/usr/bin/msmtp -a linuxaudio.org" +set folder = "~/Mail/linuxaudio.org" +set spoolfile = "+INBOX" +set postponed = "+Drafts" +set record = "+Sent" +set realname = "David Runge" +set signature = "~/.mutt/lac@linuxaudio.org.sig" + +color status green default + +macro index D \ + "<save-message>+Trash<enter>" \ + "move message to the trash" + +macro index S \ + "<save-message>+Spam<enter>" \ + "mark message as spam" diff --git a/.mutt/lac@linuxaudio.org.sig b/.mutt/lac@linuxaudio.org.sig new file mode 100644 index 0000000..57a5901 --- /dev/null +++ b/.mutt/lac@linuxaudio.org.sig @@ -0,0 +1,2 @@ +Linux Audio Conference +http://lac.linuxaudio.org diff --git a/.mutt/macros.rc b/.mutt/macros.rc new file mode 100644 index 0000000..4440dca --- /dev/null +++ b/.mutt/macros.rc @@ -0,0 +1,36 @@ + +# source folder settings and enter folder +macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.mutt/dave@sleepmap.de.rc<enter><change-folder>!<enter>' +macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.mutt/david.runge@campus.tu-berlin.de.rc<enter><change-folder>!<enter>' +macro index,pager <f4> '<sync-mailbox><enter-command>source ~/.mutt/dave@c-base.org.rc<enter><change-folder>!<enter>' + +# adding default download folder +macro attach W "<save-entry><bol>~/Downloads/<eol>" \ + "Save to Downloads folder" + +# adding e-mail addresses to khard address book +macro index,pager A \ + "<pipe-message>khard add-email<return>" \ + "add the sender email address to khard" + +# notmuch-mutt +macro index <F8> \ + "<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\ + <shell-escape>notmuch-mutt -r --prompt search<enter>\ + <change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\ + <enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \ + "notmuch: search mail" + +macro index <F9> \ + "<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\ + <pipe-message>notmuch-mutt -r thread<enter>\ + <change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\ + <enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \ + "notmuch: reconstruct thread" + +macro index <F6> \ + "<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\ + <pipe-message>notmuch-mutt tag -- -inbox<enter>\ + <enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \ + "notmuch: remove message from inbox" + diff --git a/.mutt/muttrc b/.mutt/muttrc new file mode 100644 index 0000000..f990e46 --- /dev/null +++ b/.mutt/muttrc @@ -0,0 +1,32 @@ +# defaults +source "~/.mutt/default.rc" + +# color +source "~/.mutt/color.rc" + +# gnupg +source "~/.mutt/gpg.rc" + +# mailboxes (set by offlineimap) +source "~/.mutt/mailboxes.rc" + +# sorting +source "~/.mutt/sorting.rc" + +# attachments +source "~/.mutt/attachments.rc" + +# khard (contacts) +source "~/.mutt/khard.rc" + +# accounts +source "~/.mutt/accounts.rc" + +# macros +source "~/.mutt/macros.rc" + +# security +source "~/.mutt/security.rc" + +# sidebar +source "~/.mutt/sidebar.rc" diff --git a/.mutt/security.rc b/.mutt/security.rc new file mode 100644 index 0000000..af00478 --- /dev/null +++ b/.mutt/security.rc @@ -0,0 +1,2 @@ +# disable enter-command (so password commands won't show up in command history) +bind generic,alias,attach,browser,editor,index,compose,pager,pgp,postpone ':' noop diff --git a/.mutt/sidebar.rc b/.mutt/sidebar.rc new file mode 100644 index 0000000..a5da4d2 --- /dev/null +++ b/.mutt/sidebar.rc @@ -0,0 +1,12 @@ +set sidebar_visible = yes +set sidebar_sort = yes +set sidebar_width = 30 + +macro index b '<enter-command>toggle sidebar_visible<enter><refresh>' +macro pager b '<enter-command>toggle sidebar_visible<enter><redraw-screen>' + +# Ctrl-n, Ctrl-p to select next, previous folder. +# Ctrl-o to open selected folder. +bind index,pager \CP sidebar-prev +bind index,pager \CN sidebar-next +bind index,pager \CO sidebar-open diff --git a/.mutt/sorting.rc b/.mutt/sorting.rc new file mode 100644 index 0000000..48827f7 --- /dev/null +++ b/.mutt/sorting.rc @@ -0,0 +1,2 @@ +set sort = "threads" +set sort_aux = "last-date-received" diff --git a/.ncmpcpp/bindings b/.ncmpcpp/bindings new file mode 100644 index 0000000..60c47da --- /dev/null +++ b/.ncmpcpp/bindings @@ -0,0 +1,534 @@ +########################################################## +## this is example bindings configuration file, copy it ## +## to ~/.ncmpcpp/bindings and set up your preferences ## +########################################################## +## +##### General rules ##### +## +## 1) Because each action has runtime checks whether it's +## ok to run it, a few actions can be bound to one key. +## Actions will be bound in order given in configuration +## file. When a key is pressed, first action in order +## will test itself whether it's possible to run it. If +## test succeeds, action is executed and other actions +## bound to this key are ignored. If it doesn't, next +## action in order tests itself etc. +## +## 2) It's possible to bind more that one action at once +## to a key. It can be done using the following syntax: +## +## def_key "key" +## action1 +## action2 +## ... +## +## This creates a chain of actions. When such chain is +## executed, each action in chain is run until the end of +## chain is reached or one of its actions fails to execute +## due to its requirements not being met. If multiple actions +## and/or chains are bound to the same key, they will be +## consecutively run until one of them gets fully executed. +## +## 3) When ncmpcpp starts, bindings configuration file is +## parsed and then ncmpcpp provides "missing pieces" +## of default keybindings. If you want to disable some +## bindings, there is a special action called 'dummy' +## for that purpose. Eg. if you want to disable ability +## to crop playlists, you need to put the following +## into configuration file: +## +## def_key "C" +## dummy +## +## After that ncmpcpp will not bind any default action +## to this key. +## +## 4) To let you write simple macros, the following special +## actions are provided: +## +## - push_character "character" - pushes given special +## character into input queue, so it will be immediately +## picked by ncmpcpp upon next call to readKey function. +## Accepted values: mouse, up, down, page_up, page_down, +## home, end, space, enter, insert, delete, left, right, +## tab, shift_tab, ctrl_a, ctrl_b, ..., ctrl_z, f1, f2, +## ..., f12, backspace, backspace_2. +## +## - push_characters "string" - pushes given string into +## input queue. +## +## - require_runnable "action" - checks whether given action +## is runnable and fails if it isn't. This is especially +## useful when mixed with previous two functions. Consider +## the following macro definition: +## +## def_key "key" +## push_characters "custom_filter" +## apply_filter +## +## If apply_filter can't be currently run, we end up with +## sequence of characters in input queue which will be +## treated just as we typed them. This may lead to unexpected +## results (in this case 'c' will most likely clear current +## playlist, 'u' will trigger database update, 's' will stop +## playback etc.). To prevent such thing from happening, we +## need to change above definition to this one: +## +## def_key "key" +## require_runnable "apply_filter" +## push_characters "custom_filter" +## apply_filter +## +## Here, first we test whether apply_filter can be actually run +## before we stuff characters into input queue, so if condition +## is not met, whole chain is aborted and we're fine. +## +## - require_screen "screen" - checks whether given screen is +## currently active. accepted values: browser, clock, help, +## media_library, outputs, playlist, playlist_editor, +## search_engine, tag_editor, visualizer, last_fm, lyrics, +## selected_items_adder, server_info, song_info, +## sort_playlist_dialog, tiny_tag_editor. +## +## - run_external_command "command" - runs given command using +## system() function. +## +## 5) In addition to binding to a key, you can also bind actions +## or chains of actions to a command. If it comes to commands, +## syntax is very similar to defining keys. Here goes example +## definition of a command: +## +## def_command "quit" [deferred] +## stop +## quit +## +## If you execute the above command (which can be done by +## invoking action execute_command, typing 'quit' and pressing +## enter), ncmpcpp will stop the player and then quit. Note the +## presence of word 'deferred' enclosed in square brackets. It +## tells ncmpcpp to wait for confirmation (ie. pressing enter) +## after you typed quit. Instead of 'deferred', 'immediate' +## could be used. Then ncmpcpp will not wait for confirmation +## (enter) and will execute the command the moment it sees it. +## +## Note: Both 'backspace' and 'backspace_2' are used because some +## terminals interpret backspace using keycode of 'backspace' +## and some the one of 'backspace_2'. You can get away with +## binding once if all your terminal emulators use the same +## value. +## +## Note: There is a difference between: +## +## def_key "key" +## action1 +## +## def_key "key" +## action2 +## +## and +## +## def_key "key" +## action1 +## action2 +## +## First one binds two single actions to the same key whilst +## second one defines a chain of actions. The behavior of +## these two is different and is described in (1) and (2). +## +## Note: Function def_key accepts non-ascii characters. +## +##### List of unbound actions ##### +## +## The following actions are not bound to any key/command: +## +## - set_volume +## - filter_playlist_on_priorities +## +# +#def_key "mouse" +# mouse_event +# +#def_key "up" +# scroll_up +# +#def_key "down" +# scroll_down +# +#def_key "[" +# scroll_up_album +# +#def_key "]" +# scroll_down_album +# +#def_key "{" +# scroll_up_artist +# +#def_key "}" +# scroll_down_artist +# +#def_key "page_up" +# page_up +# +#def_key "page_down" +# page_down +# +#def_key "home" +# move_home +# +#def_key "end" +# move_end +# +#def_key "space" +# press_space +# +#def_key "enter" +# press_enter +# +#def_key "delete" +# delete_playlist_items +# +#def_key "delete" +# delete_stored_playlist +# +#def_key "right" +# next_column +# +#def_key "right" +# slave_screen +# +#def_key "right" +# volume_up +# +#def_key "+" +# volume_up +# +#def_key "left" +# previous_column +# +#def_key "left" +# master_screen +# +#def_key "left" +# volume_down +# +#def_key "-" +# volume_down +# +#def_key ":" +# execute_command +# +#def_key "tab" +# next_screen +# +#def_key "shift_tab" +# previous_screen +# +#def_key "f1" +# show_help +# +#def_key "1" +# show_playlist +# +#def_key "2" +# show_browser +# +#def_key "2" +# change_browse_mode +# +#def_key "3" +# show_search_engine +# +#def_key "3" +# reset_search_engine +# +#def_key "4" +# show_media_library +# +#def_key "4" +# toggle_media_library_columns_mode +# +#def_key "5" +# show_playlist_editor +# +#def_key "6" +# show_tag_editor +# +#def_key "7" +# show_outputs +# +#def_key "8" +# show_visualizer +# +#def_key "=" +# show_clock +# +#def_key "@" +# show_server_info +# +#def_key "s" +# stop +# +#def_key "p" +# pause +# +#def_key ">" +# next +# +#def_key "<" +# previous +# +#def_key "ctrl_h" +# jump_to_parent_directory +# +#def_key "ctrl_h" +# replay_song +# +#def_key "backspace" +# jump_to_parent_directory +# +#def_key "backspace" +# replay_song +# +#def_key "backspace_2" +# jump_to_parent_directory +# +#def_key "backspace_2" +# replay_song +# +#def_key "f" +# seek_forward +# +#def_key "b" +# seek_backward +# +#def_key "r" +# toggle_repeat +# +#def_key "z" +# toggle_random +# +#def_key "y" +# save_tag_changes +# +#def_key "y" +# start_searching +# +#def_key "y" +# toggle_single +# +#def_key "R" +# toggle_consume +# +#def_key "Y" +# toggle_replay_gain_mode +# +#def_key "t" +# toggle_space_mode +# +#def_key "T" +# toggle_add_mode +# +#def_key "|" +# toggle_mouse +# +#def_key "#" +# toggle_bitrate_visibility +# +#def_key "Z" +# shuffle +# +#def_key "x" +# toggle_crossfade +# +#def_key "X" +# set_crossfade +# +#def_key "u" +# update_database +# +#def_key "ctrl_v" +# sort_playlist +# +#def_key "ctrl_r" +# reverse_playlist +# +#def_key "ctrl_f" +# apply_filter +# +#def_key "/" +# find +# +#def_key "/" +# find_item_forward +# +#def_key "?" +# find +# +#def_key "?" +# find_item_backward +# +#def_key "." +# next_found_item +# +#def_key "," +# previous_found_item +# +#def_key "w" +# toggle_find_mode +# +#def_key "e" +# edit_song +# +#def_key "e" +# edit_library_tag +# +#def_key "e" +# edit_library_album +# +#def_key "e" +# edit_directory_name +# +#def_key "e" +# edit_playlist_name +# +#def_key "e" +# edit_lyrics +# +#def_key "i" +# show_song_info +# +#def_key "I" +# show_artist_info +# +#def_key "g" +# jump_to_position_in_song +# +#def_key "l" +# show_lyrics +# +#def_key "v" +# reverse_selection +# +#def_key "V" +# remove_selection +# +#def_key "B" +# select_album +# +#def_key "a" +# add_selected_items +# +#def_key "c" +# clear_playlist +# +#def_key "c" +# clear_main_playlist +# +#def_key "C" +# crop_playlist +# +#def_key "C" +# crop_main_playlist +# +#def_key "m" +# move_sort_order_up +# +#def_key "m" +# move_selected_items_up +# +#def_key "m" +# toggle_media_library_sort_mode +# +#def_key "m" +# set_visualizer_sample_multiplier +# +#def_key "n" +# move_sort_order_down +# +#def_key "n" +# move_selected_items_down +# +#def_key "M" +# move_selected_items_to +# +#def_key "A" +# add +# +#def_key "S" +# save_playlist +# +#def_key "o" +# jump_to_playing_song +# +#def_key "G" +# jump_to_browser +# +#def_key "G" +# jump_to_playlist_editor +# +#def_key "~" +# jump_to_media_library +# +#def_key "E" +# jump_to_tag_editor +# +#def_key "U" +# toggle_playing_song_centering +# +#def_key "P" +# toggle_display_mode +# +#def_key "\\" +# toggle_interface +# +#def_key "!" +# toggle_separators_between_albums +# +#def_key "L" +# toggle_lyrics_fetcher +# +#def_key "F" +# toggle_fetching_lyrics_in_background +# +#def_key "ctrl_l" +# toggle_screen_lock +# +#def_key "`" +# toggle_browser_sort_mode +# +#def_key "`" +# toggle_library_tag_type +# +#def_key "`" +# refetch_lyrics +# +#def_key "`" +# add_random_items +# +#def_key "ctrl_p" +# set_selected_items_priority +# +#def_key "q" +# quit +# + +def_key "j" + scroll_down + +def_key "k" + scroll_up + +def_key "h" + previous_column + +def_key "l" + next_column + +def_key "L" + show_lyrics + +def_key "K" + toggle_lyrics_fetcher + +def_key "H" + show_help diff --git a/.ncmpcpp/config b/.ncmpcpp/config new file mode 100644 index 0000000..26c1a3c --- /dev/null +++ b/.ncmpcpp/config @@ -0,0 +1,63 @@ +# MPD +mpd_music_dir = "~/.mpd/folders" +mpd_crossfade_time = "1" + +# EDITOR +external_editor = "/usr/bin/vim" +use_console_editor = "yes" + +## DISPLAY MODE - classic/columns +playlist_display_mode = "columns" +browser_display_mode = "columns" +search_engine_display_mode = "columns" + +## FORMAT +song_list_format = "$3{%A}|{%a}$7{%b}$0{%t}|{$4$R{%7l}$9}" +song_columns_list_format = "(25)[cyan]{a} (5f)[green]{y} (30)[cyan]{b} (3f)[green]{n} (30)[cyan]{t|f} (6f)[red]{l}" + +## COLOR +header_window_color = "cyan" +main_window_color = "cyan" +main_window_highlight_color = "green" + +# LYRICS +lyrics_directory = "~/.lyrics" +store_lyrics_in_song_dir = "yes" +follow_now_playing_lyrics = "yes" +fetch_lyrics_for_current_song_in_background = "yes" + +## INTERFACE +user_interface = "alternative" +now_playing_prefix = "$r" +now_playing_suffix = "$/r" +ignore_leading_the = "no" +mouse_support = "yes" +autocenter_mode = "yes" +centered_cursor = "yes" + +# PROGRESSBAR +progressbar_look = "<|>" +progressbar_color = "red" +progressbar_elapsed_color = "cyan" + +#default_space_mode = "select" +header_visibility = "no" +statusbar_visibility = "no" +titles_visibility = "no" +#screen_switcher_mode = "sequence: 2 -> 3 -> 9 -> 10" +locked_screen_width_part = 50 +ask_for_locked_screen_width_part = "no" +empty_tag_marker = "" + +#LASTFM +lastfm_preferred_language = "en" + + +visualizer_in_stereo = "yes" +visualizer_fifo_path = "/run/user/1000/mpd/fifo" +visualizer_output_name = "mpd_fifo" +visualizer_sample_multiplier = 0.6 +visualizer_sync_interval = 10 +visualizer_type = "spectrum" # spectrum/wave +visualizer_color = "blue" +visualizer_look = ●▮ diff --git a/.ncmpcpp/error.log b/.ncmpcpp/error.log new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.ncmpcpp/error.log diff --git a/.notmuch-config b/.notmuch-config new file mode 100644 index 0000000..f2c4c5c --- /dev/null +++ b/.notmuch-config @@ -0,0 +1,98 @@ +# .notmuch-config - Configuration file for the notmuch mail system +# +# For more information about notmuch, see http://notmuchmail.org + +# Database configuration +# +# The only value supported here is 'path' which should be the top-level +# directory where your mail currently exists and to where mail will be +# delivered in the future. Files should be individual email messages. +# Notmuch will store its database within a sub-directory of the path +# configured here named ".notmuch". +# +[database] +path=/home/dave/Mail + +# User configuration +# +# Here is where you can let notmuch know how you would like to be +# addressed. Valid settings are +# +# name Your full name. +# primary_email Your primary email address. +# other_email A list (separated by ';') of other email addresses +# at which you receive email. +# +# Notmuch will use the various email addresses configured here when +# formatting replies. It will avoid including your own addresses in the +# recipient list of replies, and will set the From address based on the +# address to which the original email was addressed. +# +[user] +name=David Runge +primary_email=dave@sleepmap.de +other_email=david.runge@campus.tu-berlin.de;dave@c-base.org; + +# Configuration for "notmuch new" +# +# The following options are supported here: +# +# tags A list (separated by ';') of the tags that will be +# added to all messages incorporated by "notmuch new". +# +# ignore A list (separated by ';') of file and directory names +# that will not be searched for messages by "notmuch new". +# +# NOTE: *Every* file/directory that goes by one of those +# names will be ignored, independent of its depth/location +# in the mail store. +# +[new] +tags=unread;inbox; +ignore= + +# Search configuration +# +# The following option is supported here: +# +# exclude_tags +# A ;-separated list of tags that will be excluded from +# search results by default. Using an excluded tag in a +# query will override that exclusion. +# +[search] +exclude_tags=deleted;spam; + +# Maildir compatibility configuration +# +# The following option is supported here: +# +# synchronize_flags Valid values are true and false. +# +# If true, then the following maildir flags (in message filenames) +# will be synchronized with the corresponding notmuch tags: +# +# Flag Tag +# ---- ------- +# D draft +# F flagged +# P passed +# R replied +# S unread (added when 'S' flag is not present) +# +# The "notmuch new" command will notice flag changes in filenames +# and update tags, while the "notmuch tag" and "notmuch restore" +# commands will notice tag changes and update flags in filenames +# +[maildir] +synchronize_flags=true + +# Cryptography related configuration +# +# The following option is supported here: +# +# gpg_path +# binary name or full path to invoke gpg. +# +[crypto] +gpg_path=gpg @@ -0,0 +1 @@ +.vim
\ No newline at end of file @@ -0,0 +1 @@ +.vimrc
\ No newline at end of file diff --git a/.octaverc b/.octaverc new file mode 100644 index 0000000..2b57141 --- /dev/null +++ b/.octaverc @@ -0,0 +1,18 @@ +# Set up a prettier prompt +PS1('\[\e[0;32m\]\u\[\e[m\]\[\e[1;37m\]@\[\e[m\]\[\e[1;35m\]octave\[\e[m\] \[\e[1;34m\]\W\[\e[m\] \[\e[1;32m\]\$ \[\e[m\]') +# Editor settings +edit author "David Runge" +edit email "<david.runge@campus.tu-berlin.de>" +edit license "GPL" +edit editor "urxvt -e vim %s" +# don't wait for the editor to return +edit mode async +# Load packages +pkg load general +pkg load signal +pkg load data-smoothing +pkg load communications +# Java settings +javaaddpath('/usr/local/lib/java/jOpenDocument-1.3b1.jar'); +javaaddpath('/usr/local/lib/java/odfdom-java-0.8.7.jar'); +javaaddpath('/usr/local/lib/java/xercesImpl.jar'); diff --git a/.offlineimaprc b/.offlineimaprc new file mode 100644 index 0000000..68dfacb --- /dev/null +++ b/.offlineimaprc @@ -0,0 +1,88 @@ +[general] +accounts = sleepmap.de, tu-berlin.de, c-base.org, linuxaudio.org +maxsyncaccounts = 3 +pythonfile = ~/bin/pass2offlineimap + +# Automatic mailbox generationi for mutt +[mbnames] +enabled = yes +filename = ~/.mutt/mailboxes.rc +header = "mailboxes " +peritem = "+%(accountname)s/%(foldername)s" +sep = " " +footer = "\n" + +[Account tu-berlin.de] +localrepository = tu-berlin-local +remoterepository = tu-berlin-remote +status_backend = sqlite +autorefresh = 3 +quick = 7 + +[Repository tu-berlin-local] +type = Maildir +localfolders = ~/Mail/tu-berlin.de/ + +[Repository tu-berlin-remote] +type = IMAP +remotehost = mail.tu-berlin.de +remoteuser = davezerave +remotepasseval = get_pass("davezerave@mail.tu-berlin.de") +folderfilter = lambda folder: folder not in ['Other Users/tb-ak/studio'] +sslcacertfile = /etc/ssl/cert.pem + +[Account sleepmap.de] +localrepository = sleepmap-local +remoterepository = sleepmap-remote +status_backend = sqlite +autorefresh = 3 +quick = 7 + +[Repository sleepmap-local] +type = Maildir +localfolders = ~/Mail/sleepmap.de/ + +[Repository sleepmap-remote] +type = IMAP +remotehost = sleepmap.de +remoteuser = dave@sleepmap.de +remotepasseval = get_pass("dave@sleepmap.de") +ssl = yes +cert_fingerprint = 7fb877430d73b4eb013de0e54bbf78e22b4b0261 + +[Account c-base.org] +localrepository = c-base-local +remoterepository = c-base-remote +status_backend = sqlite +autorefresh = 3 +quick = 7 + +[Repository c-base-local] +type = Maildir +localfolders = ~/Mail/c-base.org/ + +[Repository c-base-remote] +type = IMAP +remotehost = c-mail.c-base.org +remoteuser = dave +remotepasseval = get_pass("dave@c-base.org") +sslcacertfile = /etc/ssl/cert.pem + +[Account linuxaudio.org] +localrepository = linuxaudio-local +remoterepository = linuxaudio-remote +status_backend = sqlite +autorefresh = 3 +quick = 7 + +[Repository linuxaudio-local] +type = Maildir +localfolders = ~/Mail/linuxaudio.org/ + +[Repository linuxaudio-remote] +type = IMAP +remotehost = linuxaudio.org +remoteuser = lac +remotepasseval = get_pass("lac@linuxaudio.org") +ssl = yes +cert_fingerprint = dd717e1d4f6b849dfa0f1adacfb9ce1c6b7132f1 diff --git a/.processing/preferences.txt b/.processing/preferences.txt new file mode 100644 index 0000000..2768ded --- /dev/null +++ b/.processing/preferences.txt @@ -0,0 +1,105 @@ +buttons.hide.image=false +chooser.files.native=false +console.auto_clear=true +console.font.size=12 +console.length=500 +console.lines=4 +contribution.backup.on_install=true +contribution.backup.on_remove=true +editor.caret.blink=true +editor.caret.block=false +editor.completion.auto_close=false +editor.divider.size=0 +editor.font.family=Source Code Pro +editor.font.size=12 +editor.indent=true +editor.input_method_support=false +editor.keys.alternative_cut_copy_paste=true +editor.keys.home_and_end_travel_far=false +editor.keys.home_and_end_travel_smart=true +editor.keys.shift_backspace_is_delete=false +editor.laf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel +editor.smooth=true +editor.tabs.expand=true +editor.tabs.size=2 +editor.token.comment1.style=#666666,plain +editor.token.comment2.style=#666666,plain +editor.token.function1.style=#006699,plain +editor.token.function2.style=#006699,plain +editor.token.function3.style=#669900,plain +editor.token.function4.style=#006699,bold +editor.token.invalid.style=#666666,bold +editor.token.keyword1.style=#33997e,plain +editor.token.keyword2.style=#33997e,plain +editor.token.keyword3.style=#669900,plain +editor.token.keyword4.style=#d94a7a,plain +editor.token.keyword5.style=#e2661a,plain +editor.token.keyword6.style=#33997e,plain +editor.token.label.style=#666666,bold +editor.token.literal1.style=#7D4793,plain +editor.token.literal2.style=#718a62,plain +editor.token.operator.style=#006699,plain +editor.untitled.prefix=sketch_ +editor.untitled.suffix=yyMMdd +editor.watcher=true +editor.watcher.debug=false +editor.watcher.window=1500 +editor.window.height.default=600 +editor.window.height.min=500 +editor.window.width.default=500 +editor.window.width.min=400 +export.application.embed_java=true +export.application.fullscreen=false +export.application.stop=true +export.delete_target_folder=true +header.hide.image=false +instance_server.key=0.926220805368482 +instance_server.port=33039 +last.sketch.count=0 +last.sketch.mode=processing.mode.java.JavaMode +last.sketch.restore=true +launcher=xdg-open +pdex.autoSave.autoSaveByDefault=true +pdex.autoSave.autoSaveEnabled=false +pdex.autoSave.promptDisplay=true +pdex.autoSaveInterval=5 +pdex.completion=false +pdex.completion.trigger=false +pdex.dbgOutput=false +pdex.errorCheckEnabled=true +pdex.suggest.imports=true +pdex.warningsEnabled=true +pdex.writeErrorLogs=false +platform.auto_file_type_associations=true +preproc.color_datatype=true +preproc.enhanced_casting=true +preproc.output_parse_tree=false +preproc.save_build_files=false +preproc.substitute_floats=true +preproc.substitute_unicode=true +preproc.web_colors=true +proxy.host= +proxy.http.host= +proxy.http.port= +proxy.https.host= +proxy.https.port= +proxy.port= +proxy.socks.host= +proxy.socks.port= +recent.count=10 +run.display=0 +run.options= +run.options.memory=false +run.options.memory.initial=64 +run.options.memory.maximum=256 +run.present.bgcolor=#666666 +run.present.stop.color=#cccccc +run.window.bgcolor=#DFDFDF +sketchbook.path=/home/dave/git/sketchbooks/processing-sketchbook +sketchbook.path.three=/home/dave/git/sketchbooks/processing-sketchbook +toolbar.hide.image=false +update.check=false +update.id=-2232603851351662427 +update.last=1395616194592 +welcome.seen=false +welcome.show=true diff --git a/.rtorrent.rc b/.rtorrent.rc new file mode 100644 index 0000000..bd60122 --- /dev/null +++ b/.rtorrent.rc @@ -0,0 +1,106 @@ +# This is an example resource file for rTorrent. Copy to +# ~/.rtorrent.rc and enable/modify the options as needed. Remember to +# uncomment the options you wish to enable. + +# Maximum and minimum number of peers to connect to per torrent. +min_peers = 40 +max_peers = 100 + +# Same as above but for seeding completed torrents (-1 = same as downloading) +min_peers_seed = 5 +max_peers_seed = 20 + +# Maximum number of simultanious uploads per torrent. +max_uploads = 5 + +# Global upload and download rate in KiB. "0" for unlimited. +download_rate = 0 +upload_rate = 30 + +# Default directory to save the downloaded torrents. +directory = /home/dave/Downloads/rtorrent/tmp + +# Default session directory. Make sure you don't run multiple instance +# of rtorrent using the same session directory. Perhaps using a +# relative path? +session = /home/dave/Downloads/rtorrent/session + +# Watch a directory for new torrents, and stop those that have been +# deleted. + +#schedule = watch_directory,5,5,load_start=./watch/\*.torrent +#schedule = untied_directory,5,5,stop_untied= + +schedule = watch_directory_all,10,10,"load_start=/home/dave/Downloads/*.torrent,d.set_custom1=/home/dave/Downloads/" + +# On completion, move the torrent to the directory from custom1. +system.method.set_key = event.download.finished,move_complete,"d.set_directory=$d.get_custom1=;execute=mv,-u,$d.get_base_path=,$d.get_custom1=" +#on_finished = move_complete,"d.set_directory=$d.get_custom1= ;execute=mv,-u,$d.get_base_path=,$d.get_custom1=" + +# Close torrents when diskspace is low. +schedule = low_diskspace,5,60,close_low_diskspace=100M + +# Stop torrents when reaching upload ratio in percent, +# when also reaching total upload in bytes, or when +# reaching final upload ratio in percent. +# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0 +#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000" + +# Port range to use for listening. +port_range = 6890-6892 + +# Start opening ports at a random position within the port range. +port_random = no + +# Check hash for finished torrents. Might be usefull until the bug is +# fixed that causes lack of diskspace not to be properly reported. +check_hash = yes + +# Set whetever the client should try to connect to UDP trackers. +use_udp_trackers = yes + +# Alternative calls to bind and ip that should handle dynamic ip's. +#schedule = ip_tick,0,1800,ip=rakshasa +#schedule = bind_tick,0,1800,bind=rakshasa + +# Encryption options, set to none (default) or any combination of the following: +# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext +# +# The example value allows incoming encrypted connections, starts unencrypted +# outgoing connections but retries with encryption if they fail, preferring +# plaintext to RC4 encryption after the encrypted handshake +# +encryption = allow_incoming,enable_retry,prefer_plaintext + +# Enable DHT support for trackerless torrents or when all trackers are down. +# May be set to "disable" (completely disable DHT), "off" (do not start DHT), +# "auto" (start and stop DHT as needed), or "on" (start DHT immediately). +# The default is "off". For DHT to work, a session directory must be defined. +# +dht = auto + +# UDP port to use for DHT. +# +dht_port = 6893 + +# Enable peer exchange (for torrents not marked private) +# +peer_exchange = yes + +# +# Do not modify the following parameters unless you know what you're doing. +# + +# Hash read-ahead controls how many MB to request the kernel to read +# ahead. If the value is too low the disk may not be fully utilized, +# while if too high the kernel might not be able to keep the read +# pages in memory thus end up trashing. +#hash_read_ahead = 10 + +# Interval between attempts to check the hash, in milliseconds. +#hash_interval = 100 + +# Number of attempts to check the hash while using the mincore status, +# before forcing. Overworked systems might need lower values to get a +# decent hash checking rate. +#hash_max_tries = 10 diff --git a/.screenrc b/.screenrc new file mode 100644 index 0000000..ca6561d --- /dev/null +++ b/.screenrc @@ -0,0 +1,153 @@ +# +# Example of a user's .screenrc file +# + +# This is how one can set a reattach password: +# password ODSJQf.4IJN7E # "1234" + +# no annoying audible bell, please +vbell on + +# detach on hangup +autodetach on + +# don't display the copyright page +startup_message off + +# emulate .logout message +pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended." + +# advertise hardstatus support to $TERMCAP +# termcapinfo * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\' + +# make the shell in every window a login shell +#shell -$SHELL + +# autoaka testing +# shellaka '> |tcsh' +# shellaka '$ |sh' + +# set every new windows hardstatus line to somenthing descriptive +# defhstatus "screen: ^En (^Et)" + +defscrollback 1000 + +# don't kill window after the process died +# zombie "^[" + +# enable support for the "alternate screen" capability in all windows +# altscreen on + +################ +# +# xterm tweaks +# + +#xterm understands both im/ic and doesn't have a status line. +#Note: Do not specify im and ic in the real termcap/info file as +#some programs (e.g. vi) will not work anymore. +termcap xterm hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l +terminfo xterm hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l + +#80/132 column switching must be enabled for ^AW to work +#change init sequence to not switch width +termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l + +# Make the output buffer large for (fast) xterms. +#termcapinfo xterm* OL=10000 +termcapinfo xterm* OL=100 + +# tell screen that xterm can switch to dark background and has function +# keys. +termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l' +termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~' +termcapinfo xterm 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~' + +# special xterm hardstatus: use the window title. +termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007' + +#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l' +termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l' + +# emulate part of the 'K' charset +termcapinfo xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337' + +# xterm-52 tweaks: +# - uses background color for delete operations +termcapinfo xterm* be + +################ +# +# wyse terminals +# + +#wyse-75-42 must have flow control (xo = "terminal uses xon/xoff") +#essential to have it here, as this is a slow terminal. +termcapinfo wy75-42 xo:hs@ + +# New termcap sequences for cursor application mode. +termcapinfo wy* CS=\E[?1h:CE=\E[?1l:vi=\E[?25l:ve=\E[?25h:VR=\E[?5h:VN=\E[?5l:cb=\E[1K:CD=\E[1J + +################ +# +# other terminals +# + +# make hp700 termcap/info better +termcapinfo hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@' + +# Extend the vt100 desciption by some sequences. +termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC +terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC +termcapinfo linux C8 +# old rxvt versions also need this +# termcapinfo rxvt C8 + + +################ +# +# keybindings +# + +#remove some stupid / dangerous key bindings +bind k +bind ^k +bind . +bind ^\ +bind \\ +bind ^h +bind h +#make them better +bind 'K' kill +bind 'I' login on +bind 'O' login off +bind '}' history + +# Yet another hack: +# Prepend/append register [/] to the paste if ^a^] is pressed. +# This lets me have autoindent mode in vi. +register [ "\033:se noai\015a" +register ] "\033:se ai\015a" +bind ^] paste [.] + +################ +# +# default windows +# + +# screen -t local 0 +# screen -t mail 1 mutt +# screen -t 40 2 rlogin server + +# caption always "%3n %t%? @%u%?%? [%h]%?%=%c" +# hardstatus alwaysignore +# hardstatus alwayslastline "%Lw" + +# bind = resize = +# bind + resize +1 +# bind - resize -1 +# bind _ resize max +# +# defnonblock 1 +# blankerprg rain -d 100 +# idle 30 blanker diff --git a/.scvimrc b/.scvimrc new file mode 100644 index 0000000..7e974a2 --- /dev/null +++ b/.scvimrc @@ -0,0 +1,77 @@ +let g:sclangKillOnExit = 1 +let g:sclangTerm = "urxvt -e" +let g:sclangPipeLoc = "/tmp/sclang-pipe" +let g:sclangPipeAppPidLoc = "/tmp/sclangpipe_app-pid" +" Set 1 to split scvim in tmux and screen vertically, 0 for horizontally +let g:scvimSplitVertical = 1 +" Set the size of the sclang output split in lines or blocks (only for scvim opened in screen and +" tmux). This setting applies vertically or horizontally, depending on +" g:scvimSplitVertical +let g:scvimSplitSize = 25 + +au BufWinEnter,BufNewFile,BufRead *.sc set filetype=supercollider +au BufWinEnter,BufNewFile,BufRead *.sc let &iskeyword="@,48-57,_,192-255" | runtime ftplugin/supercollider.vim +au BufWinEnter,BufNewFile,BufRead *.sc set sw=2 ts=2 autoindent "this line can be changed however you like + +"scd files: on open set runtimepath and start sclang +au BufWinEnter,BufNewFile,BufRead *.scd set runtimepath+=/usr/share/vim/addons/ filetype=supercollider +au BufWinEnter,BufNewFile,BufRead *.scd let &iskeyword="@,48-57,_,192-255,-,|" | runtime ftplugin/supercollider.vim | SClangStart +au BufWinEnter,BufNewFile,BufRead *.scd set sw=2 ts=2 autoindent + +"sc help files +au BufWinEnter,BufNewFile,BufRead *.schelp set filetype=supercollider +au BufWinEnter,BufNewFile,BufRead *.schelp let &iskeyword="@,48-57,_,192-255,-,|" | runtime ftplugin/supercollider.vim +au BufWinEnter,BufNewFile,BufRead *.schelp set sw=2 ts=2 autoindent "this line can be changed however you like + +" ================ Indentation ====================== + +set autoindent +set smartindent +set smarttab +set shiftwidth=2 +set softtabstop=2 +set tabstop=2 +set expandtab + +filetype plugin on +filetype indent on + +" Display tabs and trailing spaces visually +set list listchars=tab:\ \ ,trail:· + +set nowrap "Don't wrap lines +set linebreak "Wrap lines at convenient points + + +"required for matching +au Filetype supercollider,supercollider_help let b:match_skip = 's:scComment\|scString\|scSymbol' +au Filetype supercollider,supercollider_help let b:match_words = '(:),[:],{:}' + +"indenting if you want it +"au BufEnter,BufWinEnter,BufNewFile,BufRead *.sc runtime indent/sc_indent.vim + + +"supercollider vim keybindings +"expand('<cword>') gives current word under cursor without having to yank + +au Filetype supercollider,supercollider_help nmap <buffer> K :call SChelp(expand('<cword>'))<CR> +au Filetype supercollider,supercollider_help imap <buffer> :call SChelp(expand('<cword>'))<CR> +au Filetype supercollider,supercollider_help nmap <buffer> :call SCdef(expand('<cword>'))<CR> +au Filetype supercollider,supercollider_help imap <buffer> :call SCdef(expand('<cword>'))<CR> +au Filetype supercollider,supercollider_help nmap <buffer> <F1> :call HelpBrowser(expand('<cword>'))<CR> +au Filetype supercollider,supercollider_help imap <buffer> <F1> :call HelpBrowser(expand('<cword>'))<CR>a +au Filetype supercollider,supercollider_help vmap <buffer> <F1> :call HelpBrowser(expand('<cword>'))<CR> +au Filetype supercollider,supercollider_help nmap <buffer> <F5> :call SClang_block()<CR> +au Filetype supercollider,supercollider_help imap <buffer> <F5> :call SClang_block()<CR>a +au Filetype supercollider,supercollider_help vmap <buffer> <F5> :call SClang_send()<CR> +au Filetype supercollider,supercollider_help vmap <buffer> <F6> :call SClang_send()<CR> +au Filetype supercollider,supercollider_help nmap <buffer> <F6> :call SClang_send()<CR> +au Filetype supercollider,supercollider_help imap <buffer> <F6> :call SClang_send()<CR>a +au Filetype supercollider,supercollider_help nmap <buffer> <F7> :call SClang_TempoClock_clear()<CR> +au Filetype supercollider,supercollider_help imap <buffer> <F7> :call SClang_TempoClock_clear()<CR>a +au Filetype supercollider,supercollider_help nmap <buffer> <F8> :call SClang_free("s")<CR> +au Filetype supercollider,supercollider_help imap <buffer> <F8> :call SClang_free("s")<CR>a +au Filetype supercollider,supercollider_help nmap <buffer> <F12> :call SClang_thisProcess_stop()<CR> +au Filetype supercollider,supercollider_help imap <buffer> <F12> :call SClang_thisProcess_stop()<CR>a + +"end of scvim (supercollider vim) diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..546fda7 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,133 @@ +# Ring the bell if any background window rang a bell +set -g bell-action any + +set -g default-terminal "screen-256color" + +# split windows like vim +# vim's definition of a horizontal/vertical split is reversed from tmux's +bind s split-window -v +bind v split-window -h + +# move around panes with hjkl, as one would in vim after pressing ctrl-w +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# Create splits and vertical splits +bind-key v split-window -h +bind-key s split-window + +# Pane resize in all four directions using HJKL +bind-key -r H resize-pane -L +bind-key -r J resize-pane -D +bind-key -r K resize-pane -U +bind-key -r L resize-pane -R +# Fix ctrl + L/R +bind-key -n C-Right send-keys w +bind-key -n C-Left send-keys b + +# setting titles on +set -g set-titles on +set -g set-titles-string "#T" +set-option -g allow-rename on + +set -g history-limit 10000 +# set mouse mode on +set -g mouse on + +# Wheel scroll in pane +unbind -T root WheelUpPane +unbind -T root WheelDownPane +bind -T root WheelUpPane if -Ft= '#{mouse_any_flag}' 'send-keys -M' 'if -Ft= "#{pane_in_mode}" "send-keys -M" "copy-mode -u"' + +# Wheel scroll in pane WHILE in copy-mode +bind -tvi-copy WheelUpPane halfpage-up +bind -tvi-copy WheelDownPane halfpage-down + +# Logout with Ctrl+D +bind-key ^D detach-client + +# Use vi keybindings for tmux commandline input. +# Note that to get command mode you need to hit ESC twice... +set -g status-keys vi + +# Use vi keybindings in copy and choice modes +setw -g mode-keys vi + +# v and y like vi in copy-mode +bind-key -t vi-copy 'v' begin-selection +bind-key -t vi-copy 'y' copy-selection +# clipboard settings +set -s set-clipboard on +bind-key C-p run "xclip -o | tmux load-buffer - ; tmux paste-buffer" +bind-key C-y run "tmux save-buffer - | xclip -i" + +# set first window to index 1 (not 0) to map more to the keyboard layout... +set -g base-index 1 + +# color scheme (styled as vim-powerline) +set -g status-left-length 52 +set -g status-right-length 451 +set -g status-fg white +set -g status-bg colour234 +set -g pane-border-fg colour245 +set -g pane-active-border-fg colour39 +set -g message-fg white +set -g message-bg colour221 +set -g message-attr bold + +# set status-interval to 2 for tmux-mem-cpu-load +set -g status-interval 1 +set -g status-left '#[fg=colour235,bg=colour252,bold] #(hostname) #[fg=colour245,bg=colour238,bold] #(whoami) (#S) ' +set -g status-right '#[fg=colour23,bg=colour234]|>#[fg=white,bg=colour234] CPU:#{cpu_percentage}, Battery: #{battery_percentage} #[fg=colour23,bg=colour234]<||>#[fg=white,bg=colour234] %H:%M:%S #[fg=colour23,bg=colour234]<|' +set -g window-status-format '#[fg=colour235,bg=colour252,bold] #I: #W ' +set -g window-status-current-format '#[fg=black,bg=colour23,noreverse,bold] #I: #W ' + +# No escape time for vi mode +set -sg escape-time 0 + +# next/prev window +bind-key -n M-k next-window +bind-key -n M-j previous-window + +# select windows +bind-key -n M-1 select-window -t 1 +bind-key -n M-2 select-window -t 2 +bind-key -n M-3 select-window -t 3 +bind-key -n M-4 select-window -t 4 +bind-key -n M-5 select-window -t 5 +bind-key -n M-6 select-window -t 6 +bind-key -n M-7 select-window -t 7 +bind-key -n M-8 select-window -t 8 +bind-key -n M-9 select-window -t 9 +bind-key -n M-0 select-window -t 0 + +# Reload config +bind r source-file ~/.tmux.conf + +# Swap windows +bind-key m command-prompt -p "move window to:" "swap-window -t '%%'" + + +# List of plugins +# Supports `github_username/repo` or full git repo URLs +set -g @tpm_plugins ' \ + tmux-plugins/tpm \ + tmux-plugins/tmux-sensible \ + tmux-plugins/tmux-cpu \ + tmux-plugins/tmux-yank \ + tmux-plugins/tmux-open \ + tmux-plugins/tmux-battery \ + tmux-plugins/tmux-logging \ + tmux-plugins/tmux-online-status \ + tmux-plugins/tmux-sidebar \ + ' +# Other examples: +# github_username/plugin_name \ +# git@github.com/user/plugin \ +# git@bitbucket.com/user/plugin \ + +# Initializes TMUX plugin manager. +# Keep this line at the very bottom of tmux.conf. +run-shell '~/.tmux/plugins/tpm/tpm' diff --git a/.vdirsyncer/config b/.vdirsyncer/config new file mode 100644 index 0000000..e64e880 --- /dev/null +++ b/.vdirsyncer/config @@ -0,0 +1,75 @@ +[general] +status_path = "~/.vdirsyncer/status/" + +# carddav +[pair dave_contacts] +a = dave_contacts_local +b = dave_contacts_remote +collections = ["bands", "private", "services", "unixpool", "venues"] +conflict_resolution = "b wins" + +[storage dave_contacts_local] +type = filesystem +path = "~/.contacts/" +fileext = .vcf + +[storage dave_contacts_remote] +type = carddav +url = https://cloud.sleepmap.de/remote.php/carddav/ +verify = "~/.certs/sleepmap.crt" +username = dave +password.fetch = ["command", "~/bin/pass2vdirsyncer", "dave", "cloud.sleepmap.de"] + + +[pair akt_contacts] +a = akt_contacts_local +b = akt_contacts_remote +collections = ["exteam", "studio", "team"] +conflict_resolution = "b wins" + +[storage akt_contacts_local] +type = filesystem +path = "~/.contacts/" +fileext = .vcf + +[storage akt_contacts_remote] +type = carddav +url = https://www2.ak.tu-berlin.de/.cloudy/remote.php/carddav/ +username = drunge +password.fetch = ["command", "~/bin/pass2vdirsyncer", "drunge", "www2.ak.tu-berlin.de"] + + +# caldav +[pair dave_calendar] +a = dave_calendar_local +b = dave_calendar_remote +collections = ["akt", "concerts", "contact_birthdays", "courses", "flat", "live", "private", "unix-pool", "work"] + +[storage dave_calendar_local] +type = filesystem +path = "~/.calendars/" +fileext = .ics + +[storage dave_calendar_remote] +type = caldav +url = https://cloud.sleepmap.de/remote.php/caldav/ +verify = "~/.certs/sleepmap.crt" +username = dave +password.fetch = ["command", "~/bin/pass2vdirsyncer", "dave", "cloud.sleepmap.de"] + + +[pair akt_calendar] +a = akt_calendar_local +b = akt_calendar_remote +collections = ["ak_shared_by_mvoigt", "studiotermine_shared_by_mvoigt", "rechencluster_shared_by_mvoigt", "labs_shared_by_mvoigt", "akurlaub_shared_by_mvoigt", "grossesstudio_shared_by_mvoigt", "kleinesstudio_shared_by_mvoigt", "studioausleihe_shared_by_mvoigt", "studiotermine_shared_by_mvoigt"] + +[storage akt_calendar_local] +type = filesystem +path = "~/.calendars/" +fileext = .ics + +[storage akt_calendar_remote] +type = caldav +url = https://www2.ak.tu-berlin.de/.cloudy/remote.php/caldav/ +username = drunge +password.fetch = ["command", "~/bin/pass2vdirsyncer", "drunge", "www2.ak.tu-berlin.de"] diff --git a/.vim/addons-settings.vim b/.vim/addons-settings.vim new file mode 100644 index 0000000..2a37d56 --- /dev/null +++ b/.vim/addons-settings.vim @@ -0,0 +1,184 @@ +" ================ CTRLP settings ================ +if exists("g:ctrlp_user_command") + unlet g:ctrlp_user_command +endif +if executable('ag') + " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore + let g:ctrlp_user_command = + \ 'ag %s --files-with-matches -g "" --ignore "\.git$\|\.hg$\|\.svn$"' + + " ag is fast enough that CtrlP doesn't need to cache + let g:ctrlp_use_caching = 0 +else + " Fall back to using git ls-files if Ag is not available + let g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$' + let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files . --cached --exclude-standard --others'] +endif + +" Default to filename searches - so that appctrl will find application +" controller +let g:ctrlp_by_filename = 1 + +" Don't jump to already open window. This is annoying if you are maintaining +" several Tab workspaces and want to open two windows into the same file. +let g:ctrlp_switch_buffer = 0 + +" We don't want to use Ctrl-p as the mapping because +" it interferes with YankRing (paste, then hit ctrl-p) +let g:ctrlp_map = ',t' +nnoremap <silent> ,t :CtrlP<CR> + +" Additional mapping for buffer search +nnoremap <silent> ,b :CtrlPBuffer<cr> + +" Cmd-Shift-P to clear the cache +nnoremap <silent> <D-P> :ClearCtrlPCache<cr> + +" Idea from : http://www.charlietanksley.net/blog/blog/2011/10/18/vim-navigation-with-lustyexplorer-and-lustyjuggler/ +" Open CtrlP starting from a particular path, making it much +" more likely to find the correct thing first. mnemonic 'jump to [something]' +map ,ja :CtrlP app/assets<CR> +map ,jm :CtrlP app/models<CR> +map ,jc :CtrlP app/controllers<CR> +map ,jv :CtrlP app/views<CR> +map ,jh :CtrlP app/helpers<CR> +map ,jl :CtrlP lib<CR> +map ,jp :CtrlP public<CR> +map ,js :CtrlP spec<CR> +map ,jf :CtrlP fast_spec<CR> +map ,jd :CtrlP db<CR> +map ,jC :CtrlP config<CR> +map ,jV :CtrlP vendor<CR> +map ,jF :CtrlP factories<CR> +map ,jT :CtrlP test<CR> + +"Cmd-Shift-(M)ethod - jump to a method (tag in current file) +"Ctrl-m is not good - it overrides behavior of Enter +nnoremap <silent> <D-M> :CtrlPBufTag<CR> + +" ================ fugitive settings ================ +" For fugitive.git, dp means :diffput. Define dg to mean :diffget +nnoremap <silent> ,dg :diffget<CR> +nnoremap <silent> ,dp :diffput<CR> +" The tree buffer makes it easy to drill down through the directories of your +" git repository, but it’s not obvious how you could go up a level to the +" parent directory. Here’s a mapping of .. to the above command, but +" only for buffers containing a git blob or tree +autocmd User fugitive + \ if fugitive#buffer().type() =~# '^\%(tree\|blob\)$' | + \ nnoremap <buffer> .. :edit %:h<CR> | + \ endif + +" Every time you open a git object using fugitive it creates a new buffer. +" This means that your buffer listing can quickly become swamped with +" fugitive buffers. This prevents this from becomming an issue: + +autocmd BufReadPost fugitive://* set bufhidden=delete + +" ================ jquery settings ================ +autocmd BufRead,BufNewFile *.js set ft=javascript syntax=jquery + +" ================ lightline settings ================ +let g:lightline = { + \ 'colorscheme': 'solarized', + \ 'active': { + \ 'left': [ [ 'mode' ], + \ [ 'fugitive', 'readonly', 'filename', 'modified' ] ] + \ }, + \ 'component': { + \ 'readonly': '%{&readonly?"x":""}', + \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}' + \ }, + \ 'component_visible_condition': { + \ 'fugitive': '(exists("*fugitive#head") && ""!=fugitive#head())' + \ }, + \ 'separator': { 'left': '', 'right': '' }, + \ 'subseparator': { 'left': '|', 'right': '|' } + \ } + +set laststatus=2 + + +" ================ nerdtree-tabs settings ================ +" Auto open nerd tree on startup +let g:nerdtree_tabs_open_on_gui_startup = 0 +" Focus in the main content window +let g:nerdtree_tabs_focus_on_files = 1 + +" ================ nerdtree settings ================ +" Make nerdtree look nice +let NERDTreeMinimalUI = 1 +let NERDTreeDirArrows = 1 +let g:NERDTreeWinSize = 30 + +" ================ persistent-undo settings ================ +" persistent undos - undo after you re-open the file +" but this gives warnings under command line vim +" use only in macvim +if v:version > '702' + set undodir=~/.vim/backups + set undofile +endif + +" ================ showmarks settings ================ +" Tell showmarks to not include the various brace marks (),{}, etc +let g:showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY" + +" ================ syntastic settings ================ +"mark syntax errors with :signs +let g:syntastic_enable_signs=1 +"automatically jump to the error when saving the file +let g:syntastic_auto_jump=0 +"show the error list automatically +let g:syntastic_auto_loc_list=1 +"don't care about warnings +let g:syntastic_quiet_messages = {'level': 'warnings'} + +" ================ tComment settings ================ +" tComment maps 'gcc' to comment current line +" this adds 'gcp' comment current paragraph (block) +" using tComment's built in <c-_>p mapping +nmap <silent> gcp <c-_>p + +" ================ tidy settings ================ +:vmap ,gt :!tidy -q -i --show-errors 0<CR> + +" ================ vim-indent-guides settings ================ +let g:indent_guides_auto_colors = 1 +let g:indent_guides_start_level = 2 +let g:indent_guides_guide_size = 1 + +" ================ vim-session settings ================ +" Prevent vim-session from asking us to load the session. +" If you want to load the session, use :SaveSession and :OpenSession +let g:session_autosave = 'no' +let g:session_autoload = 'no' + +" ================ tabular settings ================ +" Hit Cmd-Shift-A then type a character you want to align by +nmap <D-A> :Tabularize / +vmap <D-A> :Tabularize / + +" ================ sudo settings ================ +" w!! to write a file as sudo +" stolen from Steve Losh +cmap w!! w !sudo tee % >/dev/null + +" ================ YankRing settings ============== + +let g:yankring_history_dir = '$HOME/.vim' +"let g:yankring_history_file = '.yankring-history' +nnoremap ,yr :YRShow<CR> +nnoremap <C-y> :YRShow<CR> + +" ================ vim-processing settings ============== +let g:processing_doc_style='local' +let g:processing_doc_path='/usr/share/processing/modes/java/reference/' + +" ================ vim-colors-solarized ============== +let g:solarized_termcolors=256 +let g:solarized_termtrans=1 + +" ================ YouCompleteMe ============== +" set +let g:EclimCompletionMethod = 'omnifunc' diff --git a/.vim/addons.vim b/.vim/addons.vim new file mode 100644 index 0000000..78cca1b --- /dev/null +++ b/.vim/addons.vim @@ -0,0 +1,55 @@ +" git +VAMActivate fugitive +VAMActivate github:tpope/vim-git +" appearance +VAMActivate showmarks +VAMActivate github:itchyny/lightline.vim +VAMActivate github:skwp/vim-colors-solarized +" languages +VAMActivate iptables +VAMActivate github:pangloss/vim-javascript +VAMActivate github:itspriddle/vim-jquery +VAMActivate github:scrooloose/syntastic.git +VAMActivate github:honza/vim-snippets +VAMActivate github:garbas/vim-snipmate +VAMActivate github:gerw/vim-latex-suite +VAMActivate github:sudar/vim-arduino-syntax +VAMActivate github:sudar/vim-arduino-snippets +VAMActivate github:sophacles/vim-processing +VAMActivate github:Matt-Stevens/vim-systemd-syntax +VAMActivate github:sjas/octave.vim +VAMActivate github:wannesm/wmgraphviz.vim.git +" project +VAMActivate github:scrooloose/nerdtree.git +VAMActivate github:jistr/vim-nerdtree-tabs.git +VAMActivate github:xolox/vim-misc +VAMActivate github:xolox/vim-session +VAMActivate github:kien/ctrlp.vim +" textobjects +VAMActivate github:coderifous/textobj-word-column.vim +VAMActivate github:kana/vim-textobj-datetime +VAMActivate github:kana/vim-textobj-entire +VAMActivate github:kana/vim-textobj-function +VAMActivate github:kana/vim-textobj-user +VAMActivate github:lucapette/vim-textobj-underscore +VAMActivate github:nathanaelkane/vim-indent-guides +VAMActivate github:thinca/vim-textobj-function-javascript +VAMActivate github:vim-scripts/argtextobj.vim +VAMActivate github:austintaylor/vim-indentobject +" improvements +VAMActivate sudo +VAMActivate tmux +VAMActivate YankRing +VAMActivate netrw +VAMActivate tComment +VAMActivate VimRepress +VAMActivate github:tpope/vim-abolish +VAMActivate github:tpope/vim-endwise.git +VAMActivate github:tpope/vim-ragtag +VAMActivate github:tpope/vim-repeat.git +VAMActivate github:tpope/vim-surround.git +VAMActivate github:tpope/vim-unimpaired +VAMActivate github:goldfeld/ctrlr.vim +VAMActivate github:jamessan/vim-gnupg +VAMActivate github:Valloric/YouCompleteMe.git +VAMActivate github:godlygeek/tabular diff --git a/.vim/custom-functions.vim b/.vim/custom-functions.vim new file mode 100644 index 0000000..ecf92bd --- /dev/null +++ b/.vim/custom-functions.vim @@ -0,0 +1,37 @@ +" ================ strip trailing whitespaces ================ +" via: http://rails-bestpractices.com/posts/60-remove-trailing-whitespace +" Strip trailing whitespace +function! <SID>StripTrailingWhitespaces() + " Preparation: save last search, and cursor position. + let _s=@/ + let l = line(".") + let c = col(".") + " Do the business: + %s/\s\+$//e + " Clean up: restore previous search history, and cursor position + let @/=_s + call cursor(l, c) +endfunction +command! StripTrailingWhitespaces call <SID>StripTrailingWhitespaces() +nmap ,w :StripTrailingWhitespaces<CR> +" ================ text wrapping ================ +" http://vimcasts.org/episodes/soft-wrapping-text/ +function! SetupWrapping() + set wrap linebreak nolist + set showbreak=… +endfunction + +" TODO: this should happen automatically for certain file types (e.g. markdown) +command! -nargs=* Wrap :call SetupWrapping()<CR> + +vmap <D-j> gj +vmap <D-k> gk +vmap <D-$> g$ +vmap <D-^> g^ +vmap <D-0> g^ +nmap <D-j> gj +nmap <D-k> gk +nmap <D-$> g$ +nmap <D-^> g^ +nmap <D-0> g^ + diff --git a/.vim/custom-settings.vim b/.vim/custom-settings.vim new file mode 100644 index 0000000..9233b35 --- /dev/null +++ b/.vim/custom-settings.vim @@ -0,0 +1,240 @@ +" ================ keymap settings ================ +" ======================================== +" General vim sanity improvements +" ======================================== +" +" +" alias yw to yank the entire word 'yank inner word' +" even if the cursor is halfway inside the word +" FIXME: will not properly repeat when you use a dot (tie into repeat.vim) +nnoremap ,yw yiww + +" ,ow = 'overwrite word', replace a word with what's in the yank buffer +" FIXME: will not properly repeat when you use a dot (tie into repeat.vim) +nnoremap ,ow "_diwhp + +"make Y consistent with C and D +nnoremap Y y$ +function! YRRunAfterMaps() + nnoremap Y :<C-U>YRYankCount 'y$'<CR> +endfunction + +" Make 0 go to the first character rather than the beginning +" of the line. When we're programming, we're almost always +" interested in working with text rather than empty space. If +" you want the traditional beginning of line, use ^ +nnoremap 0 ^ +nnoremap ^ 0 + +" ======================================== +" RSI Prevention - keyboard remaps +" ======================================== +" Certain things we do every day as programmers stress +" out our hands. For example, typing underscores and +" dashes are very common, and in position that require +" a lot of hand movement. Vim to the rescue +" +" Now using the middle finger of either hand you can type +" underscores with apple-k or apple-d, and add Shift +" to type dashes +imap <silent> <D-k> _ +imap <silent> <D-d> _ +imap <silent> <D-K> - +imap <silent> <D-D> - + +" ,# Surround a word with #{ruby interpolation} +map ,# ysiw# +vmap ,# c#{<C-R>"}<ESC> + +" ," Surround a word with "quotes" +map ," ysiw" +vmap ," c"<C-R>""<ESC> + +" ,' Surround a word with 'single quotes' +map ,' ysiw' +vmap ,' c'<C-R>"'<ESC> + +" ,) or ,( Surround a word with (parens) +" The difference is in whether a space is put in +map ,( ysiw( +map ,) ysiw) +vmap ,( c( <C-R>" )<ESC> +vmap ,) c(<C-R>")<ESC> + +" ,[ Surround a word with [brackets] +map ,] ysiw] +map ,[ ysiw[ +vmap ,[ c[ <C-R>" ]<ESC> +vmap ,] c[<C-R>"]<ESC> + +" ,{ Surround a word with {braces} +map ,} ysiw} +map ,{ ysiw{ +vmap ,} c{ <C-R>" }<ESC> +vmap ,{ c{<C-R>"}<ESC> + +map ,` ysiw` + +" gary bernhardt's hashrocket +imap <c-l> <space>=><space> + +" Change inside various enclosures with Cmd-" and Cmd-' +" The f makes it find the enclosure so you don't have +" to be standing inside it +nnoremap <D-'> f'ci' +nnoremap <D-"> f"ci" +nnoremap <D-(> f(ci( +nnoremap <D-)> f)ci) +nnoremap <D-[> f[ci[ +nnoremap <D-]> f]ci] + +"Go to last edit location with ,. +nnoremap ,. '. + +"When typing a string, your quotes auto complete. Move past the quote +"while still in insert mode by hitting Ctrl-a. Example: +" +" type 'foo<c-a> +" +" the first quote will autoclose so you'll get 'foo' and hitting <c-a> will +" put the cursor right after the quote +imap <C-a> <esc>wa + +" ==== NERD tree +" Cmd-Shift-N for nerd tree +nmap <D-N> :NERDTreeToggle<CR> +" Open the project tree and expose current file in the nerdtree with Ctrl-\ +nnoremap <silent> <C-\> :NERDTreeFind<CR>:vertical res 30<CR> + +" ,q to toggle quickfix window (where you have stuff like Ag) +" ,oq to open it back up (rare) +nmap <silent> ,qc :cclose<CR> +nmap <silent> ,qo :copen<CR> + +" move up/down quickly by using Cmd-j, Cmd-k +" which will move us around by functions +nnoremap <silent> <D-j> } +nnoremap <silent> <D-k> { +autocmd FileType ruby map <buffer> <D-j> ]m +autocmd FileType ruby map <buffer> <D-k> [m +autocmd FileType rspec map <buffer> <D-j> } +autocmd FileType rspec map <buffer> <D-k> { +autocmd FileType javascript map <buffer> <D-k> } +autocmd FileType javascript map <buffer> <D-j> { + + +" Command-/ to toggle comments +map <D-/> :TComment<CR> +imap <D-/> <Esc>:TComment<CR>i + + +"Move back and forth through previous and next buffers +"with ,z and ,x +nnoremap <silent> ,z :bp<CR> +nnoremap <silent> ,x :bn<CR> + +" ============================== +" Window/Tab/Split Manipulation +" ============================== +" Move between split windows by using the four directions H, L, I, N +nnoremap <silent> <C-h> <C-w>h +nnoremap <silent> <C-l> <C-w>l +nnoremap <silent> <C-k> <C-w>k +nnoremap <silent> <C-j> <C-w>j + +" Make gf (go to file) create the file, if not existent +nnoremap gf :e<cfile><CR> +nnoremap <C-w>f :sp +e<cfile><CR> +nnoremap <C-w>gf :tabe<cfile><CR> + +" Zoom in +map <silent> ,gz <C-w>o + +" Use numbers to pick the tab you want (like iTerm) +map <silent> <D-1> :tabn 1<cr> +map <silent> <D-2> :tabn 2<cr> +map <silent> <D-3> :tabn 3<cr> +map <silent> <D-4> :tabn 4<cr> +map <silent> <D-5> :tabn 5<cr> +map <silent> <D-6> :tabn 6<cr> +map <silent> <D-7> :tabn 7<cr> +map <silent> <D-8> :tabn 8<cr> +map <silent> <D-9> :tabn 9<cr> + +" Create window splits easier. The default +" way is Ctrl-w,v and Ctrl-w,s. I remap +" this to vv and ss +nnoremap <silent> vv <C-w>v +nnoremap <silent> ss <C-w>s + +" Resize windows with arrow keys +nnoremap <D-Up> <C-w>+ +nnoremap <D-Down> <C-w>- +nnoremap <D-Left> <C-w>< +nnoremap <D-Right> <C-w>> + +" create <%= foo %> erb tags using Ctrl-k in edit mode +imap <silent> <C-K> <%= %><Esc>3hi + +" create <%= foo %> erb tags using Ctrl-j in edit mode +imap <silent> <C-J> <% %><Esc>2hi + +" ============================ +" Shortcuts for everyday tasks +" ============================ + +" copy current filename into system clipboard - mnemonic: (c)urrent(f)ilename +" this is helpful to paste someone the path you're looking at +nnoremap <silent> ,cf :let @* = expand("%:~")<CR> +nnoremap <silent> ,cn :let @* = expand("%:t")<CR> + +"Clear current search highlight by double tapping // +nmap <silent> // :nohlsearch<CR> + +"(v)im (c)ommand - execute current line as a vim command +nmap <silent> ,vc yy:<C-f>p<C-c><CR> + +"(v)im (r)eload +nmap <silent> ,vr :so %<CR> + +" Type ,hl to toggle highlighting on/off, and show current value. +noremap ,hl :set hlsearch! hlsearch?<CR> + +" These are very similar keys. Typing 'a will jump to the line in the current +" file marked with ma. However, `a will jump to the line and column marked +" with ma. It’s more useful in any case I can imagine, but it’s located way +" off in the corner of the keyboard. The best way to handle this is just to +" swap them: http://items.sjbach.com/319/configuring-vim-right +nnoremap ' ` +nnoremap ` ' + +" ============================ +" Tabularize - alignment +" ============================ +" Hit Cmd-Shift-A then type a character you want to align by +nmap <D-A> :Tabularize / +vmap <D-A> :Tabularize / + +" ============================ +" SplitJoin plugin +" ============================ +nmap sj :SplitjoinSplit<cr> +nmap sk :SplitjoinJoin<cr> + +" Get the current highlight group. Useful for then remapping the color +map ,hi :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">" . " FG:" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"fg#")<CR> + +" Source current file Cmd-% (good for vim development) +map <D-%> :so %<CR> + +" ,hp = html preview +map <silent> ,hp :!open -a Safari %<CR><CR> +" ================ search settings ================ +" ================ Search Settings ================= + +set incsearch " Find the next match as we type the search +set hlsearch " Hilight searches by default +set viminfo='100,f1 " Save up to 100 marks, enable capital marks +set ignorecase " Ignore case when searching... +set smartcase " ...unless we type a capital + @@ -0,0 +1,124 @@ +" Use Vim settings | +set nocompatible | filetype indent plugin on | syn on + +" ================ General Config ==================== + +set number "Line numbers are good +set backspace=indent,eol,start "Allow backspace in insert mode +set history=1000 "Store lots of :cmdline history +set showcmd "Show incomplete cmds down the bottom +set showmode "Show current mode down the bottom +set gcr=a:blinkon0 "Disable cursor blink +set visualbell "No sounds +set autoread "Reload files changed outside vim +set cursorline "Show cursorline + +" This makes vim act like all other editors, buffers can +" exist in the background without being in a window. +" http://items.sjbach.com/319/configuring-vim-right +set hidden + +"turn on syntax highlighting +syntax on + +"set utf-8 as default encoding +set encoding=utf-8 + +" Change leader to a comma because the backslash is too far away +" That means all \x commands turn into ,x +" The mapleader has to be set before vundle starts loading all +" the plugins. +let mapleader="," + +" ================ Turn Off Swap Files ============== + +set noswapfile +set nobackup +set nowb + + +" ================ Persistent Undo ================== + +" Keep undo history across sessions, by storing in file. +" Only works all the time. +if has('persistent_undo') + silent !mkdir ~/.vim/backups > /dev/null 2>&1 + set undodir=~/.vim/backups + set undofile +endif + +" ================ Indentation ====================== + +set autoindent +set smartindent +set smarttab +set shiftwidth=2 +set softtabstop=2 +set tabstop=2 +set expandtab + +filetype plugin on +filetype indent on + +" Display tabs and trailing spaces visually +set list listchars=tab:\ \ ,trail:· + +set nowrap "Don't wrap lines +set linebreak "Wrap lines at convenient points + +" ================ Folds ============================ + +set foldmethod=indent "fold based on indent +set foldnestmax=3 "deepest fold is 3 levels +set nofoldenable "dont fold by default + +" ================ Completion ======================= + +set wildmode=list:longest +set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches +set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing +set wildignore+=*vim/backups* +set wildignore+=*sass-cache* +set wildignore+=*DS_Store* +set wildignore+=vendor/rails/** +set wildignore+=vendor/cache/** +set wildignore+=*.gem +set wildignore+=log/** +set wildignore+=tmp/** +set wildignore+=*.png,*.jpg,*.gif + +" ================ Scrolling ======================== + +set scrolloff=8 "Start scrolling when we're 8 lines away from margins +set sidescrolloff=15 +set sidescroll=1 + +" ================ Vim-Addon-Manager ======================== + +fun! SetupVAM() + let c = get(g:, 'vim_addon_manager', {}) + let g:vim_addon_manager = c + let c.plugin_root_dir = expand('$HOME', 1) . '/.vim/vim-addons' + " most used options you may want to use: + " let c.log_to_buf = 1 + " let c.auto_install = 0 + let &rtp.=(empty(&rtp)?'':',').c.plugin_root_dir.'/vim-addon-manager' + if !isdirectory(c.plugin_root_dir.'/vim-addon-manager/autoload') + execute '!git clone --depth=1 git://github.com/MarcWeber/vim-addon-manager ' + \ shellescape(c.plugin_root_dir.'/vim-addon-manager', 1) + endif + + " This provides the VAMActivate command, you could be passing plugin names, too + call vam#ActivateAddons([], {}) +endfun +call SetupVAM() + +" ================ Addons and their settings ======================== +so ~/.vim/addons.vim " addons +so ~/.vim/addons-settings.vim " addon settings +so ~/.vim/custom-settings.vim " custom settings +so ~/.vim/custom-functions.vim " custom functions +so ~/.scvimrc + +" colors +colorscheme pablo diff --git a/.vundles.local b/.vundles.local new file mode 100644 index 0000000..06f3c6c --- /dev/null +++ b/.vundles.local @@ -0,0 +1,28 @@ +" Python +Bundle "klen/python-mode.git" +" Wordpress +Bundle "vim-scripts/VimRepress" +" systemd +Bundle "Matt-Stevens/vim-systemd-syntax" +" processing +Bundle "sophacles/vim-processing" +"latex +"Bundle "vim-scripts/LaTeX-Suite-aka-Vim-LaTeX" +"octave +Bundle "sjas/octave.vim" +" netrw +Bundle "vim-scripts/netrw.vim" +" vim-arduino-syntax +Bundle "sudar/vim-arduino-syntax" +" vim-arduino-snippets +Bundle "sudar/vim-arduino-snippets" +" vim-iptables +Bundle "vim-scripts/iptables" +" gnupg +Bundle "jamessan/vim-gnupg" +" Latex suite +Bundle "gerw/vim-latex-suite" +" graphviz +Bundle "wannesm/wmgraphviz.vim.git" +" YouCompleteMe +Bundle "Valloric/YouCompleteMe.git" diff --git a/.xinitrc b/.xinitrc new file mode 100755 index 0000000..8c51067 --- /dev/null +++ b/.xinitrc @@ -0,0 +1,26 @@ +#!/bin/sh + +# Disable touchpad while typing using syndaemon +#if [[ -f /usr/bin/syndaemon ]]; then +# syndaemon -t -k -i 2 & +#fi + +#X11 keyboard maps +setxkbmap -layout de + +#setxkbmap -option 'caps:escape' +#setxkbmap -option 'ctrl:swapcaps' +#setxkbmap -option 'ctrl:nocaps' + +# turn bell off +xset b off + +# use .Xmodmap +if [[ -f ~/.Xmodmap ]]; then + /usr/bin/xmodmap ~/.Xmodmap +fi + +# use .Xresources +if [[ -f ~/.Xresources ]];then + /usr/bin/xrdb ~/.Xresources +fi diff --git a/.xprofile b/.xprofile new file mode 100644 index 0000000..dc372e2 --- /dev/null +++ b/.xprofile @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +setxkbmap de & + +if [ -x "$HOME/bin/lid-switch-action" ] && [ "$HOSTNAME" = dvzrv ]; then + $HOME/bin/lid-switch-action login & +fi + +if [ -x /usr/bin/termite ]; then + termite & +fi @@ -0,0 +1,22 @@ +# +# Executes commands at login post-zshrc. +# +# Authors: +# Sorin Ionescu <sorin.ionescu@gmail.com> +# + +# Execute code that does not affect the current session in the background. +{ + # Compile the completion dump to increase startup speed. + zcompdump="${ZDOTDIR:-$HOME}/.zcompdump" + if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then + zcompile "$zcompdump" + fi +} &! + +# Print a random, hopefully interesting, adage. +if (( $+commands[fortune] )); then + fortune -a + print +fi + diff --git a/.zlogout b/.zlogout new file mode 100644 index 0000000..92e4350 --- /dev/null +++ b/.zlogout @@ -0,0 +1,3 @@ +# +# Commands executed by zsh on logout. +# diff --git a/.zprezto b/.zprezto new file mode 160000 +Subproject c34098af20cafdf016f68f3e7f612ed60ca93aa diff --git a/.zpreztorc b/.zpreztorc new file mode 100644 index 0000000..663ae54 --- /dev/null +++ b/.zpreztorc @@ -0,0 +1,122 @@ +# +# Sets Prezto options. +# +# Authors: +# Sorin Ionescu <sorin.ionescu@gmail.com> +# + +# +# General +# + +# Set case-sensitivity for completion, history lookup, etc. +zstyle ':prezto:*:*' case-sensitive 'no' + +# Color output (auto set to 'no' on dumb terminals). +zstyle ':prezto:*:*' color 'yes' + +# Set the Zsh modules to load (man zshmodules). +# zstyle ':prezto:load' zmodule 'attr' 'stat' + +# Set the Zsh functions to load (man zshcontrib). +# zstyle ':prezto:load' zfunction 'zargs' 'zmv' + +# Set the Prezto modules to load (browse modules). +# The order matters. +zstyle ':prezto:load' pmodule \ + 'environment' \ + 'terminal' \ + 'editor' \ + 'history' \ + 'directory' \ + 'utility' \ + 'completion' \ + 'archive' \ + 'syntax-highlighting' \ + 'history-substring-search' \ + 'prompt' + +# +# Editor +# + +# Set the key mapping style to 'emacs' or 'vi'. +zstyle ':prezto:module:editor' key-bindings 'vi' + +# Auto convert .... to ../.. +zstyle ':prezto:module:editor' dot-expansion 'yes' + +# +# Git +# + +# Ignore submodules when they are 'dirty', 'untracked', 'all', or 'none'. +# zstyle ':prezto:module:git:status:ignore' submodules 'all' + +# +# GNU Utility +# + +# Set the command prefix on non-GNU systems. +# zstyle ':prezto:module:gnu-utility' prefix 'g' + +# +# Pacman +# + +# Set the Pacman frontend. +# zstyle ':prezto:module:pacman' frontend 'yaourt' + +# +# Prompt +# + +# Set the prompt theme to load. +# Setting it to 'random' loads a random theme. +# Auto set to 'off' on dumb terminals. +zstyle ':prezto:module:prompt' theme 'steeef' + +# +# Screen +# + +# Auto start a session when Zsh is launched. +# zstyle ':prezto:module:screen' auto-start 'yes' + +# +# GPG-Agent +# + +# Enable SSH-Agent protocol emulation. +# zstyle ':prezto:module:gpg-agent' ssh-support 'yes' + +# +# SSH-Agent +# + +# Enable ssh-agent forwarding. +#zstyle ':prezto:module:ssh-agent' forwarding 'yes' + +# Set ssh-agent identities to load. +# zstyle ':prezto:module:ssh-agent' identities 'id_rsa' 'id_rsa2' 'id_github' + +# +# Syntax Highlighting +# + +# Set syntax highlighters. +# By default main, brackets, and cursor are enabled. +zstyle ':prezto:module:syntax-highlighting' highlighters \ + 'main' \ + 'brackets' \ + 'pattern' \ + 'cursor' \ + 'root' + +# +# Terminal +# + +# Auto set the tab and window titles. +zstyle ':prezto:module:terminal' auto-title 'yes' + diff --git a/.zprofile b/.zprofile new file mode 100644 index 0000000..45cdd5e --- /dev/null +++ b/.zprofile @@ -0,0 +1,52 @@ +# +# Executes commands at login pre-zshrc. + +# +# Paths +# + +# Ensure path arrays do not contain duplicates. +typeset -gU cdpath fpath mailpath path + +# Set the the list of directories that cd searches. +# cdpath=( +# $cdpath +# ) + +# Set the list of directories that Zsh searches for programs. +path=( + /usr/local/{bin,sbin} + $path +) + +# +# Less +# + +# Set the default Less options. +# Mouse-wheel scrolling has been disabled by -X (disable screen clearing). +# Remove -X and -F (exit if the content fits on one screen) to enable it. +export LESS='-F -g -i -M -R -S -w -X -z-4' + +# Set the Less input preprocessor. +if (( $+commands[lesspipe.sh] )); then + export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-' +fi + +# +# Temporary Files +# + +if [[ ! -d "$TMPDIR" ]]; then + export TMPDIR="/tmp/$USER" + mkdir -p -m 700 "$TMPDIR" +fi + +TMPPREFIX="${TMPDIR%/}/zsh" +if [[ ! -d "$TMPPREFIX" ]]; then + mkdir -p "$TMPPREFIX" +fi + +# dircolors +# Set colors for ls output +eval $(dircolors ~/.dircolors) diff --git a/.zsh.after/aliases.zsh b/.zsh.after/aliases.zsh new file mode 100644 index 0000000..6c0395f --- /dev/null +++ b/.zsh.after/aliases.zsh @@ -0,0 +1,228 @@ +# < ZSH ALIASES +## EXTENSIONS +alias -s pdf='mupdf' +alias -s ps='mupdf' +alias -s jpg='feh' +alias -s png='feh' +alias -s gif='viewnior' +alias -s gz='tar xvfz' +alias -s tgz='tar xvfz' +alias -s bz2='tar xvfj' +alias -s tbz='tar xvfj' +alias -s tlz='tar --lzma -xvf' +alias -s rar='unrar x' +alias -s tex='mkpdf' + +##LS +alias ls='ls --group-directories-first --color=auto' +alias ll="ls -lh" +alias la="ls -a" +alias lal="ls -alh" +alias ls='ls --group-directories-first --color=auto' +alias l='ls' +alias lt='ls -tr' +alias ll='ls -l' +alias llh='ls -lh' +alias llt='ls -ltr' +alias la='ls -A' +alias lla='ls -lA' +alias lsfw='ls -lah /dev|grep fw' +alias lsvid='ls -lah /dev|grep video' + +#MPLAYER +alias mplayer='mplayer -ao jack,pulse,alsa' + +##DU +alias du1='du -hd1' + +##FEH +alias feh='feh -Z -g 1920x1200 -b "black" -S "filename"' + +##GIT +alias gsi='git submodule update --init --recursive' +alias gsu='git submodule update --recursive' + +##TREE +alias tree='tree -aC' +#grep aliases (with excluded directories) +alias grepdot='grep -rI --exclude-dir=".steam" --exclude-dir=".local" --exclude-dir=".thunderbird" --exclude-dir=".mozilla" --exclude-dir="git" --exclude-dir=".rvm" --exclude-dir=".log" --exclude-dir=".dropbox-dist" --exclude-dir=".config" ' + + +##SYSTEMD +#tree +alias psc='ps xawf -eo pid,user,cgroup,args' +alias treeg='tree -d /cgroup/systemd/' +alias sdptree='tree -aC /usr/lib/systemd/' +alias sdstree='tree -aC /etc/systemd/' +alias sdutree='tree -aC $HOME/.config/systemd/' +#journalctl +alias sdj='sudo journalctl' +alias sdjf='sudo journalctl -f' #Follow the messages +alias sdjb='sudo journalctl -b' #Show only messages from this boot +alias sdju='sudo journalctl -u' #Show messages of only the specified unit +alias sdjk='journalctl _TRANSPORT=kernel' #Show kernel ring buffer +alias sdjp='sudo journalctl _PID=' #Show all messages of specified process (PID) +alias sdjgrep='sudo journalctl -an1000 |grep ' #Use a grep command to search through journal +#systemd system services +alias sdsstart='sudo systemctl start' +alias sdsstop='sudo systemctl stop' +alias sdsrestart='sudo systemctl restart' +alias sdsreload='sudo systemctl reload' +alias sdsenable='sudo systemctl enable' +alias sdsdisable='sudo systemctl disable' +alias sdsreenable='sudo systemctl reenable' +alias sdsisactive='sudo systemctl is-active' +alias sdsisenabled='sudo systemctl is-enabled' +alias sdsstat='sudo systemctl status --all --full' +alias sdswants='sudo systemctl show -p "Wants"' +alias sdswantedby='sudo systemctl show -p "WantedBy"' +alias sdsrequires='sudo systemctl show -p "Requires"' +alias sdsrequiredby='sudo systemctl show -p "RequiredBy"' +alias sdsconflicts='sudo systemctl show -p "Conflicts"' +alias sdsconflictedby='sudo systemctl show -p "ConflictedBy"' +alias sdsbefore='sudo systemctl show -p "Before"' +alias sdsafter='sudo systemctl show -p "After"' +alias sdst='sudo systemctl list-timers' +alias sdsreload='sudo systemctl daemon-reload' +alias sds='sudo systemctl --all' +alias sdserr='sudo systemctl --all --full |grep error' +alias sdsfail='sudo systemctl --all --full |grep failed' +alias sdsmask='sudo systemctl mask' +alias sdsunmask='sudo systemctl unmask' +#systemd user services +alias sdustart='systemctl --user start' +alias sdustop='systemctl --user stop' +alias sdurestart='systemctl --user restart' +alias sdureload='systemctl --user reload' +alias sduenable='systemctl --user enable' +alias sdudisable='systemctl --user disable' +alias sdureenable='systemctl --user reenable' +alias sduisactive='systemctl --user is-active' +alias sduisenabled='systemctl --user is-enabled' +alias sdustat='systemctl --user status --all --full' +alias sduwants='systemctl --user show -p "Wants"' +alias sduwantedby='systemctl --user show -p "WantedBy"' +alias sdurequires='systemctl --user show -p "Requires"' +alias sdurequiredby='systemctl --user show -p "RequiredBy"' +alias sduconflicts='systemctl --user show -p "Conflicts"' +alias sduconflictedby='systemctl --user show -p "ConflictedBy"' +alias sdubefore='systemctl --user show -p "Before"' +alias sduafter='systemctl --user show -p "After"' +alias sdut='systemctl --user list-timers' +alias sdureload='systemctl --user daemon-reload' +#alias sdu='systemctl --user' +alias sduerr='systemctl --user --all --full |grep error' +alias sdufail='systemctl --user --all --full |grep failed' +alias sdumask='sudo systemctl --user mask' +alias sduunmask='sudo systemctl --user unmask' +#poweroff/reboot/isolate +alias sdiso='sudo systemctl isolate ' +alias sdreboot='sudo systemctl reboot' +alias sdpoweroff='sudo systemctl poweroff' +alias sdsuspend='sudo systemctl suspend' +#systemd bootchart +alias sda='systemd-analyze' +alias sdab='systemd-analyze blame' +if [ -x /usr/bin/xsvg ]; then + alias sdap='xsvg $HOME/ownCloud/photos/systemd/sdap-$HOST.svg' +fi + +##PACMAN +alias paclid="sudo pacman -Qi | sed '/^Depends On/,/^Required By/{ s/^Required By.*$//; H; d }; /^Name/!d; /^Name/{ n;x;}'| sed '/^$/s//==================================================================================/'" +alias pacsize="pacman -Qi | awk '/^Name/ {pkg=\$3} /Size/ {print \$4\$5,pkg}' | sort -n" #Show all packages by size +alias pacall="sudo pacman -Qi | awk '/^Name/ {pkg=\$3} /Version/ {ver=\$3} /Size/ {size=\$4\$5} {print pkg,ver,size}' | uniq" #All packages uniquely with name, version, size +alias pacup='sudo pacman -Syu' #Synchronize with repositories before upgrading packages that are out of date on the local system. +alias pac='sudo pacman -S' #Install specific package(s) from the repositories +alias pacu='sudo pacman -U' #Install specific package not from the repositories but from a file +alias pacre='sudo pacman -R' #Remove the specified package(s), retaining its configuration(s) and required dependencies +alias pacrem='sudo pacman -Rns' #Remove specified package(s), its configuration(s) and unneeded depends +alias pacsearch="pacman -Sl | cut -d' ' -f2 | grep " #Search through all available packages in repo +alias pacname="sudo pacman -Qi|grep Name|grep " #Search through names of packages by string +alias pacri='pacman -Si' #Display information about a given package in the repositories +alias pacrs='pacman -Ss' #Search for package(s) in the repositories +alias pacli='pacman -Qi' #Display information about a given package in the local database +alias pacls='pacman -Qs' #Search for package(s) in the local database +alias pacorph='sudo pacman -Qdt' #Search for orphan packages +alias paclal='sudo pacman -Ql' #List installed files of a given package +alias pacg='pacman -Sg' #List all groups or all packages in specified group +alias pacclean='sudo pacman -Sc' #Remove all packages from local repository, not installed atm, remove all unused repos +alias pacconf='sudo find /etc -name "*.pac*" -type f -print' #Search for .pacnew and .pacsave files +alias pacfile='sudo pacman -Qo' # Find out what package a give file belongs to +alias pacupd='sudo pacman -Sy && sudo abs' #Update and refresh the local package and ABS databases against repositories +alias pacdep='sudo pacman -S --asdeps' #Install given package(s) as dependencies of another package +alias pacmir='sudo pacman -Syy' #Force refresh of all package lists after updating /etc/pacman.d/mirrorlist +alias packup='comm -23 <(pacman -Qeq|sort) <(pacman -Qmq|sort) > $HOME/Dropbox/sync/archlinux/pkglist-$HOST' #Backup the current list of non-local packages +alias pacret='sudo pacman -S $(< $HOME/Dropbox/sync/archlinux/pkglist-$HOST)' #Install from the backup list +alias pacredown='sudo pacman -S $(comm -23 <(pacman -Qeq) <(pacman -Qmq))' #Redownload all installed packages (minus AUR) +alias pacdis='sudo pacman-disowned > /tmp/$USERNAME/non-pkg-$HOST' #Getting a list of files not owned by any package +alias packimp='sudo pacman-key -r ' #Import a key ID to the pacman keyring +alias packsign='sudo pacman-key --lsign-key ' #Sign a key ID after importing it to the keyring +alias packref='sudo pacman-key --refresh-keys' #Refresh the list of master keys + +##YAOURT +alias yaup='yaourt -Syu --devel --aur' #Updates all locally installed repository, AUR and git packages +alias yadb='yaourt -B $HOME/ownCloud/backup/settings/' #Backs up the yaourt database + +##XCLIP +alias cpx="xclip -selection clipboard -display :0" + +##CD +alias cd.sds="cd /etc/systemd/system" +alias cd.sdp="cd /usr/lib/systemd/system" +alias cd.courses="cd $HOME/ownCloud/documents/university/tu-berlin/courses" +alias cd.backup="cd $HOME/ownCloud/backup" +alias cd.scpref="cd $HOME/.config/SuperCollider" + +##OCTAVE +#alias octave="octave --silent --braindead --force-gui" +alias octave="octave --force-gui" + +##MATLAB +alias matlabc="matlab -nodesktop -nosplash" + +##NMCLI +alias nmup="sudo nmcli con up id" +alias nmdown="sudo nmcli con down id" +alias nmstat="sudo nmcli con show --active" +alias nmlist="sudo nmcli con list" +alias nmdev="sudo nmcli dev" + +#SSH +alias pool='ssh pool -Y' +alias sshtunnel="ssh -ND 44350 -v -p 46399 dave@frqb.zapto.org" # tunnel through home +alias frqtun="ssh -ND 44350 -v frq" +alias scp=scp + +#KEYCHAIN +alias keyflush="keychain --clear && keychain -k mine" + +#PULSEAUDIO +alias pak='pulseaudio --kill' +alias pas='pulseaudio --start' +alias paflush='pax11publish -r' +alias bthp="pactl load-module module-bluetooth-device address='00:1B:66:01:6C:D1'" #load bluetooth headphone module for pulseaudio + +#PYTHON +alias pyserv='python -m http.server' # start a python http server + +# VDIRSYNCER +alias vsync="vdirsyncer sync" + +#WOL +alias woldave_in='wol -i homey 00:15:f2:e0:e0:c6' #wake up homey +alias woldave_ex='wol -p X -i frqb.zapto.org 00:15:f2:e0:e0:c6' #wake up homey via + +## OVERRIDES +# Colorize grep output +alias grep='grep --color=auto --exclude-dir=.git' +alias psgrep='ps aux | grep -v "grep"| grep $1' +alias greptodo='grep -R "TODO" .' +alias exit="clear; exit" +alias du='du -h' +alias .='source' + + +## HELP +alias helpdd='echo dd if=bla | pv -s 10M | dd of=blob' + +# ZSH ALIASES > diff --git a/.zsh.after/apt b/.zsh.after/apt new file mode 100644 index 0000000..e1942cf --- /dev/null +++ b/.zsh.after/apt @@ -0,0 +1,37 @@ +#TODO: add pacman to apt-get conversion for all pacman aliases +alias paclid="sudo pacman -Qi | sed '/^Depends On/,/^Required By/{ s/^Required By.*$//; H; d }; /^Name/!d; /^Name/{ n;x;}'| sed '/^$/s//==================================================================================/'" +alias pacsize="pacman -Qi | awk '/^Name/ {pkg=\$3} /Size/ {print \$4\$5,pkg}' | sort -n" #All packages by size +alias pacall="sudo pacman -Qi | awk '/^Name/ {pkg=\$3} /Version/ {ver=\$3} /Size/ {size=\$4\$5} {print pkg,ver,size}' | uniq" #All packages uniquely with name, version, size +#alias pacremorph='sudo pacman -Rs $(pacman -Qtdq)' #Remove all orphaned packages +alias pacup='sudo apt-get update && sudo apt-get upgrade' #'sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. +alias pac='sudo apt-get install ' #'sudo pacman -S' # Install specific package(s) from the repositories +alias pacu='sudo pacman -U' # Install specific package not from the repositories but from a file +alias pacre='sudo apt-get remove ' #'sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required ##dependencies +alias pacrem='sudo apt-get purge ' #'sudo pacman -Rns' # Remove specified package(s), its configuration(s) and unneeded depends +alias pacsearch="pacman -Sl | cut -d' ' -f2 | grep " # Search through all available packages in repo +#alias pacname='dpkg -l|grep Name|grep ' #'sudo pacman -Qi|grep Name|grep ' #Search through names of packages by string +alias pacri='sudo apt-get update && sudo apt-cache show ' #'pacman -Si' # Display information about a given package in the repositories +alias pacrs='sudo apt-get update && sudo apt-cache search ' #'pacman -Ss' # Search for package(s) in the repositories +alias pacli='dpkg -l ' #'pacman -Qi' # Display information about a given package in the local database +alias pacls='dpkg -l|grep ' #'pacman -Qs' # Search for package(s) in the local database +alias pacorph='sudo pacman -Qdt' # Search for orphan packages +alias paclal='dpkg -L' #'sudo pacman -Ql' # List installed files of a given package +alias pacg='pacman -Sg' #List all groups or all packages in specified group +alias pacclean='sudo pacman -Sc' # Remove all packages from local repository, not installed atm, remove all unused repos +alias pacconf='sudo find /etc -name "*.pac*" -type f -print' # Search for .pacnew and .pacsave files +alias pacfile='dpkg -S ' #'sudo pacman -Qo' # Find out what package a give file belongs to +alias pacupd='sudo apt-get update' #'sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories +alias pacdep='sudo pacman -S --asdeps' # Install given package(s) as dependencies of another package +alias pacmir='sudo pacman -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist +alias packup='comm -23 <(pacman -Qeq|sort) <(pacman -Qmq|sort) > $HOME/Dropbox/sync/archlinux/pkglist-$HOST' # Backup the current list of non-local packages +alias pacret='sudo pacman -S $(< $HOME/Dropbox/sync/archlinux/pkglist-$HOST)' # Install from the backup list +alias pacredown='sudo pacman -S $(comm -23 <(pacman -Qeq) <(pacman -Qmq))' # Redownload all installed packages (minus AUR) +alias pacdis='rm -f $HOME/Dropbox/sync/archlinux/non-pkg-$HOST; sudo pacman-disowned > $HOME/Dropbox/sync/archlinux/non-pkg-$HOST' # Getting a list of files not owned by any package +alias packimp='sudo pacman-key -r ' #Import a key ID to the pacman keyring +alias packsign='sudo pacman-key --lsign-key ' #Sign a key ID after importing it to the keyring +alias packref='sudo pacman-key --refresh-keys' #Refresh the list of master keys + +##Yaourt aliases +alias yaup='yaourt -Syu --devel --aur' # Updates all locally installed repository, AUR and git packages +alias yadb='yaourt -B $HOME/Dropbox/sync/archlinux' # Backs up the yaourt database +alias ya='sudo apt-get -t testing install ' # Install packages from AUR/Testing diff --git a/.zsh.after/export.zsh b/.zsh.after/export.zsh new file mode 100644 index 0000000..866f20d --- /dev/null +++ b/.zsh.after/export.zsh @@ -0,0 +1,49 @@ +# use xterm-color anywhere. Sane default for color and termite +if [[ -n $TMUX ]];then + export TERM="screen-256color" +else + export TERM="xterm-color" +fi +# use de_DE.UTF-8 to get 24h format +export LC_TIME=de_DE.UTF-8 + +# browser +export BROWSER=firefox +export REPORTTIME=5 + +# if vimpager is installed, use it instead of less +if [[ -x /usr/bin/vimpager ]];then + export PAGER="vimpager" +else + export PAGER="less -j4" +fi + +export GREP_COLOR="1;33" + +# let RVM ignore global ruby +export rvm_ignore_gemrc_issues=1 + +# Java +# font settings/ renderings +export _JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true' +# non-reparenting windows +export _JAVA_AWT_WM_NONREPARENTING=1 + +# GnuPG +export GPG_TTY=$(tty) +export GPG_AGENT_INFO="" + +# ssh-agent +export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" + +# tmux +if [[ $UID -ne 0 ]]; then + export TMUX_TMPDIR="$XDG_RUNTIME_DIR/tmux/" +fi + +# zsh +if [[ $UID -eq 0 ]]; then + export TMOUT=360 + readonly TMOUT + export TMOUT +fi diff --git a/.zsh.after/frqrec b/.zsh.after/frqrec new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.zsh.after/frqrec diff --git a/.zsh.after/functions.zsh b/.zsh.after/functions.zsh new file mode 100644 index 0000000..deb47ed --- /dev/null +++ b/.zsh.after/functions.zsh @@ -0,0 +1,414 @@ +# < FUNCTIONS + +## BACKUP + function etcbackup() { + BACKUPDIR=$HOME/dropbox/backup + HOSTNAME=$(hostname) + FILE=$1 + + if [ -f $FILE ] + then + FILENAME=$(echo $FILE | sed 's/\///' | sed 's/\//_/g') + cp -v $FILE $BACKUPDIR/$HOSTNAME/$FILENAME + else + echo $FILE does not exist + fi + } + +## DOTFILES + function update_dot() { + for i in $HOME/dropbox/dot/[a-zA-Z]*; + do + if [ -f $i ]; + then + echo file $i + base=`basename $i` + dst=$HOME/.$base + bak=$HOME/.${base}_bak + + case $base in + vimrc|zshrc|*tgz) + echo nothing $i + ;; + *) + if [ -L $dst ]; + then + rm $dst + else + mv $dst $bak + fi + ln -s $i $dst + ;; + esac + + else + if [ -d $i ]; + then + echo dir $i + base=`basename $i | sed 's/_/\//'` + dst=$HOME/.$base + bak=$HOME/.${base}_bak + + case $base in + "vim") + echo nothing $i + ;; + *) + if [ -e $dst ]; + then + if [ -L $dst ]; + then + rm $dst + else + mv $dst $bak + fi + fi + ln -s $i $dst + ;; + esac + else + echo unknown $i + fi + fi + done + } + +## PDF/LATEX + function mkpdf() + { + pdflatex -shell-escape $1 + # latex --output-format=pdf $1 + name=`echo $1 | sed 's/.tex//'` + EXT=(aux log) + for i in $EXT; + do + rm -v $name.$i + done + } + + function gsmerge() + { + target=$1 + echo "target: $target" + sleep 1 + shift + + /usr/bin/gs \ + -sDEVICE=pdfwrite \ + -dCompatibilityLevel=1.4 \ + -dNOPAUSE \ + -dBATCH \ + -sPAPERSIZE=a4 \ + -sOUTPUTFILE=$target $* + } + + function gsmerge_medium() + { + target=$1 + echo "target: $target" + sleep 1 + shift + + /usr/bin/gs \ + -sDEVICE=pdfwrite \ + -dPDFSETTINGS=/ebook \ + -dCompatibilityLevel=1.4 \ + -dNOPAUSE \ + -dBATCH \ + -sPAPERSIZE=a4 \ + -sOutputFile=$target $* + } + +## USABILITY + function lvim() + { + noglob vim $(echo $1 | awk -F":" '{ print $1" +"$2 }' ) + } + + function mkcd() + { + mkdir $1 + cd $1 + } + + function cpwd() + { + pwd >! /tmp/pwd + } + + function ppwd() + { + cd "`cat /tmp/pwd`" + } + + function cp2wd() + { + cp $@ "`cat /tmp/pwd`" + } + function cpmk() { + DIR=${*: -1} + [ ! -d $DIR ] && mkdir -p $DIR + cp $* + + } + + cpmd5(){ + md5sum $1|cut -d ' ' -f 1|cpx + } + + +function publish() { + [ -f $1 ] || return + + DIR=`dirname $1` + FILE=`basename $1` + mute pushd $DIR + scp $FILE pool:public_html/ + echo "http://www-pool.math.tu-berlin.de/~runge/$FILE" + echo "http://www-pool.math.tu-berlin.de/~runge/$FILE"|cpx + mute popd +} + +function securium { + port=44350 + chromium --proxy-server="socks://localhost:$port" & + exit +} + +## ZSH +refresh() { + source $HOME/.zshrc +} + + +## compress stuff +tar_tgz() { + tar cvfz $1.tgz $1 +} +tar_tbz() { + tar cvfj $1.tbz $1 +} +tar_tlz() { + tar --lzma -cvf $1.tlz $1 +} +tar_xz() { + tar cvfJ $1.tar.xz $1 +} + +#Decompress any given compressed file +ex() { +if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xvjf $1 ;; + *.tar.gz) tar xvzf $1 ;; + *.bz2) bunzip2 $1 ;; + *.deb) ar vx $1 + ;; + *.rar) unrar x $1 ;; + *.pgp) gpg -o ${1%".pgp"} -d $1 ;; + *.gpg) gpg -o ${1%".gpg"} -d $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xvf $1 ;; + *.tbz2) tar xvjf $1 ;; + *.tgz) tar xvzf $1 ;; + *.xz) tar xvJf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1 ;; + *.7z) 7z x $1 ;; + *) echo "don't know how to extract '$1'..." ;; + esac +else + echo "'$1' is not a valid file!" +fi +} + +ex2() { + if [ -f $2 ] ;then + echo "Extracting to '$2'" + local out = $2 + else + echo "Extracting to '$( pwd )'" + local out = $( pwd ) + fi + if [ -f $1 ] ;then + echo "'$1'" + else + echo "'$1' is not a valid file!" + fi +} + + + + +##CRYPTSETUP AND LUKS +#TODO: Add possibility of opening/closing multiple devices at once +lopen() { + case $HOST in + "homey") + case $1 in + "video-backup") + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-SAMSUNG_HD153WI_S1UVJ1VZ400797" $1 + ;; + "video") + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-SAMSUNG_HD153WI_S1UVJ1VZ400798" $1 + ;; + "photos") + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-SAMSUNG_HD501LJ_S0MUJ1FQ104574" $1 + ;; + "music") + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-SAMSUNG_HD501LJ_S0MUJ1FPB87663" $1 + ;; + "music-external") + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-ST9500325AS_6VE152RS" $1 + ;; + "photos-external") + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-ST9500325AS_6VE457TN" $1 + ;; + esac + ;; + "dvzrv" | "trvlr") + case $1 in + "music") + if [ -L "/dev/disk/by-uuid/e0b19c7d-9e90-4117-aea1-7e4b321d9d5a" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-uuid/e0b19c7d-9e90-4117-aea1-7e4b321d9d5a" $1 + elif [ -L "/dev/disk/by-id/ata-ST9500325AS_6VE152RS" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-ST9500325AS_6VE152RS" $1 + elif [ -L "/dev/disk/by-id/usb-Seagate_FreeAgent_Go_2GE36KXD-0:0" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/usb-Seagate_FreeAgent_Go_2GE36KXD-0:0" $1 + else + echo "Error! Device $1 is not available" + exit 1 + fi + ;; + "photos") + if [ -L "/dev/disk/by-uuid/b3c5a842-474b-4c2f-a246-abebe1da3450" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-uuid/b3c5a842-474b-4c2f-a246-abebe1da3450" $1 + elif [ -L "/dev/disk/by-id/ata-ST9500325AS_6VE457TN " ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-ST9500325AS_6VE457TN" $1 + elif [ -L "/dev/disk/by-id/usb-Seagate_FreeAgent_Go_2GE4LCR0-0:0" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/usb-Seagate_FreeAgent_Go_2GE4LCR0-0:0" $1 + else + echo "Error! Device $1 is not available" + exit 1 + fi + ;; + "backup-audio") + if [ -L "/dev/disk/by-id/usb-HGST_HTS_725050A7E630_801130168383-0:0" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/usb-HGST_HTS_725050A7E630_801130168383-0:0" $1 + elif [ -L "/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF755AWHHS9S1M" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF755AWHHS9S1M" $1 + else + echo "Error! Device $1 is not available" + exit 1 + fi + ;; + "backup") + if [ -L "/dev/disk/by-id/usb-ST950042_0ASG_55DFFFFFFFFF-0:0" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/usb-ST950042_0ASG_55DFFFFFFFFF-0:0" $1 + else + echo "Error! Device $1 is not available" + exit 1 + fi + ;; + "media") + if [ -L "/dev/disk/by-id/ata-ST4000LM016-1N2170_W80088G0" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-ST4000LM016-1N2170_W80088G0" $1 + elif [ -L "/dev/disk/by-uuid/e5adbc14-732e-43e8-b6e1-febdfe6d1d3c" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-uuid/e5adbc14-732e-43e8-b6e1-febdfe6d1d3c" $1 + else + echo "Error! Device $1 is not available" + exit 1 + fi + ;; + "video") + if [ -L "/dev/disk/by-id/ata-ST4000LM016-1N2170_W80092WW" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-id/ata-ST4000LM016-1N2170_W80092WW" $1 + elif [ -L "/dev/disk/by-uuid/5ac700be-e168-495b-b133-42064fa101e4" ]; then + sudo cryptsetup luksOpen "/dev/disk/by-uuid/5ac700be-e168-495b-b133-42064fa101e4" $1 + else + echo "Error! Device $1 is not available" + exit 1 + fi + ;; + *) + echo "Error! Device $1 is not available" + exit 1 + ;; + esac + esac + if [[ -e "/dev/mapper/$1" ]]; then + sudo mount /dev/mapper/$1 /mnt/$1 + if [ $1 = "media" ]; then + sudo mount --bind /mnt/media/music /mnt/music + sudo mount --bind /mnt/media/photos /mnt/photos + if [ ! -h ~/.cache/shotwell ]; then + ln -s /mnt/photos/shotwell/ ~/.cache/shotwell + fi + fi + else + echo "Error: Device /dev/mapper/$1 is not available." + exit 1 + fi +} + +lclose() { + notmounted=$(mountpoint /mnt/$1) + if [ "$?" -eq 0 ]; then + #stop services blocking the umount + if [[ $HOST == "homey" ]]; then + sudo systemctl stop rpc-{idmapd,mountd} rpcbind + fi + if [ $1 = "media" ]; then + sudo umount /mnt/{music,photos} + fi + sudo umount /mnt/$1 + sudo cryptsetup luksClose $1 + #restart services that blocked the umount + if [[ $HOST == "homey" ]]; then + sudo systemctl start rpc-{idmapd,mountd} rpcbind + fi + else + echo "/mnt/$1 is not a mountpoint or not mounted." + fi +} + +## RSYNC + +backupinfo() { + log_cyan "INFO" + rsync\ + -r\ + -n\ + -t\ + -p\ + -o\ + -g\ + -v\ + --progress\ + --delete\ + --ignore-existing\ + --size-only\ + -s\ + --exclude 'lost+found'\ + --exclude '.Trash-1000'\ + --exclude '$RECYCLEBIN'\ + --exclude 'System Volume Information'\ + --exclude '.thumbs'\ + $1 $2 + echo "backupfolder path/to/folder/ /path/to/other/folder" +} + +backupfolder() { + rsync \ + -r\ + -t\ + -p\ + -o\ + -g\ + -v\ + --progress\ + --delete --ignore-existing --size-only -s --exclude 'lost+found' --exclude '.Trash-1000' --exclude '$RECYCLEBIN' --exclude 'System Volume Information' --exclude '.thumbs' $1 $2 +} + + +# FUNCTIONS > diff --git a/.zsh.after/hostspecific.zsh b/.zsh.after/hostspecific.zsh new file mode 100644 index 0000000..e088543 --- /dev/null +++ b/.zsh.after/hostspecific.zsh @@ -0,0 +1,6 @@ +case $(hostname) in + s4|s5|c*) + . $HOME/.zsh.after/apt + . $HOME/.zsh.after/unixpool + ;; +esac diff --git a/.zsh.after/key-bindings.zsh b/.zsh.after/key-bindings.zsh new file mode 100644 index 0000000..300b3c7 --- /dev/null +++ b/.zsh.after/key-bindings.zsh @@ -0,0 +1,22 @@ +## OVERRIDE KEY-BINDINGS +bindkey -s '\e,' '..\n' # [Esc-,] - run command: .. (up directory) +bindkey '\e.' insert-last-word # [Esc-.] - insert last word +#bindkey '^[Oc' forward-word # [Ctrl-RightArrow] - move forward one word +#bindkey '^[OC' forward-word # [Ctrl-RightArrow] - move forward one word +#bindkey '^[Od' backward-word # [Ctrl-LeftArrow] - move backward one word +#bindkey '^[OD' backward-word # [Ctrl-LeftArrow] - move backward one word + +## URXVT & TMUX +case $TERM in + rxvt-unicode-256color) + bindkey '^[Oc' forward-word # [Ctrl-RightArrow] - move forward one word + bindkey '^[Od' backward-word # [Ctrl-LeftArrow] - move backward one word + ;; + screen-256color) + bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - tmux: move forward one word + bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - tmux: move backward one word + ;; +esac + +## NEW KEY-BINDINGS +bindkey '^K' kill-line diff --git a/.zsh.after/prompt.zsh b/.zsh.after/prompt.zsh new file mode 100644 index 0000000..46c9f36 --- /dev/null +++ b/.zsh.after/prompt.zsh @@ -0,0 +1,2 @@ +prompt dvzrv + diff --git a/.zsh.after/sources.zsh b/.zsh.after/sources.zsh new file mode 100644 index 0000000..7140d78 --- /dev/null +++ b/.zsh.after/sources.zsh @@ -0,0 +1,6 @@ +# Source RVM +[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" + +# RVM bash completion +[[ -r "$HOME/.rvm/scripts/completion" ]] && source "$HOME/.rvm/scripts/completion" + diff --git a/.zsh.after/udisks.zsh b/.zsh.after/udisks.zsh new file mode 100644 index 0000000..3478aea --- /dev/null +++ b/.zsh.after/udisks.zsh @@ -0,0 +1,245 @@ +# EXAMPLES: +# - mounting devices +# sdm sdb1 // mount first partition on sdb +# sdm sdb 1 // mount first partition on sdb +# sdm sdb // mount all available partitions on sdb +# sdm // mount all available devices +# mcm mmcblk0p1 // mount first partition on mmcblk0 +# mcm mmcblk0 1 // mount first partition on mmcblk0 +# mcm mmcblk0 // mount all partitions on mmcblk0 +# mcm // mount all partitions on all mmcblk devices +# srm 0 // mount first optical drive +# srm // mount all optical drives +# +# - unmounting devices +# sdu sdb1 // unmount first partition on sdb +# sdu sdb 1 // unmount first partition on sdb +# sdu sdb // unmount all available partitions on sdb +# sdu // unmount all available devices +# mcu mmcblk0p1 // unmount first partition on mmcblk0 +# mcu mmcblk0 1 // unmount first partition on mmcblk0 +# mcu mmcblk0 // unmount all partitions on mmcblk0 +# mcu // unmount all partitions on all mmcblk devices +# sru 0 // unmount first optical drive +# sru // unmount all optical drives +# + +# mount commands: +mount="udisksctl mount -b" +unmount="udisksctl unmount -b" + +# Path to all devices +folder="/dev/" + +# Devices of the form /dev/sd{b,c,d,e,f,g,h,i,j,k,l,m,n} +# path +dev="/dev/sd" +# Device numbers/names +devices=( b c d e f g h i j k l m n ) +# Partition numbers +device_partitions=( 1 2 3 4 5 6 7 8 9 ) + +# Devices of the form /dev/mmcblk{0,1,2,3,4,5,6,7,8,9}p{1,2,3,4,5,6,7,8,9} +# path +mmc="/dev/mmcblk" +# Device numbers/names +mmc_devices=( 0 ) +# Partition numbers +mmc_partitions=( p1 p2 p3 p4 p5 p6 p7 p8 p9 ) + +# Devices of the form /dev/sr{0,1,2} +# path +optical="/dev/sr" +# Device numbers/names +optical_devices=( 0 1 2 ) + +# device functions: +sdm() { + if [[ -n "$2" ]]; then # if 2nd argument is set + if [[ "$1" = ?d* ]]; then # check if 1st argument features the letter d + if [[ -b $folder$1$2 ]]; then # check if block device $1$2 is available + $=mount $folder$1$2 + fi + fi + elif [[ -n "$1" ]]; then # if 1st argument is set + if [[ "$1" = ?d* ]]; then # check if 1st argument featurs a letter d + if [[ -b $folder$1"1" ]]; then #check if first device is available + for a in $device_partitions; do # loop through device partitions of first argument + echo "$folder$1$a" + if [[ -b $folder$1$a ]]; then # checking for each device if available and block device + $=mount "$folder$1$a" + fi + done + else + echo "Trying to mount: $folder$1" + if [[ -b $folder$1 ]]; then # check if 1st argument already is the block device to mount + $=mount $folder$1 + fi + fi + fi + else # here we loop all available block devices and mount them + # TODO: check with df if the device is already mounted + for a in $devices; do # loop through the list of all devices + if [[ -b $dev$a ]]; then # check if first partition of block device is available + for b in $device_partitions; do # loop through the list of all partitions + if [[ -b $dev$a$b ]]; then # if it's a block device + echo "Trying to mount: $dev$a$b" + $=mount "$dev$a$b" + fi + done + fi + done + fi +} + +sdu() { + if [[ -n "$2" ]]; then + if [[ "$1" = ?d* ]]; then + if [[ -b $folder$1$2 ]]; then + echo "Trying to unmount: $folder$1$2" + $=unmount $folder$1$2 + fi + fi + elif [[ -n "$1" ]]; then + if [[ "$1" = ?d* ]]; then + if [[ -b $folder$1"1" ]]; then + for a in $device_partitions; do + if [[ -b $folder$1$a ]]; then # checking for each device if available and block device + echo "Trying to unmount: $folder$1$a" + $=unmount $folder$1$a + fi + done + else + if [[ -b $folder$1 ]]; then + echo "Trying to unmount: $folder$1" + $=unmount $folder$1 + fi + fi + fi + else # unmount all devices mounted + for a in $devices; do + if [[ -b $dev$a ]]; then + for b in $device_partitions; do + if [[ -b $dev$a$b ]]; then # if it's a block device + echo "Trying to unmount: $dev$a$b" + $=unmount $dev$a$b + fi + done + fi + done + fi +} + +# mmc functions: +mcm() { + if [[ -n "$2" ]]; then + if [[ "$1" = mmcblk* ]]; then + if [[ -b $folder$1"p"$2 ]]; then + echo "Trying to mount: $folder$1"p"$2" + $=mount $folder$1"p"$2 + fi + fi + elif [[ -n "$1" ]]; then + if [[ "$1" = mmcblk* ]]; then + if [[ -b $folder$1"p1" ]]; then + for a in $mmc_partitions; do + if [[ -b $folder$1$a ]]; then + echo "Trying to mount: $folder$1$a" + $=mount $folder$1$a + fi + done + else + if [[ -b $folder$1 ]]; then + echo "Trying to mount: $folder$1" + $=mount $folder$1 + fi + fi + fi + else + for a in $mmc_devices; do + if [[ -b $mmc$a"p1" ]]; then + for b in $mmc_partitions; do + if [[ -b $mmc$a$b ]]; then # if it's a block device + echo "Trying to mount: $mmc$a$b" + $=mount $mmc$a$b + fi + done + fi + done + fi +} + +mcu() { + if [[ -n "$2" ]]; then + if [[ "$1" = mmcblk* ]]; then + if [[ -b $folder$1"p"$2 ]]; then + echo "Trying to unmount: $folder$1"p"$2" + $=unmount $folder$1"p"$2 + fi + fi + elif [[ -n "$1" ]]; then + if [[ "$1" = mmcblk* ]]; then + if [[ -b $folder$1"p1" ]]; then + for a in $mmc_partitions; do + echo "Trying to unmount: $folder$1$a" + $=unmount $folder$1$a + done + else + if [[ -b $folder$1 ]]; then + echo "Trying to unmount: $folder$1" + $=unmount $folder$1 + fi + fi + fi + else + for a in $mmc_devices; do + if [[ -b "$mmc$a${mmc_partitions[0]}" ]]; then + echo $mmc$a${mmc_partitions[0]} + for b in $mmc_partitions; do + if [[ -b $mmc$a$b ]]; then # if it's a block device + echo "Trying to unmount: $mmc$a$b" + $=unmount $mmc$a$b + fi + done + fi + done + fi +} + +# sr functions: +srm() { + if [[ -n "$1" ]]; then + if [[ "$1" = ? ]]; then + if [[ -b $optical$1 ]]; then + echo "Trying to mount: $optical$1" + $=mount $optical$1 + fi + fi + else + for a in $optical_devices; do + if [[ -b $optical$a ]]; then + echo "Trying to mount: $optical$a" + $=mount $optical$a + fi + done + fi +} + +sru() { + if [[ -n "$1" ]]; then + if [[ "$1" = ? ]]; then + if [[ -b $optical$1 ]]; then + echo "Trying to unmount: $optical$1" + $=unmount $optical$1 + fi + fi + else + for a in $optical_devices; do + if [[ -b $optical$a ]]; then + echo "Trying to unmount: $optical$a" + $=unmount $optical$a + fi + done + fi +} + diff --git a/.zsh.after/unixpool b/.zsh.after/unixpool new file mode 100644 index 0000000..e2edade --- /dev/null +++ b/.zsh.after/unixpool @@ -0,0 +1,125 @@ +# host based zshrc +# unixpool + +HISTFILE=$HOME/.zhistory +unset MAILCHECK + +## PATH and exports +PATH=${PATH}:/net/local64/bin +PATH=${PATH}:/net/adm/bin +PATH=${PATH}:/net/adm/scripts +PATH=${PATH}:/net/adm/xadm +PATH=${PATH}:/homes/wheel/wheel/bin +PATH=${PATH}:/sbin +PATH=${PATH}:/usr/sbin +#PATH=/store/s4/android/android-sdk-linux_86/tools:$PATH +#PATH=/store/s4/android/android-sdk-linux_86/platform-tools:$PATH + +#Remove /usr/bin/X11: if it shows up in $PATH +autoload -U regexp-replace +regexp-replace PATH '/usr/bin/X11:' '' + +export MATLAB_JAVA=/usr/lib/jvm/java-6-sun-1.6.0.26/jre + +## aliases +alias lp_ps1_100='lp -q 100 -d ps1' +alias lp_ps2_100='lp -q 100 -d ps2' +alias QW='xterm -geometry 84x41-0+0 -T '\''QWatch'\'' -fn 5x8 -e /homes/misc/lpviewer/lpdisp' +alias QWbig='xterm -geometry 84x41-0+0 -T '\''QWatch'\'' -e /homes/misc/lpviewer/lpdisp' +alias QWbighere='/homes/misc/lpviewer/lpdisp' +alias QWdisplay="watch 'for n in {1..3}; do scli -c \"show printer display\" ps\$n-pool; done'" +#alias pyadm="/net/adm/pyadm-64ready/start.py" +alias synergys='synergys -c .config/synergy-$HOST.conf' + +# set pulseaudio server to s4 +if [ -f "`which pax11publish`" ]; +then + if [ ! $SSH_CLIENT ]; + then + if [ `pax11publish | grep -c s4` -eq 0 ]; + then + echo pulseaudio server set + pax11publish -S s4 -e + else + echo pulseaudio active + fi + fi +fi + + +## FUNCTIONS +function music_update() { + echo "updating zip files" + for i in */*; + do + name=`echo $i | sed 's/\ /_/g' | sed 's/\//-/g'` + if [ ! -e $name.zip ]; + then + echo "packing $i as $name.zip" + zip -r $name.zip $i + fi + done + echo "done" +} + +function makantine() { + wget http://personalkantine.personalabteilung.tu-berlin.de/pdf/MA-aktuell.pdf -O /tmp/makantine.$$.pdf >&/dev/null + xpdf -cont -z page /tmp/makantine.$$.pdf + rm -f /tmp/makantine.$$.pdf +} + +function pxeln() { + local instmode host oldumask bopts="" isrc="" + while [ -n "$1" ]; do + if [[ "$1" == -o* ]]; then + [ -z "$bopts" ] && bopts="bootopts=${1:2}" || bopts="${bopts},${1:2}"; + else + if [ -z "$instmode" ]; then instmode="$1"; + elif [ -z "$host" ]; then host="$1"; + else echo "Ignoring superfluous argument \"$1\"."; + fi + fi + + shift + done + if [[ -z "$instmode" || -z "$host" ]]; then + echo -e "Missing argument!\nSyntax: pxeln {mode} {host}\n(use tab completion for available modes)" >/dev/stderr + return 1 + fi + local IP=$(egrep "^[^,]*,${host}," /net/adm/access/HWlist |cut -d, -f1|cut -d. -f4) + local M="01-$(egrep " $IP " /net/adm/access/MAClist 2>/dev/null|sed -e "s/^|[^|]*| \([0-9a-f:]*\) |/\1/" -e "y/:/-/")" + if [[ ${#M} -ne 20 ]]; then + echo "Unknown host." >/dev/stderr + return 1 + fi + shift 2 + oldumask=$(umask -p) + umask 0022 + local instmodetl=$(tr [:upper:] [:lower:]<<<$instmode) + if [ -s /homes/ext15a/tftpboot/pxelinux.cfg/${instmode}.sed ]; then + if [ -e /homes/ext15a/tftpboot/pxelinux.cfg/$M ]; then + rm -f /homes/ext15a/tftpboot/pxelinux.cfg/$M + echo "$host: former PXE diversion removed." + fi + sed /homes/ext15a/tftpboot/pxelinux.cfg/_template \ + -f /homes/ext15a/tftpboot/pxelinux.cfg/${instmode}.sed \ + > /homes/ext15a/tftpboot/pxelinux.cfg/$M + echo -n "$host: elected for ${instmode}" + if [ -n "$bopts" ]; then + sed -i -e "/bootmode=${instmodetl}/ s/$/ ${bopts}/" /homes/ext15a/tftpboot/pxelinux.cfg/$M + echo -n " (with extra boot options: \"$bopts\")" + fi + echo "." + elif [ "$instmode" == "remove" ]; then + rm -f /homes/ext15a/tftpboot/pxelinux.cfg/$M + echo "$host: PXE diversion removed." + else + echo "Unknown PXE mode." >/dev/stderr + fi + $oldumask + return 0 +} + +function mailhighscore() { + for i in /homes/wheel/*; do n=`basename $i`; echo `grep $n /var/spool/mail/runge | grep -c From` $n; done | sort -nr +} diff --git a/.zsh.before/aliases.zsh b/.zsh.before/aliases.zsh new file mode 100644 index 0000000..2fc2c1d --- /dev/null +++ b/.zsh.before/aliases.zsh @@ -0,0 +1,10 @@ +# Global aliases +alias -g ...='../..' +alias -g ....='../../..' +alias -g .....='../../../..' +alias -g C='| wc -l' +alias -g H='| head' +alias -g L="| less" +alias -g N="| /dev/null" +alias -g S='| sort' +alias -g G='| grep' # now you can do: ls foo G something diff --git a/.zsh.before/custom_prompt_path.zsh b/.zsh.before/custom_prompt_path.zsh new file mode 100644 index 0000000..18e68b9 --- /dev/null +++ b/.zsh.before/custom_prompt_path.zsh @@ -0,0 +1,4 @@ +#Load themes from yadr and from user's custom prompts (themes) in ~/.zsh.prompts +autoload promptinit +fpath=($HOME/.zsh.prompts $fpath) +promptinit diff --git a/.zsh.before/functions.zsh b/.zsh.before/functions.zsh new file mode 100644 index 0000000..4b2ef1a --- /dev/null +++ b/.zsh.before/functions.zsh @@ -0,0 +1,11 @@ +# Functions +# +# (f)ind by (n)ame +# usage: fn foo +# to find all files containing 'foo' in the name +function fn() { ls **/*$1* } + +if [ -e $HOME/bin/functions.sh ] +then + . $HOME/bin/functions.sh +fi diff --git a/.zsh.before/git.zsh b/.zsh.before/git.zsh new file mode 100644 index 0000000..c87ec5a --- /dev/null +++ b/.zsh.before/git.zsh @@ -0,0 +1,4 @@ +# Makes git auto completion faster favouring for local completions +__git_files () { + _wanted files expl 'local files' _files +} diff --git a/.zsh.before/key-bindings.zsh b/.zsh.before/key-bindings.zsh new file mode 100644 index 0000000..c1c7d8e --- /dev/null +++ b/.zsh.before/key-bindings.zsh @@ -0,0 +1,10 @@ +# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html +# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins +# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Standard-Widgets + +bindkey -v # Use vi key bindings +bindkey '^r' history-incremental-search-backward # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line. + +# emacs style +bindkey '^a' beginning-of-line +bindkey '^e' end-of-line diff --git a/.zsh.before/last-command.zsh b/.zsh.before/last-command.zsh new file mode 100644 index 0000000..9f7486b --- /dev/null +++ b/.zsh.before/last-command.zsh @@ -0,0 +1,7 @@ +# Use Ctrl-x,Ctrl-l to get the output of the last command +zmodload -i zsh/parameter +insert-last-command-output() { +LBUFFER+="$(eval $history[$((HISTCMD-1))])" +} +zle -N insert-last-command-output +bindkey "^X^L" insert-last-command-output diff --git a/.zsh.before/noglob.zsh b/.zsh.before/noglob.zsh new file mode 100644 index 0000000..ede67c9 --- /dev/null +++ b/.zsh.before/noglob.zsh @@ -0,0 +1,4 @@ +# Don't try to glob with zsh so you can do +# stuff like ga *foo* and correctly have +# git add the right stuff +alias git='noglob git' diff --git a/.zsh.before/path.zsh b/.zsh.before/path.zsh new file mode 100644 index 0000000..f87ba45 --- /dev/null +++ b/.zsh.before/path.zsh @@ -0,0 +1,19 @@ +# Add $HOME/bin before /usr/local/sbin and /usr/local/bin in $PATH +# Also works if they are switched +autoload -U regexp-replace +if [[ "$PATH" != *dave/bin:/usr/local/sbin* ]];then + case "$PATH" in + */usr/local/bin:/usr/local/sbin*) + regexp-replace PATH '/usr/local/bin:/usr/local/sbin:' '$HOME/bin:/usr/local/sbin:/usr/local/bin:' + ;; + */usr/local/sbin:/usr/local/bin*) + regexp-replace PATH '/usr/local/sbin:/usr/local/bin:' '$HOME/bin:/usr/local/sbin:/usr/local/bin:' + ;; + esac +fi + +## RASPBERRY PI +if [[ "$HOST" == *pitheunlord* ]]; then + PATH=$PATH:"/opt/vc/bin:/opt/vc/sbin" +fi + diff --git a/.zsh.before/rm.zsh b/.zsh.before/rm.zsh new file mode 100644 index 0000000..26508a3 --- /dev/null +++ b/.zsh.before/rm.zsh @@ -0,0 +1,2 @@ +# Override rm -i alias which makes rm prompt for every action +alias rm='nocorrect rm' diff --git a/.zsh.before/vi-mode.zsh b/.zsh.before/vi-mode.zsh new file mode 100644 index 0000000..4ac7453 --- /dev/null +++ b/.zsh.before/vi-mode.zsh @@ -0,0 +1,3 @@ +set -o vi +export EDITOR=vim +export VISUAL=vim diff --git a/.zsh.prompts/prompt_agnoster_setup b/.zsh.prompts/prompt_agnoster_setup new file mode 100644 index 0000000..16d18c9 --- /dev/null +++ b/.zsh.prompts/prompt_agnoster_setup @@ -0,0 +1,141 @@ +# vim:ft=zsh ts=2 sw=2 sts=2 +# +# agnoster's Theme - https://gist.github.com/3712874 +# A Powerline-inspired theme for ZSH +# +# # README +# +# In order for this theme to render correctly, you will need a +# [Powerline-patched font](https://gist.github.com/1595572). +# +# In addition, I recommend the +# [Solarized theme](https://github.com/altercation/solarized/) and, if you're +# using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over Terminal.app - +# it has significantly better color fidelity. +# +# # Goals +# +# The aim of this theme is to only show you *relevant* information. Like most +# prompts, it will only show git information when in a git working directory. +# However, it goes a step further: everything from the current user and +# hostname to whether the last call exited with an error to whether background +# jobs are running in this shell will all be displayed automatically when +# appropriate. + +### Segment drawing +# A few utility functions to make it easy and re-usable to draw segmented prompts + +CURRENT_BG='NONE' +SEGMENT_SEPARATOR='⮀' + +# Customizations + +# Checks if working tree is dirty +# From robbyrussell/oh-my-zsh +parse_git_dirty() { + local SUBMODULE_SYNTAX='' + local GIT_STATUS='' + local CLEAN_MESSAGE='nothing to commit (working directory clean)' + if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then + if [[ $POST_1_7_2_GIT -gt 0 ]]; then + SUBMODULE_SYNTAX="--ignore-submodules=dirty" + fi + if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then + GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1) + else + GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1) + fi + if [[ -n $GIT_STATUS ]]; then + echo "$ZSH_THEME_GIT_PROMPT_DIRTY" + else + echo "$ZSH_THEME_GIT_PROMPT_CLEAN" + fi + else + echo "$ZSH_THEME_GIT_PROMPT_CLEAN" + fi +} + +# Takes two arguments, background and foreground. Both can be omitted, +# rendering default background/foreground. +prompt_segment() { + local bg fg + [[ -n $1 ]] && bg="%K{$1}" || bg="%k" + [[ -n $2 ]] && fg="%F{$2}" || fg="%f" + if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then + echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} " + else + echo -n "%{$bg%}%{$fg%} " + fi + CURRENT_BG=$1 + [[ -n $3 ]] && echo -n $3 +} + +# End the prompt, closing any open segments +prompt_end() { + if [[ -n $CURRENT_BG ]]; then + echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR" + else + echo -n "%{%k%}" + fi + echo -n "%{%f%}" + CURRENT_BG='' +} + +### Prompt components +# Each component will draw itself, and hide itself if no information needs to be shown + +# Context: user@hostname (who am I and where am I) +prompt_context() { + local user=`whoami` + + if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then + prompt_segment black default "%(!.%{%F{yellow}%}.)$user@%m" + fi +} + +# Git: branch/detached head, dirty status +prompt_git() { + local ref dirty + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then + ZSH_THEME_GIT_PROMPT_DIRTY='±' + dirty=$(parse_git_dirty) + ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" + if [[ -n $dirty ]]; then + prompt_segment yellow black + else + prompt_segment green black + fi + echo -n "${ref/refs\/heads\//⭠ }$dirty" + fi +} + +# Dir: current working directory +prompt_dir() { + prompt_segment blue black '%~' +} + +# Status: +# - was there an error +# - am I root +# - are there background jobs? +prompt_status() { + local symbols + symbols=() + [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘" + [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" + [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" + + [[ -n "$symbols" ]] && prompt_segment black default "$symbols" +} + +## Main prompt +build_prompt() { + RETVAL=$? + prompt_status + prompt_context + prompt_dir + prompt_git + prompt_end +} + +PROMPT='%{%f%b%k%}$(build_prompt) ' diff --git a/.zsh.prompts/prompt_dvzrv_setup b/.zsh.prompts/prompt_dvzrv_setup new file mode 100644 index 0000000..4758b7a --- /dev/null +++ b/.zsh.prompts/prompt_dvzrv_setup @@ -0,0 +1,94 @@ +# +# A theme based on Steve Losh's Extravagant Prompt with vcs_info integration. +# +# Authors: +# Steve Losh <steve@stevelosh.com> +# Bart Trojanowski <bart@jukie.net> +# Brian Carper <brian@carper.ca> +# steeef_simplified <steeef_simplified@gmail.com> +# Sorin Ionescu <sorin.ionescu@gmail.com> +# +# Screenshots: +# http://i.imgur.com/HyRvv.png +# + +function prompt_steeef_simplified_precmd { + # Check for untracked files or updated submodules since vcs_info does not. + if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then + branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c${_prompt_steeef_simplified_colors[4]}●%f)" + else + branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c)" + fi + + zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" + + vcs_info 'prompt' + + if (( $+functions[python-info] )); then + python-info + fi + + # Get ruby information +# if (( $+functions[ruby-info] )); then +# ruby-info +# fi +} + +# Check if this shell is run through ssh +function ssh_connection { + if [[ -n $SSH_CONNECTION ]]; then + echo "[%F{red}ssh%f] " + fi +} + +function prompt_steeef_simplified_setup { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + prompt_opts=(cr percent subst) + + # Load required functions. + autoload -Uz add-zsh-hook + autoload -Uz vcs_info + + # Add hook for calling vcs_info before each command. + add-zsh-hook precmd prompt_steeef_simplified_precmd + + _prompt_steeef_simplified_colors=( + "%F{cyan}" + "%F{yellow}" + "%F{magenta}" + "%F{red}" + "%F{green}" + ) + + # Formats: + # %b - branchname + # %u - unstagedstr (see below) + # %c - stagedstr (see below) + # %a - action (e.g. rebase-i) + # %R - repository path + # %S - path in the repository + local branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c)" + local action_format="(${_prompt_steeef_simplified_colors[5]}%a%f)" + local unstaged_format="${_prompt_steeef_simplified_colors[2]}●%f" + local staged_format="${_prompt_steeef_simplified_colors[5]}●%f" + + # Set vcs_info parameters. + zstyle ':vcs_info:*' enable bzr git hg svn + zstyle ':vcs_info:*:prompt:*' check-for-changes true + zstyle ':vcs_info:*:prompt:*' unstagedstr "${unstaged_format}" + zstyle ':vcs_info:*:prompt:*' stagedstr "${staged_format}" + zstyle ':vcs_info:*:prompt:*' actionformats "${branch_format}${action_format}" + zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" + zstyle ':vcs_info:*:prompt:*' nvcsformats "" + + # Set python-info parameters. + zstyle ':prezto:module:python:info:virtualenv' format '(%v)' + + # Define prompts. + PROMPT="$(ssh_connection)${_prompt_steeef_simplified_colors[3]}%n%f@${_prompt_steeef_simplified_colors[2]}%m%f ${_prompt_steeef_simplified_colors[5]}%~%f "'${vcs_info_msg_0_}'"$ " + RPROMPT="%(?..[%F{red}%?%f] )" +} + +prompt_steeef_simplified_setup "$@" + diff --git a/.zsh.prompts/prompt_kylewest_setup b/.zsh.prompts/prompt_kylewest_setup new file mode 100644 index 0000000..c67b5e4 --- /dev/null +++ b/.zsh.prompts/prompt_kylewest_setup @@ -0,0 +1,57 @@ +# +# A theme based on sorin theme +# * ruby info shown on the right +# * git info on the left +# * editor mode as $> or <# +# * single line prompt +# +# Authors: +# Sorin Ionescu <sorin.ionescu@gmail.com> +# Kyle West <kswest@gmail.com> + +function prompt_kylewest_precmd { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + + # Get Git repository information. + if (( $+functions[git-info] )); then + git-info on + git-info + fi + + # Get ruby information + if (( $+functions[ruby-info] )); then + ruby-info + fi +} + +function prompt_kylewest_setup { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + prompt_opts=(cr percent subst) + + # Load required functions. + autoload -Uz add-zsh-hook + + # Add hook for calling git-info before each command. + add-zsh-hook precmd prompt_kylewest_precmd + + # editor + zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b' + zstyle ':prezto:module:editor:info:keymap:primary' format "%B%F{green}$>%f%b" + zstyle ':prezto:module:editor:info:keymap:alternate' format "%B%F{magenta}<#%f%b" + + # ruby info (rvm, rbenv) + zstyle ':prezto:module:ruby:info:version' format '[ %v ]' + + # vcs + zstyle ':prezto:module:git:info:branch' format '%F{yellow}%b%f' + zstyle ':prezto:module:git:info:dirty' format '%B%F{red}!%f%b' + zstyle ':prezto:module:git:info:keys' format 'prompt' '- %b%D ' + + # prompts + PROMPT='%F{cyan}%c%f ${git_info[prompt]}${editor_info[keymap]} ' + RPROMPT='%F{blue}${ruby_info[version]}' +} + +prompt_kylewest_setup "$@" diff --git a/.zsh.prompts/prompt_skwp_setup b/.zsh.prompts/prompt_skwp_setup new file mode 100644 index 0000000..c45eb8a --- /dev/null +++ b/.zsh.prompts/prompt_skwp_setup @@ -0,0 +1,74 @@ +# +# A theme based on steeef theme +# * RVM/Rbenv info shown on the right +# * Git branch info on the left +# * Single line prompt +# +# Authors: +# Steve Losh <steve@stevelosh.com> +# Bart Trojanowski <bart@jukie.net> +# Brian Carper <brian@carper.ca> +# steeef <steeef@gmail.com> +# Sorin Ionescu <sorin.ionescu@gmail.com> +# Yan Pritzker <yan@pritzker.ws> + +function prompt_skwp_precmd { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + + # Get Git repository information. + if (( $+functions[git-info] )); then + git-info on + git-info + fi + + # Get ruby information + if (( $+functions[ruby-info] )); then + ruby-info + fi +} + +function prompt_skwp_setup { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + prompt_opts=(cr percent subst) + + autoload -Uz add-zsh-hook + + add-zsh-hook precmd prompt_skwp_precmd + + # Use extended color pallete if available. + if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then + __PROMPT_SKWP_COLORS=( + "%F{81}" # turquoise + "%F{166}" # orange + "%F{135}" # purple + "%F{161}" # hotpink + "%F{118}" # limegreen + ) + else + __PROMPT_SKWP_COLORS=( + "%F{cyan}" + "%F{yellow}" + "%F{magenta}" + "%F{red}" + "%F{green}" + ) + fi + + # git + zstyle ':prezto:module:git:info:branch' format "${__PROMPT_SKWP_COLORS[1]}%b%f" + zstyle ':prezto:module:git:info:added' format "${__PROMPT_SKWP_COLORS[5]}●%f" + zstyle ':prezto:module:git:info:deleted' format "${__PROMPT_SKWP_COLORS[2]}●%f" + zstyle ':prezto:module:git:info:modified' format "${__PROMPT_SKWP_COLORS[4]}●%f" + zstyle ':prezto:module:git:info:untracked' format "${__PROMPT_SKWP_COLORS[3]}●%f" + zstyle ':prezto:module:git:info:keys' format 'prompt' '(%b%d%a%m%u)' + + # ruby info (rvm, rbenv) + zstyle ':prezto:module:ruby:info:version' format '[%v]' + + PROMPT="${__PROMPT_SKWP_COLORS[3]}%n%f@${__PROMPT_SKWP_COLORS[2]}%m%f ${__PROMPT_SKWP_COLORS[5]}%~%f "'$git_info[prompt]'"$ " + RPROMPT='%F{blue}${ruby_info[version]}' +} + +prompt_skwp_setup "$@" diff --git a/.zsh.prompts/prompt_steeef_simplified_setup b/.zsh.prompts/prompt_steeef_simplified_setup new file mode 100644 index 0000000..14b16da --- /dev/null +++ b/.zsh.prompts/prompt_steeef_simplified_setup @@ -0,0 +1,98 @@ +# +# A theme based on Steve Losh's Extravagant Prompt with vcs_info integration. +# +# Authors: +# Steve Losh <steve@stevelosh.com> +# Bart Trojanowski <bart@jukie.net> +# Brian Carper <brian@carper.ca> +# steeef_simplified <steeef_simplified@gmail.com> +# Sorin Ionescu <sorin.ionescu@gmail.com> +# +# Screenshots: +# http://i.imgur.com/HyRvv.png +# + +function prompt_steeef_simplified_precmd { + # Check for untracked files or updated submodules since vcs_info does not. + if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then + branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c${_prompt_steeef_simplified_colors[4]}●%f)" + else + branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c)" + fi + + zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" + + vcs_info 'prompt' + + if (( $+functions[python-info] )); then + python-info + fi + + # Get ruby information + if (( $+functions[ruby-info] )); then + ruby-info + fi +} + +function prompt_steeef_simplified_setup { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + prompt_opts=(cr percent subst) + + # Load required functions. + autoload -Uz add-zsh-hook + autoload -Uz vcs_info + + # Add hook for calling vcs_info before each command. + add-zsh-hook precmd prompt_steeef_simplified_precmd + + # Use extended color pallete if available. + if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then + _prompt_steeef_simplified_colors=( + "%F{81}" # Turquoise + "%F{166}" # Orange + "%F{135}" # Purple + "%F{161}" # Hotpink + "%F{118}" # Limegreen + ) + else + _prompt_steeef_simplified_colors=( + "%F{cyan}" + "%F{yellow}" + "%F{magenta}" + "%F{red}" + "%F{green}" + ) + fi + + # Formats: + # %b - branchname + # %u - unstagedstr (see below) + # %c - stagedstr (see below) + # %a - action (e.g. rebase-i) + # %R - repository path + # %S - path in the repository + local branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c)" + local action_format="(${_prompt_steeef_simplified_colors[5]}%a%f)" + local unstaged_format="${_prompt_steeef_simplified_colors[2]}●%f" + local staged_format="${_prompt_steeef_simplified_colors[5]}●%f" + + # Set vcs_info parameters. + zstyle ':vcs_info:*' enable bzr git hg svn + zstyle ':vcs_info:*:prompt:*' check-for-changes true + zstyle ':vcs_info:*:prompt:*' unstagedstr "${unstaged_format}" + zstyle ':vcs_info:*:prompt:*' stagedstr "${staged_format}" + zstyle ':vcs_info:*:prompt:*' actionformats "${branch_format}${action_format}" + zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" + zstyle ':vcs_info:*:prompt:*' nvcsformats "" + + # Set python-info parameters. + zstyle ':prezto:module:python:info:virtualenv' format '(%v)' + + # Define prompts. + PROMPT="${_prompt_steeef_simplified_colors[3]}%n%f@${_prompt_steeef_simplified_colors[2]}%m%f ${_prompt_steeef_simplified_colors[5]}%~%f "'${vcs_info_msg_0_}'"$ " + RPROMPT='%F{blue}${ruby_info[version]}' +} + +prompt_steeef_simplified_setup "$@" + @@ -0,0 +1,12 @@ +# +# Defines environment variables. +# +# Authors: +# Sorin Ionescu <sorin.ionescu@gmail.com> +# + +# Ensure that a non-login, non-interactive shell has a defined environment. +if [[ "$SHLVL" -eq 1 && ! -o LOGIN && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then + source "${ZDOTDIR:-$HOME}/.zprofile" +fi + @@ -0,0 +1,16 @@ +# +# Executes commands at the start of an interactive session. +# +# Authors: +# Sorin Ionescu <sorin.ionescu@gmail.com> +# + +# Source Prezto. +if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then + source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" +fi + +# Customize to your needs... + +for config_file ($HOME/.zsh.before/*.zsh) source $config_file +for config_file ($HOME/.zsh.after/*.zsh) source $config_file diff --git a/bin/adjust_dpms b/bin/adjust_dpms new file mode 100755 index 0000000..c8e8a0f --- /dev/null +++ b/bin/adjust_dpms @@ -0,0 +1,55 @@ +#!/bin/bash +# Script to adjust dpms settings when running certain programs, +# that don't use fullscreen, but should not be "blanked" in between. +# Programs are defined in separate config file ~/.config/dpms +# Run as timed user script (i.e. adjust_dpms@.service) with systemd +# from /etc/systemd/system/timer-minutely.target.wants + +export DISPLAY=:0.0 + +config="/home/$(whoami)/.config/dpms" +blankoff=0 + +# check for config file existence +if [[ -f $config ]];then + . /home/dave/.config/dpms +else + echo "Config file not readable $config" + exit 1 +fi + +# loop all programs and check for running instances +for i in "${programs[@]}" +do + pid=$(pidof -x $i) + re='^[0-9]+$' + if [[ $pid =~ $re ]]; then + echo "$i running ($pid)" + blankoff=1 + fi +done + +# if valuable programs are running, don't use screen blanking +if [ $blankoff -gt 0 ]; then + echo "Some program requires screensaver to be off." + # print currently set values for screensaver timeout to tmp file + echo "s $(xset q|grep timeout|awk '{print $2}') $(xset q|grep timeout|awk '{print $4}')" > $adjust_dpms + echo "dpms $(xset q|grep Standby|awk '{print $2}') $(xset q|grep Standby|awk '{print $4}') $(xset q|grep Standby|awk '{print $6}')" >> $adjust_dpms + # disable screensaver and dpms + xset s off + xset -dpms +else + xsetq=$(xset q|grep timeout|awk '{print $2}') + # if the timeout is still 0, set it to its former value, or just switch on screensaver/dpms again + if [[ $xsetq -eq 0 ]];then + if [[ -f "$adjust_dpms" ]];then + xset $(head -n1 $adjust_dpms) + xset $(tail -n1 $adjust_dpms) + rm -rf $adjust_dpms + else + xset +dpms + xset s on + fi + fi +fi + diff --git a/bin/androidbackup.sh b/bin/androidbackup.sh new file mode 100755 index 0000000..ee95f01 --- /dev/null +++ b/bin/androidbackup.sh @@ -0,0 +1,143 @@ +#!/bin/bash + +if [ -e $HOME/bin/functions.sh ] +then + . $HOME/bin/functions.sh +else + exit 0 +fi + +## CONFIGURATION +ADB=adb + +function help() +{ + echo "Android data backup/restore" + echo "Usage:" + echo -e "\t [backup|restoredata|restoreapk] [device]" + exit 0 +} + +function _backup() +{ + adb -s $DEVICE pull /data/system/packages.list . + cat packages.list | while read line + do + read name dir <<< $(echo $line | awk '{ print $1 " " $4 }') + #echo $dir + apk=$($ADB shell bash -c "ls /data/app/${name}* 2> /dev/null") + if [ -n $exists ] + then + echo $name $apk + else + echo LALALALALAAA $name + fi + echo "" + done +} + +function _restoreapk() { + mkdir -p done skipped + apps=$(ls -1 | grep -c apk) + num=1 + for i in *.apk + do + if [ $i = "done" -o $i = "skipped" ] + then + continue + fi + echo_green "Application $i ($num/$apps)" + + name=$(echo $i | sed 's/-[0-9].apk//') + existing=$($ADB shell sh -c "ls /data/app*/${name}* 2> /dev/null") + echo $existing + if [ -n "$existing" ] + then + echo $i already installed + mv $i skipped + continue + fi + echo " Restore apk? [1|0] (default 1)" + echo -en " " + read inst + inst=${inst:=1} + + if [ $inst -eq 1 ] + then + $ADB install $i + mv $i done + else + echo -e " Skipping...\n\n" + mv $i skipped + fi + let num=num+1 + done +} + +function _restoredata() +{ + mkdir -p done skipped + apps=$(ls -l | grep -v skipped | grep -v done | grep -c '^d') + num=1 + for i in * + do + if [ $i = "done" -o $i = "skipped" ] + then + continue + fi + + echo_green "Application $i ($num/$apps)" + if [ $(adb shell ls -l /data/data | grep -c $i) -lt 1 ] + then + echo_red " not installed, skipping.\n\n" + mv $i skipped + continue + fi + + echo " Restore data? [1|0] (default 0)" + echo -en " " + read inst + inst=${inst:=0} + + if [ $inst -eq 1 ] + then + if [ $i = "com.android.providers.telephony" ] + then + echo -e "SMS/CALLS" + $ADB push $i/databases/mmssms.db /data/data/$i/databases + $ADB shell chmod 660 /data/data/$i/databases/mmssms.db + $ADB shell toolbox chown 1001:1001 /data/data/$i/databases/mmssms.db + $ADB shell killall system_server + mv $i done + else + own=$($ADB shell ls -l /data/data/ | grep $i | head -n 1 | awk '{ print $3}') + echo -e " User $own\n\n" + mute $ADB push $i /data/data/$i + mute $ADB shell chown $own:$own /data/data/$i/* + mute $ADB shell chown $own:$own /data/data/$i/*/* + mute $ADB shell chown $own:$own /data/data/$i/*/*/* + mv $i done + fi + else + echo -e " Skipping...\n\n" + mv $i skipped + fi + let num=num+1 + done +} + +case $1 in + backup) + _backup + ;; + restoredata) + _restoredata + ;; + restoreapk) + _restoreapk + ;; + *) + help + exit 0 + ;; +esac diff --git a/bin/atmux b/bin/atmux new file mode 100755 index 0000000..7601693 --- /dev/null +++ b/bin/atmux @@ -0,0 +1,122 @@ +#!/bin/bash + +if [ -e $HOME/bin/functions.sh ] +then + . $HOME/bin/functions.sh +else + echo "functions.sh not found" + exit 0 +fi + +# override tmux +tmux='tmux' + +## CONFIGURATION +# session name +sn=${1:-atmux} + +# try to attach earlier session +tmux attach-session -t $sn && exit 0 +#or continue + +# default path +case $sn in + # window definitions + # path:command:custom-name + "thesis") + dpath=/home/konni/dropbox/documents/uni/12ss/BA/breite-quellen/thesis + windows="-:-" + windows+="matlab:echo bla" + ;; + "mako") + dpath=/extra/src/cyanogenmod-10.1 + dcmd=". environment_mako" + windows="-:-" + windows+="-:-" + windows+=" device/lge/mako:-" + windows+=" out/target/product/mako:-" + ;; + "ville_dev") + dpath=/extra/src/cyanogenmod-10.1 + dcmd=". environment_ville" + windows="-:-" + windows+=" -:-" + windows+=" device/htc/ville:-" + windows+=" device/htc/msm8960-common:-" + windows+=" kernel/htc/msm8960:-" + windows+=" vendor/htc:-" + windows+=" out/target/product/ville:-" + ;; + "ville") + dpath=/extra/src/cyanogenmod-jellybean + dcmd=". environment_ville" + windows="-:-" + windows+=" -:-" + windows+=" device/htc/ville:-" + windows+=" device/htc/msm8960-common:-" + windows+=" kernel/htc/msm8960:-" + windows+=" vendor/htc:-" + windows+=" out/target/product/ville:-" + ;; + *) + dpath=$HOME + windows="-:-" +esac + + +# enter default path +mute pushd $dpath + +# prepare windows +num=1 +for window in $windows +do + # parse configuration + read wpath wcmd <<< $(echo $window | sed 's/:/\ /g') + + # set path + unset tpath + if [ $wpath != "-" ] + then + tpath=$wpath + fi + + + if [ $num -eq 1 ] + then + # start new session + $tmux new-session -d -s "$sn" $tname + # set default path for new windows + $tmux set-option -t "$sn" default-path $dpath + else + # create new window in session + $tmux new-window -t "$sn:$num" $tname + fi + + # execute default command + if [ -n "$dcmd" ] + then + $tmux send-keys -t "$n:$num" "$dcmd" C-m + fi + + # change path + if [ -n "$tpath" ] + then + $tmux send-keys -t "$n:$num" "cd $tpath" C-m + fi + + # execute custom command + unset tcmd + if [ "$wcmd" != "-" ] + then + tcmd=$wcmd + $tmux send-keys -t "$n:$num" "$tcmd" C-m + fi + + let num=num+1 +done + +# select window #1 and attach to session +$tmux select-window -t "$sn:1" +$tmux attach-session -t "$sn" + diff --git a/bin/autostart b/bin/autostart new file mode 100755 index 0000000..9d70ad0 --- /dev/null +++ b/bin/autostart @@ -0,0 +1,23 @@ +#!/bin/bash +# Auto starting various programs post lightdm + +export DISPLAY=:0 +export XAUTHORITY=/home/dave/.Xauthority + +KERNEL_NAME=$(uname -r) +if [[ "$KERNEL_NAME" != *rt* ]]; then + pid=$(pidof dropbox) + re='^[0-9]+$' + if [[ $pid =~ $re ]];then + echo "Dropbox alread running. Restarting..." + dropbox stop && dropbox start & + else + dropbox start & + fi +# pulseaudio --start & +# nm-applet & +# firewall-applet & +else + pulseaudio --kill & + qjackctl & +fi diff --git a/bin/backup-settings b/bin/backup-settings new file mode 100755 index 0000000..1a9cc12 --- /dev/null +++ b/bin/backup-settings @@ -0,0 +1,19 @@ +#! /bin/sh + +etcTMP=/tmp/etc.tgz +etcIF=/etc +OF=/home/dave/ownCloud/backup/settings +gpgEND=.gpg + +echo "Backing up /etc directory." +tar cfPz $etcTMP $etcIF +echo "Encrypting compressed directory." +su - dave -c "gpg -e -r 'David Runge <david.runge@frqrec.com>' $etcTMP" +echo "Changing permissions on file." +chown dave:dave $etcTMP$gpgEND +echo "Moving backup to ownCloud." +mv -f $etcTMP$gpgEND $OF +echo "Cleaning up." +rm $etcTMP +echo "Done." + diff --git a/bin/check-rt b/bin/check-rt new file mode 100755 index 0000000..5dc04cd --- /dev/null +++ b/bin/check-rt @@ -0,0 +1,11 @@ +#!/bin/env bash +#Check if the kernel name has -rt in it (we're running Realtime Kernel) + +if [[ $(uname -r) == *-rt* ]];then + echo "Success: Running $(uname -r)." + exit 0 +else + echo "Failure: Running $(uname -r)." + exit 1 +fi + diff --git a/bin/check-vanilla b/bin/check-vanilla new file mode 100755 index 0000000..6b4bdd4 --- /dev/null +++ b/bin/check-vanilla @@ -0,0 +1,11 @@ +#!/bin/env bash +#Check if the kernel name has -rt in it (we're running Realtime Kernel) + +if [[ $(uname -r) == *-rt* ]];then + echo "Failure: Running $(uname -r)." + exit 1 +else + echo "Success: Running $(uname -r)." + exit 0 +fi + diff --git a/bin/checkip b/bin/checkip new file mode 100755 index 0000000..0e9d345 --- /dev/null +++ b/bin/checkip @@ -0,0 +1,4 @@ +#!/bin/bash +#echo "$(curl -s http://checkip.dyndns.org | sed 's/[a-zA-Z/<> :]//g') +#wget -qO- http://ipecho.net/plain ; echo +dig +short myip.opendns.com @resolver1.opendns.com diff --git a/bin/connect_to_jack b/bin/connect_to_jack new file mode 100644 index 0000000..e17ccc2 --- /dev/null +++ b/bin/connect_to_jack @@ -0,0 +1,12 @@ +#!/bin/sh + +case "$HOSTNAME" in + "pitheunlord") + jack_connect SuperCollider:out_1 alsa_out:playback_1 & + jack_connect SuperCollider:out_2 alsa_out:playback_2 & + ;; + "beagleclone") + ;; + "dvzrv") + ;; +esac diff --git a/bin/flac2mp3 b/bin/flac2mp3 new file mode 100755 index 0000000..9dd970b --- /dev/null +++ b/bin/flac2mp3 @@ -0,0 +1,19 @@ +find -name *.flac -print0 | while read -d $'\0' a + + +do +OUTF=`echo "$a" | sed s/\.flac$/.mp3/g` + +ARTIST=`metaflac "$a" --show-tag=ARTIST | sed s/.*=//g` +TITLE=`metaflac "$a" --show-tag=TITLE | sed s/.*=//g` +ALBUM=`metaflac "$a" --show-tag=ALBUM | sed s/.*=//g` +GENRE=`metaflac "$a" --show-tag=GENRE | sed s/.*=//g` +TRACKNUMBER=`metaflac "$a" --show-tag=TRACKNUMBER | sed s/.*=//g` +DATE=`metaflac "$a" --show-tag=DATE | sed s/.*=//g` + +flac -c -d "$a" | lame -m j -q 0 --vbr-new -V 0 -s 44.1 - "$OUTF" +id3 -t "$TITLE" -T "${TRACKNUMBER:-0}" -a "$ARTIST" -A "$ALBUM" -y "$DATE" -g "${GENRE:-12}" "$OUTF" + +done + + diff --git a/bin/functions.sh b/bin/functions.sh new file mode 100755 index 0000000..951def5 --- /dev/null +++ b/bin/functions.sh @@ -0,0 +1,176 @@ +#!/bin/bash +# some functions + +# zsh color output +# echo "$FG[46]$FX[blink]Hello, World" + +function echo_green() { + echo -e '\E[1;32m'$*'\E[0m' +} + +function echo_red() { + echo -e '\E[1;31m'$*'\E[0m' +} + +function echo_magenta() { + echo -e '\E[1;35m'$*'\E[0m' +} + +function echo_cyan() { + echo -e '\E[1;36m'$*'\E[0m' +} + +# log text ... +function log() { + date=`date "+%Y-%m-%d %H:%M:%S"` + if [ -n $VERBOSE ] + then + echo $date $@ | tee -a $LOGFILE + fi + [ -n $LOGFILE ] && echo $date $@ >> $LOGFILE +} + +function log_green() { + date=`date "+%Y-%m-%d %H:%M:%S"` + if [ -n $VERBOSE ] + then + echo_green $date $@ + fi + [ -n $LOGFILE ] && echo $date $@ >> $LOGFILE +} + +function log_red() { + date=`date "+%Y-%m-%d %H:%M:%S"` + if [ -n $VERBOSE ] + then + echo_red $date $@ + fi + [ -n $LOGFILE ] && echo $date $@ >> $LOGFILE +} + +function log_magenta() { + date=`date "+%Y-%m-%d %H:%M:%S"` + if [ -n $VERBOSE ] + then + echo_magenta $date $@ + fi + [ -n $LOGFILE ] && echo $date $@ >> $LOGFILE +} + +function log_cyan() { + date=`date "+%Y-%m-%d %H:%M:%S"` + if [ -n $VERBOSE ] + then + echo_cyan $date $@ + fi + [ -n $LOGFILE ] && echo $date $@ >> $LOGFILE +} + +function notify() { + title="$1" + text="$2" + echo 'naughty.notify({title = "'$title'", text = "'$text'"})' | awesome-client +} + +# mute command +function mute() { + $@ > /dev/null 2> /dev/null +} + +# run pidfile command +function run() { + pidfile=$1 + shift + command=$@ + + exec $command > /dev/null 2> /dev/null & + pid=$! + sleep 0.25 + npid=$(pidof -s $1) + if [ -n "$npid" ] && [ $npid -ne $pid ] + then + pid=$npid + fi + echo $pid > $pidfile + log_green executed $command"\n" +} + +# run_once $pidfile $command[] +function run_once() { + pidfile=/tmp/run/lock/$1 + shift + command=$@ + + mkdir -p $(dirname $pidfile) + + if [ -f $pidfile ]; + then + pid=`head -n 1 $pidfile` + running=$(ps -u $(whoami) -p $pid | grep '^[ ]*'$pid) + if [ -z "$running" ] + then + log_cyan stale pidfile found + rm -f $pidfile + + npid=$(pidof -s $1) + if [ -n "$npid" ] + then + log_green "pidfile updated\n" + echo $npid > $pidfile + else + run $pidfile $command + fi + + else + log_cyan "active pidfile found\n" + fi + else + pid=`ps | grep "$command" | grep -v grep | head -n 1 | awk '{ print $1 }'` + if [ -z "$pid" ] + then + log_green not running + run $pidfile $command + else + log_cyan "pidfile updated\n" + echo $pid > $pidfile + fi + fi +} + +# run_auto $file +function run_auto() { + file=$1 + . $file + + cur_host=`hostname` + case $cur_host in + annoyance|silence|remembrance) + cur_area=private + ;; + c*|s*) + cur_area=unixpool + ;; + esac + + if [ $area != $cur_area -a $area != "any" ] + then + log_magenta invalid_area $(basename $file)"\n" + return + fi + + if [ $host != $cur_host -a $host != "any" ] + then + log_magenta invalid_host $(basename $file)"\n" + return + fi + + if [ $allow_multiple -eq 1 ] + then + log_green run $(basename $file) + run /dev/null $command + else + log_green run_once $(basename $file) + run_once `basename $file` $command + fi +} + diff --git a/bin/gpg2mutt b/bin/gpg2mutt new file mode 100755 index 0000000..d9db27b --- /dev/null +++ b/bin/gpg2mutt @@ -0,0 +1,69 @@ +#!/bin/bash +# ~/.mutt/generate_pgp_auto +# Generate mutt pgp_auto* send-hooks from gpg pubring. +# Redirect output to file and source that in muttrc. +# Add the global hook _before_ sourcing the list: +# send-hook . 'reset pgp_autoencrypt' +# -=*# created by erAck #*=- CopyLeft Eike Rathke 2008-01-08T01:36+0100 + +# At least in an UTF-8 environment sed gets confused by 8-bit characters in +# real names and doesn't match the address anymore, an empty LANG variable +# works around. +LANG= + +# Output file +output="$HOME/.mutt/gpg-auto.rc" + +# if the file exists, delete it +if [ -f "${output}" ]; then + rm "${output}" +fi + +# 2nd gpg colon field: +# d := disabled (deprecated - use the 'D' in field 12 instead) +# e := expired +# r := revoked + +# Note that the following lines are part of the sed script passed by the shell +# and may not contain the ' character! Hence the double backslash in mail +# addresses to escape the regex . dot meta character for Mutt. +#gpg --list-keys --with-colons --fixed-list-mode --no-secmem-warning +gpg --list-keys --with-colons --fixed-list-mode --no-secmem-warning | sed -ne ' + +:START + +# ignore d|e|r keys +/^pub:[der]:/ b IGNORE + +# ignore disabled keys, D in last field (12) +/^pub:.*D[^:]*:$/ b IGNORE + +# take keys with encryption capability (E in last field), ignore without and +# other records like ^tru: +#/^pub:.*E[^:]*:$/ ! b IGNORE + +# extract uids and convert address to mutt hook and print +:EXTRACT +# ignore non-uid or no address +/^uid:[^der]:[^<]*<\([^:>]\+@[^:>]\+\)>/ ! b NUSKIP +# extract address +# somehow the colon part after \)> is needed to not produce a trailing : in output +# sed buffer problem? +s/^uid:[^der]:[^<]*<\([^:>]\+@[^:>]\+\)>[^:]*:/\1/ +# escape dot meta characters, with escaped backslash for mutt +s/\./\\\\./g +# print hook +s/\(.*\)/send-hook "!~l ~t \1" "set crypt_autoencrypt"/p +:NUSKIP +n +/^pub:/ b START +b EXTRACT + +# ignore entire key with uid/sub/... until next pub is encountered +:IGNORE +n +/^pub:/ b START +b IGNORE + +' | egrep -v 'WhatYouDontWantInThisList@example\\\\\.org' | sort -u > ${output} +# Note the triple escaped backslash! diff --git a/bin/letter b/bin/letter new file mode 100644 index 0000000..87e2c34 --- /dev/null +++ b/bin/letter @@ -0,0 +1,71 @@ +#!/bin/bash +# Create a letter + +# Configuration +template=~/documents/letter_template.tex +dir=~/documents/`date +%Y` +texdir=$dir/tex +editor=/usr/bin/vim +reader=/usr/bin/mupdf + +function mkpdf () { + pdflatex -shell-escape $1.tex + EXT=(aux log) + for i in ${EXT[*]} + do +rm -v $1.$i + done +} + +# Preparation +mkdir -p $dir +mkdir -p $texdir + +named=0 +while [ $named -eq 0 ] +do +read -p "Enter document name: " REPLY + docname=`echo $REPLY | sed 's/\ /_/g'` + docdate="`date +%Y-%m-%d`" + doc=$dir/${docdate}_${docname} + tex=$dir/${docdate}_${docname}.tex + pdf=$dir/${docdate}_${docname}.pdf + if [ -e $pdf ] + then +read -p "Document already exists. Overwrite? (y/N) " REPLY + [ "$REPLY" == "y" ] || continue +fi + +read -p "Create document \"$pdf\"? (Y/n) " REPLY + [ "$REPLY" == "y" -o x"$REPLY" == x ] && named=1 +done + +cd $dir +cp $template $tex + +$editor $tex +mkpdf $doc +$reader $pdf + +finished=0 +while [ $finished -eq 0 ] +do +read -p "Finished editing? (Y/n) " REPLY + if [ "$REPLY" == "y" -o x"$REPLY" == x ] + then +finished=1 + else + $editor $tex + mkpdf $doc + $reader $pdf + fi +done + +read -p "Keep a copy of the .tex file? (Y/n) " REPLY +if [ "$REPLY" == "y" -o x"$REPLY" == x ] +then +mv $tex $texdir +else +rm $tex +fi + diff --git a/bin/lid-switch-action b/bin/lid-switch-action new file mode 100755 index 0000000..a2779b7 --- /dev/null +++ b/bin/lid-switch-action @@ -0,0 +1,198 @@ +#!/bin/bash +# What action to take on closing the laptop lid, +# depending on whether a screen is attached or not. +# This implies setting HandleLidSwitch=ignore in /etc/systemd/logind.conf +# Call this script from /etc/acpi/handler.sh (or other properly set up script +# for handling button/lid acpi event) with parameter 0 and 1 for close and open respectively + +set -e -u + +# Find current Xsession user through loginctl list-sessions (excluding lightdm) +# TODO: make available for desktop manager, too! +declare x_user="$(loginctl list-sessions --no-legend| sed -e 's/\s\{2,\}/ /g;s/^[[:space:]]*//' | \ + cut -d ' ' -f 3| grep -v "lightdm"|uniq)" + +# Fail if there is no user set +if [ -z "$x_user" ]; then + echo "error no user!" + exit 1 +fi + +# Export Xorg DISPLAY and XAUTHORITY +# TODO: Get number of X DISPLAY from tmp +#declare x_display="/tmp/.X11-unix/X*" +export DISPLAY=:0 +export XAUTHORITY=/home/$x_user/.Xauthority + +# Define the log file +declare log="/home/$x_user/.cache/$(basename $0)" +if [[ ! -w "$log" ]]; then + touch "$log" + chown ${x_user}:${x_user} "$log" +# exec > "$log" 2>&1 +fi + +declare -a arguments=( ) +declare -a connections=( ) +declare -a active_connections=( ) +declare -a available_connections=( ) +declare -a non_primary=( "eDP1" ) +declare -a pan=( "DP2-1" "eDP1" ) +declare -a pan_vertical=( 'empty' 'empty' ) # with empty placeholders! +declare internal="eDP1" +declare current_primary="" +declare action="" + +# declare keywords (xrandr arguments) +declare pre_output=" --output " +declare post_auto=" --auto " +declare post_primary=" --primary " +declare post_pos_rightof=" --right-of" +declare post_pos_leftof=" --left-of" +declare post_off=" --off " + +function setup_xscreen() +{ + local outputs=( ) + local connection_counter=0 + case "$action" in + "open") + if [ ${#available_connections[@]} -gt 1 ]; then + for connection in ${pan[@]} + do + echo "$connection" >> $log + set +e + find_component_in "$connection" ${available_connections[@]} + if [ $? -eq 0 ]; then + echo "$connection is amongst the available outputs." >> $log + # adding --output argument + outputs=( ${outputs[@]:+${outputs[@]}} "$pre_output" ) + # adding name of output + outputs=( ${outputs[@]:+${outputs[@]}} "$connection" ) + # check whether output should not be primary in a multi output setup + find_component_in "$connection" ${non_primary[@]} + if [ $? -eq 0 ]; then + echo "$connection is setup for non-primary." >> $log + else + echo "$connection is NOT setup for non-primary." >> $log + # adding --primary argument + outputs=( ${outputs[@]:+${outputs[@]}} "$post_primary" ) + fi + if [ $connection_counter -gt 0 ]; then + # adding a --right-of <connection before this one> argument + outputs=( ${outputs[@]:+${outputs[@]}} "$post_pos_rightof" "${pan[$((connection_counter-1))]}" ) + fi + # adding --auto argument + outputs=( ${outputs[@]:+${outputs[@]}}"$post_auto" ) + connection_counter=$(( $connection_counter + 1 )) + fi + set -e + done + fi + ;; + "close") + if [ ${#available_connections[@]} -gt 1 ]; then + for connection in ${pan[@]} + do + echo "$connection" >> $log + set +e + find_component_in "$connection" ${available_connections[@]} + if [ $? -eq 0 ]; then + echo "$connection is amongst the available outputs." >> $log + # adding --output argument + outputs=( ${outputs[@]:+${outputs[@]}} "$pre_output" ) + # adding name of output + outputs=( ${outputs[@]:+${outputs[@]}} "$connection" ) + # if the connection is not the internal output + if [ $connection != $internal ]; then + # check whether output should not be primary in a multi output setup + find_component_in "$connection" ${non_primary[@]} + if [ $? -eq 0 ]; then + echo "$connection is setup for non-primary." >> $log + else + echo "$connection is NOT setup for non-primary." >> $log + # adding --primary argument + outputs=( ${outputs[@]:+${outputs[@]}} "$post_primary" ) + fi + if [ $connection_counter -gt 0 ]; then + # adding a --right-of <connection before this one> argument + outputs=( ${outputs[@]:+${outputs[@]}} "$post_pos_rightof" "${pan[$((connection_counter-1))]}" ) + fi + # adding --auto argument + outputs=( ${outputs[@]:+${outputs[@]}}"$post_auto" ) + connection_counter=$(( $connection_counter + 1 )) + else + # adding a --off argument for the interal screen + outputs=( ${outputs[@]:+${outputs[@]}} "$post_off" ) + fi + fi + set -e + done + fi + ;; + esac +echo "Calling: xrandr ${outputs[@]}" >> $log +xrandr ${outputs[@]} +} + +function find_component_in() +{ + local -r component=$1 + shift + local value + for value in "$@" + do + [[ $value == "$component" ]] && return 0 + done + return 1 +} + +function get_current_x_information() +{ + # get current xrandr settings + current_xrandr=$(xrandr) + # get current primary output from xrandr + current_primary=$(echo "$current_xrandr" | \ + grep -wE '(\bconnected.*primary.*[0-9]{1,5}\x[0-9]{1,5}\+[0-9]{1,5}\+[0-9]{1,5})' | \ + cut -d ' ' -f 1) + echo "Current primary output: $current_primary" >> $log + # get all current active connections + active_connections=( "${active_connections[@]:+${active_connections[@]}}" $(echo "$current_xrandr" | \ + grep -wE '(\bconnected.*[0-9]{1,5}\x[0-9]{1,5}\+[0-9]{1,5}\+[0-9]{1,5})' | cut -d ' ' -f 1) ) + echo "Current active connections: ${active_connections[@]}" >> $log + # get all currently available connections + available_connections=( "${available_connections[@]:+${available_connections[@]}}" $(echo "$current_xrandr" | \ + grep -wE '(\bconnected.*)' | cut -d ' ' -f 1) ) + echo "Currently available connections: ${available_connections[@]}" >> $log + # get all available connections + connections=( "${connections[@]:+${connections[@]}}" $(echo "$current_xrandr"| grep -v 'Screen' | cut -d ' ' -f 1)) + echo "All current connections: ${connections[@]}" >> $log +} + +function get_action() +{ + arguments=( "${arguments[@]:+${arguments[@]}}" "${@:+$@}" ) +# echo "${@:+$@}" >> $log +# echo "${arguments[@]:+${arguments[@]}}" >> $log + if [ ${#arguments[@]} -gt 0 ];then + if [ "${arguments[0]}" = "button/lid" ]; then + case "${arguments[2]}" in + "open") + action="open" + ;; + "close") + action="close" + ;; + esac + elif [ "${arguments[0]}" = "login" ]; then + action="open" + fi + fi + echo "Action set: $action" >> $log +} + +# pass arguments to the script to the get_action function +get_action "${@:+$@}" +get_current_x_information +setup_xscreen + diff --git a/bin/lightdm-display-setup b/bin/lightdm-display-setup new file mode 100755 index 0000000..94ce0a5 --- /dev/null +++ b/bin/lightdm-display-setup @@ -0,0 +1,4 @@ +#!/bin/bash +# Script to run as lightdm "display-setup-script" + +runuser -l dave -c 'autorandr -c' diff --git a/bin/lowercase b/bin/lowercase new file mode 100755 index 0000000..09273b0 --- /dev/null +++ b/bin/lowercase @@ -0,0 +1,23 @@ +#!/bin/bash + +# lowerext.sh + +while read f; do + if [[ "$f" = *.* ]]; then + # Extract the basename + b="${f%.*}" + + # Extract the extension + x="${f##*.}" + + # Convert the extension to lower case + # Note: this only works in recent versions of Bash + l="${x,,}" + + if [[ "$x" != "$l" ]]; then + mv "$f" "$b.$l" + fi + else + continue + fi +done diff --git a/bin/mirssi b/bin/mirssi new file mode 100755 index 0000000..6a9ceaa --- /dev/null +++ b/bin/mirssi @@ -0,0 +1,12 @@ +#!/bin/bash +# start notification daemon +# connect to server and open port +# kill notification daemon + +PATH=$HOME/bin/:$PATH +notify_irssi_server.pl &> /dev/null & +pid=$! + +ssh -R 7090:localhost:7090 sleepmap + +kill $pid diff --git a/bin/monitor-hotplug b/bin/monitor-hotplug new file mode 100755 index 0000000..6c2d1d6 --- /dev/null +++ b/bin/monitor-hotplug @@ -0,0 +1,7 @@ +#!/bin/bash +# Script to be called upon hotplug (change) udev event, to acquire correct resolution for connected screens + +export DISPLAY=:0 +export XAUTHORITY=/home/dave/.Xauthority + +/usr/bin/autorandr -c & diff --git a/bin/notify_irssi_server.pl b/bin/notify_irssi_server.pl new file mode 100755 index 0000000..e1c7b80 --- /dev/null +++ b/bin/notify_irssi_server.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl +# +use IO::Socket; +my $sock = new IO::Socket::INET ( + LocalHost => '127.0.0.1', + LocalPort => '7090', + Proto => 'tcp', + Listen => 1, + Reuse => 1, +); +die "Could not create socket: $!\n" unless $sock; + +while(true) { + my $new_sock = $sock->accept(); + while(<$new_sock>) { + my ($server, $channel, $text, $active) = split(/:::/); + #print "$_\n"; + my ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime(); + # zero padding + if ($hour < 10) { + $hour = "0$hour"; + } + if ($minute < 10) { + $minute = "0$minute"; + } + if ($channel =~ m/#/ ) { + $timeout = 10; + } + else { + if ($channel =~ m/bitlbee/ ) { + $timeout = 10; + } + else { + $timeout = 5; + } + } + + ## filter invalid chars + # allowed: [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] + $text =~ s/[^\x01-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]//go; + # # restricted:[#x1-#x8][#xB-#xC][#xE-#x1F][#x7F-#x84][#x86-#x9F] + $text =~ s/[\x01-\x08\x0B-\x0C\x0E-\x1F\x7F-\x84\x86-\x9F]//go; + + ## replace otr information + $text =~ s/^03/OTR:\ /; + + ## remove ' + $text =~ s/\'//g; + + ## remove " + $text =~ s/\"//g; + + print "message({action=\"new\", timeout=$timeout, active=$active, title=\"$hour:$minute $channel\", text=\"$text\"})\n"; + ## AWESOME custom function + system("echo 'message({action=\"new\", timeout=$timeout, active=$active, title=\"$hour:$minute $channel\", text=\"$text\"})' | awesome-client"); + ## AWESOME + # system("echo 'notify_irssi=naughty.notify({timeout = $timeout, title = \"$hour:$minute $channel\", text = \"$text\"})' | awesome-client"); + ## NOTIFY-SEND timeout in ms + # system("notify-send -t $timeout*1000 \"$hour:$minute $channel\" \"$text\""); + } +} +close($sock); diff --git a/bin/notify_mpd b/bin/notify_mpd new file mode 100755 index 0000000..8bdcf8c --- /dev/null +++ b/bin/notify_mpd @@ -0,0 +1,42 @@ +#!/bin/bash +# TODO: notify-send on non availabilty of mpc +mpc "$@" > /dev/null +lines=`mpc | wc -l` + +if [ $lines -gt 1 ]; +then + line1="`mpc | head -n 1`" + line2="`mpc | head -n 3 | tail -n 2 | sed 's/[a-z]*\:\ off//g'`" + + status="`echo $line2 | awk '{ print $1 }'`" + position="`echo $line2 | awk '{ print $3 }'`" + position="($position)" + volume="[`echo $line2 | awk '{ print $5 $6 }' | sed 's/volume\://' | sed 's/repeat\://'`]" + + repeat="`echo $line2 | grep -c 'repeat: on' | sed 's/1/r/' | sed 's/0//'`" + random="`echo $line2 | grep -c 'random: on' | sed 's/1/z/' | sed 's/0//'`" + single="`echo $line2 | grep -c 'single: on' | sed 's/1/s/' | sed 's/0//'`" + consume="`echo $line2 | grep -c 'consume: on' | sed 's/1/c/' | sed 's/0//'`" + flags="[$repeat$random$single$consume]" + + title="$line1" + text="$status $position $flags $volume" + +else + line="`mpc | sed 's/[a-z]*\:\ off//g'`" + + volume="[`echo $line | awk '{ print $2 }'`]" + + repeat="`echo $line | grep -c 'repeat: on' | sed 's/1/r/' | sed 's/0//'`" + random="`echo $line | grep -c 'random: on' | sed 's/1/z/' | sed 's/0//'`" + single="`echo $line | grep -c 'single: on' | sed 's/1/s/' | sed 's/0//'`" + consume="`echo $line | grep -c 'consume: on' | sed 's/1/c/' | sed 's/0//'`" + flags="[$repeat$random$single$consume]" + + title="not playing" + text="$flags $volume" +fi + +## NOTIFY-SEND +notify-send -t 2000 "$title" "$text" + diff --git a/bin/nouveau2nvidia b/bin/nouveau2nvidia new file mode 100755 index 0000000..a71e6b7 --- /dev/null +++ b/bin/nouveau2nvidia @@ -0,0 +1,57 @@ +#!/bin/bash +# nouveau -> nvidia + +set -e +# check if root +if [[ $EUID -ne 0 ]]; then + echo "You must be root to run this script. Aborting..."; + exit 1; +fi + +echo "Switching MODULES line in /etc/mkinitcpio.conf" +sed -i 's/MODULES="dm-mod nouveau"/#MODULES="dm-mod nouveau"/' /etc/mkinitcpio.conf +sed -i 's/#*MODULES="dm-mod nvidia"/MODULES="dm-mod nvidia"/' /etc/mkinitcpio.conf + +echo "Uninstalling nouveau drivers, installing nvidia drivers." + +declare -i NVIDIAINSTALL +NVIDIART=$(pacman -Qi|grep Name|grep linux-rt) + +if [[ -n "$NVIDIART" ]]; then + NVIDIAINSTALL=$NVIDIAINSTALL+1 + echo "Seems that linux-rt is installed. Marking nvidia-rt for installation." +fi + +pacman -Rdds --noconfirm nouveau-dri xf86-video-nouveau mesa-libgl lib32-nouveau-dri lib32-mesa-libgl + +case $NVIDIAINSTALL in + 0) + pacman -S --noconfirm nvidia lib32-nvidia-libgl + ;; + 1) + pacman -S --noconfirm nvidia lib32-nvidia-libgl + aura -A --noconfirm nvidia-rt + ;; +esac + +echo "Switching X11 settings." +NVIDIACONF="/etc/X11/xorg.conf.d/20-nvidia.conf" +NOUVEAUCONF="/etc/X11/xorg.conf.d/20-nouveau.conf" +BKP=".bkp" + +if [[ -f $NOUVEAUCONF ]]; then + mv $NOUVEAUCONF "$NOUVEAUCONF$BKP" +fi + +if [ -f "$NVIDIACONF$BKP" ]; then + mv "$NVIDIACONF$BKP" $NVIDIACONF +fi + + +echo "Building new initramfs images." +mkinitcpio -p linux + +if [[ -f "/etc/mkinitcpio.d/linux-rt.preset" ]]; then + mkinitcpio -p linux-rt +fi + diff --git a/bin/nvidia2nouveau b/bin/nvidia2nouveau new file mode 100755 index 0000000..e862d8c --- /dev/null +++ b/bin/nvidia2nouveau @@ -0,0 +1,58 @@ +#!/bin/bash +# nvidia -> nouveau + +set -e +# check if root +if [[ $EUID -ne 0 ]]; then + echo "You must be root to run this script. Aborting..."; + exit 1; +fi + +echo "Switching MODULES line in /etc/mkinitcpio.conf" +sed -i 's/#*MODULES="dm-mod nouveau"/MODULES="dm-mod nouveau"/' /etc/mkinitcpio.conf +sed -i 's/MODULES="dm-mod nvidia"/#MODULES="dm-mod nvidia"/' /etc/mkinitcpio.conf + +echo "Uninstalling nvidia drivers, installing nouveau drivers." + +declare -i NVIDIAINSTALL +NVIDIART=$(pacman -Qi|grep Name|grep nvidia-rt) + +if [[ -n "$NVIDIART" ]]; then + NVIDIAINSTALL=$NVIDIAINSTALL+1 + echo "Seems that nvidia-rt is installed. Marked for removal." +fi + +case $NVIDIAINSTALL in + 0) + pacman -Rdds --noconfirm nvidia nvidia-libgl lib32-nvidia-libgl + ;; + 1) + pacman -Rdds --noconfirm nvidia nvidia-rt nvidia-libgl lib32-nvidia-libgl + ;; +esac + +pacman -S --noconfirm nouveau-dri xf86-video-nouveau lib32-nouveau-dri + +echo "Switching X11 settings." +NVIDIACONF="/etc/X11/xorg.conf.d/20-nvidia.conf" +NOUVEAUCONF="/etc/X11/xorg.conf.d/20-nouveau.conf" +BKP=".bkp" + +if [ -f $NVIDIACONF ]; then + mv $NVIDIACONF "$NVIDIACONF$BKP" +fi + +if [[ -f "$NOUVEAUCONF$BKP" ]]; then + mv "$NOUVEAUCONF$BKP" $NOUVEAUCONF +fi + +echo "Building new initramfs images." +mkinitcpio -p linux + +if [[ -f "/etc/mkinitcpio.d/linux-rt.preset" ]]; then + mkinitcpio -p linux-rt +fi + +if [[ -f "/etc/mkinitcpio.d/linux-mainline.preset" ]]; then + mkinitcpio -p linux-rt +fi diff --git a/bin/nvsetup b/bin/nvsetup new file mode 100755 index 0000000..23adeb5 --- /dev/null +++ b/bin/nvsetup @@ -0,0 +1,10 @@ +#!/bin/bash + +SCREENCONNECTED=$(xrandr|grep DP-1) +if [[ -n "$(lsmod|grep nouveau)" ]]; then + if [[ "$SCREENCONNECTED" == *connected* && "$SCREENCONNECTED" != *disconnected* ]]; then + echo "Setup DP-1" +# sleep 5 + xrandr --output DP-1 --auto --primary --output LVDS-1 --auto --right-of DP-1 + fi +fi diff --git a/bin/pacman-disowned b/bin/pacman-disowned new file mode 100755 index 0000000..df1b5da --- /dev/null +++ b/bin/pacman-disowned @@ -0,0 +1,16 @@ +#!/bin/sh + +tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$ +db=$tmp/db +fs=$tmp/fs + +mkdir "$tmp" +trap 'rm -rf "$tmp"' EXIT + +pacman -Qlq | sort -u > "$db" + +find /bin /etc /lib /sbin /usr \ + ! -name lost+found \ + \( -type d -printf '%p/\n' -o -print \) | sort > "$fs" + +comm -23 "$fs" "$db" diff --git a/bin/pacoptpd b/bin/pacoptpd new file mode 100755 index 0000000..30e09ec --- /dev/null +++ b/bin/pacoptpd @@ -0,0 +1,14 @@ +#!/bin/bash +# +# list optional dependencies of installed packages +# + +for i in $(pacman -Qq) +do + deps="$(pacman -Qi ${i} | awk '/Optional/,/Required/' | grep -v "Required" | sed -e 's/Optional Deps[ ]*://g' -e 's/^[ ]*/ /')" + if [ "$deps" != " None" ]; then + echo "$i" + echo "$deps" + echo "" + fi +done diff --git a/bin/pass2msmtp b/bin/pass2msmtp new file mode 100755 index 0000000..5ba07fa --- /dev/null +++ b/bin/pass2msmtp @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +pass Mail/$1 diff --git a/bin/pass2offlineimap b/bin/pass2offlineimap new file mode 100644 index 0000000..72f5829 --- /dev/null +++ b/bin/pass2offlineimap @@ -0,0 +1,5 @@ +#! /usr/bin/env python2 +from subprocess import check_output + +def get_pass(account): + return check_output("pass Mail/" + account, shell=True).rstrip() diff --git a/bin/pass2vdirsyncer b/bin/pass2vdirsyncer new file mode 100755 index 0000000..6b21577 --- /dev/null +++ b/bin/pass2vdirsyncer @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +pass show owncloud/$1@$2 + diff --git a/bin/rmcache b/bin/rmcache new file mode 100755 index 0000000..acba953 --- /dev/null +++ b/bin/rmcache @@ -0,0 +1,32 @@ +#!/bin/bash + +USERDIR=$1 + +echo "rmcache cleaning up: $USERDIR" + +caches=".cache/chromium" +caches+=" .cache/thumbnails" +## take care of the whitespace! +caches+=" .config/chromium/Default/*Index*" +caches+=" .thumbnails" +caches+=" .opera/cache4" +caches+=" .opera/cache" +caches+=" .java/deployment/cache" +caches+=" .local/share/Trash" +caches+=" .gnome2/epiphany/mozilla/epiphany/Cache" +caches+=" .adobe/Acrobat/*/Cache" +caches+=" .adobe/Acrobat/*/Temp" +caches+=" .macromedia/Flash_Player/*" +caches+=" .adobe/Flash_Player/AssetCache" +caches+=" .java/deployment/cache" + +pushd $USERDIR > /dev/null + +for cache in $caches +do + echo "removing $cache" + rm -Rf "$cache" + [ $? -eq 0 ] || exit 1 +done + +popd > /dev/null diff --git a/bin/rollback-profile b/bin/rollback-profile new file mode 100755 index 0000000..81386b3 --- /dev/null +++ b/bin/rollback-profile @@ -0,0 +1,69 @@ +#!/bin/bash +# +# Rollback a thunderbird or firefox profile backup from store location while gpg decrypting +# + +# Checking if firefox and/ or thunderbird are running. +firefoxPID=`ps -C firefox -o pid=` +thunderbirdPID=`ps -C thunderbird -o pid=` + +firefoxTMP=/tmp/firefox.tgz +thunderbirdTMP=/tmp/thunderbird.tgz +firefoxIF=~/.mozilla/firefox/ +thunderbirdIF=~/.thunderbird/ +profileName=dvzrv +backupEND=-rollback +OF=~/ownCloud/backup/web/ +gpgEND=.gpg +tgzEND=.tgz + +case $1 in + "thunderbird") + if [[ -z "$thunderbirdPID" ]] + then + echo "Thunderbird is not running." + echo "Rolling back profile backup." + echo "Copying backup to /tmp and moving old profile to rollback location." + cp $OF$1$tgzEND$gpgEND $thunderbirdTMP$gpgEND + mv $thunderbirdIF$profileName $thunderbirdIF$profileName$backupEND + echo "Decrypting file." + gpg -o $thunderbirdTMP -d $thunderbirdTMP$gpgEND + echo "Extracting files from tar." + tar xzvf $thunderbirdTMP -C $thunderbirdIF + echo "Cleaning up." + rm $thunderbirdTMP $thunderbirdTMP$gpgEND + echo "Done." + else + echo "Thunderbird is still running." + echo "Skipping rollback." + fi + ;; + "firefox") + if [[ -z "$firefoxPID" ]] + then + echo "Firefox is not running." + psdStopped=`systemctl status psd |grep inactive` + if [[ ! -z "$psdStopped" ]]; then + echo "Psd daemon is inactive." + echo "Rolling back profile backup." + echo "Copying backup to /tmp and moving old profile to rollback location." + cp $OF$1$tgzEND$gpgEND $firefoxTMP$gpgEND + mv $firefoxIF$profileName $firefoxIF$profileName$backupEND + echo "Decrypting file." + gpg -o $firefoxTMP -d $firefoxTMP$gpgEND + echo "Extracting files from tar." + tar xzvf $firefoxTMP -C $firefoxIF + echo "Cleaning up." + rm $firefoxTMP $firefoxTMP$gpgEND + echo "Done." + else + echo "Psd service is still running!" + echo "Disable it using: 'systemctl stop psd'." + echo "Skipping rollback." + fi + else + echo "Firefox is still running." + echo "Skipping rollback." + fi + ;; +esac diff --git a/bin/run_once b/bin/run_once new file mode 100755 index 0000000..3829f7e --- /dev/null +++ b/bin/run_once @@ -0,0 +1,4 @@ +#!/bin/bash +#Alternative +pgrep $@ > /dev/null || ($@ &) + diff --git a/bin/sclang b/bin/sclang new file mode 100755 index 0000000..a34f4ea --- /dev/null +++ b/bin/sclang @@ -0,0 +1,10 @@ +#!/bin/sh +# If not running my laptop (with X screen), run sclang in a xvfb environment. +# This ensures getting around a bug with QPixmaps that needs a X server to run. +if [[ $HOSTNAME == *dvzrv* ]]; then + echo "/usr/bin/sclang" + /usr/bin/sclang "$@" +else + echo "/usr/bin/sclang in fake X screen" + /usr/bin/xvfb-run -s "-screen 1, 1280x800x24" -a -e ~/.log/xvfb-run-sclang.error /usr/bin/sclang "$@" +fi diff --git a/bin/screensetup b/bin/screensetup new file mode 100755 index 0000000..b15d63e --- /dev/null +++ b/bin/screensetup @@ -0,0 +1,17 @@ +#!/bin/bash + +#set dpms and screen blanking +xset +dpms +xset s 360 360 + +# Setup screens + +# get info from xrandr +IFS=$'\r\n' connectedOutputs=($(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")) + +#if more than one screen, setup both, using the external left of the internal as primary +if [ ${#connectedOutputs[@]} -gt 1 ]; then + xrandr --output "${connectedOutputs[0]}" --auto --output "${connectedOutputs[1]}" --auto --primary --left-of "${connectedOutputs[0]}" +fi + + diff --git a/bin/secret b/bin/secret new file mode 100755 index 0000000..27391ff --- /dev/null +++ b/bin/secret @@ -0,0 +1,41 @@ +#!/bin/bash +# +# Open and write to a gpg encrypted file +# Will create the file for you if it's not there yet +# +# secret <path/to/file> + +writeback () { + gpg --yes -eq -r "$gpgkey" -o $1 $tmpfile + echo "Encrypted file using gpg public key: $gpgkey" + chmod 600 $1 + echo "Finished working on file: $1." + rm $tmpfile + echo "Removed temp file $tmpfile" +} + +filetotmp () { + gpg --yes -o $tmpfile -d $1 +} + +tmpfile=$(mktemp) +gpgkey="David Runge <david.runge@frqrec.com>" + +# if file is available, use it, else create it +if [[ -f "$1" ]];then + filetotmp $1 + echo "File $1 now in $tmpfile ." +fi + +echo "Opening file in $EDITOR" +# edit decrypted file in /tmp +$EDITOR $tmpfile +if [[ $? -gt 0 ]];then + echo "Something went wrong with $EDITOR ." + echo "Aborting." + rm $tmpfile + echo "Deleted $tmpfile ." +else + # write back the file + writeback $1 +fi diff --git a/bin/set_backlight b/bin/set_backlight new file mode 100755 index 0000000..c110321 --- /dev/null +++ b/bin/set_backlight @@ -0,0 +1,56 @@ +#!/bin/bash +# Script to set backlight on startup on Lenovo W540 using +# /sys/class/backlight/intel_backlight/brightness +# This must be run as root. + +# check if root +if [[ $EUID -ne 0 ]];then + echo "This must be run as root." +else + # get current and maximum brightness, set maximum steps allowed + brightness_current=$(cat /sys/class/backlight/intel_backlight/brightness) + brightness_max=$(cat /sys/class/backlight/intel_backlight/max_brightness) + brightness_max=$(($brightness_max-1000)) + brightness_steps=20 + brightness_steps_width=$(($brightness_max/$brightness_steps)) + brightness_new=0 + # if first parameter to this script is a number + re='^[0-9]+$' + if [[ $1 =~ $re ]]; then + echo "Direct step called" + if [[ $1 -gt brightness_steps && $1 -ne 0 ]];then + brightness_new=$(($1*brightness_steps_width)) + fi + elif [[ $1 == "up" || $1 == "down" ]];then + brightness_calc=$(($brightness_current / $brightness_steps_width)) + case $1 in + "up" ) + brightness_calc=$((($brightness_calc+1) * $brightness_steps_width)) + echo "brightness_calc: $brightness_calc" + echo "brightness_max: $brightness_max" + if [[ $brightness_max -gt $brightness_calc ]];then + echo "true" + brightness_new=$brightness_calc + else + echo "false" + brightness_new=$brightness_current + fi + ;; + "down" ) + brightness_calc=$((($brightness_calc-1) * $brightness_steps_width)) + echo "brightness_calc: $brightness_calc" + if [[ $brightness_calc -gt 0 ]];then + brightness_new=$brightness_calc + else + brightness_new=$brightness_current + fi + ;; + esac + echo "Step called with: $1" + fi + echo $brightness_current + echo $brightness_new + # set to 234 (around 4th step) + #echo 234 > /sys/class/backlight/intel_backlight/brightness + echo $brightness_new > /sys/class/backlight/intel_backlight/brightness +fi diff --git a/bin/set_volume b/bin/set_volume new file mode 100755 index 0000000..1652312 --- /dev/null +++ b/bin/set_volume @@ -0,0 +1,142 @@ +#!/usr/bin/env bash + +FUNCTIONS=$HOME/bin/functions.sh +[ -e $FUNCTIONS ] || exit 1 +. $FUNCTIONS + +state_muted="/tmp/$(whoami)/state_muted" +state_muted_headphone="" +state_muted_speaker="" +state_bt_headphone="" +name_bt_headphone="bluez_sink.00_1B_66_02_36_41" +cardselector="" +card_icon="/usr/share/icons/gnome/48x48/devices/audio-speakers.png" # gnome-icon-theme + +function increase_volume() +{ + mute amixer $cardselector sset Master 5%+ + local state_master=$(amixer $cardselector sget Master |grep "%" | cut -d'%' -f1 | cut -d '[' -f2 | uniq) + #update pactl bluetooth audio to same level if present + if [ $state_bt_headphone = "[on]" ];then + pactl set-sink-volume $name_bt_headphone "$state_master%" + fi + print_volumes $state_master +} + +function decrease_volume() +{ + mute amixer $cardselector sset Master 5%- + local state_master=$(amixer $cardselector sget Master |grep "%" | cut -d'%' -f1 | cut -d '[' -f2 | uniq) + #update pactl bluetooth audio to same level if present + if [ $state_bt_headphone = "[on]" ];then + pactl set-sink-volume $name_bt_headphone "$state_master%" + fi + print_volumes $state_master +} + +function print_volumes() +{ + local state_master=$1 + local state_headphone=$(amixer $cardselector sget Headphone |grep "%" | cut -d'%' -f1 | cut -d '[' -f2 | uniq) + local state_speaker=$(amixer $cardselector sget Speaker |grep "%" | cut -d'%' -f1 | cut -d '[' -f2 | uniq) + if [ $state_bt_headphone = "[on]" ]; then + send_notify "Master: $state_master% \nHeadphone: $state_headphone% \nSpeaker: $state_speaker%\nBT Headphone: $state_master%" + else + send_notify "Master: $state_master% \nHeadphone: $state_headphone% \nSpeaker: $state_speaker%" + fi +} + +function toggle_volume() +{ + local state_master=$(amixer $cardselector sget Master | grep -o '\[o[n|f]*\]' | head -n 1) + local state_headphone=$(amixer $cardselector sget Headphone | grep -o '\[o[n|f]*\]' | head -n 1) + local state_speaker=$(amixer $cardselector sget Speaker | grep -o '\[o[n|f]*\]' | head -n 1) + case "$state_master" in + "[on]") + mute amixer $cardselector sset Master mute + state_master="[off]" + # if headphones are off already, don't mute, instead save state to tmp file + if [ "$state_headphone" = "[off]" ];then + echo "headphone [off]" >> "$state_muted" + else + mute amixer $cardselector sset Headphone mute + state_headphone="[off]" + fi + # if speakers are off already, don't mute, instead save state to tmp file + if [ "$state_speaker" = "[off]" ];then + echo "speaker [off]" >> "$state_muted" + else + mute amixer $cardselector sset Speaker mute + state_speaker="[off]" + fi + # if present, also mute bluetooth headphone + if [ $state_bt_headphone = "[on]" ]; then + pactl set-sink-mute $name_bt_headphone 1 + fi + ;; + "[off]") + mute amixer $cardselector sset Master unmute + state_master="[on]" + # if headphones are meant to be off, don't unmute them again + if [ "$state_muted_headphone" != "[off]" ];then + mute amixer $cardselector sset Headphone unmute + state_headphone="[on]" + fi + # if headphones are meant to be off, don't unmute them again + if [ "$state_muted_speaker" != "[off]" ];then + mute amixer $cardselector sset Speaker unmute + state_speaker="[on]" + fi + # if present, also unmute bluetooth headphone + if [ $state_bt_headphone = "[on]" ]; then + pactl set-sink-mute $name_bt_headphone 0 + fi + ;; + esac + if [ $state_bt_headphone = "[on]" ]; then + send_notify "Master: $state_master \nHeadphone: $state_headphone \nSpeaker: $state_speaker\nBT Headphone: $state_master" 2000 + else + send_notify "Master: $state_master \nHeadphone: $state_headphone \nSpeaker: $state_speaker" 2000 + fi +} + +function send_notify() +{ + # allow timeout to be set by 2nd argument + local timeout=500 + if [ $2 -gt 0 ]; then + timeout=$2 + fi + notify-send -t $timeout \ + -i /usr/share/icons/gnome/48x48/devices/audio-speakers.png \ + "Volume" "$1" +} + +if [ $HOSTNAME = "dvzrv" ];then + cardselector=" -M -c 1 " + if [ -n "$(pactl list sinks short | grep $name_bt_headphone)" ]; then + state_bt_headphone="[on]" + fi + #TODO: also check pactl for JACK sink +fi + +case "$1" in + increase) + increase_volume + ;; + decrease) + decrease_volume + ;; + toggle) + if [ -f "$state_muted" ]; then + state_muted_headphone=$(cat "$state_muted" | grep headphone | cut -d' ' -f2) + state_muted_speaker=$(cat "$state_muted" | grep speaker | cut -d' ' -f2) + rm "$state_muted" + else + touch "$state_muted" + fi + toggle_volume + ;; + *) + ;; +esac diff --git a/bin/stikked b/bin/stikked new file mode 100644 index 0000000..b209208 --- /dev/null +++ b/bin/stikked @@ -0,0 +1,115 @@ +#! /usr/bin/env python2 + +import argparse +import os +import sys +import pycurl +import StringIO +import subprocess +import urllib + +## CONFIGURATION { +user='example-user' +apiurl='http://paste.giev.de/api/create' +## } + + +def main(): + global verbose + + # parse arguments + parser = argparse.ArgumentParser(prog='stikked') + parser.add_argument('-V', '--version', action='version', version='%(prog)s 0.1') + parser.add_argument('-v', '--verbose', action='store_true', dest='verbose', help='verbose mode', default=False) + parser.add_argument('-s', dest='syntax', action='store', help='syntax to highlight', default='text') + parser.add_argument('-p', dest='private', action='store_true', help='set paste to private', default=False) + parser.add_argument('-t', dest='title', action='store', help='set title of paste') + parser.add_argument('fname', metavar='FILE|-', help='file to paste or - for stdin') + args = parser.parse_args() + if args.verbose: + verbose = args.verbose + print args + + # private + private = '1' if args.private else '0' + + # from stdin + if args.fname == '-': + title = args.title if args.title else 'stdin' + text=sys.stdin.read() + syntax=args.syntax + + # from file + else: + fname = args.fname + + if not os.path.isfile(fname): + print "No such file: {0}".format(fname) + sys.exit(1) + else: + title = args.title if args.title else os.path.split(fname)[1] + + if args.syntax == 'text': + ext = os.path.splitext(fname)[1][1:] + syntax = _detect_syntax(ext) + else: + syntax = args.syntax + + fopen = file(fname, 'r') + text = fopen.read() + + _paste(text, title, syntax, private) + + +# send paste to server +def _paste(text, title, syntax, private): + postparams = [ + ('text', text), + ('name', user), + ('title', title), + ('lang', syntax), + ('private', private)] + + postfields=urllib.urlencode(postparams) + + curl = pycurl.Curl() + curl.setopt(pycurl.URL, apiurl) + curl.setopt(pycurl.POST, True) + curl.setopt(pycurl.POSTFIELDS, postfields) + # Fixes the HTTP/1.1 417 Expectation Failed Bug + header = [] + header.append("Expect: ") + curl.setopt(pycurl.HTTPHEADER, header) + curl.setopt(pycurl.NOPROGRESS, True) + b = StringIO.StringIO() + curl.setopt(pycurl.WRITEFUNCTION, b.write) + curl.perform() + print b.getvalue(); + + # copy to primary clipboard + xsel_proc = xsel_proc = subprocess.Popen(['xsel', '-pi'], stdin=subprocess.PIPE) + xsel_proc.communicate(b.getvalue()) + + +# more possible of course +def _detect_syntax(ext): + if ext == 'h': + syntax='c' + elif ext == 'log': + syntax='logcat' + elif ext == "py": + syntax = 'python' + elif ext == "pl": + syntax = 'perl' + elif ext == "patch": + syntax = 'diff' + elif ext == 'c' or ext == 'cpp' or ext == 'java' or ext == 'sh': + syntax=ext + else: + syntax='text' + + return syntax + + +if __name__ == '__main__': + main() diff --git a/bin/stop_jack b/bin/stop_jack new file mode 100755 index 0000000..f07b6be --- /dev/null +++ b/bin/stop_jack @@ -0,0 +1,16 @@ +#!/bin/sh + +jack_control stop +sleep 3 +jack_control exit + + +exit 0 + +#kill $(pidof jackd) +#case "$HOSTNAME" in +# "beagleclone") +# kill $(pidof jackd) +# kill $(pidof xvfb-run) +# ;; +#esac diff --git a/bin/switch_wfs_os b/bin/switch_wfs_os new file mode 100755 index 0000000..c243826 --- /dev/null +++ b/bin/switch_wfs_os @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +set -euo pipefail +IFS=$'\n\t' + +os_new="arch-rt" +os_old="ubuntu-studio" +os_current="" +os_set="" + +syslinux_location_arch="/boot/syslinux/syslinux.cfg" +syslinux_location_ubuntu="/mnt/boot/syslinux/syslinux.cfg" +syslinux_location="" + +reboot_cmd_arch="sudo systemctl reboot" +reboot_cmd_ubuntu="/usr/bin/sudo /sbin/reboot -q" +reboot_cmd="" + +hostnames_arch=( "wfs-master" "wfs-node1" "wfs-node2" ) +hostnames_ubuntu=( "wfs" "n101" "n102" ) +host=$(hostname) + +if [ $UID -ne 0 ]; then + echo "You need to be root or call this script with sudo to do this." + exit 1 +fi + +echo "Host: $host." + +if [ -f /etc/arch-release ]; then + os_current=$os_new + syslinux_location=$syslinux_location_arch + reboot_cmd=$reboot_cmd_arch +else + os_current=$os_old + syslinux_location=$syslinux_location_ubuntu + reboot_cmd=$reboot_cmd_ubuntu +fi +echo "Currently running: $os_current" + +if [ -f "${syslinux_location}" ]; then + os_set=$(sed -ne '/^DEFAULT/p' $syslinux_location| cut -d' ' -f2) + echo "Currently set up for next boot: $os_set" +else + echo "Error: Syslinux configuration does not exist ($syslinux_location)" + exit 1 +fi + +if [ "$os_set" == "${os_new}" ] && [ "$os_current" == "${os_new}" ]; then + if [[ " ${hostnames_arch[@]} " =~ " $host " ]]; then + echo "Switching to: $os_old" + sed -i 's/^DEFAULT .*/DEFAULT '${os_old}'/' $syslinux_location + if [[ "${hostnames_arch[0]}" == "$host" ]]; then + echo "Calling script on nodes:" + set +e + ssh wfs@${hostnames_arch[1]} "/usr/bin/sudo bin/$(basename $0)" + ssh wfs@${hostnames_arch[2]} "/usr/bin/sudo bin/$(basename $0)" + set -e + fi + else + echo "Error: Script is not supposed to be running on this host!" + echo "$(hostname) is not one of the following: ${hostnames_arch[@]}" + echo "Exiting." + exit 1 + fi +elif [ "$os_set" == "${os_old}" ] && [ "$os_current" == "${os_old}" ]; then + if [[ " ${hostnames_ubuntu[@]} " =~ " $host " ]]; then + echo "Switching to: $os_new" + sed -i 's/^DEFAULT .*/DEFAULT '${os_new}'/' $syslinux_location + if [[ "${hostnames_ubuntu[0]}" == "$host" ]]; then + echo "Calling script on nodes:" + ssh wfs@${hostnames_ubuntu[1]} "/usr/bin/sudo bin/$(basename $0)" + ssh wfs@${hostnames_ubuntu[2]} "/usr/bin/sudo bin/$(basename $0)" + fi + else + echo "Error: Script is not supposed to be running on this host!" + echo "$host is not one of the following: ${hostnames_ubuntu[@]}" + echo "Exiting." + exit 1 + fi +else + echo "Error: Current OS ($os_current) and OS to be booted ($os_set) are not the same." + echo "Fix this manually in $syslinux_location or just reboot (into the other OS)." + echo "Exiting." + exit 1 +fi + + +echo "Rebooting." +eval $reboot_cmd +exit 0 diff --git a/bin/syncmpdpl b/bin/syncmpdpl new file mode 100644 index 0000000..85cf723 --- /dev/null +++ b/bin/syncmpdpl @@ -0,0 +1,209 @@ +#! /usr/bin/env python2 +# -*- coding: utf-8 -*- +# +# script to sync a mpd playlist to a mass storage audio player +# +# needs +# - python-sqlite2 +# - eyed3 +# - python-argparser +# - python-mpd + +import argparse +import os +import sys +import hashlib +import subprocess + +#from time import time +import time +from mpd import (MPDClient, CommandError) + +import shutil + +# set encoding to utf-8 +reload(sys) +sys.setdefaultencoding( "utf-8" ) + +config_dir = '/home/konni/.config/pmsync' +music = '/net/media/music' +playlist = 'sync' +mpdhost = 'innocence' +destination = '/run/media/konni/ville/music' +verbose = False + +def _recode(string): + string = string.replace('"','') + # byte2utf8 + # string = unicode( string, "utf-8", errors="ignore" ) + # utf2byte + string = string.encode('utf-8') + return string + +def main(): + global verbose, playlist, mpdhost, destination + parser = argparse.ArgumentParser(prog='pmsync') + + parser.add_argument('--version', action='version', version='%(prog)s 0.1') + parser.add_argument('-v', '--verbose', action='store_true', dest='verbose', help='verbose mode', default=False) + + parser.add_argument('action', metavar='sync | list | import') + + parser.add_argument('-m', dest='host', metavar='mpdhost', action='store', help='mpd host', default=mpdhost) + parser.add_argument('-p', dest='pl', metavar='playlist', action='store', help='playlist to use', default=playlist) + parser.add_argument('-d', dest='dest', metavar='destination', action='store', help='destination', default=destination) + parser.add_argument('-e', dest='exact', action='store_true', help='exact checking (slow)', default=False) + + args = parser.parse_args() + if args.verbose: + verbose = args.verbose + print args + + ## action sync + if args.action == 'sync': + print '>> syncing \"{0}/{1}\"to \"{2}\"'.format(args.host, args.pl, args.dest) + _sync(args.host, args.pl, args.dest, args.exact) + + ## action list + elif args.action == 'list': + print '>> listing from \"{0}/{1}\"'.format(args.host, args.pl) + _list(args.host, args.pl) + + ## action import + elif args.action == 'import': + print '>> importing from \"{0}\" to playlist \"{1}/{2}\"'.format(args.dest, args.host, args.pl) + port='6600' + CON_ID = {'host':args.host, 'port':port} + client = MPDClient() + mpdConnect(client, CON_ID) + playlistinfo = client.listplaylistinfo(playlist) + for dirname, dirnames, filenames in os.walk(args.dest): + for filename in filenames: + destfile = os.path.join(dirname, filename) + path=destfile.replace(args.dest+"/","") + found = False + for item in playlistinfo: + if item['file'] == path: + found = True + if not found: + print '[x] {0}'.format(path) + client.add(path) + client.rm(args.pl) + client.save(args.pl) + + ## show help if no action called + else: + parser.print_help() + +def _sync(host, pl, dest, exact): + _checkdir(dest) + port='6600' + CON_ID = {'host':host, 'port':port} + client = MPDClient() + mpdConnect(client, CON_ID) + playlistinfo = client.listplaylistinfo(pl) + + ## copy files + print '> copy files' + for item in playlistinfo: + path = item['file'] + srcfile=os.path.join(music, path) + destfile=os.path.join(dest, path) + destdir=os.path.dirname(destfile) + + if not os.path.isdir(destdir): + print '[^] {0}'.format(destdir) + os.makedirs(destdir) + if not os.path.isfile(destfile): + shutil.copyfile(srcfile,destfile) + print '[+] {0}'.format(path) + else: + ## hash based on md5sum or just file size + if exact: + srchash = hashlib.md5(open(srcfile, 'rb').read()).hexdigest() + desthash = hashlib.md5(open(destfile, 'rb').read()).hexdigest() + else: + srchash = os.path.getsize(srcfile) + desthash = os.path.getsize(destfile) + + if srchash != desthash: + shutil.copyfile(srcfile,destfile) + print '[o] {0}'.format(path) + else: + if verbose: + print '[ ] {0}'.format(path) + + print 'done' + + ## clean files + print '> clean files and directories' + for dirname, dirnames, filenames in os.walk(dest): + for filename in filenames: + destfile = os.path.join(dirname, filename) + path=destfile.replace(dest+"/","") + found = False + for item in playlistinfo: + if item['file'] == path: + found = True; + + if not found: + try: + os.remove(destfile) + print '[-] {0}'.format(path) + except OSError: + print 'error removing {0}'.format(destfile) + + ## clean directories + for dirname, dirnames, filenames in os.walk(dest,topdown=False): + if os.listdir(dirname) == [] and dirname != dest: + try: + os.rmdir(dirname) + print '[v] {0}'.format(destdir) + except OSError: + print 'error removing {0} '.format(dirname) + print 'done' + + print '> writing filesystem changes' + subprocess.call("/bin/sync") + + +def _list(host, pl): + port='6600' + CON_ID = {'host':host, 'port':port} + client = MPDClient() + mpdConnect(client, CON_ID) + playlistinfo = client.listplaylistinfo(pl) + + ## output + print '> copy files' + prev_album = '' + for item in playlistinfo: + artist = item['artist'] + album = item['album'] + + if album != prev_album: + print '{0}/{1}'.format(artist, album) + prev_album = album + +def _output(artist, album, track, title, symbol='', extra=''): + output_format = '{symbol:4}{artist:20.20} :: {album:20.20} :: {track:2d} - {title:25.25} {extra}' + print output_format.format(symbol=symbol, artist=artist, album=album, track=track, title=title, extra=extra) + + +def mpdConnect(client, con_id): + """ +Simple wrapper to connect MPD. +""" + try: + client.connect(**con_id) + except SocketError: + return False + return True + +def _checkdir(dir): + if not os.path.isdir(dir): + print "destination not mounted" + sys.exit(1) + +if __name__ == '__main__': + main() diff --git a/bin/tex2pdf b/bin/tex2pdf new file mode 100755 index 0000000..71718f0 --- /dev/null +++ b/bin/tex2pdf @@ -0,0 +1,33 @@ +#!/bin/bash +logdestination="$HOME/.log/tex2pdf.log" +already_open=$(ps aux | grep "$1.pdf" | grep -v "grep") +rm -rf $logdestination +touch $logdestination +echo "tex2pdf called with $1.tex">>$logdestination +echo "#####################################################">>$logdestination +echo "################## pdflatex, run #1 #################">>$logdestination +echo "#####################################################">>$logdestination +pdflatex -interaction=nonstopmode $1.tex>>$logdestination +echo "bibtex:">>$logdestination +bibtex $1.aux>>$logdestination +echo "#####################################################">>$logdestination +echo "################## pdflatex, run #2 #################">>$logdestination +echo "#####################################################">>$logdestination +pdflatex -interaction=nonstopmode $1.tex>>$logdestination +echo "####### ##############################################">>$logdestination +echo "################## pdflatex, run #3 #################">>$logdestination +echo "#####################################################">>$logdestination +pdflatex -interaction=nonstopmode $1.tex>>$logdestination +echo "#####################################################">>$logdestination +echo "Launching mupdf with $1.pdf.">>$logdestination + +if [ -n "$already_open" ]; then + kill "$(echo $already_open | awk '{print $2}')" + echo "Killing pid $(echo $already_open | awk '{print $2}'), which has $1.pdf open already." >>$logdestination +fi +mupdf $1.pdf & + +echo "#####################################################">>$logdestination +echo "Removing aux,bbl,blg,dvi,lof,log,lot,nav,out,snm,toc.">>$logdestination +echo "Current directory: $(pwd) and children of depth 1.">>$logdestination +rm -f *.{aux,bbl,blg,dvi,lof,log,lot,nav,out,snm,toc} */*.{aux,bbl,blg,dvi,lof,log,lot,nav,out,snm,toc} diff --git a/bin/texcount.pl b/bin/texcount.pl new file mode 100755 index 0000000..1f47025 --- /dev/null +++ b/bin/texcount.pl @@ -0,0 +1,1391 @@ +#! /usr/bin/env perl +use strict; +use warnings; +use Term::ANSIColor; +use Encode; +use POSIX qw(locale_h); +use locale; +setlocale(LC_CTYPE,"no_NO"); + +my $versionnumber="2.2"; +my $versiondate="2009 Apr 30"; + +###### Set CMD specific settings and variables + +# Options and states +my $verbose=0; +my $showcodes=1; +my $showstates=0; +my $showsubcounts=0; +my $htmlstyle=0; +my $includeTeX=0; +my $briefsum=0; +my @sumweights; +my $utf8flag=0; + +# Global variables +my $blankline=0; +my $errorcount=0; + +# CMD specific global variables +my $totalflag=0; +my @filelist; +my $workdir; +my $globalworkdir=""; + +###### Set global settings and variables + +### Macros for headers +# Macros that identify headers: i.e. following token or +# {...} is counted as header. The =>[2] indicates transition to +# state 2 which is used within headers (although the value is +# actually never used). This is copied to %TeXmacro and the +# only role of defining it here is that the counter for the number +# of headers is incremented by one. +my %TeXheader=('\title'=>[2],'\part'=>[2],'\chapter'=>[2], + '\section'=>[2],'\subsection'=>[2],'\subsubsection'=>[2], + '\paragraph'=>[2],'\subparagraph'=>[2]); + +### How many tokens to gobble after macro +# Each macro is assumed to gobble up a given number of +# tokens (or {...} groups), as well as options [...] before, within +# and after. The %TeXmacro hash gives a link from a macro +# (or beginNAME for begin-end groups without the backslash) +# to either an integer giving the number of tokens to ignore +# or to an array (specified as [num,num,...]) of length N where +# N is the number of tokens to be read with the macro and the +# array values tell how each is to be interpreted (see the status +# values: 0=ignore, 1=count, etc.). Thus specifying a number N is +# equivalent to specifying an array [0,...,0] of N zeros. +# +# For macros not specified here, the default value is 0: i.e. +# no tokens are excluded, but [...] options are. Header macros +# specified in %TeXheader are automatically included here. +my %TeXmacro=(%TeXheader, + '\documentclass'=>1,'\documentstyle'=>1,'\usepackage'=>1, '\hyphenation'=>1, + '\pagestyle'=>1,'\thispagestyle'=>1, '\pagenumbering'=>1,'\markboth'=>1, '\markright'=>1, + '\newcommand'=>[-3,-3],'\renewcommand'=>[-3,-3], + '\newenvironment'=>[-3,-3,-3], 'renewenvironment'=>[-3,-3,-3], + '\newfont'=>2,'\newtheorem'=>2,'\bibliographystyle'=>1, '\bibliography'=>1, + '\parbox'=>1, '\marginpar'=>[3],'\makebox'=>0, '\raisebox'=>1, '\framebox'=>0, + '\newsavebox'=>1, '\sbox'=>1, '\savebox'=>2, '\usebox'=>1,'\rule'=>2, + '\footnote'=>[3],'\label'=>1, '\ref'=>1, '\pageref'=>1, '\bibitem'=>1, + '\cite'=>1, '\citep'=>1, '\citet'=>1, '\citeauthor'=>1, '\citealt'=>1, '\nocite'=>1, + '\eqlabel'=>1, '\eqref'=>1,'\hspace'=>1, '\vspace'=>1, '\addvspace'=>1, + '\input'=>1, '\include'=>1, '\includeonly'=>1,'\includegraphics'=>1, + '\newlength'=>1, '\setlength'=>2, '\addtolength'=>2,'\settodepth'=>2, + '\settoheight'=>2, '\settowidth'=>2,'\newcounter'=>1, '\setcounter'=>2, + '\addtocounter'=>2,'\stepcounter'=>1, '\refstepcounter'=>1, '\usecounter'=>1, + '\alph'=>1, '\arabic'=>1, '\fnsymbol'=>1, '\roman'=>1, '\value'=>1, + '\cline'=>1, '\multicolumn'=>3,'\typeout'=>1, '\typein'=>1, + 'beginlist'=>2, 'beginminipage'=>1, 'begintabular'=>1, + 'beginthebibliography'=>1,'beginlrbox'=>1, + '\begin'=>1,'\end'=>1,'\title'=>[2]); + +### Macros that should be counted as one or more words +# Macros that represent text may be declared here. The value gives +# the number of words the macro represents. +my %TeXmacroword=('\LaTeX'=>1,'\TeX'=>1); + +### Macros that are counted within the preamble +# The preamble is the text between \documentclass and \begin{document}. +# Text and macros in the preamble is ignored unless specified here. The +# value is the status (1=text, 2=header, etc.) they should be interpreted as. +# Note that only the first unit (token or {...} block) is counted. +my %TeXpreamble=('\title'=>[2], + '\newcommand'=>[-3,-3],'\renewcommand'=>[-3,-3], + '\newenvironment'=>[-3,-3,-3], 'renewenvironment'=>[-3,-3,-3], + ); + +### Begin-End groups +# Identified as begin-end groups, and define =>state. The +# states used corresponds to the elements of the count array, and +# are: +# 0: Not included +# 1: Text, word included in text count +# 2: Header, words included in header count +# 3: Float caption, words included in float caption count +# 6: Inline mathematics, words not counted +# 7: Displayed mathematics, words not counted +# -1: Float, not included, but looks for captions +# +# 4 and 5 are used to count number of headers and floats +# and are not used as states. +# +# Groups that are not defined will be counted as the surrounding text. +# +# Note that some environments may only exist within math-mode, and +# therefore need not be defined here: in fact, they should not as it +# is not clear if they will be in inlined or displayed math. +# +my %TeXgroup=('document'=>1,'letter'=>1,'titlepage'=>0, + 'center'=>1,'flushleft'=>1,'flushright'=>1, + 'abstract'=>1,'quote'=>1,'quotation'=>1,'verse'=>1,'minipage'=>1,'verbatim'=>1, + 'description'=>1,'enumerate'=>1,'itemize'=>1,'list'=>1, + 'theorem'=>1,'lemma'=>1,'definition'=>1,'corollary'=>1,'example'=>1, + 'math'=>6,'displaymath'=>7,'equation'=>7,'eqnarray'=>7,'align'=>7, + 'figure'=>-1,'float'=>-1,'picture'=>-1,'table'=>-1, + 'tabbing'=>0,'tabular'=>0,'thebibliography'=>0,'lrbox'=>0); + +### In floats: include only specific macros +# Macros used to identify caption text within floats. +my %TeXfloatinc=('\caption'=>[3]); + +### Macros for including tex files +# Allows \macro{file} or \macro file. If the value is 0, the filename will +# be used as is; if it is 1, the filetype .tex will be added if the +# filename is without filetype; if it is 2, the filetype .tex will be added. +my %TeXfileinclude=('\input'=>1,'\include'=>2); + +### Count labels +# Labels used to describe the counts +my @countlabel=('Files','Words in text','Words in headers', + 'Words in float captions','Number of headers','Number of floats', + 'Number of math inlines','Number of math displayed'); + +### Break points +# Definition of macros that define break points that start a new subcount. +# The values given are used as labels. +my %BreakPointsOptions; +$BreakPointsOptions{'none'}={}; +$BreakPointsOptions{'part'}={%{$BreakPointsOptions{'none'}},'\part'=>'Part'}; +$BreakPointsOptions{'chapter'}={%{$BreakPointsOptions{'part'}},'\chapter'=>'Chapter'}; +$BreakPointsOptions{'section'}={%{$BreakPointsOptions{'chapter'}},'\section'=>'Section'}; +$BreakPointsOptions{'subsection'}={%{$BreakPointsOptions{'section'}},'\subsection'=>'Subsection'}; +$BreakPointsOptions{'default'}=$BreakPointsOptions{'subsection'}; +my %BreakPoints=%{$BreakPointsOptions{'none'}}; + +### Print styles +# Definition of different print styles: maps of class labels +# to ANSI codes. Class labels are as used by HTML styles. +my @STYLES=(); +my %STYLE; +$STYLES[0]={'error'=>'bold red'}; +$STYLES[1]={%{$STYLES[0]}, + 'word1'=>'blue','word2'=>'bold blue','word3'=>'blue', + 'grouping'=>'red','document'=>'red','mathgroup'=>'magenta', + 'state'=>'cyan underline','sumcount'=>'yellow'}; +$STYLES[2]={%{$STYLES[1]}, + 'command'=>'green','exclcommand'=>'yellow','exclgroup'=>'yellow','exclmath'=>'yellow', + 'ignore'=>'cyan'}; +$STYLES[3]={%{$STYLES[2]}, + 'tc'=>'bold yellow','comment'=>'yellow','option'=>'yellow', + 'fileinclude'=>'bold green'}; +$STYLES[4]={%{$STYLES[3]}}; + +### Word regexp pattern list +# List of regexp patterns that should be analysed as words. +# Use @ to represent a letter, will be substituted with $LetterPattern. +my @WordPatterns=('(@+\.)+@+\.?','@+([\-\']@+)*'); +my $specialchars='\\\\(ae|AE|o|O|aa|AA)'; +my $modifiedchars='\\\\[\'\"\`\~\^\=](\w|\{\w\})'; +my $LetterPattern='\w'; +my $LetterPatternRelaxed='([\w\-\']|'.$modifiedchars.'|'.$specialchars.'(\{\})?|\{'.$specialchars.'\}|\{\w\})'; +my %NamedWordPattern; +$NamedWordPattern{'chinese'}='\p{script=Han}'; +$NamedWordPattern{'japanese'}='(\p{script=Han}|\p{script=Hiragana}|\p{script=Katakana})'; + +### Macro option regexp list +# List of regexp patterns to be gobbled as macro option in and after +# a macro. +my @MacroOptionPatterns=('\[(\w|[,\-\s\~\.\:\;\+\?\*\_\=])*\]'); +my @MacroOptionPatternsRelaxed=('\[[^\[\]\n]*\]'); + +###### Main script + + +################################################### + +MAIN(@ARGV); + +################################################### + + +######### +######### Main routines +######### + +# MAIN ROUTINE: Handle arguments, then parse files +sub MAIN { + my @args=@_; + my @toplevelfiles=Parse_Arguments(@args); + Apply_Options(); + if (scalar(@toplevelfiles)==0) { + conditional_print_help_style() + || print_error("No files specified.","p","error"); + } else { + conditional_print_help_style(); + my $totalcount=parse_file_list(@toplevelfiles); + conditional_print_total($totalcount); + } + Report_ErrorCount(); + Close_Output(); +} + +# Checks arguments, exits on exit condition +sub Check_Arguments { + my @args=@_; + if (!@args) { + print_version(); + print_syntax(); + print_reference(); + exit; + } elsif ($args[0]=~/^(\-?\-(h|\?|help)|\/(\?|h))$/) { + print_help(); + exit; + } elsif ($args[0]=~/^\-?\-(ver|version)$/) { + print_version(); + exit; + } elsif ($args[0]=~/^\-?\-(lic|license)$/) { + print_license(); + exit; + } + return 1; +} + +# Parses arguments, sets options (global) and returns file list +sub Parse_Arguments { + my @args=@_; + Check_Arguments(@args); + my @files; + foreach my $arg (@ARGV) { + if (Parse_Option($arg)) {next;} + if ($arg=~/^\-/) { + print 'Invalid opton '.$arg."\n"; + print_syntax(); + exit; + } + $arg=~s/\\/\//g; + push @files,$arg; + } + return @files; +} + +# Parse individual option parameters +sub Parse_Option { + my $arg=shift @_; + return parse_options_parsing($arg) + || parse_options_sums($arg) + || parse_options_output($arg) + || parse_options_format($arg) + ; +} + +sub parse_options_parsing { + my $arg=shift @_; + if ($arg eq '-inc') {$includeTeX=1;} + elsif ($arg eq '-noinc') {$includeTeX=0;} + elsif ($arg eq '-dir') {$globalworkdir=undef;} + elsif ($arg=~/^-dir=(.*)$/) {$globalworkdir=$1;} + elsif ($arg=~/^-(utf8|unicode)$/) {$utf8flag=1;} + elsif ($arg=~/^-(ch|chinese|zhongwen)$/) { + $utf8flag=1; + @WordPatterns=($NamedWordPattern{'chinese'},@WordPatterns); + } + elsif ($arg=~/^-(jp|japanese)$/) { + $utf8flag=1; + @WordPatterns=($NamedWordPattern{'japanese'},@WordPatterns); + } + elsif ($arg eq '-relaxed') { + @MacroOptionPatterns=@MacroOptionPatternsRelaxed; + $LetterPattern=$LetterPatternRelaxed; + } + else {return 0;} + return 1; +} + +sub parse_options_sums { + my $arg=shift @_; + if ($arg=~/^-sum(=(.+))?$/) {option_sum($2);} + elsif ($arg=~/^-(sub|subcounts?)(=(.+))?$/) {option_subcount($3);} + else {return 0;} + return 1; +} + +sub option_subcount { + my $arg=shift @_; + $showsubcounts=1; + if (!defined $arg) { + %BreakPoints=%{$BreakPointsOptions{'default'}}; + } elsif (my $option=$BreakPointsOptions{$arg}) { + %BreakPoints=%{$option}; + } else { + print STDERR "Warning: Option value ".$arg." not valid, using default instead.\n"; + %BreakPoints=%{$BreakPointsOptions{'default'}}; + } +} + +sub option_sum { + my $arg=shift @_; + if (!defined $arg) { + @sumweights=(1,1,1,0,0,1,1); + } elsif ($arg=~/^(\d+(,\d+){0,6})$/) { + @sumweights=split(',',$1); + } else { + print STDERR "Warning: Option value ".$arg." not valid, ignoring option.\n"; + } +} + +sub parse_options_format { + my $arg=shift @_; + if ($arg eq '-brief') {$briefsum=1;} + elsif ($arg eq '-total') {$totalflag=1;} + elsif ($arg eq '-1') {$briefsum=1;$totalflag=1;$verbose=-1;} + elsif ($arg eq "-html" ) {option_no_colours();$htmlstyle = 2;} + elsif ($arg eq "-htmlcore" ) {option_no_colours();$htmlstyle = 1;} + elsif ($arg=~/^\-(nocol|nc$)/) {option_no_colours();} + elsif ($arg eq '-codes') { + $showcodes=2; + if ($verbose==0) {$verbose=3;} + } + elsif ($arg eq '-nocodes') {$showcodes=0;} + else {return 0;} + return 1; +} + +sub parse_options_output { + my $arg=shift @_; + if ($arg eq "-v0") {$verbose=0;} + elsif ($arg eq "-v1") {$verbose=1;} + elsif ($arg eq '-vv' || $arg eq '-v2') {$verbose=2;} + elsif ($arg eq '-vvv' || $arg eq '-v3' || $arg eq '-v') {$verbose=3;} + elsif ($arg eq '-vvvv' || $arg eq '-v4') {$verbose=3; $showstates=1;} + elsif ($arg =~ /^\-showstates?$/ ) {$showstates=1;} + elsif ($arg =~ /^-(q|-?quiet)$/ ) {$verbose=-1;} + else {return 0;} + return 1; +} + +# Parse file list and return total count +sub parse_file_list { + my @filelist=@_; + my $listtotalcount=new_count("TOTAL COUNT"); + for my $file (<@filelist>) { + my $filetotalcount=parse_file($file); + add_count($listtotalcount,$filetotalcount); + } + return $listtotalcount; +} + +# Parse file and included files, and return total count +sub parse_file { + my $file=shift @_; + $workdir=$globalworkdir; + if (!defined $workdir) { + $workdir=$file; + $workdir =~ s/^((.*[\\\/])?)[^\\\/]+$/$1/; + } + @filelist=($file); + if ($htmlstyle) {print "\n<div class='filegroup'>\n";} + my $filetotalcount=new_count("SUM COUNT FOR ".$file); + foreach my $f (@filelist) { + my $tex=TeXfile($f); + my $fpath=$f; + $fpath=~s/^((.*[\\\/])?)[^\\\/]+$/$1/; + if (!defined $tex) { + print STDERR "File not found or not readable: ".$f."\n"; + formatprint("File not found or not readable: ".$f."\n","p","error"); + } else { + parse($tex); + my $filecount=add_subcount($tex); + if (!$totalflag) { + print_count($filecount); + print "\n"; + } + add_count($filetotalcount,$filecount); + } + } + if ($htmlstyle) {print "</div>\n\n";} + return $filetotalcount; +} + + +###### +###### Subroutines +###### + +###### CMD specific implementations + + +sub add_file_to_list { + my $fname=shift @_; + push @filelist,$workdir.$fname; +} + +sub print_with_style { + my ($text,$style,$colour)=@_; + #if ($utf8flag || $htmlstyle) {utf8::encode($text);} + if ($htmlstyle) { + print "<span class='".$style."'>".$text."</span>"; + } else { + print Term::ANSIColor::colored($text,$colour); + } +} + +sub option_no_colours { + $ENV{'ANSI_COLORS_DISABLED'} = 1; +} + +# Print count (total) if conditions are met +sub conditional_print_total { + my $sumcount=shift @_; + if ($totalflag || get_count($sumcount,0)>1) { + if ($totalflag && $briefsum && @sumweights) { + print total_count($sumcount); + } else { + if ($htmlstyle) { + formatprint("Total word count",'h2'); + } + print_count($sumcount); + } + } +} + +###### Option handling + + +# Apply options to set values +sub Apply_Options { + %STYLE=%{$STYLES[$verbose]}; + if ($utf8flag) {binmode STDOUT,':utf8';} + if ($htmlstyle>1) {html_head();} + foreach (@WordPatterns) { + s/\@/$LetterPattern/g; + } +} + + +###### TeX code handle + + +sub TeXfile { + my $filename=shift @_; + my $file=read_file($filename) || return undef; + return TeXcode($file,$filename); +} + +sub read_file { + my $filename=shift @_; + if ($utf8flag) { + open(FH,"<:utf8",$filename) || return undef; + } else { + open(FH,"<".$filename) || return undef; + } + if ($verbose>0) { + formatprint("File: ".$filename."\n",'h2'); + $blankline=0; + } + my @text=<FH>; + close(FH); + my $latexcode=join('',@text); + if ($utf8flag) { + $latexcode =~ s/^\x{feff}//; + } + return $latexcode; +} + +###### Parsing routines + + +# Make TeXcode handle +sub TeXcode { + my ($texcode,$filename,$title)=@_; + my %TeX=(); + $TeX{'filename'}=$filename; + if (!defined $filename) { + $TeX{'filepath'}=''; + } elsif ($filename=~/^(.*[\\\/])[^\\\/]+$/) { + $TeX{'filepath'}=$1; + } else { + $TeX{'filepath'}=''; + } + if (defined $title) {} + elsif (defined $filename) {$title="FILE: ".$filename;} + else {$title="Word count";} + $TeX{'line'}=$texcode; + $TeX{'next'}=undef; + $TeX{'type'}=undef; + $TeX{'style'}=undef; + $TeX{'printstate'}=undef; + $TeX{'eof'}=0; + my $countsum=new_count($title); + $TeX{'countsum'}=$countsum; + my $count=new_count("_top_"); + $TeX{'count'}=$count; + inc_count(\%TeX,0); + my @countlist=(); + $TeX{'countlist'}=\@countlist; + $countsum->{'subcounts'}=\@countlist; + return \%TeX; +} + +# Parse LaTeX document +sub parse { + my ($tex)=@_; + if ($htmlstyle && $verbose) {print "<p class=parse>\n";} + while (!($tex->{'eof'})) { + parse_unit($tex,1); + } + if ($htmlstyle && $verbose) {print "</p>\n";} +} + +# Parse one block or unit +sub parse_unit { + # Status: + # 0 = exclude from count + # 1 = text + # 2 = header text + # 3 = float text + # -1 = float (exclude) + # -2 = strong exclude, ignore begin-end groups + # -3 = stronger exclude, do not parse macro parameters + # -9 = preamble (between \documentclass and \begin{document}) + my ($tex,$status,$end)=@_; + if (!defined $status) { + print_error("CRITICAL ERROR: Undefined parser status!"); + exit; + } elsif (ref($status) eq 'ARRAY') { + print_error("CRITICAL ERROR: Invalid parser status!"); + exit; + } + my $substat; + if ($showstates) { + if (defined $end) { + $tex->{'printstate'}=':'.$status.':'.$end.':'; + } else { + $tex->{'printstate'}=':'.$status.':'; + } + flush_next($tex); + } + while (defined (my $next=next_token($tex))) { + # parse next token; or tokens until match with $end + set_style($tex,"ignore"); + if ((defined $end) && ($end eq $next)) { + # end of unit + return; + } elsif (!defined $next) { + print_error("ERROR: End of file while waiting for ".$end); + return; + } + if ($status==-9 && $next eq '\begin' && $tex->{'line'}=~/^\{\s*document\s*\}/) { + # \begin{document} + $status=1; + } + if ($next eq '\documentclass') { + # starts preamble + set_style($tex,'document'); + gobble_option($tex); + gobble_macro_parms($tex,1); + while (!($tex->{'eof'})) { + parse_unit($tex,-9); + } + } elsif ($tex->{'type'}==666) { + # parse TC instructions + parse_tc($tex); + } elsif ($tex->{'type'}==1) { + # word + if ($status>0) { + inc_count($tex,$status); + set_style($tex,'word'.$status); + } + } elsif ($next eq '{') { + # {...} + parse_unit($tex,$status,'}'); + } elsif ($tex->{'type'}==3 && $status==-3) { + set_style($tex,'ignore'); + } elsif ($tex->{'type'}==3) { + # macro call + parse_macro($tex,$next,$status,$substat); + } elsif ($next eq '$') { + # math inline + parse_math($tex,$status,6,'$'); + } elsif ($next eq '$$') { + # math display (unless already in inlined math) + if (!(defined $end && $end eq '$')) { + parse_math($tex,$status,7,'$$'); + } + } + if (!defined $end) {return;} + } +} + +sub parse_macro { + my ($tex,$next,$status,$substat)=@_; + if (my $label=$BreakPoints{$next}) { + if ($tex->{'line'}=~ /^[*]?(\s*\[.*?\])*\s*\{(.+?)\}/ ) { + $label=$label.': '.$2; + } + add_subcount($tex,$label); + } + set_style($tex,$status>0?'command':'exclcommand'); + if ($next eq '\begin' && $status!=-2) { + parse_begin_end($tex,$status); + } elsif (($status==-1) && ($substat=$TeXfloatinc{$next})) { + # text included from float + set_style($tex,'command'); + gobble_macro_parms($tex,$substat); + } elsif ($status==-9 && defined ($substat=$TeXpreamble{$next})) { + # parse preamble include macros + set_style($tex,'command'); + if (defined $TeXheader{$next}) {inc_count($tex,4);} + gobble_macro_parms($tex,$substat,1); + } elsif ($status<0) { + # ignore + gobble_option($tex); + } elsif ($next eq '\(') { + # math inline + parse_math($tex,$status,6,'\)'); + } elsif ($next eq '\[') { + # math display + parse_math($tex,$status,7,'\]'); + } elsif ($next eq '\def') { + # ignore \def... + $tex->{'line'} =~ s/^([^\{]*)\{/\{/; + flush_next($tex); + print_style($1.' ','ignore'); + parse_unit($tex,-2); + } elsif (defined (my $addsuffix=$TeXfileinclude{$next})) { + # include file: queue up for parsing + parse_include_file($tex,$status,$addsuffix); + } elsif (defined ($substat=$TeXmacro{$next})) { + # macro: exclude options + if (defined $TeXheader{$next}) {inc_count($tex,4);} + gobble_macro_parms($tex,$substat,$status); + } elsif (defined ($substat=$TeXmacroword{$next})) { + # count macro as word (or a given number of words) + inc_count($tex,$status,$substat); + set_style($tex,'word'.$status); + } elsif ($next =~ /^\\[^\w\_]/) { + } else { + gobble_option($tex); + } +} + +sub parse_tc { + my ($tex)=@_; + my $next=$tex->{'next'}; + set_style($tex,'tc'); + flush_next($tex); + if (!($next=~s/^\%+TC:\s*(\w+)\s*// )) { + print_error('Warning: TC command should have format %TC:instruction [macro] [parameters]'); + return; + }; + my $instr=$1; + if ($instr=~/^(break)$/) { + if ($instr eq 'break') {add_subcount($tex,$next);} + } elsif ($next=~/^([\\]*\w+)\s+([^\s\n]+)(\s+([0-9]+))?/) { + # Format = TC:word macro + my $macro=$1; + my $param=$2; + my $option=$4; + if ($param=~/^\[([0-9,]+)\]$/) {$param=[split(',',$1)];} + if (($instr eq 'macro') || ($instr eq 'exclude')) {$TeXmacro{$macro}=$param;} + elsif ($instr eq 'header') {$TeXheader{$macro}=$param;$TeXmacro{$macro}=$param;} + elsif ($instr eq 'macroword') {$TeXmacroword{$macro}=$param;} + elsif ($instr eq 'preambleinclude') {$TeXpreamble{$macro}=$param;} + elsif ($instr eq 'group') { + $TeXmacro{'begin'.$macro}=$param; + $TeXgroup{$macro}=$option; + } + elsif ($instr eq 'floatinclude') {$TeXfloatinc{$macro}=$param;} + elsif ($instr eq 'fileinclude') {$TeXfileinclude{$macro}=$param;} + elsif ($instr eq 'breakmacro') {$BreakPoints{$macro}=$param;} + else {print_error("Warning: Unknown TC command: ".$instr);} + } elsif ($instr eq 'ignore') { + tc_ignore_input($tex); + } else { + print_error("Warning: Invalid TC command format: ".$instr); + } +} + +sub tc_ignore_input { + my ($tex)=@_; + set_style($tex,'ignore'); + parse_unit($tex,-3,"%TC:endignore"); + set_style($tex,'tc'); + flush_next($tex); +} + +sub parse_math { + my ($tex,$status,$substat,$end)=@_; + my $localstyle=$status>0 ? 'mathgroup' : 'exclmath'; + if ($status>0) {inc_count($tex,$substat);} + set_style($tex,$localstyle); + parse_unit($tex,0,$end); + set_style($tex,$localstyle); +} + +sub parse_begin_end { + my ($tex,$status)=@_; + my $localstyle=$status>0 ? 'grouping' : 'exclgroup'; + flush_style($tex,$localstyle); + gobble_option($tex); + my $groupname; + if ($tex->{'line'} =~ s/^\{\s*([^\{\}]+)\s*\*?\}[ \t\r\f]*//) { + # gobble group type + $groupname=$1; + print_style('{'.$1.'}',$localstyle); + my $next='begin'.$1; + if (defined (my $substat=$TeXmacro{$next})) { + gobble_macro_parms($tex,$substat); + } + } else { + print_error("Warning: BEGIN group without type."); + } + # find group status (or leave unchanged) + my $substat; + defined ($substat=$TeXgroup{$1}) || ($substat=$status); + if ($status<=0 && $status<$substat) {$substat=$status;} + if (($status>0) && ($substat==-1)) { + # Count float + inc_count($tex,5); + } + if ($status>0 and $substat>3) { + # count item, exclude contents + inc_count($tex,$substat); + $substat=0; + } + parse_unit($tex,$substat,'\end'); + if ($tex->{'line'} =~ s/^\{\s*([^\{\}]+)\s*\}[ \t\r\f]*//) { + # gobble group type + flush_style($tex,$localstyle); + print_style('{'.$1.'}',$localstyle); + } else { + print_error("Warning: END group without type while waiting to end ".$groupname."."); + } +} + +sub parse_include_file { + my ($tex,$status,$addsuffix)=@_; + $tex->{'line'} =~ s/^\{([^\{\}\s]+)\}// || + $tex->{'line'} =~ s/^\s*([^\{\}\%\\\s]+)// || + return; + flush_next($tex); + if ($status>0) { + print_style($&,'fileinclude'); + my $fname=$1; + if ($addsuffix==2) {$fname.='.tex';} + elsif ($addsuffix==1 && ($fname=~/^[^\.]+$/)) {$fname.='.tex';} + if ($includeTeX) {add_file_to_list($fname);} + } else { + print_style($&,'ignored'); + } +} + +sub gobble_option { + my $tex=shift @_; + flush_next($tex); + foreach my $pattern (@MacroOptionPatterns) { + if ($tex->{'line'}=~s/^($pattern)//) { + print_style($1,'option'); + return $1; + } + } + return undef; +} + +sub gobble_options { + while (gobble_option(@_)) {} +} + +sub gobble_macro_modifier { + my $tex=shift @_; + flush_next($tex); + if ($tex->{'line'} =~ s/^\*//) { + print_style($1,'option'); + return $1; + } + return undef; +} + +sub gobble_macro_parms { + my ($tex,$parm,$oldstat)=@_; + my $i; + if (ref($parm) eq 'ARRAY') { + $i=scalar @{$parm}; + } else { + $i=$parm; + $parm=[0,0,0,0,0,0,0,0,0]; + } + if ($i>0) {gobble_macro_modifier($tex);} + gobble_options($tex); + for (my $j=0;$j<$i;$j++) { + parse_unit($tex,new_status($parm->[$j],$oldstat)); + gobble_options($tex); + } +} + +sub new_status { + my ($substat,$old)=@_; + if (!defined $old) {return $substat;} + if ($old==-3 || $substat==-3) {return -3;} + if ($old==-2 || $substat==-2) {return -2;} + if ($old==0 || $substat==0) {return 0;} + if ($old==-9 || $substat==-9) {return -9;} + if ($old>$substat) {return $old;} + return $substat; +} + +sub next_token { + my $tex=shift @_; + my ($next,$type); + if (defined $tex->{'next'}) {print_style($tex->{'next'}.' ',$tex->{'style'});} + $tex->{'style'}=undef; + while (defined ($next=get_next_token($tex))) { + $type=$tex->{'type'}; + if ($type==0) { + print_style($next,'comment'); + } elsif ($type==9) { + if ($verbose>0) {line_return(1,$tex);} + } else { + return $next; + } + } + return $next; +} + + +sub get_next_token { + # Token (or token group) category: + # 0: comment + # 1: word (or other forms of text or text components) + # 2: symbol (not word, e.g. punctuation) + # 3: macro + # 4: curly braces {} + # 5: brackets [] + # 6: maths + # 9: line break in file + # 999: end of line or blank line + # 666: TeXcount instruction (%TC:instruction) + my $tex=shift @_; + my $next; + (defined ($next=get_token($tex,'\%+TC:\s*endignore\b[^\r\n]*',666))) && return "%TC:endignore"; + (defined ($next=get_token($tex,'\%+TC:[^\r\n]*',666))) && return $next; + (defined ($next=get_token($tex,'\%[^\r\n]*',0))) && return $next; + (defined ($next=get_token($tex,'(\r|\n|\r\n)',9))) && return $next; + (defined ($next=get_token($tex,'\\\\[\{\}]',2))) && return $next; + foreach my $pattern (@WordPatterns) { + (defined ($next=get_token($tex,$pattern,1))) && return $next; + } + (defined ($next=get_token($tex,'[\"\'\`:\.,\(\)\[\]!\+\-\*=/\^\_\@\<\>\~\#\&]',2))) && return $next; + (defined ($next=get_token($tex,'\\\\([a-zA-Z_]+|[^a-zA-Z_])',3))) && return $next; + (defined ($next=get_token($tex,'[\{\}]',4))) && return $next; + (defined ($next=get_token($tex,'[\[\]]',5))) && return $next; + (defined ($next=get_token($tex,'\$\$',6))) && return $next; + (defined ($next=get_token($tex,'\$',6))) && return $next; + (defined ($next=get_token($tex,'.',999))) && return $next; + (defined ($next=get_token($tex,'[^\s]+',999))) && return $next; + $tex->{'eof'}=1; + return undef; +} + +sub get_token { + my ($tex,$regexp,$type)=@_; + if (!defined $regexp) {print_error("ERROR in get_token: undefined regex.");} + if (!defined $tex->{'line'}) {print_error("ERROR in get_token: undefined tex-line. ".$tex->{'next'});} + if ( $tex->{'line'} =~ s/^($regexp)[ \t\r\f]*// ) { + $tex->{'next'}=$1; + $tex->{'type'}=$type; + return $1; + } + return undef; +} + +###### Count handling routines + + +sub new_count { + my ($title)=@_; + my @cnt=(0,0,0,0,0,0,0,0); + my %count=('count'=>\@cnt,'title'=>$title); + # files, text words, header words, float words, + # headers, floats, math-inline, math-display; + return \%count; +} + +sub inc_count { + my ($tex,$type,$value)=@_; + my $count=$tex->{'count'}; + if (!defined $value) {$value=1;} + ${$count->{'count'}}[$type]+=$value; +} + +sub get_count { + my ($count,$type)=@_; + return ${$count->{'count'}}[$type]; +} + +sub total_count { + my ($count)=@_; + my $sum=0; + for (my $i=scalar(@sumweights);$i-->0;) { + $sum+=get_count($count,$i+1)*$sumweights[$i]; + } + return $sum; +} + +sub print_count { + my ($count,$header)=@_; + if ($briefsum && @sumweights) { + print_count_total($count,$header); + } elsif ($briefsum) { + if ($htmlstyle) {print "<p class='briefcount'>";} + print_count_brief($count,$header); + if ($htmlstyle) {print "</p>\n";} + } else { + print_count_details($count,$header); + } +} + +sub print_count_with_header { + my ($count,$header)=@_; + if (!defined $header) {$header=$count->{'title'};} + if (!defined $header) {$header="";} + return $count,$header; +} + +sub print_count_total { + my ($count,$header)=print_count_with_header(@_); + if ($htmlstyle) {print "<p class='count'>".$header;} + print total_count($count); + if ($htmlstyle) {print "</p>\n";} + else {print ": ".$header;} +} + +sub print_count_brief { + my ($count,$header)=print_count_with_header(@_); + my $cnt=$count->{'count'}; + print ${$cnt}[1]."+".${$cnt}[2]."+".${$cnt}[3]. + " (".${$cnt}[4]."/".${$cnt}[5]."/".${$cnt}[6]."/".${$cnt}[7].") ". + $header; +} + +sub print_count_details { + my ($count,$header)=print_count_with_header(@_); + if ($htmlstyle) {print "<dl class='count'>\n";} + if (defined $header) { + formatprint($header."\n",'dt','header'); + } + if (get_count($count,0)>1) { + formatprint($countlabel[0].': ','dt'); + formatprint(get_count($count,0)."\n",'dd'); + } + if (@sumweights) { + formatprint('Sum count: ','dt'); + formatprint(total_count($count)."\n",'dd'); + } + for (my $i=1;$i<8;$i++) { + formatprint($countlabel[$i].': ','dt'); + formatprint(get_count($count,$i)."\n",'dd'); + } + my $subcounts=$count->{'subcounts'}; + if ($showsubcounts && defined $subcounts && scalar(@{$subcounts})>1) { + formatprint("Subcounts: text+headers+captions (#headers/#floats/#inlines/#displayed)\n",'dt'); + foreach my $subcount (@{$subcounts}) { + if ($htmlstyle) {print "<dd class='briefcount'>";} + print_count_brief($subcount); + if ($htmlstyle) {print "</dd>";} + print "\n"; + } + } + if ($htmlstyle) {print "</dl>\n";} +} + +sub add_count { + my ($a,$b)=@_; + for (my $i=0;$i<8;$i++) { + ${$a->{'count'}}[$i]+=${$b->{'count'}}[$i]; + } +} + +sub add_subcount { + my ($tex,$title)=@_; + add_count($tex->{'countsum'},$tex->{'count'}); + push @{$tex->{'countlist'}},$tex->{'count'}; + $tex->{'count'}=new_count($title); + return $tex->{'countsum'}; +} + +###### Printing routines + + +sub set_style { + my ($tex,$style)=@_; + if (!(($tex->{'style'}) && ($tex->{'style'} eq '-'))) {$tex->{'style'}=$style;} +} + +sub flush_style { + my ($tex,$style)=@_; + set_style($tex,$style); + flush_next($tex); +} + +sub line_return { + my ($blank,$tex)=@_; + if ($blank>$blankline) { + if ((defined $tex) && @sumweights) { + my $num=total_count($tex->{'count'}); + print_style(" [".$num."]","sumcount"); + } + linebreak(); + $blankline++; + } +} + +sub linebreak { + if ($htmlstyle) {print "<br>\n";} else {print "\n";} +} + +sub print_style { + my ($text,$style,$state)=@_; + (($verbose>=0) && (defined $text) && (defined $style)) || return 0; + my $colour; + ($colour=$STYLE{$style}) || return; + if (($colour) && !($colour eq '-')) { + print_with_style($text,$style,$colour); + if ($state) { + print_style($state,'state'); + } + $blankline=-1; + return 1; + } else { + return 0; + } +} + +sub print_error { + my $text=shift @_; + $errorcount++; + if ($verbose>=0) { + line_return(1); + print_style("!!! ".$text." !!!",'error'); + line_return(1); + } +} + +sub formatprint { + my ($text,$tag,$class)=@_; + my $break=($text=~s/\n$//); + if ($htmlstyle && defined $tag) { + print '<'.$tag; + if ($class) {print " class='".$class."'";} + print '>'.$text.'</'.$tag.'>'; + } else { + print $text; + } + if ($break) {print "\n";} +} + +sub flush_next { + my $tex=shift @_; + if (defined $tex->{'next'}) { + print_style($tex->{'next'}.' ',$tex->{'style'},$tex->{'printstate'}); + } + $tex->{'printstate'}=undef; + $tex->{'style'}='-'; +} + + +# Close the output, e.g. adding HTML tail +sub Close_Output { + if ($htmlstyle>1) { + html_tail(); + } +} + + +# Report if there were any errors occurring during parsing +sub Report_ErrorCount { + if ($errorcount==0) {return;} + if ($briefsum && $totalflag) {print " ";} + if ($htmlstyle) { + print_error("Errors:".$errorcount,"p","error"); + } else { + print "(errors:".$errorcount.")"; + } +} + + +sub print_help_style { + if ($verbose<=0) {return;} + formatprint("Format/colour codes of verbose output:","h2"); + print "\n\n"; + if ($htmlstyle) {print "<p class='stylehelp'>";} + help_style_line('Text which is counted',"word1","counted as text words"); + help_style_line('Header and title text',"word2","counted as header words"); + help_style_line('Caption text and footnotes',"word3","counted as caption words"); + help_style_line("Ignored text or code","ignore","excluded or ignored"); + help_style_line('\documentclass',"document","document start, beginning of preamble"); + help_style_line('\macro',"command","macro not counted, but parameters may be"); + help_style_line('\macro',"exclcommand","macro in excluded region"); + help_style_line("[Macro options]","option","not counted"); + help_style_line('\begin{group} \end{group}',"grouping","begin/end group"); + help_style_line('\begin{group} \end{group}',"exclgroup","begin/end group in excluded region"); + help_style_line('$ $',"mathgroup","counted as one equation"); + help_style_line('$ $',"exclmath","equation in excluded region"); + help_style_line('% Comments',"comment","not counted"); + help_style_line('%TC:TeXcount instructions',"tc","not counted"); + help_style_line("File to include","fileinclude","not counted but file may be counted later"); + if ($showstates) { + help_style_line('[state]',"state","internal TeXcount state"); + } + if (@sumweights) { + help_style_line('[sumcount]',"sumcount","cumulative sum count"); + } + help_style_line("ERROR","error","TeXcount error message"); + if ($htmlstyle) {print "</p>";} + print "\n\n"; +} + +sub help_style_line { + my ($text,$style,$comment)=@_; + if ($htmlstyle) { + $comment=" .... ".$comment; + } else { + $comment=" .... ".$comment; + } + if (print_style($text,$style)) { + print $comment; + linebreak(); + } +} + +# Print output style codes if conditions are met +sub conditional_print_help_style { + if ($showcodes) {print_help_style();} + return $showcodes; +} + +###### HTML routines + + + +sub html_head { + print "<html>\n<head>"; + if ($utf8flag) { + print "\n<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">"; + } + print ' +<style> +<!-- +body {width:auto;padding:5;margin:5;} +.error {font-weight:bold;color:#f00;font-style:italic;} +.word1,.word2,.word3 {color: #009;} +.word2 {font-weight: 700;} +.word3 {font-style: italic;} +.command {color: #c00;} +.exclcommand {color: #f99;} +.option {color: #cc0;} +.grouping, .document {color: #900; font-weight:bold;} +.mathgroup {color: #090;} +.exclmath {color: #6c6;} +.ignore {color: #999;} +.exclgroup {color:#c66;} +.tc {color: #999; font-weight:bold;} +.comment {color: #999; font-style: italic;} +.state {color: #990; font-size: 70%;} +.sumcount {color: #999; font-size: 80%;} +.fileinclude {color: #696; font-weight:bold;} +dl.count {background: #cfc; color: 009;} +dl.count dt.header {font-weight: bold; font-style: italic; float: none;} +dl.count dt {clear: both; float: left; margin-right: .5em;} +dl.count dd {font-weight: bold;} +dl.count dd.briefcount {font-weight: 700; clear: both; font-size:80%; font-weight:normal; margin-left:8pt;} +.warning {color: #c00; font-weight: 700;} +.parse, .count, .stylehelp, .filegroup {border: solid 1px #999; margin: 0pt; padding: 4pt;} +.parse {font-size: 80%; background: #eef;} +.parse {border-bottom:none;} +.stylehelp {font-size: 80%; background: #ffc; margin-bottom: 8pt;} +.filegroup {background: #efe; margin-bottom: 8pt;} +--> +</style> +</head> +<body> +<h1>LaTeX word count</h1> +'; +} + +sub html_tail { + print '</body></html>'; +} + +###### Help routines + + + +sub print_version { + print "TeXcount version ".$versionnumber.", ".$versiondate.'.'; +} + +sub print_syntax { + print ' +Syntax: TeXcount.pl [options] files + +Options: + -relaxed Uses relaxed rules for word and option handling: + i.e. allows more general cases to be counted as + either words or macros. + -v Verbose (same as -v3) + -v0 Do not present parsing details + -v1 Verbose: print parsed words, mark formulae + -v2 More verbose: also print ignored text + -v3 Even more verbose: include comments and options + -v4 Same as -v3 -showstate + -showstate Show internal states (with verbose) + -brief Only prints a brief, one line summary of counts + -q, -quiet Quiet mode, no error messages (use is discouraged!) + -sum, -sum= Make sum of all word and equation counts. May also + use -sum=#[,#] with up to 7 numbers to indicate how + each of the counts (text words, header words, caption + words, #headers, #floats, #inlined formulae, + #displayed formulae) are summed. The default sum (if + only -sum is used) is the same as -sum=1,1,1,0,0,1,1. + -sub, -sub= Generate subcounts. Option values are none, part, + chapter, section or subsection. Default (-sub) is set + to subsection, whereas unset is none. (Alternative + option name is -subcount.) + -nc, -nocol No colours (colours require ANSI) + -html Output in HTML format + -htmlcore Only HTML body contents + -inc Include tex files included in the document + -noinc Do not include included tex files (default) + -total Do not give sums per file, only total sum. + -1 Same as -brief and -total. Ensures there is only one + line of output. If used in conjunction with -sum, the + output will only be the total number. (NB: Character + is the number one, not the letter L.) + -dir, -dir= Specify the working directory using -dir=path. + Remember that the path must end with \ or /. If only + -dir is used, the directory of the parent file is used. + -utf8, -unicode Turns on Unicode (UTF-8) for input and output. This + is automatic with -chinese, and is required to handle + e.g. Korean text. Note that the TeX file must be save + in UTF-8 format (not e.g. GB2312 or Big5), or the + result will be unpredictable. + -ch, -chinese, -zhongwen Turns on support for Chinese characters. + TeXcount will then count each Chinese character as a + word. Automatically turns on -utf8. + -jp, -japanese Turns on support for Japanese characters. TeXcount + will count each Japanese character (kanji, hiragana, + and katakana) as one word, i.e. not do any form of + word segmentation. Automatically turns on -utf8. + -codes Display output style code overview and explanation. + This is on by default. + -nocodes Do not display output style code overview. + -h, -?, --help, /? Help + --version Print version number + --license License information +'; +} + +sub print_help { + print ' +*************************************************************** +* TeXcount.pl '.$versionnumber.', '.$versiondate.' +* + +Count words in TeX and LaTeX files, ignoring macros, tables, +formulae, etc. +'; + print_syntax(); + print ' +The script counts words as either words in the text, words in +headers/titles or words in floats (figure/table captions). +Macro options (i.e. \marco[...]) are ignored; macro parameters +(i.e. \macro{...}) are counted or ignored depending on the +macro, but by default counted. Begin-end groups are by default +ignored and treated as \'floats\', though some (e.g. center) are +counted. + +Unless -nocol (or -nc) has been specified, the output will be +colour coded. Counted text is coloured blue with headers are in +bold and in HTML output caption text is italicised. + +Mathematical formulae are not counted as words, but are instead +counted separately with separate counts for inlined formulae +and displayed formulae. Similarly, the number of headers and +the number of \'floats\' are counted. Note that \'float\' is used +here to describe anything defined in a begin-end group unless +explicitly recognized as text or mathematics. + +The verbose options (-v1, -v2, -v3, showstate) produces output +indicating how the text has been interpreted. Check this to +ensure that words in the text has been interpreted as such, +whereas mathematical formulae and text/non-text in begin-end +groups have been correctly interpreted. + +Parsing instructions may be passed to TeXcount using comments +in the LaTeX files on the format + %TC:instruction arguments +where valid instructions for setting parsing rules, typically +set at the start of the document (applies globally), are: + %TC:macro [macro] [param.states] + macro handling rule, no. of and rules for parameters + %TC:macroword [macro] [number] + macro counted as a given number of words + %TC:header [macro] [param.states] + header macro rule, as macro but counts as one header + %TC:breakmacro [macro] [label] + macro causing subcount break point + %TC:group [name] [parsing-state] + begin-end-group handling rule + %TC:floatinclude [macro] [param.states] + as macro, but also counted inside floats + %TC:preambleinclude [macro] [param.states] + as macro, but also counted inside the preamble + %TC:fileinclue [macro] [rule] + file include, add .tex if rule=2, not if rule=0 +The [param.states] is used to indicate the number of parameters +used by the macro and the rules of handling each of these: format +is [#,#,...,#] with one number for each parameter, and main rules +are 0 to ignore and 1 to count as text. Parsing instructions +which may be used anywhere are: + %TC:ignore start block to ignore + %TC:endignore end block to ignore + %TC:break [title] add subcount break point here +See the documentation for more details. + +Unix hint: Use \'less -r\' instead of just \'less\' to view output: +the \'-r\' option makes less treat text formating codes properly. + +Windows hint: If your Windows interprets ANSI colour codes, lucky +you! Otherwise, use the -nocol (or -nc) option with the verbose +options or the output will be riddled with colour codes. Instead, +you can use -html to produce HTML code, write this to file and +view with your favourite browser. +'; + print_reference(); +} + +sub print_reference { + print ' +The TeXcount script is copyright of Einar Andreas Rødland (2008) +and published under the LaTeX Project Public License. + +For more information about the script, e.g. news, updates, help, +usage tips, known issues and short-comings, go to + http://folk.uio.no/einarro/Comp/texwordcount.html +or go to + http://folk.uio.no/einarro/Services/texcount.html +to access the script as a web service. Feedback such as problems +or errors can be reported to einarro@ifi.uio.no. +'; +} + +sub print_license { + print 'TeXcount version '.$versionnumber.' + +Copyright 2008 Einar Andreas Rødland + +The TeXcount script is published under the LaTeX Project Public +License (LPPL) + http://www.latex-project.org/lppl.txt +which grants you, the user, the right to use, modify and distribute +the script. However, if the script is modified, you must change its +name or use other technical means to avoid confusion. + +The script has LPPL status "maintained" with Einar Andreas +Rødland being the current maintainer. +'; +} + diff --git a/bin/torrentSort.py b/bin/torrentSort.py new file mode 100644 index 0000000..e284a88 --- /dev/null +++ b/bin/torrentSort.py @@ -0,0 +1,220 @@ +#! /usr/bin/python +# simple python script to sort torrents +# modifications by xkonni +# - added folder sorting +# - added htdigest authorisation +# - fixed some minor glitches +# +# original version by jonassw from +# http://forum.xbmc.org/showthread.php?t=60749 + +# << DOCUMENTATION +# +# i) lighttpd configuration for htdigest +# server.modules += ( "mod_auth" ) +# auth.backend = "htdigest" +# auth.backend.htdigest.userfile = "/etc/lighttpd/auth" +# auth.debug = 2 +# auth.require = ( "/RPC2" => +# ( +# "method" => "digest", +# "realm" => "REALM", +# "require" => "valid-user" +# ) +# ) +# ii) i recommend starting this with a basic cron job you may find other +# suggestions like when rtorrent finishes hashing, but for me this caused +# lockups when starting rtorrent (as all downloads return hash_ok) +# +# */5 * * * * for i in /mnt/torrent/tv/*; do torrentSort.py $i > /dev/null; done +# +# DOCUMENTATION >> + + +import xmlrpclib, os, sys, re, shutil + + +class HTTPSDigestTransport(xmlrpclib.SafeTransport): + """ +Transport that uses urllib2 so that we can do Digest authentication. +Based upon code at http://bytes.com/topic/python/answers/509382-solution-xml-rpc-over-proxy +""" + + def __init__(self, username, pw, realm, verbose = None, use_datetime=0): + self.__username = username + self.__pw = pw + self.__realm = realm + self.verbose = verbose + self._use_datetime = use_datetime + + def request(self, host, handler, request_body, verbose): + import urllib2 + + url='https://'+host+handler + if verbose or self.verbose: + print "ProxyTransport URL: [%s]"%url + + request = urllib2.Request(url) + request.add_data(request_body) + # Note: 'Host' and 'Content-Length' are added automatically + request.add_header("User-Agent", self.user_agent) + request.add_header("Content-Type", "text/xml") # Important + + # setup digest authentication + authhandler = urllib2.HTTPDigestAuthHandler() + authhandler.add_password(self.__realm, url, self.__username, self.__pw) + opener = urllib2.build_opener(authhandler) + + #proxy_handler=urllib2.ProxyHandler() + #opener=urllib2.build_opener(proxy_handler) + f=opener.open(request) + return(self.parse_response(f)) + + +def adoptionCandidates(basedir, filename): + dirs = filter(lambda x : os.path.isdir(os.path.join(basedir, x)), os.listdir(basedir)) + + #set filename to lowercase for string comparisons + filename=filename.lower() + + ignoredPhrases = ['-','_'] + + candidates = [] + for dir in dirs: + dirParts = dir.split() + score = 0 + requiredScore = 0 + + for part in dirParts: + if ignoredPhrases.count(part) > 0: + continue + requiredScore = requiredScore + 1 + + #force lower case for string comparison. + part=part.lower() + # replace "'" with "" and add word to list + repPart = part.replace('\'','') + if repPart != part: + dirParts.append(repPart) + requiredScore -= 1 + if filename.find(part) >= 0: + score = score + 1 + if score == requiredScore: + candidates.append( (os.path.join(basedir, dir), score) ) + + return candidates + +def getSeasonNumber(filename): + patterns = [ + '.*S(\d+)E(\d+).*', + '.*S(\d+)(\.)?E(\d+).*', # hopefully matches series.s01.e05.avi + '(\d+)x(\d+).*', + '(\d+)(\d+)(\d+).*' + # commented out regex thought below Season was '4' not 14. Def better way of doing that + #top_gear.14x04.720p_hdtv_x264-fov.mkv + #'.*(\d+)x(\d+).*' + ] + + for pattern in patterns: + p = re.compile(pattern, re.I) + g = p.findall(orphanFile) + if len(g) > 0: + season = int(g[0][0]) + return season + return None + + +def getRtorrentId(filename): + downloads = rtorrent.download_list('') + for dl in downloads: + rfile = rtorrent.d.get_base_filename(dl) + if rfile == filename: + return dl + +# << CONFIGURATION +# i) FOLDER SETTINGS +showLocations = ['/mnt/media/tv'] +allowedSourceLocation = '/mnt/media/torrent/complete/tv' + +# ii) CONNECTION SETTINGS +# - using htdigest authorisation +digestTransport = HTTPSDigestTransport("username", "password", "realm") +rtorrent = xmlrpclib.ServerProxy('http://localhost',transport=digestTransport) +# - not using authorisation +# rtorrent = xmlrpclib.ServerProxy('http://localhost') + +# CONFIGURATION >> + +print '--------------- BEGIN ---------------' +orphanFile = sys.argv[1] +if os.path.isdir(orphanFile): + (fpath, fname) = os.path.split(orphanFile) + fname = os.path.relpath(orphanFile, allowedSourceLocation) + +else: + (fpath, fname) = os.path.split(orphanFile) +print 'File path: %s' % fpath +print 'File name: %s' % fname + +candidates = [] + +if not orphanFile.startswith(allowedSourceLocation): + print 'STOP! This file is not located in %s' % allowedSourceLocation + exit() + +print 'Attempting to find a home for file %s' % orphanFile + +for location in showLocations: + candidates.extend(adoptionCandidates(location, fname)) + +candidates.sort(lambda (da, sa), (db, sb): sb-sa) + +if len(candidates) <= 0: + print 'No one wanted this file :(' + exit() + +for (dir, score) in candidates: + print 'Candidate: %s with score %i' % (dir, score) + +print 'Winner is %s with score %i' % candidates[0] + +if os.path.isdir(orphanFile): + finaldir = candidates[0][0] + +else: + # Determine Season and Episode number + season = getSeasonNumber(fname) + if not season: + print 'STOP! Season could not be determined.' + exit() + + print 'Season was determined to be %i' % season + finaldir = os.path.join(candidates[0][0], 'Season %s' % season) + + # Check if season folder is present + if not os.path.isdir(finaldir): + print 'Season dir doesn\'t exist. Creating now' + os.mkdir(finaldir) + + if os.path.isfile(os.path.join(finaldir, fname)): + print 'error: file already exists, exiting' + sys.exit(1) + + print 'Will move file to %s' % finaldir + + +print 'Requesting id from rtorrent' +rid = getRtorrentId(fname) +print '%s was resolved to rtorrent id: %s' % (fname, rid) + +print 'Pausing rtorrent' +rtorrent.d.pause(rid) + +print 'Updating rtorrent' +rtorrent.d.set_directory(rid, finaldir) + +print 'Moving file' +shutil.move(orphanFile, finaldir) + +print 'Resuming rtorrent' +rtorrent.d.resume(rid) |