commit d976dab455762780b893c6d3ca5cd62f918f6acf
parent c843c48fed866295b74896c837911a0f423e5667
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Mon, 10 Sep 2018 14:44:22 +0200
Swap keys for syncing all inboxes and current account, fix tmux conflict
Diffstat:
9 files changed, 614 insertions(+), 48 deletions(-)
diff --git a/links/.Xresources b/links/.Xresources
@@ -90,8 +90,8 @@ URxvt.keysym.C-0: command:\033]710;xft:PragmataPro:size=20\007\033]711;xft:Pragm
! looks good with PragmataPro
!URxvt.letterSpace: -2
-!URxvt.letterSpace: -1
-URxvt.letterSpace: 0
+URxvt.letterSpace: -1
+!URxvt.letterSpace: 0
!urxvt*font: -*-lemon-*-*-*-*-*-*-*-*-*-*-*-*
!urxvt*boldFont: -*-lemon-*-*-*-*-*-*-*-*-*-*-*-*
@@ -107,8 +107,8 @@ URxvt.letterSpace: 0
!urxvt*boldfont: -*-termsynu-bold-r-*-*-13-*-*-*-*-*-*-*
!urxvt*font: xft:DejaVu Sans Mono for Powerline:size=8
!urxvt*boldfont: xft:DejaVu Sans Mono for Powerline:size=8
-URxvt*font: xft:PragmataPro:size=13
-URxvt*boldFont: xft:PragmataPro:size=13:style=Bold
+URxvt*font: xft:PragmataPro:size=10
+URxvt*boldFont: xft:PragmataPro:size=10:style=Bold
!urxvt*boldfont: xft:DejaVu Sans Mono Bold for Powerline:size=8
! shading: 0-99 darkens, 101-200 lightens
diff --git a/links/.i3/config b/links/.i3/config
@@ -10,12 +10,12 @@
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
# Super as modifier
-set $mod Mod4
-set $alt Mod1
+#set $mod Mod4
+#set $alt Mod1
# Alt as modifier
-#set $mod Mod1
-#set $alt Control
+set $mod Mod1
+set $alt Control
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. ISO 10646 = Unicode
@@ -160,8 +160,8 @@ bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
-#bindsym $alt+l split h
-bindsym $mod+Control+l split h
+bindsym $alt+l split h
+#bindsym $mod+Control+l split h
# split in vertical orientation
#bindsym $alt+j split v
diff --git a/links/.mutt/muttrc b/links/.mutt/muttrc
@@ -222,7 +222,7 @@ macro index,pager S "<enter-command>unset wait_key<enter>\
<save-message>=adamsgaard/Spam<enter>" "mark as spam"
# sync all accounts
-macro index <Esc>o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -qf INBOX\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"
+macro index O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -qf INBOX\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"
macro index <Esc>O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"
# sync current inbox
@@ -234,12 +234,12 @@ folder-hook gmail 'macro index o "<enter-command>unset wait_key<enter><shell-esc
folder-hook geomail 'macro index o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a geomail -qf INBOX\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
# sync current account
-folder-hook adamsgaard 'macro index O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a adamsgaard\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
-folder-hook riseup 'macro index O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a riseup\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
-folder-hook princeton 'macro index O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a princeton\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
-folder-hook noaa 'macro index O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a noaa\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
-folder-hook gmail 'macro index O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a gmail\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
-folder-hook geomail 'macro index O "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a geomail\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
+folder-hook adamsgaard 'macro index <Esc>o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a adamsgaard\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
+folder-hook riseup 'macro index <Esc>o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a riseup\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
+folder-hook princeton 'macro index <Esc>o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a princeton\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
+folder-hook noaa 'macro index <Esc>o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a noaa\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
+folder-hook gmail 'macro index <Esc>o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a gmail\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
+folder-hook geomail 'macro index <Esc>o "<enter-command>unset wait_key<enter><shell-escape>tmux split-window -p 25 \"offlineimap -a geomail\"; tmux select-pane -l<enter><enter-command>set wait_key<enter>"'
macro index K "<enter-command>unset wait_key<enter>\
<shell-escape>kill -9 $(ps aux|grep offlineimap|grep python|awk ' {print $2} ')<enter>" "kill all offlineimap processes"
diff --git a/links/.ncmpcpp/bindings b/links/.ncmpcpp/bindings
@@ -0,0 +1,582 @@
+##########################################################
+## 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, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\,
+## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace.
+## In addition, most of these names can be prefixed with
+## alt-/ctrl-/shift- to be recognized with the appropriate
+## modifier key(s).
+##
+## - 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: while command chains are executed, internal environment
+## update (which includes current window refresh and mpd status
+## update) is not performed for performance reasons. However, it
+## may be desirable to do so in some situration. Therefore it's
+## possible to invoke by hand by performing 'update enviroment'
+## action.
+##
+## 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
+##
+#
+#def_key "mouse"
+# mouse_event
+#
+#def_key "up"
+# scroll_up
+def_key "k"
+ scroll_up
+#
+#def_key "shift-up"
+# select_item
+# scroll_up
+def_key "K"
+ select_item
+ scroll_up
+#
+#def_key "down"
+# scroll_down
+def_key "j"
+ scroll_down
+#
+#def_key "shift-down"
+# select_item
+# scroll_down
+def_key "J"
+ select_item
+ 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 "ctrl-u"
+ page_up
+def_key "ctrl-d"
+ page_down
+#
+#def_key "home"
+# move_home
+def_key "g"
+ move_home
+#
+#def_key "end"
+# move_end
+def_key "G"
+ move_end
+#
+#def_key "insert"
+# select_item
+#
+#def_key "enter"
+# enter_directory
+def_key "l"
+ enter_directory
+#
+#def_key "enter"
+# toggle_output
+#
+#def_key "enter"
+# run_action
+#
+#def_key "enter"
+# play_item
+#
+#def_key "space"
+# add_item_to_playlist
+#
+#def_key "space"
+# toggle_lyrics_update_on_song_change
+#
+#def_key "space"
+# toggle_visualization_type
+#
+#def_key "delete"
+# delete_playlist_items
+def_key "d"
+ delete_playlist_items
+#
+#def_key "delete"
+# delete_browser_items
+def_key "d"
+ delete_browser_items
+#
+#def_key "delete"
+# delete_stored_playlist
+def_key "d"
+ delete_stored_playlist
+#
+#def_key "right"
+# next_column
+#
+#def_key "right"
+# slave_screen
+#
+#def_key "right"
+# volume_up
+def_key "l"
+ next_column
+def_key "l"
+ slave_screen
+
+#def_key "+"
+# volume_up
+#
+#def_key "left"
+# previous_column
+#
+#def_key "left"
+# master_screen
+#
+#def_key "left"
+# volume_down
+def_key "h"
+ previous_column
+def_key "h"
+ master_screen
+#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 "n"
+ next
+def_key "b"
+ previous
+
+#def_key "ctrl-h"
+# jump_to_parent_directory
+def_key "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 "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_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-s"
+# sort_playlist
+#
+#def_key "ctrl-s"
+# toggle_browser_sort_mode
+#
+#def_key "ctrl-s"
+# toggle_media_library_sort_mode
+#
+#def_key "ctrl-r"
+# reverse_playlist
+#
+#def_key "ctrl-_"
+# select_found_items
+#
+#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 "ctrl-v"
+# select_range
+#
+#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 "D"
+ clear_playlist
+#
+#def_key "c"
+# clear_main_playlist
+def_key "D"
+ 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"
+# 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_library_tag_type
+#
+#def_key "`"
+# refetch_lyrics
+#
+#def_key "`"
+# add_random_items
+#
+#def_key "ctrl-p"
+# set_selected_items_priority
+#
+#def_key "q"
+# quit
+#
diff --git a/links/.ncmpcpp/config b/links/.ncmpcpp/config
@@ -5,37 +5,9 @@
mpd_host = "localhost"
#mpd_host = "etlangtkodeord@192.168.2.7"
mpd_port = "6600"
-mpd_music_dir = "/home/music"
+#mpd_music_dir = "/home/music"
mpd_crossfade_time = "1"
visualizer_in_stereo = "yes"
#visualizer_in_stereo = "no"
visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_output_name = "my_fifo"
-visualizer_type = "spectrum" # spectrum/wave
-#visualizer_type = "wave" # spectrum/wave
-song_list_format = "$3{%A }|{%a }$7{%b }$0{%t}| $4$R{%7l}$9"
-now_playing_prefix = "$r"
-now_playing_suffix = "$/r"
-song_columns_list_format = "(30)[green]{a} (40)[]{t|f} (30)[cyan]{b}"
-playlist_display_mode = "columns"
-browser_display_mode = "columns"
-search_engine_display_mode = "columns"
-autocenter_mode = "yes"
-centered_cursor = "yes"
-progressbar_look = " "
-user_interface = "alternative"
-default_space_mode = "select"
-header_visibility = "no"
-statusbar_visibility = "no"
-titles_visibility = "no"
-follow_now_playing_lyrics = "yes"
-store_lyrics_in_song_dir = "yes"
-screen_switcher_mode = "sequence: 2 -> 3"
-ignore_leading_the = "yes"
-mouse_support = "no"
-empty_tag_marker = "[empty]"
-allow_physical_files_deletion = "yes"
-allow_physical_directories_deletion = "yes"
-main_window_color = "default"
-main_window_highlight_color = "default"
-visualizer_color = "blue"
diff --git a/links/.tmux.conf b/links/.tmux.conf
@@ -109,6 +109,7 @@ bind C-a last-pane # go to last pane with <C-a><C-a>
bind -n M-s last-window # go to last pane with M-s
bind -n M-a last-pane # go to last pane with M-a
bind -r n next-window # next window with <C-a>n
+bind -r b previous-window # next window with <C-a>p
bind -n -r M-n next-window # next window with <M-n>
bind -n -r M-b previous-window # previous window with <M-n>
diff --git a/links/.xinitrc b/links/.xinitrc
@@ -78,7 +78,7 @@ dunst &
#eval `gnome-keyring-daemon --start --components=secrets` # possible components: gpg,pkcs11,secrets,ssh
eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
export GPG_AGENT_INFO SSH_AUTH_SOCK
-#eval $(ssh-agent)
+eval $(ssh-agent)
# Enable tap-to-click on touchpad
synclient TapButton1=1 TapButton2=2 TapButton3=3
diff --git a/links/bin/jupiter-order-download.sh b/links/bin/jupiter-order-download.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+set -e
+url="http://gerda.geus.dk/Gerda/PCJupiterXL/export?email=andam@mst.dk&filetype=POSTGRES&geusdbtype=PCJupiterXL&sqlwhere=(1=1)&dbfilename=PCJUPITERXLPLUS_full_$(date +%Y%m%d)&datum=euref89&utmzone=32&kote=dvr90&isPlusVersion=true"
+
+echo "$url"
+echo
+curl "$url"
diff --git a/links/bin/sync-music-idkfa.sh b/links/bin/sync-music-idkfa.sh
@@ -1,6 +1,10 @@
#!/bin/bash
host=ad@idkfa.ucsd.edu:/home/ad/music/
-musicdir="$HOME/Music/iTunes/iTunes Media/Music/"
+if [ "$(uname)" = "Darwin" ]; then
+ musicdir="$HOME/Music/iTunes/iTunes Media/Music/"
+else
+ musicdir="$HOME/music/"
+fi
echo "syncing new music from $host"
rsync -rav --progress -e "ssh" $host "$musicdir"