Major Update!
This commit is contained in:
		@@ -7,11 +7,11 @@
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Desktop Entry]
 | 
			
		||||
  Name=neomutt
 | 
			
		||||
  Name=Neomutt
 | 
			
		||||
  GenericName=Email client
 | 
			
		||||
  Exec=/usr/bin/kitty --class neomutt /usr/bin/neomutt
 | 
			
		||||
  Exec=/usr/bin/termite -e neomutt %u
 | 
			
		||||
  Type=Application
 | 
			
		||||
  Icon=/usr/share/doc/neomutt/logo/neomutt-128.png
 | 
			
		||||
  Icon=/usr/share/icons/Papirus/64x64/apps/mutt.svg
 | 
			
		||||
  Categories=Network;Email;
 | 
			
		||||
  MimeType=message/rfc822;x-scheme-handler/mailto;application/x-xpinstall;
 | 
			
		||||
  StartupNotify=true
 | 
			
		||||
@@ -29,30 +29,103 @@
 | 
			
		||||
  Name=Zathura
 | 
			
		||||
  Comment=A minimalistic document viewer
 | 
			
		||||
  Exec=zathura %U
 | 
			
		||||
  # Translators: Icon of the desktop entry.
 | 
			
		||||
  Icon=org.pwmt.zathura
 | 
			
		||||
  Icon=/usr/share/icons/Papirus/64x64/apps/zathura.svg
 | 
			
		||||
  Terminal=false
 | 
			
		||||
  Categories=Office;Viewer;
 | 
			
		||||
  # Translators: Search terms to find this application. Do not translate or
 | 
			
		||||
  # localize the semicolons. The list must also end with a semicolon.
 | 
			
		||||
  Keywords=PDF;PS;PostScript;DjVU;document;presentation;viewer;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Weechat
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.local/share/applications/weechat.desktop
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
[Desktop Entry]
 | 
			
		||||
Encoding=UTF-8
 | 
			
		||||
MultipleArgs=false
 | 
			
		||||
Terminal=false
 | 
			
		||||
Exec=termite --class=WeeChat -e 'weechat'
 | 
			
		||||
StartupWMClass=WeeChat
 | 
			
		||||
Icon=chat
 | 
			
		||||
Type=Application
 | 
			
		||||
Categories=Network;IRCClient;
 | 
			
		||||
StartupNotify=true
 | 
			
		||||
Name=WeeChat
 | 
			
		||||
GenericName=IRC Client
 | 
			
		||||
  [Desktop Entry]
 | 
			
		||||
  Encoding=UTF-8
 | 
			
		||||
  MultipleArgs=false
 | 
			
		||||
  Terminal=false
 | 
			
		||||
  Exec=termite --class=WeeChat -e 'weechat'
 | 
			
		||||
  StartupWMClass=WeeChat
 | 
			
		||||
  Icon=/usr/share/icons/Papirus/64x64/apps/weechat.svg
 | 
			
		||||
  Type=Application
 | 
			
		||||
  Categories=Network;IRCClient;
 | 
			
		||||
  StartupNotify=true
 | 
			
		||||
  Name=WeeChat
 | 
			
		||||
  GenericName=IRC Client
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Matlab
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.local/share/applications/matlab.desktop
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Desktop Entry]
 | 
			
		||||
  Version=1.0
 | 
			
		||||
  Type=Application
 | 
			
		||||
  Terminal=false
 | 
			
		||||
  Exec=/usr/local/bin/matlab -desktop
 | 
			
		||||
  Name=MATLAB
 | 
			
		||||
  Icon=/usr/share/icons/Papirus/48x48/apps/matlab.svg
 | 
			
		||||
  Categories=Development;Math;Science
 | 
			
		||||
  Comment=Scientific computing environment
 | 
			
		||||
  StartupNotify=true
 | 
			
		||||
  StartupWMClass=com-mathworks-util-PostVMInit
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Neovim
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.local/share/applications/nvim.desktop
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Desktop Entry]
 | 
			
		||||
  Name=Neovim
 | 
			
		||||
  GenericName=Text Editor
 | 
			
		||||
  Comment=Edit text files
 | 
			
		||||
  Exec=nvim %F
 | 
			
		||||
  Terminal=true
 | 
			
		||||
  Type=Application
 | 
			
		||||
  Keywords=Text;editor;
 | 
			
		||||
  Icon=/usr/share/icons/Papirus/48x48/apps/nvim.svg
 | 
			
		||||
  Categories=Utility;TextEditor;
 | 
			
		||||
  StartupNotify=false
 | 
			
		||||
  MimeType=text/english;text/plain;text/x-makefile;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO Transmission
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.local/share/applications/transmission.desktop
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Desktop Entry]
 | 
			
		||||
  Type=Application
 | 
			
		||||
  Name=Torrent
 | 
			
		||||
  Exec=/usr/bin/env transadd %U
 | 
			
		||||
#+end_src
 | 
			
		||||
* Images
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.local/share/applications/img.desktop
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Desktop Entry]
 | 
			
		||||
  Type=Application
 | 
			
		||||
  Name=Image viewer
 | 
			
		||||
  Exec=/usr/bin/sxiv -a %u
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO RSS
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.local/share/applications/rss.desktop
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Desktop Entry]
 | 
			
		||||
  Type=Application
 | 
			
		||||
  Name=RSS feed addition
 | 
			
		||||
  Exec=/usr/bin/env rssadd %U
 | 
			
		||||
#+end_src
 | 
			
		||||
 
 | 
			
		||||
@@ -30,50 +30,47 @@ esac
 | 
			
		||||
 | 
			
		||||
** Use Color
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
use_color=true
 | 
			
		||||
  use_color=true
 | 
			
		||||
  alias ls='ls -hN --color=auto --group-directories-first'
 | 
			
		||||
  alias grep='grep --colour=auto'
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** TODO Set colorful PS1 only on colorful terminals.
 | 
			
		||||
dircolors --print-database uses its own built-in database instead of using /etc/DIR_COLORS.  Try to use the external file first to take advantage of user additions.  Use internal bash globbing instead of external grep binary.
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
safe_term=${TERM//[^[:alnum:]]/?}   # sanitize TERM
 | 
			
		||||
match_lhs=""
 | 
			
		||||
[[ -f ~/.dir_colors   ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
 | 
			
		||||
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
 | 
			
		||||
[[ -z ${match_lhs}    ]] \
 | 
			
		||||
  && type -P dircolors >/dev/null \
 | 
			
		||||
  && match_lhs=$(dircolors --print-database)
 | 
			
		||||
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
 | 
			
		||||
  safe_term=${TERM//[^[:alnum:]]/?}   # sanitize TERM
 | 
			
		||||
  match_lhs=""
 | 
			
		||||
  [[ -f ~/.dir_colors   ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
 | 
			
		||||
  [[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
 | 
			
		||||
  [[ -z ${match_lhs}    ]] \
 | 
			
		||||
    && type -P dircolors >/dev/null \
 | 
			
		||||
    && match_lhs=$(dircolors --print-database)
 | 
			
		||||
  [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
 | 
			
		||||
 | 
			
		||||
if ${use_color} ; then
 | 
			
		||||
  # Enable colors for ls, etc.  Prefer ~/.dir_colors #64489
 | 
			
		||||
  if type -P dircolors >/dev/null ; then
 | 
			
		||||
    if [[ -f ~/.dir_colors ]] ; then
 | 
			
		||||
      eval $(dircolors -b ~/.dir_colors)
 | 
			
		||||
    elif [[ -f /etc/DIR_COLORS ]] ; then
 | 
			
		||||
      eval $(dircolors -b /etc/DIR_COLORS)
 | 
			
		||||
  if ${use_color} ; then
 | 
			
		||||
    # Enable colors for ls, etc.  Prefer ~/.dir_colors #64489
 | 
			
		||||
    if type -P dircolors >/dev/null ; then
 | 
			
		||||
      if [[ -f ~/.dir_colors ]] ; then
 | 
			
		||||
        eval $(dircolors -b ~/.dir_colors)
 | 
			
		||||
      elif [[ -f /etc/DIR_COLORS ]] ; then
 | 
			
		||||
        eval $(dircolors -b /etc/DIR_COLORS)
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ ${EUID} == 0 ]] ; then
 | 
			
		||||
      PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
 | 
			
		||||
    else
 | 
			
		||||
      PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    if [[ ${EUID} == 0 ]] ; then
 | 
			
		||||
      # show root@ when we don't have colors
 | 
			
		||||
      PS1='\u@\h \W \$ '
 | 
			
		||||
    else
 | 
			
		||||
      PS1='\u@\h \w \$ '
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [[ ${EUID} == 0 ]] ; then
 | 
			
		||||
    PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
 | 
			
		||||
  else
 | 
			
		||||
    PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  alias ls='ls --color=auto'
 | 
			
		||||
  alias grep='grep --colour=auto'
 | 
			
		||||
  alias egrep='egrep --colour=auto'
 | 
			
		||||
  alias fgrep='fgrep --colour=auto'
 | 
			
		||||
else
 | 
			
		||||
  if [[ ${EUID} == 0 ]] ; then
 | 
			
		||||
    # show root@ when we don't have colors
 | 
			
		||||
    PS1='\u@\h \W \$ '
 | 
			
		||||
  else
 | 
			
		||||
    PS1='\u@\h \w \$ '
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
@@ -122,11 +119,18 @@ bind '"\e[B": history-search-forward'
 | 
			
		||||
  alias m="neomutt"
 | 
			
		||||
  alias y="yadm"
 | 
			
		||||
  alias o="xdg-open"
 | 
			
		||||
  alias x="sxiv -ft *"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Neovim
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  command -v nvim >/dev/null && alias vim="nvim" vimdiff="nvim -d" # Use neovim for vim if present.
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Magit
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  alias magit="emacsclient -create-frame --alternate-editor=\"\" --eval '(magit-status)'"
 | 
			
		||||
  # alias magit="emacsclient -create-frame --alternate-editor=\"\" --eval '(magit-status)'"
 | 
			
		||||
  alias magit="nvim -c MagitOnly"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Vim-like
 | 
			
		||||
@@ -298,11 +302,7 @@ function nullify() {
 | 
			
		||||
 | 
			
		||||
** Prompt
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
if [ "`id -u`" -eq 0 ]; then
 | 
			
		||||
    PS1="\[\033[m\]|\[\033[1;35m\]\t\[\033[m\]|\[\e[1;31m\]\u\[\e[1;36m\]\[\033[m\]@\[\e[1;36m\]\h\[\033[m\]:\[\e[0m\]\[\e[1;32m\][\W]> \[\e[0m\]"
 | 
			
		||||
else
 | 
			
		||||
    PS1="\[\033[m\]|\[\033[1;35m\]\t\[\033[m\]|\[\e[1m\]\u\[\e[1;36m\]\[\033[m\]@\[\e[1;36m\]\h\[\033[m\]:\[\e[0m\]\[\e[1;32m\][\W]> \[\e[0m\]"
 | 
			
		||||
fi
 | 
			
		||||
  export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Exports
 | 
			
		||||
@@ -391,8 +391,11 @@ export SUDO_ASKPASS=~/bin/askpass-rofi
 | 
			
		||||
 | 
			
		||||
** Default
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
export EDITOR=/usr/bin/nvim
 | 
			
		||||
export BROWSER=/usr/bin/qutebrowser
 | 
			
		||||
  export EDITOR="nvim"
 | 
			
		||||
  export TERMINAL="st"
 | 
			
		||||
  export BROWSER="qutebrowser"
 | 
			
		||||
  export READER="zathura"
 | 
			
		||||
  export FILE="vifm"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Path
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										521
									
								
								dotfiles/binaries.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										521
									
								
								dotfiles/binaries.org
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,521 @@
 | 
			
		||||
#+TITLE: Binaries
 | 
			
		||||
 | 
			
		||||
* Select Screen
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/bin/displayselect
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
Script taken from Luke Smith.
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  twoscreen() { # If multi-monitor is selected and there are two screens.
 | 
			
		||||
 | 
			
		||||
      mirror=$(printf "no\\nyes" | dmenu -i -p "Mirror displays?")
 | 
			
		||||
      # Mirror displays using native resolution of external display and a scaled
 | 
			
		||||
      # version for the internal display
 | 
			
		||||
      if [ "$mirror" = "yes" ]; then
 | 
			
		||||
          external=$(echo "$screens" | dmenu -i -p "Optimize resolution for:")
 | 
			
		||||
          internal=$(echo "$screens" | grep -v "$external")
 | 
			
		||||
 | 
			
		||||
          res_external=$(xrandr --query | sed -n "/^$external/,/\+/p" | \
 | 
			
		||||
                             tail -n 1 | awk '{print $1}')
 | 
			
		||||
          res_internal=$(xrandr --query | sed -n "/^$internal/,/\+/p" | \
 | 
			
		||||
                             tail -n 1 | awk '{print $1}')
 | 
			
		||||
 | 
			
		||||
          res_ext_x=$(echo $res_external | sed 's/x.*//')
 | 
			
		||||
          res_ext_y=$(echo $res_external | sed 's/.*x//')
 | 
			
		||||
          res_int_x=$(echo $res_internal | sed 's/x.*//')
 | 
			
		||||
          res_int_y=$(echo $res_internal | sed 's/.*x//')
 | 
			
		||||
 | 
			
		||||
          scale_x=$(echo "$res_ext_x / $res_int_x" | bc -l)
 | 
			
		||||
          scale_y=$(echo "$res_ext_y / $res_int_y" | bc -l)
 | 
			
		||||
 | 
			
		||||
          xrandr --output "$external" --auto --scale 1.0x1.0 \
 | 
			
		||||
                 --output "$internal" --auto --same-as "$external" \
 | 
			
		||||
                 --scale "$scale_x"x"$scale_y"
 | 
			
		||||
      else
 | 
			
		||||
 | 
			
		||||
          primary=$(echo "$screens" | dmenu -i -p "Select primary display:")
 | 
			
		||||
          secondary=$(echo "$screens" | grep -v "$primary")
 | 
			
		||||
          direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?")
 | 
			
		||||
          xrandr --output "$primary" --auto --scale 1.0x1.0 --output "$secondary" --"$direction"-of "$primary" --auto --scale 1.0x1.0
 | 
			
		||||
      fi
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  morescreen() { # If multi-monitor is selected and there are more than two screens.
 | 
			
		||||
      primary=$(echo "$screens" | dmenu -i -p "Select primary display:")
 | 
			
		||||
      secondary=$(echo "$screens" | grep -v "$primary" | dmenu -i -p "Select secondary display:")
 | 
			
		||||
      direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?")
 | 
			
		||||
      tertiary=$(echo "$screens" | grep -v "$primary" | grep -v "$secondary" | dmenu -i -p "Select third display:")
 | 
			
		||||
      xrandr --output "$primary" --auto --output "$secondary" --"$direction"-of "$primary" --auto --output "$tertiary" --"$(printf "left\\nright" | grep -v "$direction")"-of "$primary" --auto
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  multimon() { # Multi-monitor handler.
 | 
			
		||||
      case "$(echo "$screens" | wc -l)" in
 | 
			
		||||
          1) xrandr $(echo "$allposs" | grep -v "$screens" | awk '{print "--output", $1, "--off"}' | tr '\n' ' ') ;;
 | 
			
		||||
          2) twoscreen ;;
 | 
			
		||||
          ,*) morescreen ;;
 | 
			
		||||
      esac ;}
 | 
			
		||||
 | 
			
		||||
  # Get all possible displays
 | 
			
		||||
  allposs=$(xrandr -q | grep "connected")
 | 
			
		||||
 | 
			
		||||
  # Get all connected screens.
 | 
			
		||||
  screens=$(echo "$allposs" | grep " connected" | awk '{print $1}')
 | 
			
		||||
 | 
			
		||||
  # Get user choice including multi-monitor and manual selection:
 | 
			
		||||
  chosen=$(printf "%s\\ncancel\\nmulti-monitor\\nmanual selection" "$screens" | dmenu -i -p "Select display arangement:") &&
 | 
			
		||||
      case "$chosen" in
 | 
			
		||||
          "cancel") exit ;;
 | 
			
		||||
          "manual selection") arandr ; exit ;;
 | 
			
		||||
          "multi-monitor") multimon ;;
 | 
			
		||||
          ,*) xrandr --output "$chosen" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "$chosen" | awk '{print "--output", $1, "--off"}' | tr '\n' ' ') ;;
 | 
			
		||||
      esac
 | 
			
		||||
 | 
			
		||||
  # setbg # Fix background if screen size/arangement has changed.
 | 
			
		||||
  $HOME/.config/polybar/scripts/launch.sh # restart polybar
 | 
			
		||||
  pgrep -x dunst >/dev/null && killall dunst && setsid dunst & # Restart dunst to ensure proper location on screen
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* getbib
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/bin/getbib
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  [ -z "$1" ] && echo "Give either a pdf file or a DOI as an argument." && exit
 | 
			
		||||
 | 
			
		||||
  if [ -f "$1" ]; then
 | 
			
		||||
      # Try to get DOI from pdfinfo or pdftotext output.
 | 
			
		||||
      doi=$(pdfinfo "$1" | grep -io "doi:.*") ||
 | 
			
		||||
          doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:.*" -m 1) ||
 | 
			
		||||
          exit 1
 | 
			
		||||
  else
 | 
			
		||||
      doi="$1"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Check crossref.org for the bib citation.
 | 
			
		||||
  curl -s "http://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\\n"
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* vpnToggle
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/bin/vpntoggle
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  if [[ $(nordvpn status) == *"Connected"* ]]; then
 | 
			
		||||
    nordvpn disconnect && dunstify --replace=23198 "VPN" "Disconnected";
 | 
			
		||||
  else
 | 
			
		||||
    country=`nordvpn countries | sed 's/\s*\t\s*/ /g ; s/\s/\n/g ; s/_/ /g ; /^[a-zA-Z]/!d ; s/\(.*\)/\L\1/' | rofi -i -dmenu | sed 's/\s/_/g'`
 | 
			
		||||
    nordvpn connect $country && dunstify --replace=23198 "VPN" "Connected to $country";
 | 
			
		||||
  fi
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* bukurun
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/bin/bukurun
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
_rofi () {
 | 
			
		||||
    rofi -dmenu -i -no-levenshtein-sort -width 1000 "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# display settings
 | 
			
		||||
display_type=1
 | 
			
		||||
max_str_width=80
 | 
			
		||||
 | 
			
		||||
# keybindings
 | 
			
		||||
switch_view="Alt+Tab"
 | 
			
		||||
new_bookmark="Alt+n"
 | 
			
		||||
actions="Alt+a"
 | 
			
		||||
edit="Alt+e"
 | 
			
		||||
delete="Alt+d"
 | 
			
		||||
 | 
			
		||||
# colors
 | 
			
		||||
help_color="#334433"
 | 
			
		||||
 | 
			
		||||
# source global config
 | 
			
		||||
if [[ -f /etc/buku_run.config ]]
 | 
			
		||||
then
 | 
			
		||||
  source /etc/buku_run.config
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# source local config:
 | 
			
		||||
if [[ -z $XDG_CONFIG_DIR ]]
 | 
			
		||||
then
 | 
			
		||||
  if [[ -f $HOME/.config/buku_run/config ]]
 | 
			
		||||
  then
 | 
			
		||||
    source $HOME/.config/buku_run/config
 | 
			
		||||
  else
 | 
			
		||||
    echo "User config file \'~/.config/buku_run/config\' not found. using global config"
 | 
			
		||||
  fi
 | 
			
		||||
else
 | 
			
		||||
  if [[ -f "${XDG_CONFIG_DIR}/buku_run/config" ]]
 | 
			
		||||
  then
 | 
			
		||||
    source "${XDG_CONFIG_DIR}/buku_run/config"
 | 
			
		||||
  else
 | 
			
		||||
    echo "User config file \'~/.config/buku_run/config\' not found. using global config"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
main () {
 | 
			
		||||
    HELP="Welcome to Buku. Use <span color='${help_color}'>${new_bookmark}</span> to add a new Bookmark
 | 
			
		||||
Use <span color='${help_color}'>${switch_view}</span> to switch View. <span color='${help_color}'>${actions}</span> for actions"
 | 
			
		||||
    if [[ $mode == "bookmarks" ]]; then
 | 
			
		||||
        content=$(parseBuku)
 | 
			
		||||
        menu=$(echo "${content}" | _rofi -p '> ' -filter "${filter}" -mesg "${HELP}" -kb-custom-1 "${new_bookmark}" -kb-custom-2 "${switch_view}" -kb-custom-3 "${actions}" -kb-custom-4 "${edit}" -kb-custom-5 "${delete}")
 | 
			
		||||
    elif [[ $mode == "tags" ]]; then
 | 
			
		||||
        menu=$(buku --np --st | awk '{$NF=""; print $0}' | cut -d ' ' -f2-  | _rofi -p '> ' -mesg "${HELP}" -kb-custom-1 "${new_bookmark}" -kb-custom-2 "${switch_view}" -kb-custom-3 "${actions}" -kb-custom-4 "${edit}" -kb-custom-5 "${delete}")
 | 
			
		||||
    fi
 | 
			
		||||
    val=$?
 | 
			
		||||
    if [[ $val -eq 1 ]]; then
 | 
			
		||||
        exit
 | 
			
		||||
    elif [[ $val -eq 12 ]]; then
 | 
			
		||||
        optionsMenu
 | 
			
		||||
    elif [[ $val -eq 10 ]]; then
 | 
			
		||||
        addMark
 | 
			
		||||
    elif [[ $val -eq 14 ]]; then
 | 
			
		||||
        deleteMenu
 | 
			
		||||
    elif [[ $val -eq 13 ]]; then
 | 
			
		||||
        editMenu
 | 
			
		||||
    elif [[ $val -eq 11 ]]; then
 | 
			
		||||
        if [[ $mode == "bookmarks" ]]; then
 | 
			
		||||
            export mode="tags"
 | 
			
		||||
            mode=tags main
 | 
			
		||||
        elif [[ $mode == "tags" ]]; then
 | 
			
		||||
            export mode="bookmarks"
 | 
			
		||||
            mode=bookmarks main
 | 
			
		||||
        fi
 | 
			
		||||
    elif [[ $val -eq 0 ]]; then
 | 
			
		||||
        if [[ $mode == "bookmarks" ]]; then
 | 
			
		||||
            id=$(getId "$content" "$menu")
 | 
			
		||||
            for bm in ${id}; do
 | 
			
		||||
                buku -o "${bm}"
 | 
			
		||||
            done
 | 
			
		||||
        elif [[ $mode == "tags" ]]; then
 | 
			
		||||
            filter="${menu}" mode="bookmarks" main
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
optionsMenu () {
 | 
			
		||||
    if [[ $mode == "bookmarks" ]]; then
 | 
			
		||||
        askmenu=$(echo -e "< Return\n---\n1. Edit\n2. Delete" | _rofi -p '> ' -mesg "Choose Action for bookmark")
 | 
			
		||||
        val=$?
 | 
			
		||||
        if [[ $val -eq 1 ]]; then
 | 
			
		||||
            exit
 | 
			
		||||
        elif [[ $val -eq 0 ]]; then
 | 
			
		||||
            if [[ $askmenu == "< Return" ]]; then
 | 
			
		||||
                export mode=bookmarks
 | 
			
		||||
                main
 | 
			
		||||
            elif [[ $askmenu == "1. Edit" ]]; then
 | 
			
		||||
                editMenu
 | 
			
		||||
            elif [[ $askmenu == "2. Delete" ]]; then
 | 
			
		||||
                deleteMenu
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    elif [[ $mode == "tags" ]]; then
 | 
			
		||||
        askmenu=$(echo -e "< Return\n---\n1. Replace Tag\n2. Delete Tag" | _rofi -p '> ' -mesg "Choose Action for tag \"${menu}\"")
 | 
			
		||||
        val=$?
 | 
			
		||||
        if [[ $val -eq 1 ]]; then
 | 
			
		||||
            exit
 | 
			
		||||
        elif [[ $val -eq 0 ]]; then
 | 
			
		||||
            if [[ $askmenu == "< Return" ]]; then
 | 
			
		||||
                export mode=tags
 | 
			
		||||
                main
 | 
			
		||||
            elif [[ $askmenu == "1. Replace Tag" ]]; then
 | 
			
		||||
                newtag=$(echo | _rofi -p '> ' -mesg "Enter new tag name for tag \"${menu}\"")
 | 
			
		||||
                val=$?
 | 
			
		||||
                if [[ $val -eq 1 ]]; then
 | 
			
		||||
                    exit
 | 
			
		||||
                elif [[ $val -eq 0 ]]; then
 | 
			
		||||
                    if [[ $newtag == "" ]]; then
 | 
			
		||||
                        mode=tags main
 | 
			
		||||
                    else
 | 
			
		||||
                        buku -r "${menu}" "${newtag}"
 | 
			
		||||
                        mode=tags main
 | 
			
		||||
                    fi
 | 
			
		||||
                fi
 | 
			
		||||
            elif [[ $askmenu == "2. Delete Tag" ]]; then
 | 
			
		||||
                delask=$(echo -e "1. Yes\n2. No" | _rofi -p '> ' -mesg "Really delete tag?")
 | 
			
		||||
                val=$?
 | 
			
		||||
                if [[ $val -eq 1 ]]; then
 | 
			
		||||
                    exit
 | 
			
		||||
                elif [[ $val -eq 0 ]]; then
 | 
			
		||||
                    if [[ $delask == "1. Yes" ]]; then
 | 
			
		||||
                        buku -r "${menu}"
 | 
			
		||||
                        mode=tags main
 | 
			
		||||
                    elif [[ $delask == "2. No" ]]; then
 | 
			
		||||
                        mode=tags main
 | 
			
		||||
                    fi
 | 
			
		||||
                fi
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
deleteMenu () {
 | 
			
		||||
    id=$(getId "$content" "$menu")
 | 
			
		||||
    delask=$(echo -e "1. Yes\n2. No" | _rofi -p '> ' -mesg "Really delete bookmark?")
 | 
			
		||||
    val=$?
 | 
			
		||||
    if [[ $val -eq 1 ]]; then
 | 
			
		||||
        exit
 | 
			
		||||
    elif [[ $val -eq 0 ]]; then
 | 
			
		||||
        if [[ $delask == "1. Yes" ]]; then
 | 
			
		||||
            buku -d ${id} --tacit
 | 
			
		||||
            mode=bookmarks main
 | 
			
		||||
        elif [[ $delask == "2. No" ]]; then
 | 
			
		||||
            optionsMenu
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
editMenu () {
 | 
			
		||||
    id=$(getId "$content" "$menu")
 | 
			
		||||
    title="$(getTitleFromId $id)"
 | 
			
		||||
    bookmark="$(getUrlFromId $id)"
 | 
			
		||||
    tags="$(getTagsFromId $id)"
 | 
			
		||||
    content=$(echo -e "1. title: $title\n2. url: $bookmark\n3. tags: $tags")
 | 
			
		||||
    editmenu=$(echo -e "< Return\n---\n${content}" | _rofi -p '> ')
 | 
			
		||||
    val=$?
 | 
			
		||||
    if [[ $val -eq 1 ]]; then
 | 
			
		||||
        exit
 | 
			
		||||
    elif [[ $val -eq 0 ]]; then
 | 
			
		||||
        if [[ $editmenu == "< Return" ]]; then
 | 
			
		||||
            main
 | 
			
		||||
        elif [[ $editmenu == "tags: NOTAG" ]]; then
 | 
			
		||||
            addTags --update
 | 
			
		||||
        elif [[ $editmenu =~ tags:* ]]; then
 | 
			
		||||
            tags="${tags}" editTags
 | 
			
		||||
        elif [[ $editmenu =~ url:* ]]; then
 | 
			
		||||
            editBookmark
 | 
			
		||||
        elif [[ $editmenu =~ title:* ]]; then
 | 
			
		||||
            editTitle
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
editTags () {
 | 
			
		||||
    edittagsmenu=$(echo | _rofi -filter "${tags}" -p '> ' -mesg "Edit Tags and hit Enter")
 | 
			
		||||
    val=$?
 | 
			
		||||
    if [[ $val -eq 1 ]]; then
 | 
			
		||||
        exit
 | 
			
		||||
    elif [[ $val -eq 0 ]]; then
 | 
			
		||||
        buku -u ${id} --tag "${edittagsmenu}"
 | 
			
		||||
    fi
 | 
			
		||||
    mode=bookmarks main
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
editBookmark () {
 | 
			
		||||
    bmarkmenu=$(echo "" | _rofi -p "> " -filter "${bookmark}" -mesg "Edit Bookmark and hit Enter")
 | 
			
		||||
    val=$?
 | 
			
		||||
    if [[ $val -eq 1 ]]; then
 | 
			
		||||
        exit
 | 
			
		||||
    elif [[ $val -eq 0 ]]; then
 | 
			
		||||
        if [[ $bmarkmenu == "http"* ]]; then
 | 
			
		||||
            buku -u "${id}" --url "${bmarkmenu}"
 | 
			
		||||
        else
 | 
			
		||||
            echo "" | rofi -e "Not a valid URI, Make sure URLs start with http"
 | 
			
		||||
            editBookmark
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    mode=bookmarks main
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
editTitle () {
 | 
			
		||||
  titlemenu=$(echo "" | _rofi -p "> " -filter "${title}" -mesg "Edit Title and hit Enter")
 | 
			
		||||
  val=$?
 | 
			
		||||
  if [[ $val -eq 1 ]]; then
 | 
			
		||||
    exit
 | 
			
		||||
  elif [[ $val -eq 0 ]]; then
 | 
			
		||||
    buku -u "${id}" --title "${titlemenu}"
 | 
			
		||||
  fi
 | 
			
		||||
  mode=bookmarks main
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
addMark () {
 | 
			
		||||
    inserturl=$(echo -e "$(xclip -o)" | _rofi -p '> ' -mesg "Use URL below or type manually")
 | 
			
		||||
    val=$?
 | 
			
		||||
    if [[ $val -eq 1 ]]; then
 | 
			
		||||
        exit
 | 
			
		||||
    elif [[ $val -eq 0 ]]; then
 | 
			
		||||
        addTags
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
addTags () {
 | 
			
		||||
    inserttags=$(buku --np --st | awk '{$NF=""; print $0}' | cut -d ' ' -f2- | _rofi -p '> ' -mesg "Add some tags. Separate tags with ', '")
 | 
			
		||||
    val=$?
 | 
			
		||||
    if [[ $val -eq 1 ]]; then
 | 
			
		||||
        exit
 | 
			
		||||
    elif [[ $val -eq 0 ]]; then
 | 
			
		||||
        if [[ $(echo "${inserttags}" | wc -l) -gt 1 ]]; then
 | 
			
		||||
            taglist=$(echo "${inserttags}" | tr '\n' ',')
 | 
			
		||||
            tags=()
 | 
			
		||||
            for tag in $taglist; do
 | 
			
		||||
                tags+=("$tag")
 | 
			
		||||
            done
 | 
			
		||||
        else
 | 
			
		||||
            tags=${inserttags}
 | 
			
		||||
        fi
 | 
			
		||||
        if [[ $1 == "--update" ]]; then
 | 
			
		||||
            buku -u "${id}" --tag ${tags}
 | 
			
		||||
        else
 | 
			
		||||
            buku -a ${inserturl} ${tags}
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
parseBuku () {
 | 
			
		||||
  echo "$(buku --nc -p | gawk -v max="$max_str_width" -v type="$display_type" '
 | 
			
		||||
BEGIN {
 | 
			
		||||
  RS=""
 | 
			
		||||
  FS="\n"
 | 
			
		||||
}
 | 
			
		||||
{
 | 
			
		||||
  if ($3 == "")
 | 
			
		||||
    $3 = " # NOTAG"
 | 
			
		||||
  id = gensub(/([0-9]+)\.(.*)/, "\\1", "g", $1)
 | 
			
		||||
  url = substr(gensub(/\s+> (.*)/, "\\1", "g", $2),0,max)
 | 
			
		||||
  tags = gensub(/\s+# (.*)/, "\\1", "g", $3)
 | 
			
		||||
  title = substr(gensub(/[0-9]+\.\s*(.*)/, "\\1", "g", $1),0,max)
 | 
			
		||||
 | 
			
		||||
  if (type == 1)
 | 
			
		||||
    print id "\t" url "\t" tags
 | 
			
		||||
  else
 | 
			
		||||
    print id "\t" title "\t" tags
 | 
			
		||||
    if (type == 3)
 | 
			
		||||
      print " \t" url "\t "
 | 
			
		||||
  print ""
 | 
			
		||||
}
 | 
			
		||||
' | column -t -s $'\t')"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
getId () {
 | 
			
		||||
  id=$(echo "${2%% *}")
 | 
			
		||||
  if [ -z "$id" ]; then
 | 
			
		||||
    prev=""
 | 
			
		||||
    IFS=$'\n'
 | 
			
		||||
    for line in $1; do
 | 
			
		||||
      if [ "$2" = "$line" ]; then
 | 
			
		||||
        id=$(echo "${prev%% *}")
 | 
			
		||||
        break
 | 
			
		||||
      else
 | 
			
		||||
        prev="$line"
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
  fi
 | 
			
		||||
  echo $id
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
getTitleFromId () {
 | 
			
		||||
  echo "$(buku --nc -p $1 | gawk '
 | 
			
		||||
  BEGIN {
 | 
			
		||||
    RS=""
 | 
			
		||||
    FS="\n"
 | 
			
		||||
  }
 | 
			
		||||
  {
 | 
			
		||||
    print gensub(/[0-9]+\.\s*(.*)/, "\\1", "g", $1)
 | 
			
		||||
  }
 | 
			
		||||
  ')"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
getUrlFromId () {
 | 
			
		||||
  echo "$(buku --nc -p $1 | gawk '
 | 
			
		||||
  BEGIN {
 | 
			
		||||
    RS=""
 | 
			
		||||
    FS="\n"
 | 
			
		||||
  }
 | 
			
		||||
  {
 | 
			
		||||
    print gensub(/\s+> (.*)/, "\\1", "g", $2)
 | 
			
		||||
  }
 | 
			
		||||
  ')"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
getTagsFromId () {
 | 
			
		||||
  echo "$(buku --nc -p $1 | gawk '
 | 
			
		||||
  BEGIN {
 | 
			
		||||
    RS=""
 | 
			
		||||
    FS="\n"
 | 
			
		||||
  }
 | 
			
		||||
  {
 | 
			
		||||
    print gensub(/\s+# (.*)/, "\\1", "g", $3)
 | 
			
		||||
  }
 | 
			
		||||
  ')"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mode=bookmarks main
 | 
			
		||||
#+end_src
 | 
			
		||||
* i3exit
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/bin/i3exit
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  # with openrc use loginctl
 | 
			
		||||
  [[ $(cat /proc/1/comm) == "systemd" ]] && logind=systemctl || logind=loginctl
 | 
			
		||||
 | 
			
		||||
  case "$1" in
 | 
			
		||||
      lock)
 | 
			
		||||
          ~/scripts/lockscreen.sh
 | 
			
		||||
          ;;
 | 
			
		||||
      logout)
 | 
			
		||||
          i3-msg exit
 | 
			
		||||
          ;;
 | 
			
		||||
      switch_user)
 | 
			
		||||
          dm-tool switch-to-greeter
 | 
			
		||||
          ;;
 | 
			
		||||
      suspend)
 | 
			
		||||
          ~/scripts/lockscreen.sh && $logind suspend
 | 
			
		||||
          ;;
 | 
			
		||||
      hibernate)
 | 
			
		||||
          ~/scripts/lockscreen.sh && $logind hibernate
 | 
			
		||||
          ;;
 | 
			
		||||
      reboot)
 | 
			
		||||
          $logind reboot
 | 
			
		||||
          ;;
 | 
			
		||||
      shutdown)
 | 
			
		||||
          $logind poweroff
 | 
			
		||||
          ;;
 | 
			
		||||
      ,*)
 | 
			
		||||
          echo "== ! i3exit: missing or invalid argument ! =="
 | 
			
		||||
          echo "Try again with: lock | logout | switch_user | suspend | hibernate | reboot | shutdown"
 | 
			
		||||
          exit 2
 | 
			
		||||
  esac
 | 
			
		||||
 | 
			
		||||
  exit 0
 | 
			
		||||
#+end_src
 | 
			
		||||
* readbib
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/bin/readbib
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  cd ~/MEGA/These/Ressources/pdfs/ && ls | dmenu -l 20 | xargs -I {} zathura {}
 | 
			
		||||
#+end_src
 | 
			
		||||
* askpass
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/bin/askpass-rofi
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
Take password prompt from STDIN, print password to STDOUT.
 | 
			
		||||
The sed piece just removes the colon from the provided prompt: =rofi -p= already gives us a colon
 | 
			
		||||
#+BEGIN_SRC bash
 | 
			
		||||
  rofi -dmenu \
 | 
			
		||||
       -password \
 | 
			
		||||
       -no-fixed-num-lines \
 | 
			
		||||
       -p "$(printf "$1" | sed s/://)"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
@@ -50,4 +50,9 @@
 | 
			
		||||
 | 
			
		||||
  [default]
 | 
			
		||||
  highlight_event_days = True
 | 
			
		||||
 | 
			
		||||
  [keybindings]
 | 
			
		||||
  delete = d
 | 
			
		||||
  today = .
 | 
			
		||||
  new = c
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 
 | 
			
		||||
@@ -80,31 +80,74 @@
 | 
			
		||||
 | 
			
		||||
** URxvt
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  URxvt*termName: screen-256color
 | 
			
		||||
  URxvt*geometry: 240x84
 | 
			
		||||
  URxvt*loginShell: true
 | 
			
		||||
  URxvt*scrollstyle: plain
 | 
			
		||||
  URxvt*scrollTtyKeypress: true
 | 
			
		||||
  URxvt*scrollTtyOutput: false
 | 
			
		||||
  URxvt*scrollWithBuffer: false
 | 
			
		||||
  URxvt*secondaryScreen: true
 | 
			
		||||
  URxvt*secondaryScroll: true
 | 
			
		||||
  URxvt*skipScroll: true
 | 
			
		||||
  URxvt*scrollBar: false
 | 
			
		||||
  URxvt*scrollBar_right: false
 | 
			
		||||
  URxvt*scrollBar_floating: false
 | 
			
		||||
  URxvt*utmpInhibit: false
 | 
			
		||||
  URxvt*urgentOnBell: false
 | 
			
		||||
  URxvt*visualBell: true
 | 
			
		||||
  URxvt*mapAlert: true
 | 
			
		||||
  URxvt*mouseWheelScrollPage: true
 | 
			
		||||
  URxvt*font: xft:Hack Nerd Font Mono:size=10
 | 
			
		||||
  URxvt*boldFont: xft:Hack Nerd Font Mono:bold:size=10
 | 
			
		||||
  URxvt.perl-ext-common: selection-to-clipboard
 | 
			
		||||
  URxvt.keysym.C-S-c: perl:clipboard:copy
 | 
			
		||||
  URxvt.keysym.C-S-v: perl:clipboard:paste
 | 
			
		||||
  ! -----------------------------------------------------------------------------
 | 
			
		||||
  ! File: gruvbox-dark.xresources
 | 
			
		||||
  ! Description: Retro groove colorscheme generalized
 | 
			
		||||
  ! Author: morhetz <morhetz@gmail.com>
 | 
			
		||||
  ! Source: https://github.com/morhetz/gruvbox-generalized
 | 
			
		||||
  ! Last Modified: 6 Sep 2014
 | 
			
		||||
  ! -----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
  ! hard contrast: *background: #1d2021
 | 
			
		||||
  *background: #282828
 | 
			
		||||
  ! soft contrast: *background: #32302f
 | 
			
		||||
  *foreground: #ebdbb2
 | 
			
		||||
  ! Black + DarkGrey
 | 
			
		||||
  *color0:  #282828
 | 
			
		||||
  *color8:  #928374
 | 
			
		||||
  ! DarkRed + Red
 | 
			
		||||
  *color1:  #cc241d
 | 
			
		||||
  *color9:  #fb4934
 | 
			
		||||
  ! DarkGreen + Green
 | 
			
		||||
  *color2:  #98971a
 | 
			
		||||
  *color10: #b8bb26
 | 
			
		||||
  ! DarkYellow + Yellow
 | 
			
		||||
  *color3:  #d79921
 | 
			
		||||
  *color11: #fabd2f
 | 
			
		||||
  ! DarkBlue + Blue
 | 
			
		||||
  *color4:  #458588
 | 
			
		||||
  *color12: #83a598
 | 
			
		||||
  ! DarkMagenta + Magenta
 | 
			
		||||
  *color5:  #b16286
 | 
			
		||||
  *color13: #d3869b
 | 
			
		||||
  ! DarkCyan + Cyan
 | 
			
		||||
  *color6:  #689d6a
 | 
			
		||||
  *color14: #8ec07c
 | 
			
		||||
  ! LightGrey + White
 | 
			
		||||
  *color7:  #a89984
 | 
			
		||||
  *color15: #ebdbb2
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Font
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/fontconfig/fonts.conf
 | 
			
		||||
  :header-args+: :comments none :mkdirp yes
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  <?xml version='1.0'?>
 | 
			
		||||
  <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
 | 
			
		||||
  <fontconfig>
 | 
			
		||||
 | 
			
		||||
  <alias>
 | 
			
		||||
      <family>serif</family>
 | 
			
		||||
      <prefer><family>Linux Libertine</family></prefer>
 | 
			
		||||
    </alias>
 | 
			
		||||
    <alias>
 | 
			
		||||
      <family>sans-serif</family>
 | 
			
		||||
      <prefer><family>Linux Biolinum</family></prefer>
 | 
			
		||||
    </alias>
 | 
			
		||||
    <alias>
 | 
			
		||||
      <family>sans</family>
 | 
			
		||||
      <prefer><family>Linux Biolinum</family></prefer>
 | 
			
		||||
    </alias>
 | 
			
		||||
    <alias>
 | 
			
		||||
      <family>monospace</family>
 | 
			
		||||
      <prefer><family>SauceCodePro Nerd Font Mono</family></prefer>
 | 
			
		||||
    </alias>
 | 
			
		||||
 | 
			
		||||
  </fontconfig>
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Redshift
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/redshift.conf
 | 
			
		||||
@@ -252,107 +295,261 @@
 | 
			
		||||
  set completion-ignore-case on
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Mailcap
 | 
			
		||||
* Xmodmap
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.mailcap
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args: :tangle ~/.Xmodmap
 | 
			
		||||
  :header-args+: :comments no :mkdirp yes
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  text/plain; nvim %s
 | 
			
		||||
  audio/*; /usr/bin/xdg-open %s ; copiousoutput
 | 
			
		||||
  video/*; setsid mpv --quiet %s &; copiousoutput
 | 
			
		||||
  image/*; ~/scripts/openfile.sh %s;
 | 
			
		||||
  application/pdf; ~/scripts/openfile.sh %s;
 | 
			
		||||
  text/html; qutebrowser %s; -n "$DISPLAY"; nametemplate=%s.html;
 | 
			
		||||
  text/html; w3m -I %{charset} -T text/html; copiousoutput;
 | 
			
		||||
  text/calendar; khal import --batch -a home %s && khal printics %s; copiousoutput;
 | 
			
		||||
  application/ics; khal import --batch -a home %s && khal printics %s; copiousoutput;
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Libreoffice
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  application/docx; libreoffice %s --nologo &; copiousoutput;
 | 
			
		||||
  application/doc; libreoffice --nologo %s &; copiousoutput;
 | 
			
		||||
 | 
			
		||||
  application/vnd.oasis.opendocument.database; libreoffice --nologo --base '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.chart; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.spreadsheet; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.spreadsheet-template; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.graphics; libreoffice --nologo --draw '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.graphics-template; libreoffice --nologo --draw '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.presentation; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.presentation-template; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.formula; libreoffice --nologo --math '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.text; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.text-master; libreoffice --nologo -global '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.text-template; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.oasis.opendocument.text-web; libreoffice --nologo -web '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.base; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.calc; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.calc.template; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.draw; libreoffice --nologo --draw '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.draw.template; libreoffice --nologo --draw '%s'; copiousoutput
 | 
			
		||||
  application/vnd.stardivision.calc; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.stardivision.chart; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.stardivision.draw; libreoffice --nologo --draw '%s'; copiousoutput
 | 
			
		||||
  application/vnd.stardivision.impress; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.stardivision.math; libreoffice --nologo --math '%s'; copiousoutput
 | 
			
		||||
  application/vnd.stardivision.writer-global; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.stardivision.writer; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.impress; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.impress.template; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.math; libreoffice --nologo --math '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.writer; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.writer.global; libreoffice --nologo -global '%s'; copiousoutput
 | 
			
		||||
  application/vnd.sun.xml.writer.template; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  text/csv; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  text/spreadsheet; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/x-quattropro; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/x-dbf; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-excel.sheet.macroEnabled.12; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-excel.template.macroEnabled.12; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.spreadsheetml.template; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.lotus-1-2-3; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-excel; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/msexcel; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/x-dbase; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  text/x-csv; libreoffice --nologo --calc '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-powerpoint.presentation.macroEnabled.12; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-powerpoint.slideshow.macroEnabled.12; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-powerpoint.template.macroEnabled.12; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.presentationml.presentation; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.presentationml.slideshow; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.presentationml.template; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-powerpoint; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  application/mspowerpoint; libreoffice --nologo --impress '%s'; copiousoutput
 | 
			
		||||
  text/mathml; libreoffice --nologo --math '%s'; copiousoutput
 | 
			
		||||
  application/rtf; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/x-t602; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.wordperfect; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-word.document.macroEnabled.12; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-word.template.macroEnabled.12; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.wordprocessingml.document; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.wordprocessingml.template; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/vnd.ms-works; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/msword; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  application/wordperfect; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  text/rtf; libreoffice --nologo --writer '%s'; copiousoutput
 | 
			
		||||
  keycode   8 =
 | 
			
		||||
  keycode   9 = Escape NoSymbol Escape
 | 
			
		||||
  keycode  10 = 1 exclam 1 exclam
 | 
			
		||||
  keycode  11 = 2 at 2 at
 | 
			
		||||
  keycode  12 = 3 numbersign 3 numbersign
 | 
			
		||||
  keycode  13 = 4 dollar 4 dollar
 | 
			
		||||
  keycode  14 = 5 percent 5 percent
 | 
			
		||||
  keycode  15 = 6 asciicircum 6 asciicircum
 | 
			
		||||
  keycode  16 = 7 ampersand 7 ampersand
 | 
			
		||||
  keycode  17 = 8 asterisk 8 asterisk
 | 
			
		||||
  keycode  18 = 9 parenleft 9 parenleft
 | 
			
		||||
  keycode  19 = 0 parenright 0 parenright
 | 
			
		||||
  keycode  20 = minus underscore minus underscore
 | 
			
		||||
  keycode  21 = equal plus equal plus
 | 
			
		||||
  keycode  22 = BackSpace BackSpace BackSpace BackSpace
 | 
			
		||||
  keycode  23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
 | 
			
		||||
  keycode  24 = q Q q Q
 | 
			
		||||
  keycode  25 = w W w W
 | 
			
		||||
  keycode  26 = e E e E
 | 
			
		||||
  keycode  27 = r R r R
 | 
			
		||||
  keycode  28 = t T t T
 | 
			
		||||
  keycode  29 = y Y y Y
 | 
			
		||||
  keycode  30 = u U u U
 | 
			
		||||
  keycode  31 = i I i I
 | 
			
		||||
  keycode  32 = o O o O
 | 
			
		||||
  keycode  33 = p P p P
 | 
			
		||||
  keycode  34 = bracketleft braceleft bracketleft braceleft
 | 
			
		||||
  keycode  35 = bracketright braceright bracketright braceright
 | 
			
		||||
  keycode  36 = Return NoSymbol Return
 | 
			
		||||
  keycode  37 = Control_L NoSymbol Control_L
 | 
			
		||||
  keycode  38 = a A a A
 | 
			
		||||
  keycode  39 = s S s S
 | 
			
		||||
  keycode  40 = d D d D
 | 
			
		||||
  keycode  41 = f F f F
 | 
			
		||||
  keycode  42 = g G g G
 | 
			
		||||
  keycode  43 = h H h H
 | 
			
		||||
  keycode  44 = j J j J
 | 
			
		||||
  keycode  45 = k K k K
 | 
			
		||||
  keycode  46 = l L l L
 | 
			
		||||
  keycode  47 = semicolon colon semicolon colon
 | 
			
		||||
  keycode  48 = apostrophe quotedbl apostrophe quotedbl
 | 
			
		||||
  keycode  49 = grave asciitilde grave asciitilde
 | 
			
		||||
  keycode  50 = Shift_L NoSymbol Shift_L
 | 
			
		||||
  keycode  51 = backslash bar backslash bar
 | 
			
		||||
  keycode  52 = z Z z Z
 | 
			
		||||
  keycode  53 = x X x X
 | 
			
		||||
  keycode  54 = c C c C
 | 
			
		||||
  keycode  55 = v V v V
 | 
			
		||||
  keycode  56 = b B b B
 | 
			
		||||
  keycode  57 = n N n N
 | 
			
		||||
  keycode  58 = m M m M
 | 
			
		||||
  keycode  59 = comma less comma less
 | 
			
		||||
  keycode  60 = period greater period greater
 | 
			
		||||
  keycode  61 = slash question slash question
 | 
			
		||||
  keycode  62 = Shift_R NoSymbol Shift_R
 | 
			
		||||
  keycode  63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
 | 
			
		||||
  keycode  64 = Alt_L Meta_L Alt_L Meta_L
 | 
			
		||||
  keycode  65 = space NoSymbol space
 | 
			
		||||
  keycode  66 = Caps_Lock NoSymbol Caps_Lock
 | 
			
		||||
  keycode  67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
 | 
			
		||||
  keycode  68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
 | 
			
		||||
  keycode  69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
 | 
			
		||||
  keycode  70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
 | 
			
		||||
  keycode  71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
 | 
			
		||||
  keycode  72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
 | 
			
		||||
  keycode  73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
 | 
			
		||||
  keycode  74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
 | 
			
		||||
  keycode  75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
 | 
			
		||||
  keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
 | 
			
		||||
  keycode  77 = Num_Lock NoSymbol Num_Lock
 | 
			
		||||
  keycode  78 = Scroll_Lock NoSymbol Scroll_Lock
 | 
			
		||||
  keycode  79 = KP_Home KP_7 KP_Home KP_7
 | 
			
		||||
  keycode  80 = KP_Up KP_8 KP_Up KP_8
 | 
			
		||||
  keycode  81 = KP_Prior KP_9 KP_Prior KP_9
 | 
			
		||||
  keycode  82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
 | 
			
		||||
  keycode  83 = KP_Left KP_4 KP_Left KP_4
 | 
			
		||||
  keycode  84 = KP_Begin KP_5 KP_Begin KP_5
 | 
			
		||||
  keycode  85 = KP_Right KP_6 KP_Right KP_6
 | 
			
		||||
  keycode  86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
 | 
			
		||||
  keycode  87 = KP_End KP_1 KP_End KP_1
 | 
			
		||||
  keycode  88 = KP_Down KP_2 KP_Down KP_2
 | 
			
		||||
  keycode  89 = KP_Next KP_3 KP_Next KP_3
 | 
			
		||||
  keycode  90 = KP_Insert KP_0 KP_Insert KP_0
 | 
			
		||||
  keycode  91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
 | 
			
		||||
  keycode  92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
 | 
			
		||||
  keycode  93 =
 | 
			
		||||
  keycode  94 = less greater less greater bar brokenbar bar
 | 
			
		||||
  keycode  95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
 | 
			
		||||
  keycode  96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
 | 
			
		||||
  keycode  97 =
 | 
			
		||||
  keycode  98 = Katakana NoSymbol Katakana
 | 
			
		||||
  keycode  99 = Hiragana NoSymbol Hiragana
 | 
			
		||||
  keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
 | 
			
		||||
  keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana
 | 
			
		||||
  keycode 102 = Muhenkan NoSymbol Muhenkan
 | 
			
		||||
  keycode 103 =
 | 
			
		||||
  keycode 104 = KP_Enter NoSymbol KP_Enter
 | 
			
		||||
  keycode 105 = Control_R NoSymbol Control_R
 | 
			
		||||
  keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
 | 
			
		||||
  keycode 107 = Print Sys_Req Print Sys_Req
 | 
			
		||||
  keycode 108 = Alt_R Meta_R Alt_R Meta_R
 | 
			
		||||
  keycode 109 = Linefeed NoSymbol Linefeed
 | 
			
		||||
  keycode 110 = Home NoSymbol Home
 | 
			
		||||
  keycode 111 = Up NoSymbol Up
 | 
			
		||||
  keycode 112 = Prior NoSymbol Prior
 | 
			
		||||
  keycode 113 = Left NoSymbol Left
 | 
			
		||||
  keycode 114 = Right NoSymbol Right
 | 
			
		||||
  keycode 115 = End NoSymbol End
 | 
			
		||||
  keycode 116 = Down NoSymbol Down
 | 
			
		||||
  keycode 117 = Next NoSymbol Next
 | 
			
		||||
  keycode 118 = Insert NoSymbol Insert
 | 
			
		||||
  keycode 119 = Delete NoSymbol Delete
 | 
			
		||||
  keycode 120 =
 | 
			
		||||
  keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
 | 
			
		||||
  keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
 | 
			
		||||
  keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
 | 
			
		||||
  keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
 | 
			
		||||
  keycode 125 = KP_Equal NoSymbol KP_Equal
 | 
			
		||||
  keycode 126 = plusminus NoSymbol plusminus
 | 
			
		||||
  keycode 127 = Pause Break Pause Break
 | 
			
		||||
  keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
 | 
			
		||||
  keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
 | 
			
		||||
  keycode 130 = Hangul NoSymbol Hangul
 | 
			
		||||
  keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
 | 
			
		||||
  keycode 132 =
 | 
			
		||||
  keycode 133 =
 | 
			
		||||
  keycode 134 = Super_R NoSymbol Super_R
 | 
			
		||||
  keycode 135 = Menu NoSymbol Menu
 | 
			
		||||
  keycode 136 = Cancel NoSymbol Cancel
 | 
			
		||||
  keycode 137 = Redo NoSymbol Redo
 | 
			
		||||
  keycode 138 = SunProps NoSymbol SunProps
 | 
			
		||||
  keycode 139 = Undo NoSymbol Undo
 | 
			
		||||
  keycode 140 = SunFront NoSymbol SunFront
 | 
			
		||||
  keycode 141 = XF86Copy NoSymbol XF86Copy
 | 
			
		||||
  keycode 142 = XF86Open NoSymbol XF86Open
 | 
			
		||||
  keycode 143 = XF86Paste NoSymbol XF86Paste
 | 
			
		||||
  keycode 144 = Find NoSymbol Find
 | 
			
		||||
  keycode 145 = XF86Cut NoSymbol XF86Cut
 | 
			
		||||
  keycode 146 = Help NoSymbol Help
 | 
			
		||||
  keycode 147 = xf86menukb nosymbol xf86menukb
 | 
			
		||||
  keycode 148 = XF86Calculator NoSymbol XF86Calculator
 | 
			
		||||
  keycode 149 =
 | 
			
		||||
  keycode 150 = XF86Sleep NoSymbol XF86Sleep
 | 
			
		||||
  keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
 | 
			
		||||
  keycode 152 = XF86Explorer NoSymbol XF86Explorer
 | 
			
		||||
  keycode 153 = XF86Send NoSymbol XF86Send
 | 
			
		||||
  keycode 154 =
 | 
			
		||||
  keycode 155 = XF86Xfer NoSymbol XF86Xfer
 | 
			
		||||
  keycode 156 = XF86Launch1 NoSymbol XF86Launch1
 | 
			
		||||
  keycode 157 = XF86Launch2 NoSymbol XF86Launch2
 | 
			
		||||
  keycode 158 = XF86WWW NoSymbol XF86WWW
 | 
			
		||||
  keycode 159 = XF86DOS NoSymbol XF86DOS
 | 
			
		||||
  keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
 | 
			
		||||
  keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows
 | 
			
		||||
  keycode 162 = XF86TaskPane NoSymbol XF86TaskPane
 | 
			
		||||
  keycode 163 = XF86Mail NoSymbol XF86Mail
 | 
			
		||||
  keycode 164 = XF86Favorites NoSymbol XF86Favorites
 | 
			
		||||
  keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
 | 
			
		||||
  keycode 166 = XF86Back NoSymbol XF86Back
 | 
			
		||||
  keycode 167 = XF86Forward NoSymbol XF86Forward
 | 
			
		||||
  keycode 168 =
 | 
			
		||||
  keycode 169 = XF86Eject NoSymbol XF86Eject
 | 
			
		||||
  keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
 | 
			
		||||
  keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
 | 
			
		||||
  keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
 | 
			
		||||
  keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
 | 
			
		||||
  keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
 | 
			
		||||
  keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
 | 
			
		||||
  keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
 | 
			
		||||
  keycode 177 = XF86Phone NoSymbol XF86Phone
 | 
			
		||||
  keycode 178 =
 | 
			
		||||
  keycode 179 = XF86Tools NoSymbol XF86Tools
 | 
			
		||||
  keycode 180 = XF86HomePage NoSymbol XF86HomePage
 | 
			
		||||
  keycode 181 = XF86Reload NoSymbol XF86Reload
 | 
			
		||||
  keycode 182 = XF86Close NoSymbol XF86Close
 | 
			
		||||
  keycode 183 =
 | 
			
		||||
  keycode 184 =
 | 
			
		||||
  keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
 | 
			
		||||
  keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
 | 
			
		||||
  keycode 187 = parenleft NoSymbol parenleft
 | 
			
		||||
  keycode 188 = parenright NoSymbol parenright
 | 
			
		||||
  keycode 189 = XF86New NoSymbol XF86New
 | 
			
		||||
  keycode 190 = Redo NoSymbol Redo
 | 
			
		||||
  keycode 191 = XF86Tools NoSymbol XF86Tools
 | 
			
		||||
  keycode 192 = XF86Launch5 NoSymbol XF86Launch5
 | 
			
		||||
  keycode 193 = XF86Launch6 NoSymbol XF86Launch6
 | 
			
		||||
  keycode 194 = XF86Launch7 NoSymbol XF86Launch7
 | 
			
		||||
  keycode 195 = XF86Launch8 NoSymbol XF86Launch8
 | 
			
		||||
  keycode 196 = XF86Launch9 NoSymbol XF86Launch9
 | 
			
		||||
  keycode 197 =
 | 
			
		||||
  keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
 | 
			
		||||
  keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
 | 
			
		||||
  keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
 | 
			
		||||
  keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
 | 
			
		||||
  keycode 202 =
 | 
			
		||||
  keycode 203 = Mode_switch NoSymbol Mode_switch
 | 
			
		||||
  keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
 | 
			
		||||
  keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
 | 
			
		||||
  keycode 206 = NoSymbol Super_L NoSymbol Super_L
 | 
			
		||||
  keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
 | 
			
		||||
  keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
 | 
			
		||||
  keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
 | 
			
		||||
  keycode 210 = XF86Launch3 NoSymbol XF86Launch3
 | 
			
		||||
  keycode 211 = XF86Launch4 NoSymbol XF86Launch4
 | 
			
		||||
  keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
 | 
			
		||||
  keycode 213 = XF86Suspend NoSymbol XF86Suspend
 | 
			
		||||
  keycode 214 = XF86Close NoSymbol XF86Close
 | 
			
		||||
  keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
 | 
			
		||||
  keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
 | 
			
		||||
  keycode 217 =
 | 
			
		||||
  keycode 218 = Print NoSymbol Print
 | 
			
		||||
  keycode 219 =
 | 
			
		||||
  keycode 220 = XF86WebCam NoSymbol XF86WebCam
 | 
			
		||||
  keycode 221 =
 | 
			
		||||
  keycode 222 =
 | 
			
		||||
  keycode 223 = XF86Mail NoSymbol XF86Mail
 | 
			
		||||
  keycode 224 = XF86Messenger NoSymbol XF86Messenger
 | 
			
		||||
  keycode 225 = XF86Search NoSymbol XF86Search
 | 
			
		||||
  keycode 226 = XF86Go NoSymbol XF86Go
 | 
			
		||||
  keycode 227 = XF86Finance NoSymbol XF86Finance
 | 
			
		||||
  keycode 228 = XF86Game NoSymbol XF86Game
 | 
			
		||||
  keycode 229 = XF86Shop NoSymbol XF86Shop
 | 
			
		||||
  keycode 230 =
 | 
			
		||||
  keycode 231 = Cancel NoSymbol Cancel
 | 
			
		||||
  keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
 | 
			
		||||
  keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
 | 
			
		||||
  keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
 | 
			
		||||
  keycode 235 = XF86Display NoSymbol XF86Display
 | 
			
		||||
  keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
 | 
			
		||||
  keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
 | 
			
		||||
  keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
 | 
			
		||||
  keycode 239 = XF86Send NoSymbol XF86Send
 | 
			
		||||
  keycode 240 = XF86Reply NoSymbol XF86Reply
 | 
			
		||||
  keycode 241 = XF86MailForward NoSymbol XF86MailForward
 | 
			
		||||
  keycode 242 = XF86Save NoSymbol XF86Save
 | 
			
		||||
  keycode 243 = XF86Documents NoSymbol XF86Documents
 | 
			
		||||
  keycode 244 = XF86Battery NoSymbol XF86Battery
 | 
			
		||||
  keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
 | 
			
		||||
  keycode 246 = XF86WLAN NoSymbol XF86WLAN
 | 
			
		||||
  keycode 247 =
 | 
			
		||||
  keycode 248 = XF86Display NoSymbol XF86Display
 | 
			
		||||
  keycode 249 =
 | 
			
		||||
  keycode 250 =
 | 
			
		||||
  keycode 251 =
 | 
			
		||||
  keycode 252 =
 | 
			
		||||
  keycode 253 =
 | 
			
		||||
  keycode 254 = XF86WWAN NoSymbol XF86WWAN
 | 
			
		||||
  keycode 255 = XF86RFKill NoSymbol XF86RFKill
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* urlview
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.urlview
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]
 | 
			
		||||
 | 
			
		||||
  COMMAND nohup qutebrowser %s </dev/null &>/dev/null &
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* TODO xinit
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.xinitrc
 | 
			
		||||
@@ -530,7 +727,7 @@ Keyboard Options
 | 
			
		||||
  frame_width = 2
 | 
			
		||||
 | 
			
		||||
  # Defines color of the frame around the notification window.
 | 
			
		||||
  frame_color = "#2f343f"
 | 
			
		||||
  frame_color = "#32302f"
 | 
			
		||||
 | 
			
		||||
  # Define a color for the separator.
 | 
			
		||||
  # possible values are:
 | 
			
		||||
@@ -619,6 +816,7 @@ Keyboard Options
 | 
			
		||||
  show_indicators = yes
 | 
			
		||||
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Icons
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Align icons left/right/off
 | 
			
		||||
@@ -630,6 +828,7 @@ Keyboard Options
 | 
			
		||||
  # Paths to default icons.
 | 
			
		||||
  icon_path = /usr/share/icons/Arc/16x16/status/:/usr/share/icons/Arc/16x16/devices/
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** History
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Should a notification popped up from history be sticky or timeout
 | 
			
		||||
@@ -639,6 +838,7 @@ Keyboard Options
 | 
			
		||||
  # Maximum amount of notifications kept in history
 | 
			
		||||
  history_length = 20
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Misc/Advanced
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  # dmenu path.
 | 
			
		||||
@@ -673,7 +873,7 @@ Keyboard Options
 | 
			
		||||
  close = mod1+space
 | 
			
		||||
 | 
			
		||||
  # Close all notifications.
 | 
			
		||||
  close_all = mod1+shift+space
 | 
			
		||||
  # close_all = mod1+shift+space
 | 
			
		||||
 | 
			
		||||
  # Redisplay last message(s).
 | 
			
		||||
  # On the US keyboard layout "grave" is normally above TAB and left
 | 
			
		||||
@@ -688,22 +888,20 @@ Keyboard Options
 | 
			
		||||
** Urgency
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [urgency_low]
 | 
			
		||||
  background = "#2f343f"
 | 
			
		||||
  foreground = "#f5f8f6"
 | 
			
		||||
  timeout = 2
 | 
			
		||||
 | 
			
		||||
  [urgency_normal]
 | 
			
		||||
  background = "#2f343f"
 | 
			
		||||
  foreground = "#f5f8f6"
 | 
			
		||||
  background = "#32302f"
 | 
			
		||||
  foreground = "#ebdbb2"
 | 
			
		||||
  timeout = 4
 | 
			
		||||
 | 
			
		||||
  [urgency_normal]
 | 
			
		||||
  background = "#32302f"
 | 
			
		||||
  foreground = "#ebdbb2"
 | 
			
		||||
  timeout = 6
 | 
			
		||||
 | 
			
		||||
  [urgency_critical]
 | 
			
		||||
  background = "#2f343f"
 | 
			
		||||
  foreground = "#f5f8f6"
 | 
			
		||||
  frame_color = "#e3788f"
 | 
			
		||||
  background = "#32302f"
 | 
			
		||||
  foreground = "#cc241d"
 | 
			
		||||
  timeout = 0
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* feh
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/feh/config
 | 
			
		||||
@@ -723,6 +921,30 @@ Keyboard Options
 | 
			
		||||
  save_filelist F
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* SXIV
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/sxiv/exec/key-handler
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
Press =C-x= to activate to key handler.
 | 
			
		||||
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  while read file
 | 
			
		||||
  do
 | 
			
		||||
      case "$1" in
 | 
			
		||||
          "C-d")
 | 
			
		||||
              mv "$file" ~/.trash ;;
 | 
			
		||||
          "C-r")
 | 
			
		||||
              convert -rotate 90 "$file" "$file" ;;
 | 
			
		||||
          "C-c")
 | 
			
		||||
              echo -n "$file" | xclip -selection clipboard ;;
 | 
			
		||||
          "C-w")
 | 
			
		||||
              nitrogen --save --set-zoom-fill "$file" ;;
 | 
			
		||||
      esac
 | 
			
		||||
  done
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* MPV
 | 
			
		||||
** Configuration
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
@@ -1034,7 +1256,6 @@ stop-screensaver = "yes"
 | 
			
		||||
  #ESC {encode} quit 4
 | 
			
		||||
  # =============================================================
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Zathura
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/zathura/zathurarc
 | 
			
		||||
@@ -1250,9 +1471,13 @@ stop-screensaver = "yes"
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [Default Applications]
 | 
			
		||||
  image/jpeg=feh.desktop
 | 
			
		||||
  image/png=feh.desktop;
 | 
			
		||||
  text/plain=nvim.desktop
 | 
			
		||||
  x-scheme-handler/magnet=torrent.desktop;
 | 
			
		||||
  text/x-shellscript=nvim.desktop;
 | 
			
		||||
  image/png=img.desktop;
 | 
			
		||||
  image/jpeg=img.desktop;
 | 
			
		||||
  image/gif=img.desktop;
 | 
			
		||||
  application/rss+xml=rss.desktop
 | 
			
		||||
  x-scheme-handler/mailto=neomutt.desktop
 | 
			
		||||
  message/rfc822=neomutt.desktop
 | 
			
		||||
  application/x-bittorrent=deluge.desktop
 | 
			
		||||
@@ -1270,8 +1495,8 @@ stop-screensaver = "yes"
 | 
			
		||||
  application/x-extension-xht=qutebrowser.desktop
 | 
			
		||||
 | 
			
		||||
  [Added Associations]
 | 
			
		||||
  image/jpeg=viewnior.desktop;gpicview.desktop;
 | 
			
		||||
  image/png=viewnior.desktop;gpicview.desktop;
 | 
			
		||||
  image/jpeg=viewnior.desktop;gpicview.desktop;feh.desktop;
 | 
			
		||||
  image/png=viewnior.desktop;gpicview.desktop;feh.desktop;
 | 
			
		||||
  text/plain=mousepad.desktop;
 | 
			
		||||
  application/x-bittorrent=deluge.desktop;
 | 
			
		||||
#+END_SRC
 | 
			
		||||
@@ -1353,7 +1578,7 @@ Colors
 | 
			
		||||
  scrot_dir=$HOME/Pictures
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* TODO Nitrogen
 | 
			
		||||
* TODO [#B] Nitrogen
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/nitrogen/nitrogen.cfg
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
@@ -1464,18 +1689,13 @@ Colors
 | 
			
		||||
  png-compression=9
 | 
			
		||||
  desktop=9
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* TODO [#A] Binaries
 | 
			
		||||
* TODO [#A] Scripts
 | 
			
		||||
** Wallpapers
 | 
			
		||||
* Castnow
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/wallpapers.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :header-args: :tangle ~/.castnowrc
 | 
			
		||||
  :header-args+: :comments none :mkdirp yes
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  while true; do
 | 
			
		||||
      nitrogen --set-zoom-fill --random ".wallpapers"
 | 
			
		||||
      sleep 10m
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  --address=192.168.1.51
 | 
			
		||||
  --volume-step=0.01
 | 
			
		||||
#+end_src
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										474
									
								
								dotfiles/i3.org
									
									
									
									
									
								
							
							
						
						
									
										474
									
								
								dotfiles/i3.org
									
									
									
									
									
								
							@@ -1,7 +1,33 @@
 | 
			
		||||
#+TITLE: I3 Configuration
 | 
			
		||||
:DRAWER:
 | 
			
		||||
#+PROPERTY: header-args:conf+ :comments both
 | 
			
		||||
#+PROPERTY: header-args:conf+ :mkdirp yes
 | 
			
		||||
#+PROPERTY: header-args:conf+ :tangle ~/.config/i3/config
 | 
			
		||||
:END:
 | 
			
		||||
 | 
			
		||||
* Colors
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  set $bg  #32302f
 | 
			
		||||
  set $bg1 #3c3836
 | 
			
		||||
  set $bg2 #504945
 | 
			
		||||
  set $bg3 #665c54
 | 
			
		||||
  set $bg4 #7c6f64
 | 
			
		||||
 | 
			
		||||
  set $fg  #ebdbb2
 | 
			
		||||
  set $fg1 #ebdbb2
 | 
			
		||||
  set $fg2 #d5c4a1
 | 
			
		||||
  set $fg3 #bdae93
 | 
			
		||||
  set $fg4 #a89984
 | 
			
		||||
 | 
			
		||||
  set $gray   #a89984
 | 
			
		||||
  set $red    #cc241d
 | 
			
		||||
  set $green  #98971a
 | 
			
		||||
  set $yellow #d79921
 | 
			
		||||
  set $blue   #458588
 | 
			
		||||
  set $purple #b16286
 | 
			
		||||
  set $aqua   #689d6a
 | 
			
		||||
  set $orange #d65d0e
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Mod Key
 | 
			
		||||
Set mod key (Mod1=<Alt>, Mod4=<Super>)
 | 
			
		||||
@@ -12,10 +38,11 @@ Set mod key (Mod1=<Alt>, Mod4=<Super>)
 | 
			
		||||
* Border Style
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Configure border style <normal|1pixel|pixel xx|none|pixel>
 | 
			
		||||
  new_window pixel 2
 | 
			
		||||
  new_window pixel 1
 | 
			
		||||
  new_float normal
 | 
			
		||||
 | 
			
		||||
  # Hide borders
 | 
			
		||||
  hide_edge_borders none
 | 
			
		||||
  hide_edge_borders smart
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Font for window titles
 | 
			
		||||
@@ -23,28 +50,38 @@ Set mod key (Mod1=<Alt>, Mod4=<Super>)
 | 
			
		||||
  font Hack Nerd Font 11
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO [#C] Multimedia keys
 | 
			
		||||
* Multimedia keys
 | 
			
		||||
** Sound
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Sound
 | 
			
		||||
  bindsym XF86AudioMute exec --no-startup-id amixer -D pulse sset Master toggle
 | 
			
		||||
  bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+
 | 
			
		||||
  bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%-
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Backlight
 | 
			
		||||
  bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 10
 | 
			
		||||
  bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10
 | 
			
		||||
  # bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 10
 | 
			
		||||
  # bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
  # Tracks
 | 
			
		||||
** Change Tracks
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym XF86AudioPlay exec --no-startup-id mpc toggle
 | 
			
		||||
  bindsym XF86AudioNext exec --no-startup-id mpc next
 | 
			
		||||
  bindsym XF86AudioPrev exec --no-startup-id mpc prev
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
  # Screenshots
 | 
			
		||||
  bindsym $mod+XF86LaunchA --release exec --no-startup-id i3-scrot -w
 | 
			
		||||
  bindsym $mod+Shift+XF86LaunchA --release exec --no-startup-id i3-scrot -s
 | 
			
		||||
** Print Screen
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym Print exec --no-startup-id ~/scripts/screenshot.sh
 | 
			
		||||
  bindsym XF86Display exec --no-startup-id rofi -show window
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
  # Other
 | 
			
		||||
  bindsym XF86LaunchB fullscreen toggle
 | 
			
		||||
** Other
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym XF86Search exec --no-startup-id rofi -show run
 | 
			
		||||
  bindsym XF86PowerOff exec --no-startup-id $HOME/scripts/quit.sh
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Start Applications
 | 
			
		||||
@@ -54,115 +91,192 @@ Set mod key (Mod1=<Alt>, Mod4=<Super>)
 | 
			
		||||
  # Windows Switch
 | 
			
		||||
  bindsym $mod+w exec --no-startup-id rofi -show window
 | 
			
		||||
  # Launch categorized menu
 | 
			
		||||
  bindsym $mod+z       exec --no-startup-id rofimenu
 | 
			
		||||
  bindsym $mod+z exec --no-startup-id rofi -show drun
 | 
			
		||||
  # Bookmarks
 | 
			
		||||
  bindsym $mod+Shift+F exec --no-startup-id $HOME/bin/buku_run
 | 
			
		||||
  bindsym $mod+Shift+F exec --no-startup-id $HOME/bin/bukurun
 | 
			
		||||
  # Passwords
 | 
			
		||||
  bindsym $mod+Shift+P exec --no-startup-id pass clip
 | 
			
		||||
  bindsym $mod+Shift+P exec --no-startup-id rofi-pass
 | 
			
		||||
  # Start Terminal
 | 
			
		||||
  bindsym $mod+Return  exec termite
 | 
			
		||||
  bindsym $mod+Return exec termite
 | 
			
		||||
  # Tmux Terminal
 | 
			
		||||
  bindsym $mod+Shift+Return  exec termite -e 'tmux'
 | 
			
		||||
  # Configuration application
 | 
			
		||||
  bindsym $mod+Ctrl+B  exec termite -e 'bmenu'
 | 
			
		||||
  bindsym $mod+Shift+Return exec termite -e 'tmux'
 | 
			
		||||
  # Start Command line Calendar
 | 
			
		||||
  bindsym $mod+c exec termite -e "khal interactive"
 | 
			
		||||
  # Start GUI Calendar (Google calendar)
 | 
			
		||||
  # bindsym $mod+Shift+c exec qutebrowser https://calendar.google.com/
 | 
			
		||||
  # File Manager
 | 
			
		||||
  bindsym $mod+o exec urxvt -e "ranger"
 | 
			
		||||
  # GUI File Manager
 | 
			
		||||
  # bindsym $mod+Shift+o exec pcmanfm
 | 
			
		||||
  # Mail: Neomutt
 | 
			
		||||
  bindsym $mod+m exec termite -e "tmuxinator start neomutt"
 | 
			
		||||
  # Music Manager: NCMPCPP
 | 
			
		||||
  # bindsym $mod+Shift+p exec termite -e "ncmpcpp"
 | 
			
		||||
  # Browser
 | 
			
		||||
  bindsym $mod+i exec qutebrowser
 | 
			
		||||
  # Sound Manager
 | 
			
		||||
  bindsym $mod+Ctrl+m exec pavucontrol
 | 
			
		||||
  # Kill one application
 | 
			
		||||
  bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
 | 
			
		||||
  # Kill and restart Notification Manager
 | 
			
		||||
  bindsym $mod+Shift+n --release exec "killall dunst; exec notify-send 'restart dunst'"
 | 
			
		||||
 | 
			
		||||
  # Keyboard Deadkey
 | 
			
		||||
  # TODO - Better keybindings
 | 
			
		||||
  bindsym $mod+Ctrl+d exec --no-startup-id setxkbmap -layout us -variant intl -option caps:escape
 | 
			
		||||
  bindsym $mod+Shift+d exec --no-startup-id setxkbmap -layout us -option caps:escape
 | 
			
		||||
  # Toggle poylbar
 | 
			
		||||
  bindsym $mod+t exec --no-startup-id ~/.config/polybar/scripts/toggle.sh bottom
 | 
			
		||||
  bindsym $mod+Shift+t exec --no-startup-id ~/.config/polybar/scripts/toggle.sh top
 | 
			
		||||
  bindsym $mod+trl+m exec pavucontrol
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO Vim Anywhere
 | 
			
		||||
* Set shut down, restart and locking features
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+0 exec --no-startup-id $HOME/scripts/quit.sh
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Command Mode
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+space mode "command"
 | 
			
		||||
 | 
			
		||||
  mode "command" {
 | 
			
		||||
    # Command line Calendar Client (khal)
 | 
			
		||||
    bindsym c exec termite -e "khal interactive"; mode "default"
 | 
			
		||||
    # GUI Calendar (Google Calendar)
 | 
			
		||||
    bindsym Shift+c exec qutebrowser https://calendar.google.com/; mode "default"
 | 
			
		||||
 | 
			
		||||
    # Ranger
 | 
			
		||||
    bindsym r exec urxvt -e "ranger"; mode "default"
 | 
			
		||||
    # pcmanfm: GUI file manager
 | 
			
		||||
    bindsym Shift+r exec pcmanfm; mode "default"
 | 
			
		||||
 | 
			
		||||
    # Mails with neomutt
 | 
			
		||||
    bindsym m exec termite -e "tmux -L neomutt attach"; mode "default"
 | 
			
		||||
    # Weechat
 | 
			
		||||
    bindsym w exec termite -e "tmux -L weechat attach"; mode "default"
 | 
			
		||||
    # News with newsboat
 | 
			
		||||
    bindsym n exec termite -e "tmux -L newsboat attach"; mode "default"
 | 
			
		||||
    # Music with ncmpcpp
 | 
			
		||||
    bindsym p exec termite -e "tmux -L ncmpcpp attach"; mode "default"
 | 
			
		||||
    # Print Screen
 | 
			
		||||
    bindsym Shift+p exec --no-startup-id ~/scripts/screenshot.sh
 | 
			
		||||
 | 
			
		||||
    # Browser with qutebrowser
 | 
			
		||||
    bindsym i exec qutebrowser; mode "default"
 | 
			
		||||
    # Browser with firefox
 | 
			
		||||
    bindsym Shift+i exec firefox; mode "default"
 | 
			
		||||
 | 
			
		||||
    # Emacs Client
 | 
			
		||||
    bindsym e exec emacsclient -create-frame --alternate-editor=""; mode "default"
 | 
			
		||||
    # Full Emacs - Usefull when installing packages
 | 
			
		||||
    bindsym Shift+e exec emacs; mode "default"
 | 
			
		||||
 | 
			
		||||
    # exit command mode: Enter or Escape
 | 
			
		||||
    bindsym Escape mode "default"
 | 
			
		||||
  }
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Autostart Background Applications
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Set custom wallpaper script
 | 
			
		||||
  exec --no-startup-id $HOME/scripts/wallpapers.sh
 | 
			
		||||
 | 
			
		||||
  # Run Compton
 | 
			
		||||
  exec --no-startup-id compton -b
 | 
			
		||||
 | 
			
		||||
  # Start Network Management Framework
 | 
			
		||||
  exec --no-startup-id nm-applet
 | 
			
		||||
 | 
			
		||||
  # Hide mouse cursor after x seconds
 | 
			
		||||
  exec --no-startup-id unclutter --timeout 5
 | 
			
		||||
 | 
			
		||||
  # Start Power Manager
 | 
			
		||||
  exec --no-startup-id xfce4-power-manager
 | 
			
		||||
 | 
			
		||||
  # Bluetooth Manager
 | 
			
		||||
  exec --no-startup-id blueman-applet
 | 
			
		||||
 | 
			
		||||
  # Autolock screen after x minutes
 | 
			
		||||
  exec --no-startup-id xautolock -locker "~/scripts/lockscreen.sh" -detectsleep -time 30 -notify 60 -notifier "dunstify --replace=31846 -u critical -t 10000 -- 'Locking Screen' '60 seconds'"
 | 
			
		||||
 | 
			
		||||
  # Lockscreen when using suspend or hibernate (when closing the lid for instance)
 | 
			
		||||
  exec --no-startup-id xss-lock -- ~/scripts/lockscreen.sh
 | 
			
		||||
 | 
			
		||||
  # Autostart udiskie that is used to automount devices
 | 
			
		||||
  exec --no-startup-id udiskie
 | 
			
		||||
 | 
			
		||||
  # Screen options
 | 
			
		||||
  exec --no-startup-id xrandr --output eDP1 --mode 1920x1080 --dpi 192
 | 
			
		||||
 | 
			
		||||
  # Redshift
 | 
			
		||||
  exec --no-startup-id redshift
 | 
			
		||||
 | 
			
		||||
  # Start mopidy
 | 
			
		||||
  exec --no-startup-id mopidy
 | 
			
		||||
 | 
			
		||||
  # PulseAudio Server
 | 
			
		||||
  # exec --no-startup-id pulseaudio --daemon
 | 
			
		||||
 | 
			
		||||
  # Emacs Daemon
 | 
			
		||||
  # exec --no-startup-id /usr/bin/emacs --fg-daemon
 | 
			
		||||
 | 
			
		||||
  # TODO - Start polybar
 | 
			
		||||
  exec_always --no-startup-id $HOME/.config/polybar/scripts/launch.sh
 | 
			
		||||
 | 
			
		||||
  # Megasync
 | 
			
		||||
  exec --no-startup-id i3-msg 'exec megasync'
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Kill one application
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Change Keyboard Layout
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+Ctrl+d exec --no-startup-id setxkbmap -layout us -variant intl -option caps:escape
 | 
			
		||||
  bindsym $mod+Shift+d exec --no-startup-id setxkbmap -layout us -option caps:escape
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO [#B] Vim Anywhere
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # bindsym $mod+t exec vim-anywhere nvim termite
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO Screenshot - Change to simplier keys
 | 
			
		||||
#+begin_src conf :tangle no
 | 
			
		||||
bindsym Print exec --no-startup-id i3-scrot
 | 
			
		||||
bindsym $mod+Print --release exec --no-startup-id i3-scrot -w
 | 
			
		||||
bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s
 | 
			
		||||
* TODO Windows Manager
 | 
			
		||||
** Change focus
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+h focus left
 | 
			
		||||
  bindsym $mod+j focus down
 | 
			
		||||
  bindsym $mod+k focus up
 | 
			
		||||
  bindsym $mod+l focus right
 | 
			
		||||
 | 
			
		||||
  bindsym $mod+Left focus left
 | 
			
		||||
  bindsym $mod+Down focus down
 | 
			
		||||
  bindsym $mod+Up focus up
 | 
			
		||||
  bindsym $mod+Right focus right
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Change focus
 | 
			
		||||
** Move focused window
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
bindsym $mod+h focus left
 | 
			
		||||
bindsym $mod+j focus down
 | 
			
		||||
bindsym $mod+k focus up
 | 
			
		||||
bindsym $mod+l focus right
 | 
			
		||||
  bindsym $mod+Shift+h move left
 | 
			
		||||
  bindsym $mod+Shift+j move down
 | 
			
		||||
  bindsym $mod+Shift+k move up
 | 
			
		||||
  bindsym $mod+Shift+l move right
 | 
			
		||||
 | 
			
		||||
# alternatively, you can use the cursor keys:
 | 
			
		||||
bindsym $mod+Left focus left
 | 
			
		||||
bindsym $mod+Down focus down
 | 
			
		||||
bindsym $mod+Up focus up
 | 
			
		||||
bindsym $mod+Right focus right
 | 
			
		||||
  bindsym $mod+Shift+Left move left
 | 
			
		||||
  bindsym $mod+Shift+Down move down
 | 
			
		||||
  bindsym $mod+Shift+Up move up
 | 
			
		||||
  bindsym $mod+Shift+Right move right
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Move focused window
 | 
			
		||||
** TODO [#A] Split orientation - Use just one key bindings that alternates?
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
bindsym $mod+Shift+h move left
 | 
			
		||||
bindsym $mod+Shift+j move down
 | 
			
		||||
bindsym $mod+Shift+k move up
 | 
			
		||||
bindsym $mod+Shift+l move right
 | 
			
		||||
 | 
			
		||||
# alternatively, you can use the cursor keys:
 | 
			
		||||
bindsym $mod+Shift+Left move left
 | 
			
		||||
bindsym $mod+Shift+Down move down
 | 
			
		||||
bindsym $mod+Shift+Up move up
 | 
			
		||||
bindsym $mod+Shift+Right move right
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Windows Manager
 | 
			
		||||
** TODO Split orientation - Use just one key bindings that alternates?
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
bindsym $mod+semicolon split h
 | 
			
		||||
bindsym $mod+v split v
 | 
			
		||||
bindsym $mod+q split toggle
 | 
			
		||||
  bindsym $mod+semicolon split h
 | 
			
		||||
  bindsym $mod+v split v
 | 
			
		||||
  bindsym $mod+q split toggle
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Kill focused window
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
bindsym $mod+Shift+q kill
 | 
			
		||||
  bindsym $mod+Shift+q kill
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Use Mouse+$mod to drag floating windows
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
floating_modifier $mod
 | 
			
		||||
  floating_modifier $mod
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Toggle fullscreen mode for the focused container
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
bindsym $mod+f fullscreen toggle
 | 
			
		||||
  bindsym $mod+f fullscreen toggle
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** TODO Change container layout (stacked, tabbed, toggle split)
 | 
			
		||||
** TODO [#A] Change container layout (stacked, tabbed, toggle split)
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
# bindsym $mod+s layout stacking
 | 
			
		||||
# bindsym $mod+w layout tabbed
 | 
			
		||||
# bindsym $mod+e layout toggle split
 | 
			
		||||
  # bindsym $mod+s layout stacking
 | 
			
		||||
  # bindsym $mod+w layout tabbed
 | 
			
		||||
  # bindsym $mod+e layout toggle split
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** TODO Toggle tiling / floating
 | 
			
		||||
@@ -180,12 +294,16 @@ bindsym $mod+f fullscreen toggle
 | 
			
		||||
  bindsym $mod+Shift+s sticky toggle
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** TODO Focus the parent container
 | 
			
		||||
** Resize Floating Window
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # bindsym $mod+a focus parent
 | 
			
		||||
  bindsym $mod+Shift+y resize shrink width 10 px or 10 ppt
 | 
			
		||||
  bindsym $mod+Shift+u resize grow height 10 px or 10 ppt
 | 
			
		||||
  bindsym $mod+Shift+i resize shrink height 10 px or 10 ppt
 | 
			
		||||
  bindsym $mod+Shift+o resize grow width 10 px or 10 ppt
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Scratchpad
 | 
			
		||||
* TODO [#B] Scratchpad
 | 
			
		||||
** Move to Scratchpad
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # move the currently focused window to the scratchpad
 | 
			
		||||
  bindsym $mod+Shift+BackSpace move scratchpad
 | 
			
		||||
@@ -195,38 +313,18 @@ bindsym $mod+f fullscreen toggle
 | 
			
		||||
  bindsym $mod+BackSpace scratchpad show
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Custom Cratchpad for Quick Access
 | 
			
		||||
** Weechat
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # for_window [instance="scratch-weechat"] scratchpad show;
 | 
			
		||||
  # exec termite --name="scratch-weechat" --exec="weechat"
 | 
			
		||||
  # for_window [instance="scratch-weechat"] floating enable;
 | 
			
		||||
  # for_window [instance="scratch-weechat"] move position 240 px 125 px;
 | 
			
		||||
  # for_window [instance="scratch-weechat"] resize set 1200 px 800 px;
 | 
			
		||||
  # for_window [instance="scratch-weechat"] move scratchpad;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Music with ncmpcpp
 | 
			
		||||
** TODO Custom Cratchpad for Quick Access
 | 
			
		||||
*** Music with ncmpcpp
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  for_window [instance="scratch-ncmpcpp"] scratchpad show;
 | 
			
		||||
  exec termite --name="scratch-ncmpcpp" --exec="ncmpcpp"
 | 
			
		||||
  exec termite --name="scratch-ncmpcpp" --exec="tmux -L ncmpcpp attach"
 | 
			
		||||
  for_window [instance="scratch-ncmpcpp"] floating enable;
 | 
			
		||||
  for_window [instance="scratch-ncmpcpp"] move position 440 px 225 px;
 | 
			
		||||
  for_window [instance="scratch-ncmpcpp"] resize set 800 px 600 px;
 | 
			
		||||
  for_window [instance="scratch-ncmpcpp"] move scratchpad;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** RSS Feed with NewsBoat
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  for_window [instance="scratch-newsboat"] scratchpad show;
 | 
			
		||||
  exec termite --name="scratch-newsboat" --exec="tmuxinator start newsboat"
 | 
			
		||||
  for_window [instance="scratch-newsboat"] floating enable;
 | 
			
		||||
  for_window [instance="scratch-newsboat"] move position 240 px 125 px;
 | 
			
		||||
  for_window [instance="scratch-newsboat"] resize set 1200 px 800 px;
 | 
			
		||||
  for_window [instance="scratch-newsboat"] move scratchpad;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Calculator with insect
 | 
			
		||||
*** Calculator with insect
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  for_window [instance="scratch-insect"] scratchpad show;
 | 
			
		||||
  exec termite --name="scratch-insect" --exec="insect"
 | 
			
		||||
@@ -236,17 +334,7 @@ bindsym $mod+f fullscreen toggle
 | 
			
		||||
  for_window [instance="scratch-insect"] move scratchpad;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Mails with Neomutt
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  for_window [instance="scratch-neomutt"] scratchpad show;
 | 
			
		||||
  exec termite --name="scratch-neomutt" --exec="neomutt"
 | 
			
		||||
  for_window [instance="scratch-neomutt"] floating enable;
 | 
			
		||||
  for_window [instance="scratch-neomutt"] move position 240 px 125 px;
 | 
			
		||||
  for_window [instance="scratch-neomutt"] resize set 1200 px 800 px;
 | 
			
		||||
  for_window [instance="scratch-neomutt"] move scratchpad;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Ranger
 | 
			
		||||
*** Ranger
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  for_window [instance="scratch-ranger"] scratchpad show;
 | 
			
		||||
  exec urxvt -name scratch-ranger -e ranger
 | 
			
		||||
@@ -256,7 +344,7 @@ bindsym $mod+f fullscreen toggle
 | 
			
		||||
  for_window [instance="scratch-ranger"] move scratchpad;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Terminal
 | 
			
		||||
*** Terminal
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  for_window [instance="scratch-termite"] scratchpad show;
 | 
			
		||||
  exec termite --name="scratch-termite"
 | 
			
		||||
@@ -271,12 +359,9 @@ bindsym $mod+f fullscreen toggle
 | 
			
		||||
bindsym $mod+s mode "$mode_stratchpad"
 | 
			
		||||
set $mode_stratchpad (w)eechat (m)ails (p)layer (c)alc (s)hell (n)ews (r)anger
 | 
			
		||||
mode "$mode_stratchpad" {
 | 
			
		||||
    bindsym w [instance="scratch-weechat"] scratchpad show; mode "default"
 | 
			
		||||
    bindsym p [instance="scratch-ncmpcpp"] scratchpad show; mode "default"
 | 
			
		||||
    bindsym n [instance="scratch-newsboat"] scratchpad show; mode "default"
 | 
			
		||||
    bindsym s [instance="scratch-termite"] scratchpad show; mode "default"
 | 
			
		||||
    bindsym c [instance="scratch-insect"] scratchpad show; mode "default"
 | 
			
		||||
    bindsym m [instance="scratch-neomutt"] scratchpad show; mode "default"
 | 
			
		||||
    bindsym r [instance="scratch-ranger"] scratchpad show; mode "default"
 | 
			
		||||
 | 
			
		||||
    # exit system mode: "Enter" or "Escape"
 | 
			
		||||
@@ -285,7 +370,8 @@ mode "$mode_stratchpad" {
 | 
			
		||||
}
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO [#A] Workspace names
 | 
			
		||||
* Workspaces
 | 
			
		||||
** Workspace names
 | 
			
		||||
To display names or symbols instead of plain workspace numbers you can use something like: =set $ws1 1:mail= and =set $ws2 2:=.
 | 
			
		||||
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
@@ -299,7 +385,7 @@ To display names or symbols instead of plain workspace numbers you can use somet
 | 
			
		||||
  set $ws8 8
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Switch to workspace
 | 
			
		||||
** Switch to workspace
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+1 workspace $ws1
 | 
			
		||||
  bindsym $mod+2 workspace $ws2
 | 
			
		||||
@@ -311,7 +397,7 @@ To display names or symbols instead of plain workspace numbers you can use somet
 | 
			
		||||
  bindsym $mod+8 workspace $ws8
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Navigate Workspace
 | 
			
		||||
** Navigate Workspace
 | 
			
		||||
** Workspace back and forth (with/without active container)
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  workspace_auto_back_and_forth yes
 | 
			
		||||
@@ -325,7 +411,7 @@ To display names or symbols instead of plain workspace numbers you can use somet
 | 
			
		||||
  bindsym $mod+p workspace prev
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Move focused container to workspace
 | 
			
		||||
** Move focused container to workspace
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+Ctrl+1 move container to workspace $ws1
 | 
			
		||||
  bindsym $mod+Ctrl+2 move container to workspace $ws2
 | 
			
		||||
@@ -337,7 +423,7 @@ To display names or symbols instead of plain workspace numbers you can use somet
 | 
			
		||||
  bindsym $mod+Ctrl+8 move container to workspace $ws8
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Move to workspace with focused container
 | 
			
		||||
** Move to workspace with focused container
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
 | 
			
		||||
  bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
 | 
			
		||||
@@ -349,7 +435,7 @@ To display names or symbols instead of plain workspace numbers you can use somet
 | 
			
		||||
  bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Open applications on specific workspaces
 | 
			
		||||
** Open applications on specific workspaces
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Matlab Figures
 | 
			
		||||
  assign[title="^Fig"] $ws6
 | 
			
		||||
@@ -388,121 +474,7 @@ To display names or symbols instead of plain workspace numbers you can use somet
 | 
			
		||||
* Restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+Shift+r restart
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Set shut down, restart and locking features
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+0 mode "$mode_system"
 | 
			
		||||
  # TODO - Power Key, if "ignored" in /etc/systemd/logind.conf
 | 
			
		||||
  bindcode 124 mode "$mode_system"
 | 
			
		||||
 | 
			
		||||
  set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
 | 
			
		||||
  mode "$mode_system" {
 | 
			
		||||
  bindsym l exec --no-startup-id i3exit lock, mode "default"
 | 
			
		||||
  bindsym s exec --no-startup-id i3exit suspend, mode "default"
 | 
			
		||||
  bindsym u exec --no-startup-id i3exit switch_user, mode "default"
 | 
			
		||||
  bindsym e exec --no-startup-id i3exit logout, mode "default"
 | 
			
		||||
  bindsym h exec --no-startup-id i3exit hibernate, mode "default"
 | 
			
		||||
  bindsym r exec --no-startup-id i3exit reboot, mode "default"
 | 
			
		||||
  bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
 | 
			
		||||
 | 
			
		||||
  # exit system mode: "Enter" or "Escape"
 | 
			
		||||
  bindsym Return mode "default"
 | 
			
		||||
  bindsym Escape mode "default"
 | 
			
		||||
  }
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Command Mode
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+space mode "command"
 | 
			
		||||
 | 
			
		||||
  mode "command" {
 | 
			
		||||
  # Command line Calendar Client (khal)
 | 
			
		||||
  bindsym c exec termite -e "khal interactive"; mode "default"
 | 
			
		||||
  # GUI Calendar (Google Calendar)
 | 
			
		||||
  bindsym Shift+c exec qutebrowser https://calendar.google.com/; mode "default"
 | 
			
		||||
  # Ranger
 | 
			
		||||
  bindsym r exec urxvt -e "ranger"; mode "default"
 | 
			
		||||
  # pcmanfm: GUI file manager
 | 
			
		||||
  bindsym Shift+r exec pcmanfm; mode "default"
 | 
			
		||||
  # Mails with neomutt
 | 
			
		||||
  bindsym m exec termite -e "tmuxinator start neomutt"; mode "default"
 | 
			
		||||
  # Weechat inside Tmux
 | 
			
		||||
  bindsym w exec termite -e "tmux -L weechat attach"; mode "default"
 | 
			
		||||
  # Music with ncmpcpp
 | 
			
		||||
  bindsym p exec termite --exec="ncmpcpp"; mode "default"
 | 
			
		||||
  # Browser with qutebrowser
 | 
			
		||||
  bindsym i exec qutebrowser; mode "default"
 | 
			
		||||
  # Browser with firefox
 | 
			
		||||
  bindsym Shift+i exec firefox; mode "default"
 | 
			
		||||
  # Emacs Client
 | 
			
		||||
  bindsym e exec emacsclient -create-frame --alternate-editor=""; mode "default"
 | 
			
		||||
  # Full Emacs - Usefull when installing packages
 | 
			
		||||
  bindsym Shift+e exec emacs; mode "default"
 | 
			
		||||
 | 
			
		||||
  # exit resize mode: Enter or Escape
 | 
			
		||||
  bindsym Escape mode "default"
 | 
			
		||||
  }
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Resize
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  bindsym $mod+Shift+y resize shrink width 10 px or 10 ppt
 | 
			
		||||
  bindsym $mod+Shift+u resize grow height 10 px or 10 ppt
 | 
			
		||||
  bindsym $mod+Shift+i resize shrink height 10 px or 10 ppt
 | 
			
		||||
  bindsym $mod+Shift+o resize grow width 10 px or 10 ppt
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Autostart Background Applications
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Authentication agent
 | 
			
		||||
  # exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
 | 
			
		||||
 | 
			
		||||
  # Set custom wallpaper script
 | 
			
		||||
  exec --no-startup-id $HOME/scripts/wallpapers.sh
 | 
			
		||||
 | 
			
		||||
  # Run Compton
 | 
			
		||||
  exec --no-startup-id compton -b
 | 
			
		||||
 | 
			
		||||
  # Start Network Management Framework
 | 
			
		||||
  exec --no-startup-id nm-applet
 | 
			
		||||
 | 
			
		||||
  # Start Power Manager
 | 
			
		||||
  exec --no-startup-id xfce4-power-manager
 | 
			
		||||
 | 
			
		||||
  # Bluetooth Manager
 | 
			
		||||
  exec --no-startup-id blueman-applet
 | 
			
		||||
 | 
			
		||||
  # Autolock screen after x minutes
 | 
			
		||||
  # exec --no-startup-id xautolock -time 30 -locker blurlock
 | 
			
		||||
  exec --no-startup-id xautolock -detectsleep -time 30 -locker blurlock -notify 60 -notifier "notify-send -u critical -t 10000 -- 'LOCKING screen in 60 seconds'"
 | 
			
		||||
 | 
			
		||||
  # Autostart udiskie that is used to automount devices
 | 
			
		||||
  exec --no-startup-id udiskie
 | 
			
		||||
 | 
			
		||||
  # Screen options
 | 
			
		||||
  exec --no-startup-id xrandr --output eDP1 --mode 1920x1080 --dpi 192
 | 
			
		||||
 | 
			
		||||
  # Redshift
 | 
			
		||||
  exec --no-startup-id redshift
 | 
			
		||||
 | 
			
		||||
  # Start mopidy
 | 
			
		||||
  exec --no-startup-id mopidy
 | 
			
		||||
 | 
			
		||||
  # PulseAudio Server
 | 
			
		||||
  # exec --no-startup-id pulseaudio --daemon
 | 
			
		||||
 | 
			
		||||
  # Emacs Daemon
 | 
			
		||||
  exec --no-startup-id /usr/bin/emacs --fg-daemon
 | 
			
		||||
 | 
			
		||||
  # TODO - Start polybar
 | 
			
		||||
  exec_always --no-startup-id $HOME/.config/polybar/scripts/launch.sh
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Start Foreground Applications
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Megasync
 | 
			
		||||
  exec --no-startup-id i3-msg 'exec megasync'
 | 
			
		||||
  bindsym $mod+r exec $HOME/.config/polybar/scripts/launch.sh
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Color palette used for the terminal ( ~/.Xresources file )
 | 
			
		||||
@@ -552,13 +524,13 @@ Colors are gathered based on the documentation https://i3wm.org/docs/userguide.h
 | 
			
		||||
* TODO Theme colors
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # class                 border  backgr. text    indic.   child_border
 | 
			
		||||
  client.focused          #2F3D44 #2F3D44 #1ABC9C #454948
 | 
			
		||||
  client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948
 | 
			
		||||
  client.urgent           #CB4B16 #FDF6E3 #1ABC9C #268BD2
 | 
			
		||||
  client.unfocused        #556064 #556064 #80FFF9 #FDF6E3
 | 
			
		||||
  client.placeholder      #000000 #0c0c0c #ffffff #000000
 | 
			
		||||
  client.focused          $blue   $blue   $fg     $blue
 | 
			
		||||
  client.focused_inactive $bg     $bg     $fg     $bg
 | 
			
		||||
  client.urgent           $bg     $bg     $fg     $bg
 | 
			
		||||
  client.unfocused        $bg     $bg     $fg     $bg
 | 
			
		||||
  client.placeholder      $bg     $bg     $fg     $bg
 | 
			
		||||
 | 
			
		||||
  client.background       #2B2C2B
 | 
			
		||||
  client.background       #32302F
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Settings for i3-gaps
 | 
			
		||||
@@ -577,7 +549,7 @@ Colors are gathered based on the documentation https://i3wm.org/docs/userguide.h
 | 
			
		||||
 | 
			
		||||
  # Smart borders (draw borders around container only if it is not the only container on this workspace)
 | 
			
		||||
  # on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
 | 
			
		||||
  smart_borders on
 | 
			
		||||
  # smart_borders on
 | 
			
		||||
 | 
			
		||||
  # Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
 | 
			
		||||
  set $mode_gaps Gaps: (o) outer, (i) inner
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1431
									
								
								dotfiles/mail.org
									
									
									
									
									
								
							
							
						
						
									
										1431
									
								
								dotfiles/mail.org
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1083
									
								
								dotfiles/music.org
									
									
									
									
									
								
							
							
						
						
									
										1083
									
								
								dotfiles/music.org
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
#+TITLE: Newsboat Configuration
 | 
			
		||||
https://wiki.archlinux.org/index.php/Newsboat
 | 
			
		||||
https://newsboat.org/releases/2.12/docs/newsboat.html
 | 
			
		||||
 | 
			
		||||
* Config
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
@@ -6,131 +8,137 @@
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
** Reload configuration
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Basic configuration
 | 
			
		||||
# =============================================================
 | 
			
		||||
# All feeds will be automatically reloaded after a certain time has passed
 | 
			
		||||
# auto-reload yes
 | 
			
		||||
auto-reload no
 | 
			
		||||
# reload-time 60
 | 
			
		||||
# suppress-first-reload yes
 | 
			
		||||
  # All feeds will be automatically reloaded after a certain time has passed
 | 
			
		||||
  auto-reload yes
 | 
			
		||||
 | 
			
		||||
confirm-exit yes
 | 
			
		||||
  # The number of minutes between automatic reloads.
 | 
			
		||||
  reload-time 180
 | 
			
		||||
 | 
			
		||||
external-url-viewer "urlscan -dc -r 'linkhandler {}'"
 | 
			
		||||
  # The number of parallel reload threads that shall be started when all feeds are reloaded.
 | 
			
		||||
  reload-threads 3
 | 
			
		||||
 | 
			
		||||
goto-first-unread no
 | 
			
		||||
goto-next-feed no
 | 
			
		||||
  # If set to yes, then the first automatic reload will be suppressed if auto-reload is set to yes.
 | 
			
		||||
  suppress-first-reload yes
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
save-path "~/Saved Articles"
 | 
			
		||||
download-path "~/Downloads"
 | 
			
		||||
** Basic configuration
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  confirm-exit no
 | 
			
		||||
 | 
			
		||||
# If set to no, then the keymap hints on the bottom of screen will not be displayed.
 | 
			
		||||
show-keymap-hint no
 | 
			
		||||
  external-url-viewer "urlscan -dc -r 'linkhandler {}'"
 | 
			
		||||
 | 
			
		||||
feed-sort-order none
 | 
			
		||||
# =============================================================
 | 
			
		||||
  goto-first-unread no
 | 
			
		||||
  goto-next-feed no
 | 
			
		||||
 | 
			
		||||
  save-path "~/Saved Articles"
 | 
			
		||||
  download-path "~/Downloads"
 | 
			
		||||
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Notifications
 | 
			
		||||
# =============================================================
 | 
			
		||||
notify-format "newsbeuter: %n unread articles within %f unread feeds"
 | 
			
		||||
notify-program notify-send
 | 
			
		||||
# =============================================================
 | 
			
		||||
  # If set to no, then the keymap hints on the bottom of screen will not be displayed.
 | 
			
		||||
  show-keymap-hint no
 | 
			
		||||
 | 
			
		||||
  feed-sort-order none
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Bindings
 | 
			
		||||
# =============================================================
 | 
			
		||||
bind-key j down
 | 
			
		||||
bind-key k up
 | 
			
		||||
bind-key j next articlelist
 | 
			
		||||
bind-key k prev articlelist
 | 
			
		||||
bind-key J next-feed articlelist
 | 
			
		||||
bind-key K prev-feed articlelist
 | 
			
		||||
bind-key G end
 | 
			
		||||
bind-key g home
 | 
			
		||||
bind-key d pagedown
 | 
			
		||||
bind-key u pageup
 | 
			
		||||
** Notifications
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  notify-format "%n unread articles"
 | 
			
		||||
  notify-program ~/scripts/newsboat-notify.sh
 | 
			
		||||
  notify-always no
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
bind-key l open
 | 
			
		||||
bind-key h quit
 | 
			
		||||
*** Notification Script
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/newsboat-notify.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
bind-key a toggle-article-read
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  dunstify -replace=38492 "Newsbeuter " "$1"
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
bind-key n next-unread
 | 
			
		||||
bind-key N prev-unread
 | 
			
		||||
** Bindings
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  bind-key j down
 | 
			
		||||
  bind-key k up
 | 
			
		||||
  bind-key j next articlelist
 | 
			
		||||
  bind-key k prev articlelist
 | 
			
		||||
  bind-key J next-feed articlelist
 | 
			
		||||
  bind-key K prev-feed articlelist
 | 
			
		||||
  bind-key G end
 | 
			
		||||
  bind-key g home
 | 
			
		||||
  bind-key d pagedown
 | 
			
		||||
  bind-key u pageup
 | 
			
		||||
 | 
			
		||||
bind-key D pb-download
 | 
			
		||||
  bind-key l open
 | 
			
		||||
  bind-key h quit
 | 
			
		||||
 | 
			
		||||
bind-key U show-urls
 | 
			
		||||
  bind-key a toggle-article-read
 | 
			
		||||
 | 
			
		||||
# bind-key x pb-delete
 | 
			
		||||
  bind-key n next-unread
 | 
			
		||||
  bind-key N prev-unread
 | 
			
		||||
 | 
			
		||||
bind-key t set-tag
 | 
			
		||||
bind-key T clear-tag
 | 
			
		||||
  bind-key D pb-download
 | 
			
		||||
 | 
			
		||||
bind-key r reload # Reload the currently selected feed
 | 
			
		||||
bind-key R reload-all # Reload all feeds
 | 
			
		||||
# =============================================================
 | 
			
		||||
  bind-key U show-urls
 | 
			
		||||
 | 
			
		||||
  # bind-key x pb-delete
 | 
			
		||||
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Macros - Starts with , key
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Default Browser
 | 
			
		||||
browser "qutebrowser %u"
 | 
			
		||||
  bind-key t set-tag
 | 
			
		||||
  bind-key T clear-tag
 | 
			
		||||
 | 
			
		||||
# Open in Browser
 | 
			
		||||
macro , open-in-browser
 | 
			
		||||
  bind-key r reload # Reload the currently selected feed
 | 
			
		||||
  bind-key R reload-all # Reload all feeds
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
# Download Video with Youtube-DL
 | 
			
		||||
# TODO - Should write a script for that? Maybe open a tmux script if newsboat is in tmux pane?
 | 
			
		||||
macro t set browser "~/scripts/download-video.sh %u" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
** Macros - Starts with , key
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  # Default Browser
 | 
			
		||||
  browser "qutebrowser %u"
 | 
			
		||||
 | 
			
		||||
# Download Audio with Youtube-DL
 | 
			
		||||
macro a set browser "~/scripts/download-audio.sh %u" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
  # Open in Browser
 | 
			
		||||
  macro , open-in-browser
 | 
			
		||||
 | 
			
		||||
# Open Video with MPV
 | 
			
		||||
macro v set browser "setsid nohup mpv %u &> /dev/null &" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
  # Download Video with Youtube-DL
 | 
			
		||||
  # TODO - Should write a script for that? Maybe open a tmux script if newsboat is in tmux pane?
 | 
			
		||||
  macro t set browser "~/scripts/download-video.sh %u" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
 | 
			
		||||
# Open With W3M
 | 
			
		||||
macro w set browser "w3m %u" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
  # Download Audio with Youtube-DL
 | 
			
		||||
  macro a set browser "~/scripts/download-audio.sh %u" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
 | 
			
		||||
# Copy Address to clipboard
 | 
			
		||||
macro c set browser "xsel -b <<<" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
# =============================================================
 | 
			
		||||
  # Open Video with MPV
 | 
			
		||||
  macro v set browser "setsid nohup mpv %u &> /dev/null &" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
 | 
			
		||||
  # Open With W3M
 | 
			
		||||
  macro w set browser "w3m %u" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
 | 
			
		||||
# =============================================================
 | 
			
		||||
# hide articles matching
 | 
			
		||||
# =============================================================
 | 
			
		||||
ignore-article "*" "title =~ \"Sponsor\""
 | 
			
		||||
ignore-article "*" "title =~ \"Advertisement\""
 | 
			
		||||
ignore-mode "display"
 | 
			
		||||
# =============================================================
 | 
			
		||||
  # Copy Address to clipboard
 | 
			
		||||
  macro c set browser "xsel -b <<<" ; open-in-browser ; set browser "qutebrowser %u"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** hide articles matching
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  ignore-article "*" "title =~ \"Sponsor\""
 | 
			
		||||
  ignore-article "*" "title =~ \"Advertisement\""
 | 
			
		||||
  ignore-mode "display"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Feedlist and Article Format
 | 
			
		||||
# =============================================================
 | 
			
		||||
feedlist-format "%4i %n %11u %t"
 | 
			
		||||
feedlist-title-format "N %V - Your feeds (%u unread, %t total)%?T? - tag `%T'&?"
 | 
			
		||||
** Feedlist and Article Format
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  feedlist-format "%4i %n %11u %t"
 | 
			
		||||
  feedlist-title-format "N %V - Your feeds (%u unread, %t total)%?T? - tag `%T'&?"
 | 
			
		||||
 | 
			
		||||
articlelist-format "%3i %f %D  %?T?|%-17T| ?%t"
 | 
			
		||||
articlelist-title-format "%N %V - Articles in feed '%T' (%u unread, %t total) - %U"
 | 
			
		||||
  articlelist-format "%3i %f %D  %?T?|%-17T| ?%t"
 | 
			
		||||
  articlelist-title-format "%N %V - Articles in feed '%T' (%u unread, %t total) - %U"
 | 
			
		||||
 | 
			
		||||
itemview-title-format "Article '%T'"
 | 
			
		||||
# =============================================================
 | 
			
		||||
  itemview-title-format "Article '%T'"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Color Scheme
 | 
			
		||||
# =============================================================
 | 
			
		||||
include "~/.config/newsboat/colors"
 | 
			
		||||
# =============================================================
 | 
			
		||||
** Color Scheme
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  include "~/.config/newsboat/colors"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Colors
 | 
			
		||||
@@ -140,86 +148,91 @@ include "~/.config/newsboat/colors"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Color Scheme
 | 
			
		||||
# =============================================================
 | 
			
		||||
highlight feedlist    "^  *[0-9]+  *N  "                    cyan     cyan
 | 
			
		||||
highlight articlelist "^  *[0-9]+  *N  "                    cyan     cyan
 | 
			
		||||
  highlight feedlist    "^  *[0-9]+  *N  "                    cyan     cyan
 | 
			
		||||
  highlight articlelist "^  *[0-9]+  *N  "                    cyan     cyan
 | 
			
		||||
 | 
			
		||||
highlight article     "(^Feed:.*|^Title:.*|^Author:.*)"     red      default
 | 
			
		||||
highlight article     "(^Link:.*|^Date:.*)"                 white    default
 | 
			
		||||
highlight article     "^Podcast Download URL:.*"            cyan     default
 | 
			
		||||
highlight article     "^Links:"                             magenta  black    underline
 | 
			
		||||
highlight article     "https?://[^ ]+"                      green    default
 | 
			
		||||
highlight article     "^(Title):.*$"                        blue     default
 | 
			
		||||
highlight article     "\\[[0-9][0-9]*\\]"                   magenta  default  bold
 | 
			
		||||
highlight article     "\\[image\\ [0-9]+\\]"                green    default  bold
 | 
			
		||||
highlight article     "\\[embedded flash: [0-9][0-9]*\\]"   green    default  bold
 | 
			
		||||
highlight article     ":.*\\(link\\)$"                      cyan     default
 | 
			
		||||
highlight article     ":.*\\(image\\)$"                     blue     default
 | 
			
		||||
highlight article     ":.*\\(embedded flash\\)$"            magenta  default
 | 
			
		||||
  highlight article     "(^Feed:.*|^Title:.*|^Author:.*)"     red      default
 | 
			
		||||
  highlight article     "(^Link:.*|^Date:.*)"                 white    default
 | 
			
		||||
  highlight article     "^Podcast Download URL:.*"            cyan     default
 | 
			
		||||
  highlight article     "^Links:"                             magenta  black    underline
 | 
			
		||||
  highlight article     "https?://[^ ]+"                      green    default
 | 
			
		||||
  highlight article     "^(Title):.*$"                        blue     default
 | 
			
		||||
  highlight article     "\\[[0-9][0-9]*\\]"                   magenta  default  bold
 | 
			
		||||
  highlight article     "\\[image\\ [0-9]+\\]"                green    default  bold
 | 
			
		||||
  highlight article     "\\[embedded flash: [0-9][0-9]*\\]"   green    default  bold
 | 
			
		||||
  highlight article     ":.*\\(link\\)$"                      cyan     default
 | 
			
		||||
  highlight article     ":.*\\(image\\)$"                     blue     default
 | 
			
		||||
  highlight article     ":.*\\(embedded flash\\)$"            magenta  default
 | 
			
		||||
 | 
			
		||||
color background                                            default   default
 | 
			
		||||
color listnormal                                            default   default
 | 
			
		||||
color listnormal_unread                                     white     default
 | 
			
		||||
color listfocus                                             color255  cyan   bold
 | 
			
		||||
color listfocus_unread                                      color255  cyan   bold
 | 
			
		||||
color info                                                  cyan      black
 | 
			
		||||
color article                                               default   default
 | 
			
		||||
# =============================================================
 | 
			
		||||
  color background                                            default   default
 | 
			
		||||
  color listnormal                                            default   default
 | 
			
		||||
  color listnormal_unread                                     white     default
 | 
			
		||||
  color listfocus                                             color255  cyan   bold
 | 
			
		||||
  color listfocus_unread                                      color255  cyan   bold
 | 
			
		||||
  color info                                                  cyan      black
 | 
			
		||||
  color article                                               default   default
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Config
 | 
			
		||||
* URLS
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/newsboat/urls
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
** NEWSFEEDS
 | 
			
		||||
*** Linux
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  https://itsfoss.com/feed/ "~NEWSFEED: It's Foss" linux
 | 
			
		||||
  https://lukesmith.xyz/rss.xml "~NEWSFEED: Lukesmith" linux
 | 
			
		||||
 | 
			
		||||
  https://lord.re/index.xml "~NEWSFEED: /home/lord" linux
 | 
			
		||||
  http://feeds.cyberciti.biz/Nixcraft-LinuxFreebsdSolarisTipsTricks "~NEWSFEED: nixCraft" linux
 | 
			
		||||
  http://frederic.bezies.free.fr/blog/?feed=rss2 "~NEWSFEED: Le Weblog de Frederic Bezies" linux
 | 
			
		||||
  https://addy-dclxvi.github.io/index.xml "~NEWSFEED: Addy's Blog" linux
 | 
			
		||||
  http://feeds.feedburner.com/linoxideblog "~NEWSFEED: LinOxide" linux
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Emacs
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  ------------------------
 | 
			
		||||
  -------NEWSFEEDS--------
 | 
			
		||||
  ------------------------
 | 
			
		||||
  https://itsfoss.com/feed/ "~NEWSFEED: It's Foss" unix
 | 
			
		||||
  https://lukesmith.xyz/rss.xml "~NEWSFEED: Lukesmith" unix
 | 
			
		||||
  http://www.planet.emacsen.org/atom.xml "~NEWSFEED: Planet Emacs" emacs
 | 
			
		||||
  http://sachachua.com/blog/feed/ "~NEWSFEED: Sacha Chua" emacs
 | 
			
		||||
  https://scripter.co/categories/org/index.xml "~NEWSFEED: Scripter" emacs
 | 
			
		||||
  http://kitchingroup.cheme.cmu.edu/blog/feed "~NEWSFEED: The Kitchin Research Group" emacs
 | 
			
		||||
  http://irreal.org/blog/?feed=rss2 "~NEWSFEED: Irreal" emacs
 | 
			
		||||
  https://emacs.cafe/feed.xml "~NEWSFEED: Emacs café" emacs
 | 
			
		||||
  http://pragmaticemacs.com/feed/ "~NEWSFEED: Pragmatic Emacs" emacs
 | 
			
		||||
  https://pinecast.com/feed/emacscast "~NEWSFEED: EmacsCast" emacs
 | 
			
		||||
  http://feeds.feedburner.com/CestLaZ "~newsfeed: c'est la Z" emacs
 | 
			
		||||
  https://joshrollinswrites.com/index.xml "The Art of Not Asking Why" emacs
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Other
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  http://xkcd.com/rss.xml "~NEWSFEED: XKCD" fun
 | 
			
		||||
  https://scripter.co/categories/org/index.xml "~NEWSFEED: Scripter" orgmode
 | 
			
		||||
  -------------------------
 | 
			
		||||
  -------YOUTUBE-----------
 | 
			
		||||
  -------------------------
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Youtube
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCkK9UDm_ZNrq_rIXCz3xCGA "~YOUTUBE: Bryan Lunduke" youtube unix
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~YOUTUBE: Luke Smith" youtube unix
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "~YOUTUBE: Greg Hurrell" youtube unix
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCUR1pFG_3XoZn3JNKjulqZg "~YOUTUBE: Thoughtbot" youtube unix
 | 
			
		||||
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCOuIgj0CYCXCvjWywjDbauw "~YOUTUBE: Chat sceptique" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCMFcMhePnH4onVHt2-ItPZw "~YOUTUBE: Hygiène Mentale" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCxqAWLTk1CmBvZFPzeZMd9A "~YOUTUBE: Domain of Science" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UC2LZO6swZ9SLUEOks3WnsfA "~YOUTUBE: 2veritasium" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCaNlbnghtwlsGF-KzAFThqA "~YOUTUBE: ScienceEtonnante" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA "~YOUTUBE: Veritasium" youtube science
 | 
			
		||||
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCEfFUaIkjbI06PhALdcXNVA "~YOUTUBE: EmacsCast" youtube emacs
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCkRmQ_G_NbdbCQMpALg6UPg "~YOUTUBE: Emacsrocks" youtube emacs
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCQp2VLAOlvq142YN3JO3y8w "~YOUTUBE: John Kitchin" youtube emacs
 | 
			
		||||
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCq0imsn84ShAe9PBOFnoIrg "~YOUTUBE: Brian Douglas" youtube control
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCm5mt-A4w61lknZ9lCsZtBw "~YOUTUBE: Steve Brunton" youtube control
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCMFcMhePnH4onVHt2-ItPZw "~YOUTUBE: Hygiène Mentale" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCxqAWLTk1CmBvZFPzeZMd9A "~YOUTUBE: Domain of Science" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UC7vVhkEfw4nOGp8TyDk7RcQ "~YOUTUBE: BostonDynamics" youtube control
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "~YOUTUBE: Greg Hurrell" youtube vim unix
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCUR1pFG_3XoZn3JNKjulqZg "~YOUTUBE: Thoughtbot" youtube unix
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCmkP178NasnhR3TWQyyP4Gw "~YOUTUBE: How To Mechatronics" youtube control
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UC2LZO6swZ9SLUEOks3WnsfA "~YOUTUBE: 2veritasium" youtube science
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCaNlbnghtwlsGF-KzAFThqA "~YOUTUBE: ScienceEtonnante" youtube science
 | 
			
		||||
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCSqyMHDUsc1gs6wz4sUy91w "~YOUTUBE: Jipihorn" youtube acoustic
 | 
			
		||||
  https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA "~YOUTUBE: Veritasium" youtube science
 | 
			
		||||
  -------------------------
 | 
			
		||||
  -------REDDIT------------
 | 
			
		||||
  -------------------------
 | 
			
		||||
  https://www.reddit.com/r/linux/.rss "~REDDIT: r/linux" reddit linux
 | 
			
		||||
  https://www.reddit.com/r/emacs/.rss "~REDDIT: r/emacs" reddit emacs
 | 
			
		||||
  -------------------------
 | 
			
		||||
  -------GIT_REPOS---------
 | 
			
		||||
  -------------------------
 | 
			
		||||
  https://github.com/LukeSmithxyz.atom "~GITHUB: LukeSmithxyz" github unix
 | 
			
		||||
  -------------------------
 | 
			
		||||
  -------ARCHLINUX---------
 | 
			
		||||
  -------------------------
 | 
			
		||||
  https://www.archlinux.org/feeds/packages/added/ "~ARCH: Packages Added"
 | 
			
		||||
  https://www.archlinux.org/feeds/packages/removed/ "~ARCH: Packages Removed"
 | 
			
		||||
  https://aur.archlinux.org/rss/ "~ARCH: Packages Added (AUR)"
 | 
			
		||||
  https://wiki.archlinux.org/api.php?hidebots=1&urlversion=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss "~ARCH: Arch Wiki"
 | 
			
		||||
#+end_src
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,9 @@
 | 
			
		||||
#+TITLE: Polybar Configuration
 | 
			
		||||
:DRAWER:
 | 
			
		||||
#+PROPERTY: header-args+ :comments both
 | 
			
		||||
#+PROPERTY: header-args+ :mkdirp yes
 | 
			
		||||
#+PROPERTY: header-args+ :tangle ~/.config/polybar/config
 | 
			
		||||
:END:
 | 
			
		||||
 | 
			
		||||
* Colors
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
@@ -56,7 +58,7 @@
 | 
			
		||||
  enable-ipc = true
 | 
			
		||||
  override-redirect = false
 | 
			
		||||
  bottom = false
 | 
			
		||||
  fixed-center = true
 | 
			
		||||
  fixed-center = false
 | 
			
		||||
 | 
			
		||||
  width = 100%
 | 
			
		||||
  height = 27
 | 
			
		||||
@@ -65,7 +67,7 @@
 | 
			
		||||
  background = ${colors.background}
 | 
			
		||||
  foreground = ${colors.foreground}
 | 
			
		||||
 | 
			
		||||
  line-size = 3
 | 
			
		||||
  line-size = 2
 | 
			
		||||
 | 
			
		||||
  border-size = 0
 | 
			
		||||
 | 
			
		||||
@@ -79,60 +81,13 @@
 | 
			
		||||
  font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
 | 
			
		||||
  font-2 = Weather Icons:size=10;1
 | 
			
		||||
 | 
			
		||||
  modules-left = i3
 | 
			
		||||
  modules-center = mpd pulseaudio
 | 
			
		||||
  modules-right = dunst unread_mail cpu battery temperature date
 | 
			
		||||
  modules-left = i3 xwindow
 | 
			
		||||
  modules-center =
 | 
			
		||||
  modules-right = pulseaudio wired-network wireless-network xbacklight nordvpn dunst unread_mail cpu battery temperature date
 | 
			
		||||
 | 
			
		||||
  tray-position = right
 | 
			
		||||
  tray-padding = 2
 | 
			
		||||
  #tray-transparent = true
 | 
			
		||||
  #tray-background = #0063ff
 | 
			
		||||
 | 
			
		||||
  #cursor-click = pointer
 | 
			
		||||
  #cursor-scroll = ns-resize
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Bottom Bar
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [bar/bottom]
 | 
			
		||||
  enable-ipc = true
 | 
			
		||||
  override-redirect = false
 | 
			
		||||
  bottom = true
 | 
			
		||||
  fixed-center = true
 | 
			
		||||
 | 
			
		||||
  width = 100%
 | 
			
		||||
  height = 27
 | 
			
		||||
  radius = 0.0
 | 
			
		||||
 | 
			
		||||
  background = ${colors.background}
 | 
			
		||||
  foreground = ${colors.foreground}
 | 
			
		||||
 | 
			
		||||
  line-size = 3
 | 
			
		||||
 | 
			
		||||
  border-size = 0
 | 
			
		||||
 | 
			
		||||
  padding-left = 2
 | 
			
		||||
  padding-right = 2
 | 
			
		||||
 | 
			
		||||
  module-margin-left = 1
 | 
			
		||||
  module-margin-right = 1
 | 
			
		||||
 | 
			
		||||
  font-0 = Hack Nerd Font:style=Medium,Regular:pixelsize=10;1
 | 
			
		||||
  font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
 | 
			
		||||
  font-2 = Weather Icons:size=10;1
 | 
			
		||||
  # font-3 = siji:pixelsize=10;1
 | 
			
		||||
 | 
			
		||||
  modules-left = mpd pulseaudio
 | 
			
		||||
  # modules-center = xwindow
 | 
			
		||||
  modules-right = filesystem nordvpn chromecast screenshot weather emacs caffeine redshift
 | 
			
		||||
 | 
			
		||||
  # tray-position = right
 | 
			
		||||
  # tray-padding = 2
 | 
			
		||||
  #tray-transparent = true
 | 
			
		||||
  #tray-background = #0063ff
 | 
			
		||||
 | 
			
		||||
  #cursor-click = pointer
 | 
			
		||||
  #cursor-scroll = ns-resize
 | 
			
		||||
  tray-padding = 0
 | 
			
		||||
  tray-background = ${colors.background}
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Show Windows Title
 | 
			
		||||
@@ -142,38 +97,6 @@
 | 
			
		||||
  label = %title:0:30:...%
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Current Layout of the Keyboard
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/xkeyboard]
 | 
			
		||||
  type = internal/xkeyboard
 | 
			
		||||
 | 
			
		||||
  # List of indicators to ignore
 | 
			
		||||
  blacklist-0 = num lock
 | 
			
		||||
 | 
			
		||||
  format = <label-layout>
 | 
			
		||||
  format-prefix = " "
 | 
			
		||||
  format-prefix-foreground = ${colors.foreground}
 | 
			
		||||
  format-prefix-underline = ${colors.background}
 | 
			
		||||
 | 
			
		||||
  label-layout = %layout%
 | 
			
		||||
  label-layout-underline = ${colors.background}
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Mount filesystem and show available space
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/filesystem]
 | 
			
		||||
  type = internal/fs
 | 
			
		||||
 | 
			
		||||
  interval = 25
 | 
			
		||||
 | 
			
		||||
  # List of mountpoints to display
 | 
			
		||||
  mount-0 = /
 | 
			
		||||
 | 
			
		||||
  label-mounted = %{Fcolors.blue}%mountpoint%%{F-}: %percentage_used%%
 | 
			
		||||
  label-unmounted = %mountpoint%
 | 
			
		||||
  label-unmounted-foreground = ${colors.comments}
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* I3 - Information about workspaces and active one
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/i3]
 | 
			
		||||
@@ -288,21 +211,6 @@
 | 
			
		||||
  label = %{A1:termite -e "htop" &:}  %percentage:2%% %{A}
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Available Memory
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/memory]
 | 
			
		||||
  type = internal/memory
 | 
			
		||||
 | 
			
		||||
  interval = 2
 | 
			
		||||
 | 
			
		||||
  format-prefix = " "
 | 
			
		||||
 | 
			
		||||
  format-prefix-foreground = ${colors.foreground-dark}
 | 
			
		||||
  format-underline = #4bffdc
 | 
			
		||||
 | 
			
		||||
  label = %percentage_used%%
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Date
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/date]
 | 
			
		||||
@@ -310,8 +218,8 @@
 | 
			
		||||
  interval = 1
 | 
			
		||||
 | 
			
		||||
  # Open google calendar on left right
 | 
			
		||||
  date = %{A1:$BROWSER https\://calendar.google.com/ &:} %d-%m%{A}
 | 
			
		||||
  date-alt = "%{A1:$BROWSER https\://calendar.google.com/ &:} %d-%m-%Y%{A}"
 | 
			
		||||
  date = %{A1:termite -e "ikhal" &:} %d-%m%{A}
 | 
			
		||||
  date-alt = "%{A1:termite -e \"ikhal\" &:} %d-%m-%Y%{A}"
 | 
			
		||||
 | 
			
		||||
  time =  %H:%M
 | 
			
		||||
  time-alt =  %H:%M:%S
 | 
			
		||||
@@ -430,7 +338,7 @@
 | 
			
		||||
 | 
			
		||||
  label-font = 2
 | 
			
		||||
  format-underline = ${colors.background}
 | 
			
		||||
  click-left = termite -e "tmuxinator start neomutt" &
 | 
			
		||||
  click-left = termite -e "tmux -L neomutt attach" &
 | 
			
		||||
  format = <label>
 | 
			
		||||
  exec = ~/.config/polybar/scripts/unread_mails.sh
 | 
			
		||||
  interval = 1
 | 
			
		||||
@@ -487,72 +395,16 @@
 | 
			
		||||
  fi
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Emacs
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [module/emacs]
 | 
			
		||||
  type = custom/script
 | 
			
		||||
 | 
			
		||||
  label-font = 2
 | 
			
		||||
  format-underline = ${colors.background}
 | 
			
		||||
  click-left = ~/.config/polybar/scripts/emacsclient.sh &
 | 
			
		||||
  click-right = emacs &
 | 
			
		||||
  format = <label>
 | 
			
		||||
  exec = ~/.config/polybar/scripts/emacsserver.sh
 | 
			
		||||
  interval = 5
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Emacs Server Scripts
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/.config/polybar/scripts/emacsserver.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC bash
 | 
			
		||||
  if test -e "/tmp/emacs1000/server" || test -e "~/.emacs.d/server"; then
 | 
			
		||||
      echo "%{F#859900}%{F-}";
 | 
			
		||||
  else
 | 
			
		||||
      echo "";
 | 
			
		||||
  fi
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Emacs Client Script
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/.config/polybar/scripts/emacsclient.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC bash
 | 
			
		||||
  emacsclient -create-frame --alternate-editor=""
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* NordVPN
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/nordvpn]
 | 
			
		||||
  type = custom/script
 | 
			
		||||
 | 
			
		||||
  format-underline = ${colors.background}
 | 
			
		||||
  click-left = ~/.config/polybar/scripts/nordvpn-toggle.sh
 | 
			
		||||
  click-left = ~/bin/vpntoggle
 | 
			
		||||
  format = <label>
 | 
			
		||||
  exec = ~/.config/polybar/scripts/nordvpn.sh
 | 
			
		||||
  interval = 5
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Nordvpn Toggle script
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/.config/polybar/scripts/nordvpn-toggle.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
#+BEGIN_SRC bash
 | 
			
		||||
  vpnstatus=`nordvpn status`;
 | 
			
		||||
 | 
			
		||||
  if [[ ${vpnstatus} == *"Disconnected"* ]]; then
 | 
			
		||||
    nordvpn connect
 | 
			
		||||
  else
 | 
			
		||||
    nordvpn disconnect
 | 
			
		||||
  fi
 | 
			
		||||
  interval = 2
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Nordvpn Status script
 | 
			
		||||
@@ -564,11 +416,12 @@
 | 
			
		||||
#+BEGIN_SRC bash
 | 
			
		||||
  vpnstatus=`nordvpn status`;
 | 
			
		||||
 | 
			
		||||
  if [[ ${vpnstatus} == *"Disconnected"* ]]; then
 | 
			
		||||
    echo "";
 | 
			
		||||
  if [[ ${vpnstatus} == *"Connected"* ]]; then
 | 
			
		||||
    # country=`nordvpn status | sed '/Country/!d ; s/Country: //'`
 | 
			
		||||
    # echo "%{F#859900}%{F-} $country";
 | 
			
		||||
    echo "%{F#859900}%{F-}";
 | 
			
		||||
  else
 | 
			
		||||
    country=`echo -e $vpnstatus | sed 's/^.*Country: \(\w*\) .*$/\1/'`
 | 
			
		||||
    echo "%{F#859900}%{F-} $country";
 | 
			
		||||
    echo "";
 | 
			
		||||
  fi
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
@@ -579,8 +432,8 @@
 | 
			
		||||
 | 
			
		||||
  label-font = 2
 | 
			
		||||
  format-underline = ${colors.background}
 | 
			
		||||
  click-left = xautolock -disable && notify-send "Lock Disabled"
 | 
			
		||||
  click-right = xautolock -enable && notify-send "Lock Enabled"
 | 
			
		||||
  click-left = xautolock -disable && dunstify --replace=87901 "Lock Disabled"
 | 
			
		||||
  click-right = xautolock -enable && dunstify --replace=87901 "Lock Enabled"
 | 
			
		||||
  format = <label>
 | 
			
		||||
  exec = echo -e "\uf0f4"
 | 
			
		||||
  interval = 1
 | 
			
		||||
@@ -591,8 +444,8 @@
 | 
			
		||||
  [module/dunst]
 | 
			
		||||
  type = custom/text
 | 
			
		||||
  content = ""
 | 
			
		||||
  click-left = notify-send "Notifications Disabled" && sleep 2 && notify-send "DUNST_COMMAND_PAUSE"
 | 
			
		||||
  click-right = notify-send "DUNST_COMMAND_RESUME" && notify-send "Notifications Resumed"
 | 
			
		||||
  click-left = dunstify --replace=10524 "Notifications Disabled" && sleep 2 && dunstify "DUNST_COMMAND_PAUSE"
 | 
			
		||||
  click-right = dunstify "DUNST_COMMAND_RESUME" && dunstify --replace=10524 "Notifications Resumed"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Weather
 | 
			
		||||
@@ -609,7 +462,7 @@ click-left = ~/.config/polybar/scripts/weatheropen.sh
 | 
			
		||||
  label-font = 3
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Emacs Server Scripts
 | 
			
		||||
** Script to retrieve the weather
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/.config/polybar/scripts/weather.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
@@ -733,149 +586,46 @@ click-left = ~/.config/polybar/scripts/weatheropen.sh
 | 
			
		||||
  $BROWSER https://www.yahoo.com/news/weather/france/grenoble/grenoble-593720
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* TODO [#A] Network
 | 
			
		||||
* Network
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [module/network]
 | 
			
		||||
  [module/wired-network]
 | 
			
		||||
  type = internal/network
 | 
			
		||||
  interface = wlp3s0
 | 
			
		||||
  interface = enp0s20f0u9u4
 | 
			
		||||
 | 
			
		||||
  ; Seconds to sleep between updates
 | 
			
		||||
  ; Default: 1
 | 
			
		||||
  interval = 3.0
 | 
			
		||||
  label-connected = %local_ip%
 | 
			
		||||
  label-connected-foreground = ${colors.foreground}
 | 
			
		||||
 | 
			
		||||
  ; ; Test connectivity every Nth update
 | 
			
		||||
  ; ; A value of 0 disables the feature
 | 
			
		||||
  ; ; NOTE: Experimental (needs more testing)
 | 
			
		||||
  ; ; Default: 0
 | 
			
		||||
  ; ;ping-interval = 3
 | 
			
		||||
 | 
			
		||||
  ; ; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%)
 | 
			
		||||
  ; ; Minimum output width of upload/download rate
 | 
			
		||||
  ; ; Default: 3
 | 
			
		||||
  ; udspeed-minwidth = 5
 | 
			
		||||
 | 
			
		||||
  ; ; Accumulate values from all interfaces
 | 
			
		||||
  ; ; when querying for up/downspeed rate
 | 
			
		||||
  ; ; Default: false
 | 
			
		||||
  ; accumulate-stats = true
 | 
			
		||||
 | 
			
		||||
  ; ; Consider an `UNKNOWN` interface state as up.
 | 
			
		||||
  ; ; Some devices have an unknown state, even when they're running
 | 
			
		||||
  ; ; Default: false
 | 
			
		||||
  ; unknown-as-up = true
 | 
			
		||||
 | 
			
		||||
  ; ; Available tags:
 | 
			
		||||
  ; ;   <label-connected> (default)
 | 
			
		||||
  ; ;   <ramp-signal>
 | 
			
		||||
  format-connected-prefix = "  "
 | 
			
		||||
  format-connected-prefix = " "
 | 
			
		||||
  format-connected = <label-connected>
 | 
			
		||||
 | 
			
		||||
  ; ; Available tags:
 | 
			
		||||
  ; ;   <label-disconnected> (default)
 | 
			
		||||
  ; format-disconnected = <label-disconnected>
 | 
			
		||||
  label-disconnected = ""
 | 
			
		||||
  label-disconnected-foreground = ${colors.comments}
 | 
			
		||||
 | 
			
		||||
  ; ; Available tags:
 | 
			
		||||
  ; ;   <label-connected> (default)
 | 
			
		||||
  ; ;   <label-packetloss>
 | 
			
		||||
  ; ;   <animation-packetloss>
 | 
			
		||||
  ; format-packetloss = <animation-packetloss> <label-connected>
 | 
			
		||||
  format-disconnected = <label-disconnected>
 | 
			
		||||
 | 
			
		||||
  [module/wireless-network]
 | 
			
		||||
  type = internal/network
 | 
			
		||||
  interface = wlp2s0
 | 
			
		||||
 | 
			
		||||
  ; ; Available tokens:
 | 
			
		||||
  ; ;   %ifname%    [wireless+wired]
 | 
			
		||||
  ; ;   %local_ip%  [wireless+wired]
 | 
			
		||||
  ; ;   %local_ip6% [wireless+wired]
 | 
			
		||||
  ; ;   %essid%     [wireless]
 | 
			
		||||
  ; ;   %signal%    [wireless]
 | 
			
		||||
  ; ;   %upspeed%   [wireless+wired]
 | 
			
		||||
  ; ;   %downspeed% [wireless+wired]
 | 
			
		||||
  ; ;   %linkspeed% [wired]
 | 
			
		||||
  ; ; Default: %ifname% %local_ip%
 | 
			
		||||
  label-connected = %essid%
 | 
			
		||||
  ; label-connected-foreground = #eefafafa
 | 
			
		||||
  label-connected-foreground = ${colors.foreground}
 | 
			
		||||
 | 
			
		||||
  ; ; Available tokens:
 | 
			
		||||
  ; ;   %ifname%    [wireless+wired]
 | 
			
		||||
  ; ; Default: (none)
 | 
			
		||||
  ; label-disconnected = not connected
 | 
			
		||||
  ; label-disconnected-foreground = #66ffffff
 | 
			
		||||
  format-connected-prefix = " "
 | 
			
		||||
  format-connected = <label-connected>
 | 
			
		||||
 | 
			
		||||
  ; ; Available tokens:
 | 
			
		||||
  ; ;   %ifname%    [wireless+wired]
 | 
			
		||||
  ; ;   %local_ip%  [wireless+wired]
 | 
			
		||||
  ; ;   %local_ip6% [wireless+wired]
 | 
			
		||||
  ; ;   %essid%     [wireless]
 | 
			
		||||
  ; ;   %signal%    [wireless]
 | 
			
		||||
  ; ;   %linkspeed% [wired]
 | 
			
		||||
  ; ; Default: (none)
 | 
			
		||||
  ; ;label-packetloss = %essid%
 | 
			
		||||
  ; ;label-packetloss-foreground = #eefafafa
 | 
			
		||||
  label-disconnected = ""
 | 
			
		||||
  label-disconnected-foreground = ${colors.comments}
 | 
			
		||||
 | 
			
		||||
  ; ; Only applies if <ramp-signal> is used
 | 
			
		||||
  ; ramp-signal-0 = 😱
 | 
			
		||||
  ; ramp-signal-1 = 😠
 | 
			
		||||
  ; ramp-signal-2 = 😒
 | 
			
		||||
  ; ramp-signal-3 = 😊
 | 
			
		||||
  ; ramp-signal-4 = 😃
 | 
			
		||||
  ; ramp-signal-5 = 😈
 | 
			
		||||
 | 
			
		||||
  ; ; Only applies if <animation-packetloss> is used
 | 
			
		||||
  ; animation-packetloss-0 = ⚠
 | 
			
		||||
  ; animation-packetloss-0-foreground = #ffa64c
 | 
			
		||||
  ; animation-packetloss-1 = 📶
 | 
			
		||||
  ; animation-packetloss-1-foreground = #000000
 | 
			
		||||
  ; ; Framerate in milliseconds
 | 
			
		||||
  ; animation-packetloss-framerate = 500
 | 
			
		||||
  format-disconnected = <label-disconnected>
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Logout
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/logout]
 | 
			
		||||
  type = custom/text
 | 
			
		||||
  content = ""
 | 
			
		||||
  click-left = i3exit switch_user
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Hibernate
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/hibernate]
 | 
			
		||||
  type = custom/text
 | 
			
		||||
  content = ""
 | 
			
		||||
  click-left = i3exit hibernate
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Shutdown
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/shutdown]
 | 
			
		||||
  type = custom/text
 | 
			
		||||
  content = ""
 | 
			
		||||
  click-left = i3exit shutdown
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Reboot
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/reboot]
 | 
			
		||||
  type = custom/text
 | 
			
		||||
  content = ""
 | 
			
		||||
  click-left = i3exit logout
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Lock
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/lock]
 | 
			
		||||
  type = custom/text
 | 
			
		||||
  content = ""
 | 
			
		||||
  click-left = blurlock
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* TODO [#B] Screenshot
 | 
			
		||||
- [ ] the right click is not working
 | 
			
		||||
* Screenshot
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  [module/screenshot]
 | 
			
		||||
  type = custom/text
 | 
			
		||||
  content = ""
 | 
			
		||||
  click-left = scrot -e 'feh $f -x' --delay 1
 | 
			
		||||
  click-right = scrot -s -e 'feh $f -x'
 | 
			
		||||
  click-left = ~/scripts/screenshot.sh
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Scripts
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,17 @@
 | 
			
		||||
#+TITLE: Qutebrowser Configuration
 | 
			
		||||
:DRAWER:
 | 
			
		||||
#+PROPERTY: header-args+ :comments none
 | 
			
		||||
#+PROPERTY: header-args+ :mkdirp yes
 | 
			
		||||
#+PROPERTY: header-args+ :tangle ~/.config/qutebrowser/config.py
 | 
			
		||||
:END:
 | 
			
		||||
 | 
			
		||||
* Import
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
from qutebrowser.config.configfiles import ConfigAPI
 | 
			
		||||
from qutebrowser.config.config import ConfigContainer
 | 
			
		||||
 | 
			
		||||
import sys, os
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* General config
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
@@ -527,14 +537,18 @@ c.tabs.wrap = False
 | 
			
		||||
c.url.searchengines = {
 | 
			
		||||
    'DEFAULT': 'https://www.duckduckgo.org/?q={}',
 | 
			
		||||
    'aw': 'https://wiki.archlinux.org/?search={}',
 | 
			
		||||
    'w':  'https://en.wikipedia.org/wiki/Special:Search?search={}',
 | 
			
		||||
    'g':  'https://www.google.com/search?q={}',
 | 
			
		||||
    'wi': 'https://en.wikipedia.org/wiki/Special:Search?search={}',
 | 
			
		||||
    'go': 'https://www.google.com/search?q={}',
 | 
			
		||||
    'gc': 'https://scholar.google.fr/scholar?hl=fr&as_sdt=0%2C5&q={}&btnG=',
 | 
			
		||||
    'gm': 'https://www.google.com/maps/search/{}/',
 | 
			
		||||
    'yt': 'https://www.youtube.com/results?search_query={}',
 | 
			
		||||
    'gh': 'https://github.com/search?utf8={}&q=test&type=',
 | 
			
		||||
    'r':  'https://www.reddit.com/search?q={}',
 | 
			
		||||
    'gh': 'https://github.com/search?q={}',
 | 
			
		||||
    're': 'https://www.reddit.com/search?q={}',
 | 
			
		||||
    'lb': 'http://gen.lib.rus.ec/search.php?req={}',
 | 
			
		||||
    'la': 'http://gen.lib.rus.ec/scimag/index.php?s={}',
 | 
			
		||||
    'sm': 'https://www.openstreetmap.org/search?query={}',
 | 
			
		||||
    'am': 'https://www.amazon.fr/s?k={}',
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Page(s) to open at the start.
 | 
			
		||||
@@ -877,38 +891,50 @@ c.url.start_pages = ['https://start.duckduckgo.com']
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Custom Bindings
 | 
			
		||||
Use Pass to fill password and username (configuration is done in =~/.config/qutebrowser/password_fill_rc=).
 | 
			
		||||
*** Use Pass to fill password and username (configuration is done in =~/.config/qutebrowser/password_fill_rc=).
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  config.bind(',p', 'spawn --userscript password_fill')
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Open Youtube video using MPV
 | 
			
		||||
*** Open Youtube video using MPV
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  config.bind(',m', 'spawn mpv {url}')
 | 
			
		||||
  config.bind(',M', ':hint links spawn mpv {hint-url}')
 | 
			
		||||
  config.bind(',m', 'spawn --detach mpv --force-window yes {url}')
 | 
			
		||||
  config.bind(',M', 'hint links spawn --detach mpv --force-window yes {hint-url}')
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Cast to Chromecast
 | 
			
		||||
*** Cast Youtube to Chromecast
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  config.bind(',c', ':hint links spawn catt cast {hint-url}')
 | 
			
		||||
  config.bind(',c', 'spawn --userscript ~/.config/qutebrowser/userscripts/cast.sh {url}')
 | 
			
		||||
  config.bind(',C', 'hint links spawn --userscript ~/.config/qutebrowser/userscripts/cast.sh {hint-url}')
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Add url to refile.org
 | 
			
		||||
*** Add url to refile.org
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  config.bind(',r', ':spawn --userscript ~/.config/qutebrowser/userscripts/add-to-orgmode-refile.sh')
 | 
			
		||||
  config.bind(',r', 'spawn --userscript ~/.config/qutebrowser/userscripts/add-to-orgmode-refile.sh')
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Add page to Bookmarks
 | 
			
		||||
*** Add page to Bookmarks
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  config.bind(',b', 'spawn buku -a {url}')
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
Open bookmark using buku
 | 
			
		||||
*** Open bookmark using buku
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  config.bind(',o', 'spawn ~/bin/buku_run')
 | 
			
		||||
  config.bind(',o', 'spawn ~/bin/bukurun')
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Userscripts
 | 
			
		||||
** Cast Youtube to Chromecast
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/qutebrowser/userscripts/cast.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  youtube-dl -o - $1 | castnow --quiet -
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Add url to refile.org
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/qutebrowser/userscripts/add-to-orgmode-refile.sh
 | 
			
		||||
@@ -918,10 +944,11 @@ Open bookmark using buku
 | 
			
		||||
 | 
			
		||||
Add the date and time of add to properties.
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
echo "* TODO $QUTE_TITLE" >> ~/Dropbox/org/refile.org
 | 
			
		||||
echo "$QUTE_URL" >> ~/Dropbox/org/refile.org
 | 
			
		||||
echo "message-info 'Added to refile.org'" >> "$QUTE_FIFO"
 | 
			
		||||
  echo "* TODO $QUTE_TITLE" >> ~/Dropbox/org/refile.org
 | 
			
		||||
  echo "$QUTE_URL" >> ~/Dropbox/org/refile.org
 | 
			
		||||
  echo "message-info 'Added to refile.org'" >> "$QUTE_FIFO"
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Password_fill_rc
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args+: :tangle ~/.config/qutebrowser/password_fill_rc
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,7 @@ set show_hidden_bookmarks true
 | 
			
		||||
 | 
			
		||||
# Which colorscheme to use?  These colorschemes are available by default:
 | 
			
		||||
# default, jungle, snow, solarized
 | 
			
		||||
set colorscheme solarized
 | 
			
		||||
set colorscheme gruvbox
 | 
			
		||||
 | 
			
		||||
# Preview files on the rightmost column?
 | 
			
		||||
# And collapse (shrink) the last column if there is nothing to preview?
 | 
			
		||||
@@ -208,7 +208,7 @@ alias travel     scout -aefiklst
 | 
			
		||||
** Some Custom Keybindings
 | 
			
		||||
*** Extract
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  map ,x shell ex %f
 | 
			
		||||
  map ,x shell atool -x %f
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** TODO Compress
 | 
			
		||||
@@ -231,128 +231,126 @@ map ,z shell tar -cvzf %f.tar.gz %f
 | 
			
		||||
  map ,t shell curl --progress-bar --upload-file %f https://transfer.sh/$(basename $1) | xclip -in -selection clipboard;
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Open current folder with PCManFM
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  map O shell nohup pcmanfm %d &
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Define keys for the browser
 | 
			
		||||
*** Basic
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map     Q quit!
 | 
			
		||||
map     q quit
 | 
			
		||||
copymap q ZZ ZQ
 | 
			
		||||
  map     Q quit!
 | 
			
		||||
  map     q quit
 | 
			
		||||
  copymap q ZZ ZQ
 | 
			
		||||
 | 
			
		||||
map R     reload_cwd
 | 
			
		||||
map <C-r> reset
 | 
			
		||||
map <C-l> redraw_window
 | 
			
		||||
map <C-c> abort
 | 
			
		||||
map <esc> change_mode normal
 | 
			
		||||
map ~ set viewmode!
 | 
			
		||||
  map R     reload_cwd
 | 
			
		||||
  map <C-r> reset
 | 
			
		||||
  map <C-l> redraw_window
 | 
			
		||||
  map <C-c> abort
 | 
			
		||||
  map <esc> change_mode normal
 | 
			
		||||
  map ~ set viewmode!
 | 
			
		||||
 | 
			
		||||
map i display_file
 | 
			
		||||
map ? help
 | 
			
		||||
map W display_log
 | 
			
		||||
map w taskview_open
 | 
			
		||||
  map i display_file
 | 
			
		||||
  map ? help
 | 
			
		||||
  map W display_log
 | 
			
		||||
  map w taskview_open
 | 
			
		||||
 | 
			
		||||
map : console
 | 
			
		||||
map ; console
 | 
			
		||||
map ! console shell%space
 | 
			
		||||
map @ console -p6 shell  %%s
 | 
			
		||||
map # console shell -p%space
 | 
			
		||||
  map : console
 | 
			
		||||
  map ; console
 | 
			
		||||
  map ! console shell%space
 | 
			
		||||
  map @ console -p6 shell  %%s
 | 
			
		||||
  map # console shell -p%space
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Open Shell in current directory
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map s shell $SHELL
 | 
			
		||||
# Open External Shell in current directory
 | 
			
		||||
map S shell nohup termite &
 | 
			
		||||
  map s shell $SHELL
 | 
			
		||||
  # Open External Shell in current directory
 | 
			
		||||
  map S shell nohup termite &
 | 
			
		||||
 | 
			
		||||
map r chain draw_possible_programs; console open_with%%space
 | 
			
		||||
  map r chain draw_possible_programs; console open_with%%space
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Filter
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map f console filter%space
 | 
			
		||||
# Reset filter
 | 
			
		||||
map F filter
 | 
			
		||||
 | 
			
		||||
map cd console cd%space
 | 
			
		||||
  map f console filter%space
 | 
			
		||||
  # Reset filter
 | 
			
		||||
  map F filter
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Change the line mode
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map Mf linemode filename
 | 
			
		||||
map Mi linemode fileinfo
 | 
			
		||||
map Mm linemode mtime
 | 
			
		||||
map Mp linemode permissions
 | 
			
		||||
map Ms linemode sizemtime
 | 
			
		||||
map Mt linemode metatitle
 | 
			
		||||
  map Mf linemode filename
 | 
			
		||||
  map Mi linemode fileinfo
 | 
			
		||||
  map Mm linemode mtime
 | 
			
		||||
  map Mp linemode permissions
 | 
			
		||||
  map Ms linemode sizemtime
 | 
			
		||||
  map Mt linemode metatitle
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Tagging / Marking
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map t       tag_toggle
 | 
			
		||||
map ut      tag_remove
 | 
			
		||||
map <Space> mark_files toggle=True
 | 
			
		||||
map v       mark_files all=True toggle=True
 | 
			
		||||
map uv      mark_files all=True val=False
 | 
			
		||||
map V       toggle_visual_mode
 | 
			
		||||
map uV      toggle_visual_mode reverse=True
 | 
			
		||||
  map t       tag_toggle
 | 
			
		||||
  map ut      tag_remove
 | 
			
		||||
  map <Space> mark_files toggle=True
 | 
			
		||||
  map v       mark_files all=True toggle=True
 | 
			
		||||
  map uv      mark_files all=True val=False
 | 
			
		||||
  map V       toggle_visual_mode
 | 
			
		||||
  map uV      toggle_visual_mode reverse=True
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** VIM-like
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
copymap <UP>       k
 | 
			
		||||
copymap <DOWN>     j
 | 
			
		||||
copymap <LEFT>     h
 | 
			
		||||
copymap <RIGHT>    l
 | 
			
		||||
copymap <HOME>     gg
 | 
			
		||||
copymap <END>      G
 | 
			
		||||
copymap <PAGEDOWN> <C-F>
 | 
			
		||||
copymap <PAGEUP>   <C-B>
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** TODO - Is that usefull?
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map J  move down=0.5  pages=True
 | 
			
		||||
map K  move up=0.5    pages=True
 | 
			
		||||
copymap J <C-D>
 | 
			
		||||
copymap K <C-U>
 | 
			
		||||
  copymap <UP>       k
 | 
			
		||||
  copymap <DOWN>     j
 | 
			
		||||
  copymap <LEFT>     h
 | 
			
		||||
  copymap <RIGHT>    l
 | 
			
		||||
  copymap <HOME>     gg
 | 
			
		||||
  copymap <END>      G
 | 
			
		||||
  copymap <PAGEDOWN> <C-F>
 | 
			
		||||
  copymap <PAGEUP>   <C-B>
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Jumping around
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map H     history_go -1
 | 
			
		||||
map L     history_go 1
 | 
			
		||||
map ]     move_parent 1
 | 
			
		||||
map [     move_parent -1
 | 
			
		||||
map }     traverse
 | 
			
		||||
  map H     history_go -1
 | 
			
		||||
  map L     history_go 1
 | 
			
		||||
  map ]     move_parent 1
 | 
			
		||||
  map [     move_parent -1
 | 
			
		||||
  map }     traverse
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** TODO Go to special folders
 | 
			
		||||
*** TODO [#A] Go to special folders
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map gh cd ~
 | 
			
		||||
map gd cd ~/gdrive/These
 | 
			
		||||
map gD cd ~/Downloads
 | 
			
		||||
  map cd console cd%space
 | 
			
		||||
 | 
			
		||||
  map gh cd ~
 | 
			
		||||
  map gm cd ~/MEGA/These
 | 
			
		||||
  map gd cd ~/Downloads
 | 
			
		||||
  map gc cd ~/.config/literate-dotfiles/
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** External Programs
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map E edit
 | 
			
		||||
  map E edit
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Get size of folders
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
# Get size of all folders
 | 
			
		||||
map du shell -p du --max-depth=1 -h --apparent-size
 | 
			
		||||
# Get size of all folders and sort them
 | 
			
		||||
map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
 | 
			
		||||
  # Get size of all folders
 | 
			
		||||
  map du shell -p du --max-depth=1 -h --apparent-size
 | 
			
		||||
  # Get size of all folders and sort them
 | 
			
		||||
  map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Yank path of directory/file
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
# Yank path of current directory/file
 | 
			
		||||
map yp shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b
 | 
			
		||||
# Yank path of directory
 | 
			
		||||
map yd shell -f echo -n %d    | xsel -i; xsel -o | xsel -i -b
 | 
			
		||||
# Yank filename
 | 
			
		||||
map yn shell -f echo -n %f    | xsel -i; xsel -o | xsel -i -b
 | 
			
		||||
  # Yank path of current directory/file
 | 
			
		||||
  map yp shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b
 | 
			
		||||
  # Yank path of directory
 | 
			
		||||
  map yd shell -f echo -n %d    | xsel -i; xsel -o | xsel -i -b
 | 
			
		||||
  # Yank filename
 | 
			
		||||
  map yn shell -f echo -n %f    | xsel -i; xsel -o | xsel -i -b
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Filesystem Operations
 | 
			
		||||
@@ -362,168 +360,168 @@ map = chmod
 | 
			
		||||
 | 
			
		||||
*** TODO Rename
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
#map cw console rename%space
 | 
			
		||||
map cw eval fm.execute_console("bulkrename") if fm.thisdir.marked_items else fm.open_console("rename ")
 | 
			
		||||
  #map cw console rename%space
 | 
			
		||||
  map cw eval fm.execute_console("bulkrename") if fm.thisdir.marked_items else fm.open_console("rename ")
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Rename files - like vim bindings
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map a  rename_append
 | 
			
		||||
map A  eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
 | 
			
		||||
map I  eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
 | 
			
		||||
  map a  rename_append
 | 
			
		||||
  map A  eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
 | 
			
		||||
  map I  eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Paste files
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map pp paste
 | 
			
		||||
map po paste overwrite=True
 | 
			
		||||
map pP paste append=True
 | 
			
		||||
map pO paste overwrite=True append=True
 | 
			
		||||
map pl paste_symlink relative=False
 | 
			
		||||
map pL paste_symlink relative=True
 | 
			
		||||
map phl paste_hardlink
 | 
			
		||||
map pht paste_hardlinked_subtree
 | 
			
		||||
  map pp paste
 | 
			
		||||
  map po paste overwrite=True
 | 
			
		||||
  map pP paste append=True
 | 
			
		||||
  map pO paste overwrite=True append=True
 | 
			
		||||
  map pl paste_symlink relative=False
 | 
			
		||||
  map pL paste_symlink relative=True
 | 
			
		||||
  map phl paste_hardlink
 | 
			
		||||
  map pht paste_hardlinked_subtree
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Delete and move files
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map dD console delete
 | 
			
		||||
map dd cut
 | 
			
		||||
map ud uncut
 | 
			
		||||
map da cut mode=add
 | 
			
		||||
map dr cut mode=remove
 | 
			
		||||
map dt cut mode=toggle
 | 
			
		||||
  map dD console delete
 | 
			
		||||
  map dd cut
 | 
			
		||||
  map ud uncut
 | 
			
		||||
  map da cut mode=add
 | 
			
		||||
  map dr cut mode=remove
 | 
			
		||||
  map dt cut mode=toggle
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Copy files
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map yy copy
 | 
			
		||||
map uy uncut
 | 
			
		||||
map ya copy mode=add
 | 
			
		||||
map yr copy mode=remove
 | 
			
		||||
map yt copy mode=toggle
 | 
			
		||||
  map yy copy
 | 
			
		||||
  map uy uncut
 | 
			
		||||
  map ya copy mode=add
 | 
			
		||||
  map yr copy mode=remove
 | 
			
		||||
  map yt copy mode=toggle
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Temporary workarounds
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
 | 
			
		||||
map dG  eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
 | 
			
		||||
map dj  eval fm.cut(dirarg=dict(down=1), narg=quantifier)
 | 
			
		||||
map dk  eval fm.cut(dirarg=dict(up=1), narg=quantifier)
 | 
			
		||||
map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
 | 
			
		||||
map yG  eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
 | 
			
		||||
map yj  eval fm.copy(dirarg=dict(down=1), narg=quantifier)
 | 
			
		||||
map yk  eval fm.copy(dirarg=dict(up=1), narg=quantifier)
 | 
			
		||||
  map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
 | 
			
		||||
  map dG  eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
 | 
			
		||||
  map dj  eval fm.cut(dirarg=dict(down=1), narg=quantifier)
 | 
			
		||||
  map dk  eval fm.cut(dirarg=dict(up=1), narg=quantifier)
 | 
			
		||||
  map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
 | 
			
		||||
  map yG  eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
 | 
			
		||||
  map yj  eval fm.copy(dirarg=dict(down=1), narg=quantifier)
 | 
			
		||||
  map yk  eval fm.copy(dirarg=dict(up=1), narg=quantifier)
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Searching
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map /  console search%space
 | 
			
		||||
map n  search_next
 | 
			
		||||
map N  search_next forward=False
 | 
			
		||||
map ct search_next order=tag
 | 
			
		||||
map cs search_next order=size
 | 
			
		||||
map ci search_next order=mimetype
 | 
			
		||||
map cc search_next order=ctime
 | 
			
		||||
map cm search_next order=mtime
 | 
			
		||||
map ca search_next order=atime
 | 
			
		||||
  map /  console search%space
 | 
			
		||||
  map n  search_next
 | 
			
		||||
  map N  search_next forward=False
 | 
			
		||||
  map ct search_next order=tag
 | 
			
		||||
  map cs search_next order=size
 | 
			
		||||
  map ci search_next order=mimetype
 | 
			
		||||
  map cc search_next order=ctime
 | 
			
		||||
  map cm search_next order=mtime
 | 
			
		||||
  map ca search_next order=atime
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Tabs
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map <C-n>     tab_new ~
 | 
			
		||||
map <C-w>     tab_close
 | 
			
		||||
map <TAB>     tab_move 1
 | 
			
		||||
map <S-TAB>   tab_move -1
 | 
			
		||||
map <A-Right> tab_move 1
 | 
			
		||||
map <A-Left>  tab_move -1
 | 
			
		||||
map gt        tab_move 1
 | 
			
		||||
map gT        tab_move -1
 | 
			
		||||
map gn        tab_new ~
 | 
			
		||||
map gc        tab_close
 | 
			
		||||
map uq        tab_restore
 | 
			
		||||
map <a-1>     tab_open 1
 | 
			
		||||
map <a-2>     tab_open 2
 | 
			
		||||
map <a-3>     tab_open 3
 | 
			
		||||
map <a-4>     tab_open 4
 | 
			
		||||
map <a-5>     tab_open 5
 | 
			
		||||
map <a-6>     tab_open 6
 | 
			
		||||
map <a-7>     tab_open 7
 | 
			
		||||
map <a-8>     tab_open 8
 | 
			
		||||
map <a-9>     tab_open 9
 | 
			
		||||
  map <C-n>     tab_new ~
 | 
			
		||||
  map <C-w>     tab_close
 | 
			
		||||
  map <TAB>     tab_move 1
 | 
			
		||||
  map <S-TAB>   tab_move -1
 | 
			
		||||
  map <A-Right> tab_move 1
 | 
			
		||||
  map <A-Left>  tab_move -1
 | 
			
		||||
  map gt        tab_move 1
 | 
			
		||||
  map gT        tab_move -1
 | 
			
		||||
  map gn        tab_new ~
 | 
			
		||||
  map gc        tab_close
 | 
			
		||||
  map uq        tab_restore
 | 
			
		||||
  map <a-1>     tab_open 1
 | 
			
		||||
  map <a-2>     tab_open 2
 | 
			
		||||
  map <a-3>     tab_open 3
 | 
			
		||||
  map <a-4>     tab_open 4
 | 
			
		||||
  map <a-5>     tab_open 5
 | 
			
		||||
  map <a-6>     tab_open 6
 | 
			
		||||
  map <a-7>     tab_open 7
 | 
			
		||||
  map <a-8>     tab_open 8
 | 
			
		||||
  map <a-9>     tab_open 9
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Sorting
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map or set sort_reverse!
 | 
			
		||||
map oz set sort=random
 | 
			
		||||
map os chain set sort=size;      set sort_reverse=False
 | 
			
		||||
map ob chain set sort=basename;  set sort_reverse=False
 | 
			
		||||
map on chain set sort=natural;   set sort_reverse=False
 | 
			
		||||
map om chain set sort=mtime;     set sort_reverse=False
 | 
			
		||||
map oc chain set sort=ctime;     set sort_reverse=False
 | 
			
		||||
map oa chain set sort=atime;     set sort_reverse=False
 | 
			
		||||
map ot chain set sort=type;      set sort_reverse=False
 | 
			
		||||
map oe chain set sort=extension; set sort_reverse=False
 | 
			
		||||
  map or set sort_reverse!
 | 
			
		||||
  map oz set sort=random
 | 
			
		||||
  map os chain set sort=size;      set sort_reverse=False
 | 
			
		||||
  map ob chain set sort=basename;  set sort_reverse=False
 | 
			
		||||
  map on chain set sort=natural;   set sort_reverse=False
 | 
			
		||||
  map om chain set sort=mtime;     set sort_reverse=False
 | 
			
		||||
  map oc chain set sort=ctime;     set sort_reverse=False
 | 
			
		||||
  map oa chain set sort=atime;     set sort_reverse=False
 | 
			
		||||
  map ot chain set sort=type;      set sort_reverse=False
 | 
			
		||||
  map oe chain set sort=extension; set sort_reverse=False
 | 
			
		||||
 | 
			
		||||
map oS chain set sort=size;      set sort_reverse=True
 | 
			
		||||
map oB chain set sort=basename;  set sort_reverse=True
 | 
			
		||||
map oN chain set sort=natural;   set sort_reverse=True
 | 
			
		||||
map oM chain set sort=mtime;     set sort_reverse=True
 | 
			
		||||
map oC chain set sort=ctime;     set sort_reverse=True
 | 
			
		||||
map oA chain set sort=atime;     set sort_reverse=True
 | 
			
		||||
map oT chain set sort=type;      set sort_reverse=True
 | 
			
		||||
map oE chain set sort=extension; set sort_reverse=True
 | 
			
		||||
  map oS chain set sort=size;      set sort_reverse=True
 | 
			
		||||
  map oB chain set sort=basename;  set sort_reverse=True
 | 
			
		||||
  map oN chain set sort=natural;   set sort_reverse=True
 | 
			
		||||
  map oM chain set sort=mtime;     set sort_reverse=True
 | 
			
		||||
  map oC chain set sort=ctime;     set sort_reverse=True
 | 
			
		||||
  map oA chain set sort=atime;     set sort_reverse=True
 | 
			
		||||
  map oT chain set sort=type;      set sort_reverse=True
 | 
			
		||||
  map oE chain set sort=extension; set sort_reverse=True
 | 
			
		||||
 | 
			
		||||
map dc get_cumulative_size
 | 
			
		||||
  map dc get_cumulative_size
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Settings
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map zc    set collapse_preview!
 | 
			
		||||
map zd    set sort_directories_first!
 | 
			
		||||
map zh    set show_hidden!
 | 
			
		||||
map <C-h> set show_hidden!
 | 
			
		||||
map zI    set flushinput!
 | 
			
		||||
map zi    set preview_images!
 | 
			
		||||
map zm    set mouse_enabled!
 | 
			
		||||
map zp    set preview_files!
 | 
			
		||||
map zP    set preview_directories!
 | 
			
		||||
map zs    set sort_case_insensitive!
 | 
			
		||||
map zu    set autoupdate_cumulative_size!
 | 
			
		||||
map zv    set use_preview_script!
 | 
			
		||||
map zf    console filter%space
 | 
			
		||||
  map zc    set collapse_preview!
 | 
			
		||||
  map zd    set sort_directories_first!
 | 
			
		||||
  map zh    set show_hidden!
 | 
			
		||||
  map <C-h> set show_hidden!
 | 
			
		||||
  map zI    set flushinput!
 | 
			
		||||
  map zi    set preview_images!
 | 
			
		||||
  map zm    set mouse_enabled!
 | 
			
		||||
  map zp    set preview_files!
 | 
			
		||||
  map zP    set preview_directories!
 | 
			
		||||
  map zs    set sort_case_insensitive!
 | 
			
		||||
  map zu    set autoupdate_cumulative_size!
 | 
			
		||||
  map zv    set use_preview_script!
 | 
			
		||||
  map zf    console filter%space
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Bookmarks
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map `<any>  enter_bookmark %any
 | 
			
		||||
map '<any>  enter_bookmark %any
 | 
			
		||||
map m<any>  set_bookmark %any
 | 
			
		||||
map um<any> unset_bookmark %any
 | 
			
		||||
  map `<any>  enter_bookmark %any
 | 
			
		||||
  map '<any>  enter_bookmark %any
 | 
			
		||||
  map m<any>  set_bookmark %any
 | 
			
		||||
  map um<any> unset_bookmark %any
 | 
			
		||||
 | 
			
		||||
map m<bg>   draw_bookmarks
 | 
			
		||||
copymap m<bg>  um<bg> `<bg> '<bg>
 | 
			
		||||
  map m<bg>   draw_bookmarks
 | 
			
		||||
  copymap m<bg>  um<bg> `<bg> '<bg>
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Custom Mapping
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
map <C-f> fzf_select
 | 
			
		||||
  map <C-f> fzf_select
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** Generate all the chmod bindings with some python help:
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map +{0}  shell -f chmod u+{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map +{0}  shell -f chmod u+{0} %s".format(arg))
 | 
			
		||||
 | 
			
		||||
eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
 | 
			
		||||
eval for arg in "rwxXst": cmd("map -{0}  shell -f chmod u-{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
 | 
			
		||||
  eval for arg in "rwxXst": cmd("map -{0}  shell -f chmod u-{0} %s".format(arg))
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Define keys for the console
 | 
			
		||||
 
 | 
			
		||||
@@ -151,250 +151,6 @@
 | 
			
		||||
  }
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Rofi Menu Config
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/rofimenu/rofimenu.config
 | 
			
		||||
  :header-args+: :comments none :mkdirp yes
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# =============================================================
 | 
			
		||||
# Configuration file for rofimenu script
 | 
			
		||||
#
 | 
			
		||||
# Top level menu consists of modi names from modilist.
 | 
			
		||||
# Modilist is a comma separated list of default modi (drun,run...) and/or custom modi.
 | 
			
		||||
# Names of default modi can be set as rofi options (e.g. -display-drun Applications).
 | 
			
		||||
# Custom modi format: "modi_name:modi_script".
 | 
			
		||||
# Menu functions from this script can be used as modi like this "<menu_name>:$thisscript -menu <menu_function>"
 | 
			
		||||
# =============================================================
 | 
			
		||||
 | 
			
		||||
# pause needed for smooth transition when menu command refers to other modi
 | 
			
		||||
DELAY=0.06
 | 
			
		||||
delay() {
 | 
			
		||||
  sleep $DELAY
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# define modi labels for menu
 | 
			
		||||
 | 
			
		||||
FAV=" Favourites"
 | 
			
		||||
DRUN=" Applications"
 | 
			
		||||
CAT=" Categories"
 | 
			
		||||
RUN=" Run"
 | 
			
		||||
MENU=" Edit Menu"
 | 
			
		||||
EXIT=" Exit"
 | 
			
		||||
 | 
			
		||||
modilist="\
 | 
			
		||||
$FAV:$thisscript -menu ${FAV#* },\
 | 
			
		||||
drun,\
 | 
			
		||||
$CAT:$thisscript -menu ${CAT#* },\
 | 
			
		||||
run,\
 | 
			
		||||
$MENU:$thisscript -menu Menu_settings,\
 | 
			
		||||
$EXIT:$thisscript -menu ${EXIT#* }"
 | 
			
		||||
 | 
			
		||||
# Menu functions print lines in format "label:command".
 | 
			
		||||
 | 
			
		||||
Menu_settings() {
 | 
			
		||||
  echo " Edit config:$GUI_EDITOR $ROFIMENU_CONFIG && $thisscript -show \'$MENU\'"
 | 
			
		||||
  echo " Reset config:rm $ROFIMENU_CONFIG && delay; $thisscript -show \'$MENU\'"
 | 
			
		||||
  echo "──────────────:true"
 | 
			
		||||
  echo " Edit theme:$GUI_EDITOR $ROFIMENU_THEME && $thisscript -show \'$MENU\'"
 | 
			
		||||
  echo " Reset theme:rm $ROFIMENU_THEME && delay; $thisscript -show \'$MENU\'"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Favourites() {
 | 
			
		||||
  echo " Terminal:default-terminal"
 | 
			
		||||
  echo " File Manager:xdg-open ~"
 | 
			
		||||
  echo " Browser:default-browser"
 | 
			
		||||
  echo " Settings:default-terminal -e bmenu"
 | 
			
		||||
  echo " Search:rofi-finder.sh"
 | 
			
		||||
  # echo "$EXIT: delay; delay; $thisscript -show \'$EXIT\'"		# This refers to modi from the same script; needs delay
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Exit() {
 | 
			
		||||
  echo " lock:screenlock"
 | 
			
		||||
  echo " suspend:systemctl suspend"
 | 
			
		||||
  echo " hibernate:systemctl hibernate"
 | 
			
		||||
  echo " logout:xdotool key --clearmodifiers super+shift+q"
 | 
			
		||||
  echo " reboot:systemctl reboot"
 | 
			
		||||
  echo " poweroff:systemctl poweroff"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Categories() {
 | 
			
		||||
  SUBMENU_MARK=""
 | 
			
		||||
  IFS='
 | 
			
		||||
'
 | 
			
		||||
  # Newline separated list, each line has format "[symbol ][alias:]category"
 | 
			
		||||
  # Category with alias will be shown in menu under that alias
 | 
			
		||||
  # The first entry below is an alias for " " so it shows all applications
 | 
			
		||||
desired="\
 | 
			
		||||
 Applications:
 | 
			
		||||
 Favorites
 | 
			
		||||
 Accessories:Utility
 | 
			
		||||
 Development
 | 
			
		||||
 Documentation
 | 
			
		||||
 Education
 | 
			
		||||
 Graphics
 | 
			
		||||
 Internet:Network
 | 
			
		||||
 Multimedia:AudioVideo
 | 
			
		||||
 Office
 | 
			
		||||
 Settings
 | 
			
		||||
 System"
 | 
			
		||||
 | 
			
		||||
  # determine max line length and set tab position for subcategory mark
 | 
			
		||||
  maxlength=0
 | 
			
		||||
  for line in $desired ; do
 | 
			
		||||
    label="${line%:*}"
 | 
			
		||||
    if [ ${#label} -gt $maxlength ] ; then
 | 
			
		||||
      maxlength=${#label}
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
  submenu_tab=$(($maxlength+3))
 | 
			
		||||
 | 
			
		||||
  present="$(grep Categories /usr/share/applications/*.desktop \
 | 
			
		||||
    | cut -d'=' -f2 \
 | 
			
		||||
    | sed 's/;/\n/g' \
 | 
			
		||||
    | LC_COLLATE=POSIX sort --ignore-case --unique)"
 | 
			
		||||
 | 
			
		||||
  linenumber=0
 | 
			
		||||
  for line in $desired ; do
 | 
			
		||||
    category="${line##*[ :]}"
 | 
			
		||||
    label="$(echo -e ${line%:*}\\t${SUBMENU_MARK} | expand -t $submenu_tab)"	## add submenu mark
 | 
			
		||||
    if [ $(echo "$present"|grep -w -c "$category") -gt 0 ] ; then
 | 
			
		||||
      echo "$label:activate_category \"$label\" \"$category\" $linenumber"
 | 
			
		||||
      linenumber=$(($linenumber+1))
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Desktop menu parameters
 | 
			
		||||
 | 
			
		||||
DT_MODI="Desktop:$thisscript -menu Desktop"
 | 
			
		||||
 | 
			
		||||
Desktop() {
 | 
			
		||||
  echo " Terminal:default-terminal"
 | 
			
		||||
  echo " File Manager:xdg-open ~"
 | 
			
		||||
  echo " Browser:default-browser"
 | 
			
		||||
  #TODO determine number of lines before categories
 | 
			
		||||
  addlinenumber=3
 | 
			
		||||
  eval $(xdotool search --class rofi getwindowgeometry --shell)
 | 
			
		||||
  Categories|sed "s/\$/ $addlinenumber $X $Y/"	# pass additional lines number, X, Y
 | 
			
		||||
  echo " Search:rofi-finder.sh"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
DT_WIDTH=200		# pixels
 | 
			
		||||
##TODO determine desktop menu line height according to theme
 | 
			
		||||
DT_LINE_HEIGHT=23	# pixels
 | 
			
		||||
 | 
			
		||||
DT_THEME="
 | 
			
		||||
*{
 | 
			
		||||
  lines:		20;
 | 
			
		||||
  scrollbar:	false;
 | 
			
		||||
  dynamic:	true;
 | 
			
		||||
}
 | 
			
		||||
#window {
 | 
			
		||||
  width:		${DT_WIDTH}px;
 | 
			
		||||
  children:	[ dt-mainbox ];
 | 
			
		||||
}
 | 
			
		||||
#sidebar {
 | 
			
		||||
  enabled:	false;
 | 
			
		||||
}
 | 
			
		||||
#button {
 | 
			
		||||
  width:		${DT_WIDTH}px;
 | 
			
		||||
  padding:	2px 1ch;
 | 
			
		||||
}
 | 
			
		||||
#inputbar {
 | 
			
		||||
  enabled:	false;
 | 
			
		||||
}"
 | 
			
		||||
 | 
			
		||||
activate_category() {	# shows drun modi filtered with category. If no command selected, returns to categories modi
 | 
			
		||||
  label="${1% *}"	# remove submenu mark
 | 
			
		||||
  category="$2"
 | 
			
		||||
  linenumber="$3"
 | 
			
		||||
  theme=""
 | 
			
		||||
  goback="$thisscript -show \"$CAT\""
 | 
			
		||||
  if [ $# -gt 3 ] ; then	# that means categories for desktop menu, number of lines before categories, X, Y
 | 
			
		||||
    addlinenumber=$4
 | 
			
		||||
    X=$5
 | 
			
		||||
    Y=$6
 | 
			
		||||
    linenumber=$(($linenumber+$addlinenumber))
 | 
			
		||||
    if [ $linenumber -gt 0 ] ; then
 | 
			
		||||
      i=$linenumber
 | 
			
		||||
      dummy="true"
 | 
			
		||||
      dummyline="textboxdummy"
 | 
			
		||||
      while [ $i -gt 1 ] ; do
 | 
			
		||||
        dummyline="textboxdummy,$dummyline"
 | 
			
		||||
        i=$(($i-1))
 | 
			
		||||
      done
 | 
			
		||||
    else
 | 
			
		||||
      dummy="false"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # adjust X if too close to the right side of the screen
 | 
			
		||||
    MAX_X=$(wattr w $(lsw -r) )
 | 
			
		||||
    anchor="north"
 | 
			
		||||
    if [ $X -gt $((${MAX_X}-${DT_WIDTH}*2)) ] ; then
 | 
			
		||||
      anchor="${anchor}east"
 | 
			
		||||
      X=$MAX_X
 | 
			
		||||
    else
 | 
			
		||||
      anchor="${anchor}west"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    theme="$DT_THEME
 | 
			
		||||
      * {
 | 
			
		||||
        x-offset:	$X;
 | 
			
		||||
        y-offset:	$Y;
 | 
			
		||||
        anchor:		$anchor;
 | 
			
		||||
      }
 | 
			
		||||
      #window {
 | 
			
		||||
        width:		$((${DT_WIDTH}*2));
 | 
			
		||||
      }
 | 
			
		||||
      #sidebar {
 | 
			
		||||
        enabled:	true;
 | 
			
		||||
      }
 | 
			
		||||
      #boxdummy {
 | 
			
		||||
        enabled:	$dummy;
 | 
			
		||||
        children:	[ $dummyline ];
 | 
			
		||||
      }"
 | 
			
		||||
    goback="$thisscript -desktop $X $Y"
 | 
			
		||||
  fi
 | 
			
		||||
  command=$(delay; $thisscript \
 | 
			
		||||
        -only drun \
 | 
			
		||||
        -drun-match-fields categories,name \
 | 
			
		||||
        -display-drun "$label" \
 | 
			
		||||
        -filter "$category " \
 | 
			
		||||
        -run-command "echo {cmd}" \
 | 
			
		||||
        -run-shell-command "echo {terminal} -e {cmd}" \
 | 
			
		||||
        -theme-str "$theme")
 | 
			
		||||
  if [ -n "$command" ] ; then
 | 
			
		||||
    eval "$command" &
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  # return to categories modi. No delay needed
 | 
			
		||||
  eval $goback &
 | 
			
		||||
 | 
			
		||||
  if [ $linenumber -eq 0 ] ; then	# if the category is on the top line
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # move rofi selection down by linenumber
 | 
			
		||||
  keys=""
 | 
			
		||||
  while [ $linenumber -gt 0 ] ; do
 | 
			
		||||
    keys="$keys Tab"
 | 
			
		||||
    linenumber=$(($linenumber-1))
 | 
			
		||||
  done
 | 
			
		||||
  ##TODO wait until rofi can take input
 | 
			
		||||
  delay
 | 
			
		||||
  delay
 | 
			
		||||
  xdotool search --class rofi key --delay 0 $keys
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## rofi theme file can be set here
 | 
			
		||||
 | 
			
		||||
# ROFIMENU_THEME="$HOME/.config/rofimenu/rofimenu.rasi"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Theme
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/.config/rofimenu/rofimenu.rasi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										285
									
								
								dotfiles/scripts.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										285
									
								
								dotfiles/scripts.org
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,285 @@
 | 
			
		||||
#+TITLE: Scripts
 | 
			
		||||
 | 
			
		||||
* Wallpapers
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/scripts/wallpapers.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  while true; do
 | 
			
		||||
      nitrogen --set-zoom-fill --random ".wallpapers"
 | 
			
		||||
      sleep 10m
 | 
			
		||||
  done
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* TODO [#A] LockScreen
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/scripts/lockscreen.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
- [ ] Does not work well with multiple screen
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  revert() {
 | 
			
		||||
      xset dpms 0 0 0
 | 
			
		||||
  }
 | 
			
		||||
  trap revert HUP INT TERM
 | 
			
		||||
  # turn off screen after 5 seconds
 | 
			
		||||
  xset +dpms dpms 5 5 5
 | 
			
		||||
 | 
			
		||||
  # Parameters
 | 
			
		||||
  temp_file="/tmp/screen.png"
 | 
			
		||||
  icon="$HOME/Pictures/Evil_Rick_Sprite.png"
 | 
			
		||||
  width=1920
 | 
			
		||||
  height=1080
 | 
			
		||||
  blur_factor=6
 | 
			
		||||
  lock_blur_factor=0
 | 
			
		||||
 | 
			
		||||
  # Take the screen shot, blur the image and add the icon
 | 
			
		||||
  ffmpeg -f x11grab -video_size "${width}x${height}" -y -i $DISPLAY -i $icon -filter_complex "boxblur=$blur_factor:$blur_factor,overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,boxblur=$lock_blur_factor:$lock_blur_factor" -vframes 1 $temp_file
 | 
			
		||||
 | 
			
		||||
  # Alternative
 | 
			
		||||
  # scrot -d 1 $temp_file
 | 
			
		||||
  # convert -blur 0x8 $temp_file $temp_file
 | 
			
		||||
  # convert -composite $temp_file $icon -gravity South -geometry -20x1200 $temp_file
 | 
			
		||||
 | 
			
		||||
  # Lock the screen with the image
 | 
			
		||||
  i3lock --no-unlock-indicator --ignore-empty-password --show-failed-attempts --nofork --image=$temp_file
 | 
			
		||||
 | 
			
		||||
  # Remove the screenshot
 | 
			
		||||
  rm $temp_file
 | 
			
		||||
 | 
			
		||||
  # Don't turn off screen when back from lock
 | 
			
		||||
  revert
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Delete first page of PDF
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/scripts/pdf-delete-first-page.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
The requirement is to have =pdftk= installed.
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  if [[ -f $1 && $1 == *.pdf ]]; then
 | 
			
		||||
      # Argument if a file
 | 
			
		||||
      pdftk "$1" cat 2-end output /tmp/pdftk_out.pdf && mv /tmp/pdftk_out.pdf "$1"
 | 
			
		||||
  fi
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Take Screenshot
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/scripts/screenshot.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  status=$(echo -e "All\nSelection\nCopy\nShadow\nActive" | rofi -i -dmenu)
 | 
			
		||||
 | 
			
		||||
  name=$(echo -e "screenshot-$(date +"%m-%d-%y_%H-%M-%S")" | rofi -i -dmenu)
 | 
			
		||||
 | 
			
		||||
  case "$status" in
 | 
			
		||||
      "All")
 | 
			
		||||
          maim ~/Pictures/$name.png ;;
 | 
			
		||||
      "Selection")
 | 
			
		||||
          maim -s ~/Pictures/$name.png ;;
 | 
			
		||||
      "Copy")
 | 
			
		||||
          maim -s | xclip -selection clipboard -t image/png ;;
 | 
			
		||||
      "Shadow")
 | 
			
		||||
          maim -st 9999999 | convert - \( +clone -background black -shadow 80x3+5+5 \) +swap -background none -layers merge +repage ~/Pictures/$name.png ;;
 | 
			
		||||
      "Active")
 | 
			
		||||
          maim -i $(xdotool getactivewindow) ~/Pictures/$name.png ;;
 | 
			
		||||
  esac
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+RESULTS:
 | 
			
		||||
* Lock / Exit / Suspend / ...
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args: :tangle ~/scripts/quit.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  option=$(echo -e "Lock\nExit\nLogout\nSuspend\nHibernate\nReboot\nShutdown" | rofi -i -dmenu)
 | 
			
		||||
 | 
			
		||||
  case "$option" in
 | 
			
		||||
      "Lock")
 | 
			
		||||
          i3exit lock ;;
 | 
			
		||||
      "Exit")
 | 
			
		||||
          i3exit switch_user ;;
 | 
			
		||||
      "Logout")
 | 
			
		||||
          i3exit logout ;;
 | 
			
		||||
      "Suspend")
 | 
			
		||||
          i3exit suspend ;;
 | 
			
		||||
      "Hibernate")
 | 
			
		||||
          i3exit hibernate ;;
 | 
			
		||||
      "Reboot")
 | 
			
		||||
          i3exit reboot ;;
 | 
			
		||||
      "Shutdown")
 | 
			
		||||
          i3exit shutdown ;;
 | 
			
		||||
  esac
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+RESULTS:
 | 
			
		||||
* TODO [#C] Copy Figures
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/cp-figs.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
Things to do:
 | 
			
		||||
- [ ] Display all the figures at once and ask for confirmation to copy them all
 | 
			
		||||
- [ ] Display the not found figures
 | 
			
		||||
 | 
			
		||||
#+begin_src bash :results output
 | 
			
		||||
  latexpath="$HOME/MEGA/These/LaTeX/ressources/Figures";
 | 
			
		||||
 | 
			
		||||
  figures=`awk 'match($0, /(fig.*\.(png|svg|pdf))/, a) {print a[1];}' $1 \
 | 
			
		||||
        | awk '{ print gensub(/\s*\]\]\s*\|\s*\[\[\s*\.?\/?/, "\n", "g") }'`;
 | 
			
		||||
 | 
			
		||||
  for figure in $figures
 | 
			
		||||
  do
 | 
			
		||||
      figurename=`echo $figure | awk 'match($0, /(fig.*\/)(.*\.(png|svg|pdf))/, a) {print a[2];}'`;
 | 
			
		||||
      if [ -f $latexpath/$figurename ]
 | 
			
		||||
      then
 | 
			
		||||
          figurepath=`echo $figure | awk 'match($0, /(fig.*)\/(.*\.(png|svg|pdf))/, a) {print a[1];}'`;
 | 
			
		||||
 | 
			
		||||
          # echo $latexpath/$figurename
 | 
			
		||||
          # echo $figurepath/$figurename
 | 
			
		||||
          cp $latexpath/$figurename $figurepath/$figurename
 | 
			
		||||
 | 
			
		||||
          # read -r -p "Are You Sure? [Y/n] " input
 | 
			
		||||
 | 
			
		||||
          # case $input in
 | 
			
		||||
          #     [yY][eE][sS]|[yY])
 | 
			
		||||
          #         cp $latexpath/$figurename $figurepath/$figurename
 | 
			
		||||
          #         ;;
 | 
			
		||||
          #     [nN][oO]|[nN])
 | 
			
		||||
          #         exit 1
 | 
			
		||||
          #         ;;
 | 
			
		||||
          #     *)
 | 
			
		||||
          #         echo "Invalid input..."
 | 
			
		||||
          #         exit 1
 | 
			
		||||
          #         ;;
 | 
			
		||||
          # esac
 | 
			
		||||
      fi
 | 
			
		||||
  done
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+RESULTS:
 | 
			
		||||
#+begin_example
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_alt.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_2dof_alt.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_sep.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_bis.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_names.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_plant_weights.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_Mdelta.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_stability.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_meas.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_output_uncertainty.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty_set.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty_set_feedback.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inverse_uncertainty_set.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_delta.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_Ndelta.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_Mdelta.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/additive_uncertainty.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/output_uncertainty.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inv_additive_uncertainty.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inv_input_uncertainty.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inv_output_uncertainty.pdf
 | 
			
		||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty_set_feedback_weight.pdf
 | 
			
		||||
#+end_example
 | 
			
		||||
* NAS
 | 
			
		||||
** Mount
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/nas.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  if [ $1 == "mount" ]; then
 | 
			
		||||
      if sudo -A mount 192.168.1.2:/volume1/Downloads/ /mnt/NAS/; then
 | 
			
		||||
          dunstify --replace=58249 'NAS' 'Successfully mounted'
 | 
			
		||||
      else
 | 
			
		||||
          dunstify --replace=58249 'NAS' 'Error while mounted'
 | 
			
		||||
      fi
 | 
			
		||||
  elif [ $1 == "umount" ]; then
 | 
			
		||||
      if sudo -A umount /mnt/NAS/; then
 | 
			
		||||
          dunstify --replace=58249 'NAS' 'Successfully unmounted'
 | 
			
		||||
      else
 | 
			
		||||
          dunstify --replace=58249 'NAS' 'Error while unmounted'
 | 
			
		||||
      fi
 | 
			
		||||
  fi
 | 
			
		||||
#+end_src
 | 
			
		||||
* Buku Git Push
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/buku_git_push.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  cd ~/.local/share/buku/
 | 
			
		||||
 | 
			
		||||
  if [[ ! -z $(git status -s bookmarks.db) ]]
 | 
			
		||||
  then
 | 
			
		||||
      git add bookmarks.db
 | 
			
		||||
      git commit -m "Changed bookmarks - $(date +%F)"
 | 
			
		||||
      git push
 | 
			
		||||
      dunstify --replace=79248 "Buku Git" "Updated"
 | 
			
		||||
      exit
 | 
			
		||||
  fi
 | 
			
		||||
#+end_src
 | 
			
		||||
* Icons Unicode
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/icons.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  command -v xclip >/dev/null 2>&1 || { echo >&2 "I require xclip but it's not installed.  Aborting."; exit 1; }
 | 
			
		||||
 | 
			
		||||
  chosen=$(grep -v "#" ~/.config/emoji | dmenu -i -l 20)
 | 
			
		||||
 | 
			
		||||
  [ "$chosen" != "" ] || exit
 | 
			
		||||
 | 
			
		||||
  c=$(echo "$chosen" | sed "s/ .*//")
 | 
			
		||||
  echo "$c" | tr -d '\n' | xclip -selection clipboard
 | 
			
		||||
  dunstify --replace=05896 "'$c' copied to clipboard." &
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Make GIF
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/gifenc.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  palette="/tmp/palette.png"
 | 
			
		||||
 | 
			
		||||
  filters="fps=15,scale=320:-1:flags=lanczos"
 | 
			
		||||
 | 
			
		||||
  ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
 | 
			
		||||
  ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2
 | 
			
		||||
#+end_src
 | 
			
		||||
* Org-Capture
 | 
			
		||||
  :PROPERTIES:
 | 
			
		||||
  :header-args:  :tangle ~/scripts/org-capture-selection.sh
 | 
			
		||||
  :header-args+: :comments both :mkdirp yes
 | 
			
		||||
  :header-args+: :shebang "#!/usr/bin/env bash"
 | 
			
		||||
  :END:
 | 
			
		||||
 | 
			
		||||
#+begin_src bash
 | 
			
		||||
  xclip -o -selection primary | xclip -o -selection clipboard -i
 | 
			
		||||
  emacsclient -ne '(org-capture "" "Q")' && dunstify "Emacs" "Text Successfully Captured"
 | 
			
		||||
#+end_src
 | 
			
		||||
@@ -146,7 +146,7 @@
 | 
			
		||||
  # =============================================================
 | 
			
		||||
  # Notification
 | 
			
		||||
  if [ "$new" -gt 0 ]; then
 | 
			
		||||
      notify-send 'New mail' " $esrf_new   $gmail_new   $ulg_new"
 | 
			
		||||
      dunstify --replace=98465 'New mail' " $esrf_new   $gmail_new   $ulg_new"
 | 
			
		||||
  fi
 | 
			
		||||
  # =============================================================
 | 
			
		||||
 | 
			
		||||
@@ -155,9 +155,9 @@
 | 
			
		||||
  # notmuch new
 | 
			
		||||
  # mu index --maildir=~/.mail --quiet
 | 
			
		||||
  # Update on Emacs
 | 
			
		||||
  if [ "$(($new-$old))" -gt 0 ]; then
 | 
			
		||||
      emacsclient --eval '(mu4e-update-index)';
 | 
			
		||||
  fi
 | 
			
		||||
  # if [ "$(($new-$old))" -gt 0 ]; then
 | 
			
		||||
  #     emacsclient --eval '(mu4e-update-index)';
 | 
			
		||||
  # fi
 | 
			
		||||
  # =============================================================
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
@@ -218,8 +218,8 @@
 | 
			
		||||
  Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
 | 
			
		||||
 | 
			
		||||
  [Service]
 | 
			
		||||
  Type=simple
 | 
			
		||||
  ExecStart=/usr/bin/emacs --fg-daemon
 | 
			
		||||
  Type=forking
 | 
			
		||||
  ExecStart=/usr/bin/emacs --daemon
 | 
			
		||||
  ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
 | 
			
		||||
  Environment=SSH_AUTH_SOCK=%t/keyring/ssh
 | 
			
		||||
  Restart=on-failure
 | 
			
		||||
@@ -263,6 +263,7 @@
 | 
			
		||||
  [Install]
 | 
			
		||||
  WantedBy=timers.target
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Weechat
 | 
			
		||||
** Service
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
@@ -322,3 +323,44 @@
 | 
			
		||||
  [Install]
 | 
			
		||||
  WantedBy=multi-user.target
 | 
			
		||||
#+end_src
 | 
			
		||||
* NCMPCPP
 | 
			
		||||
** Service
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.config/systemd/user/ncmpcpp.service
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Unit]
 | 
			
		||||
  Description=Ncmpcpp - Music Player
 | 
			
		||||
 | 
			
		||||
  [Service]
 | 
			
		||||
  Type=forking
 | 
			
		||||
  ExecStart=/usr/bin/tmux -L ncmpcpp new -d -s ncmpcpp ncmpcpp
 | 
			
		||||
  ExecStop=/usr/bin/tmux -L ncmpcpp kill-session -t ncmpcpp
 | 
			
		||||
  Restart=always
 | 
			
		||||
  RestartSec=3
 | 
			
		||||
 | 
			
		||||
  [Install]
 | 
			
		||||
  WantedBy=default.target
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Newsboat
 | 
			
		||||
** Service - tmux
 | 
			
		||||
   :PROPERTIES:
 | 
			
		||||
   :header-args: :tangle ~/.config/systemd/user/newsboat.service
 | 
			
		||||
   :header-args+: :comments both :mkdirp yes
 | 
			
		||||
   :END:
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  [Unit]
 | 
			
		||||
  Description=Newsboat - RSS reader
 | 
			
		||||
 | 
			
		||||
  [Service]
 | 
			
		||||
  Type=forking
 | 
			
		||||
  ExecStart=/usr/bin/tmux -L newsboat new -d -s newsboat newsboat
 | 
			
		||||
  ExecStop=/usr/bin/tmux -L newsboat kill-session -t newsboat
 | 
			
		||||
  Restart=always
 | 
			
		||||
  RestartSec=3
 | 
			
		||||
 | 
			
		||||
  [Install]
 | 
			
		||||
  WantedBy=default.target
 | 
			
		||||
#+end_src
 | 
			
		||||
 
 | 
			
		||||
@@ -57,18 +57,24 @@
 | 
			
		||||
  # Base16 Gruvbox dark, soft
 | 
			
		||||
  # Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
 | 
			
		||||
 | 
			
		||||
  # fg2
 | 
			
		||||
  foreground          = #d5c4a1
 | 
			
		||||
  # fg1
 | 
			
		||||
  foreground_bold     = #ebdbb2
 | 
			
		||||
  cursor              = #ebdbb2
 | 
			
		||||
  # bg0_s
 | 
			
		||||
  cursor_foreground   = #32302f
 | 
			
		||||
  background          = rgba(50, 48, 47)
 | 
			
		||||
  background          = #32302f
 | 
			
		||||
 | 
			
		||||
  # 16 color space
 | 
			
		||||
 | 
			
		||||
  # Black, Gray, Silver, White
 | 
			
		||||
  # bg0_s
 | 
			
		||||
  color0  = #32302f
 | 
			
		||||
  # bg3
 | 
			
		||||
  color8  = #665c54
 | 
			
		||||
  # fb2
 | 
			
		||||
  color7  = #d5c4a1
 | 
			
		||||
  # fg0
 | 
			
		||||
  color15 = #fbf1c7
 | 
			
		||||
 | 
			
		||||
  # Red
 | 
			
		||||
@@ -96,10 +102,16 @@
 | 
			
		||||
  color14 = #8ec07c
 | 
			
		||||
 | 
			
		||||
  # Extra colors
 | 
			
		||||
  # orange
 | 
			
		||||
  color16 = #fe8019
 | 
			
		||||
  # orange
 | 
			
		||||
  color17 = #d65d0e
 | 
			
		||||
  # bg1
 | 
			
		||||
  color18 = #3c3836
 | 
			
		||||
  # bg2
 | 
			
		||||
  color19 = #504945
 | 
			
		||||
  # fg3
 | 
			
		||||
  color20 = #bdae93
 | 
			
		||||
  # fg
 | 
			
		||||
  color21 = #ebdbb2
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 
 | 
			
		||||
@@ -3,116 +3,56 @@
 | 
			
		||||
#+PROPERTY: header-args+ :comments both :mkdirp yes
 | 
			
		||||
 | 
			
		||||
* Line
 | 
			
		||||
** Define colors
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  t_red="#ef5253" # red
 | 
			
		||||
  t_red_light="#eb9798" # light red
 | 
			
		||||
  t_red_dark="#c22627" # dark red
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  # Activate the status bar
 | 
			
		||||
  set -g status "on"
 | 
			
		||||
 | 
			
		||||
  t_blue="#579cde" # blue
 | 
			
		||||
  # default statusbar color
 | 
			
		||||
  set-option -g status-style bg=colour237,fg=colour223 # bg=bg1, fg=fg1
 | 
			
		||||
 | 
			
		||||
  t_orange="#de9a57"
 | 
			
		||||
  t_green="#57de9a"
 | 
			
		||||
  # default window title colors
 | 
			
		||||
  set-window-option -g window-status-style bg=colour214,fg=colour237 # bg=yellow, fg=bg1
 | 
			
		||||
 | 
			
		||||
  t_grey_dark="#393939" # dark grey
 | 
			
		||||
  t_grey_light="#d9d9d9" # light grey
 | 
			
		||||
  t_grey="#ababab" # grey
 | 
			
		||||
  # default window with an activity alert
 | 
			
		||||
  set-window-option -g window-status-activity-style bg=colour237,fg=colour248 # bg=bg1, fg=fg3
 | 
			
		||||
 | 
			
		||||
  t_1l_bg="#ef5253" # red
 | 
			
		||||
  t_1l_fg="#393939" # dark grey
 | 
			
		||||
  t_2l_bg="#4e4e4e" # dark grey
 | 
			
		||||
  t_2l_fg="#e8e8e8" # grey
 | 
			
		||||
  t_3l_bg="#ababab" # grey
 | 
			
		||||
  t_3l_fg="#393939" # dark grey
 | 
			
		||||
  t_4l_bg="#579cde" # blue
 | 
			
		||||
  t_4l_fg="#393939" # dark grey
 | 
			
		||||
  # active window title colors
 | 
			
		||||
  set-window-option -g window-status-current-style bg=red,fg=colour237 # fg=bg1
 | 
			
		||||
 | 
			
		||||
  t_1r_bg="#909090"
 | 
			
		||||
  t_1r_fg="#393939"
 | 
			
		||||
  t_2r_bg="#4e4e4e"
 | 
			
		||||
  t_2r_fg="#a0a0a0"
 | 
			
		||||
  t_3r_bg="#ababab" # grey
 | 
			
		||||
  t_3r_fg="#393939" # dark grey
 | 
			
		||||
  # pane border
 | 
			
		||||
  set-option -g pane-active-border-style fg=colour250 #fg2
 | 
			
		||||
  set-option -g pane-border-style fg=colour237 #bg1
 | 
			
		||||
 | 
			
		||||
  t_line_bg="#18262f" # dark blue
 | 
			
		||||
  t_line_fg="#393939" # dark grey
 | 
			
		||||
  # message infos
 | 
			
		||||
  set-option -g message-style bg=colour239,fg=colour223 # bg=bg2, fg=fg1
 | 
			
		||||
 | 
			
		||||
  t_win_bg="#18262f" # dark blue
 | 
			
		||||
  t_win_fg="#d9d9d9" # light grey
 | 
			
		||||
  # writing commands inactive
 | 
			
		||||
  set-option -g message-command-style bg=colour239,fg=colour223 # bg=fg3, fg=bg1
 | 
			
		||||
 | 
			
		||||
  t_win_bg_active="#ef5253" # red
 | 
			
		||||
  t_win_fg_active="#393939" # dark grey
 | 
			
		||||
  # pane number display
 | 
			
		||||
  set-option -g display-panes-active-colour colour250 #fg2
 | 
			
		||||
  set-option -g display-panes-colour colour237 #bg1
 | 
			
		||||
 | 
			
		||||
  t_text_fg="#d9d9d9" # light grey
 | 
			
		||||
  t_text_bg="#393939" # dark grey
 | 
			
		||||
#+END_SRC
 | 
			
		||||
  # clock
 | 
			
		||||
  set-window-option -g clock-mode-colour colour109 #blue
 | 
			
		||||
 | 
			
		||||
** General config
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  set -g status "on" # Activate the status bar
 | 
			
		||||
  set -g status-attr "none"
 | 
			
		||||
  set -g status-interval "2" # update status every x seconds
 | 
			
		||||
  # bell
 | 
			
		||||
  set-window-option -g window-status-bell-style bg=colour167,fg=colour235 # bg=red, fg=bg
 | 
			
		||||
 | 
			
		||||
  set -g status-justify "centre" # center the list of windows
 | 
			
		||||
  ## Theme settings mixed with colors (unfortunately, but there is no cleaner way)
 | 
			
		||||
  set-option -g status-justify "left"
 | 
			
		||||
  set-option -g status-left-style none
 | 
			
		||||
  set-option -g status-left-length "80"
 | 
			
		||||
  set-option -g status-right-style none
 | 
			
		||||
  set-option -g status-right-length "80"
 | 
			
		||||
  set-window-option -g window-status-separator ""
 | 
			
		||||
 | 
			
		||||
  set -g status-bg "$t_line_bg"
 | 
			
		||||
  set -g status-fg "$t_line_fg"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Contents of right and light status
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  t_1_l="#S"
 | 
			
		||||
  t_2_l="%H:%M"
 | 
			
		||||
  # t_3_l="#($HOME/.config/.tmux/bin/tmux_left_status)"
 | 
			
		||||
  t_4_l="C"
 | 
			
		||||
  t_1_r="%d/%m"
 | 
			
		||||
  # t_2_r="#($HOME/.config/.tmux/bin/tmux_right_status)"
 | 
			
		||||
  # t_3_r=""
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Status left and right
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  set -g status-left "#[fg=$t_1l_fg,bg=$t_1l_bg] $t_1_l #[fg=$t_1l_bg,bg=$t_2l_bg]#[fg=$t_2l_fg,bg=$t_2l_bg] $t_2_l #{?client_prefix,#[fg=$t_2l_bg]#[bg=$t_4l_bg]#[fg=$t_4l_fg]#[bg=$t_4l_bg] $t_4_l #[fg=$t_4l_bg]#[bg=$t_line_bg],#[fg=$t_2l_bg]#[bg=$t_line_bg]}"
 | 
			
		||||
  # set -g status-left "#[fg=$t_1l_fg,bg=$t_1l_bg] $t_1_l #[fg=$t_1l_bg,bg=$t_2l_bg]#[fg=$t_2l_fg,bg=$t_2l_bg] $t_2_l #[fg=$t_2l_bg,bg=$t_3l_bg]#[fg=$t_2l_bg, bg=$t_3l_bg]$t_3_l#{?client_prefix,#[fg=$t_3l_bg]#[bg=$t_4l_bg]#[fg=$t_4l_fg]#[bg=$t_4l_bg] $t_4_l #[fg=$t_4l_bg]#[bg=$t_line_bg],#[fg=$t_3l_bg]#[bg=$t_line_bg]}"
 | 
			
		||||
  set -g status-left-length "90"
 | 
			
		||||
  set -g status-left-attr "none"
 | 
			
		||||
 | 
			
		||||
  set -g status-right "#[fg=$t_1r_bg]#[fg=$t_1r_fg,bg=$t_1r_bg] $t_1_r "
 | 
			
		||||
  # set -g status-right "#[fg=$t_3r_bg,bg=$t_line_bg]#[fg=$t_3r_fg, bg=$t_3r_bg] $t_3_r #[fg=$t_2r_bg,bg=$t_3r_bg]#[fg=$t_2r_fg,bg=$t_2r_bg] $t_2_r #[fg=$t_1r_bg,bg=$t_2r_bg]#[fg=$t_1r_fg,bg=$t_1r_bg] $t_1_r "
 | 
			
		||||
  set -g status-right-length "90"
 | 
			
		||||
  set -g status-right-attr "none"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Message and commands
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  set -g message-fg "$t_text_fg"
 | 
			
		||||
  set -g message-bg "$t_text_bg"
 | 
			
		||||
 | 
			
		||||
  set -g message-command-fg "$t_text_fg"
 | 
			
		||||
  set -g message-command-bg "$t_text_bg"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Panes
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  set -g pane-border-fg "$t_grey_dark" # Color of the separation between panes
 | 
			
		||||
  set -g pane-active-border-fg "$t_red_light" # Color of the active separation
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Windows
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  setw -g window-status-fg "$t_red"
 | 
			
		||||
  setw -g window-status-bg "$t_grey_light"
 | 
			
		||||
  setw -g window-status-attr "none"
 | 
			
		||||
 | 
			
		||||
  setw -g window-status-activity-fg "$t_grey_dark"
 | 
			
		||||
  setw -g window-status-activity-bg "$t_red"
 | 
			
		||||
  setw -g window-status-activity-attr "bold"
 | 
			
		||||
 | 
			
		||||
  setw -g window-status-separator " "
 | 
			
		||||
  setw -g window-status-format "#[fg=$t_win_fg,bg=$t_win_bg] #I | #W "
 | 
			
		||||
  setw -g window-status-current-format "#[fg=$t_win_bg_active,bg=$t_line_bg]#[fg=$t_win_fg_active,bg=$t_win_bg_active] #I | #W #[fg=$t_win_bg_active,bg=$t_line_bg]"
 | 
			
		||||
#+END_SRC
 | 
			
		||||
  set-option -g status-left "#[fg=colour248, bg=colour241] #S #[fg=colour241, bg=colour237, nobold, noitalics, nounderscore]"
 | 
			
		||||
  set-option -g status-right "#[fg=colour239, bg=colour237, nobold, nounderscore, noitalics]#[fg=colour246,bg=colour239] %Y-%m-%d  %H:%M #[fg=colour248, bg=colour239, nobold, noitalics, nounderscore]#{?client_prefix,#[fg=colour214],}#[fg=colour237, bg=colour248]#{?client_prefix,#[bg=colour214],} #h "
 | 
			
		||||
 | 
			
		||||
  set-window-option -g window-status-current-format "#[fg=colour237, bg=colour214, nobold, noitalics, nounderscore]#[fg=colour239, bg=colour214] #I #[fg=colour239, bg=colour214, bold] #W #[fg=colour214, bg=colour237, nobold, noitalics, nounderscore]"
 | 
			
		||||
  set-window-option -g window-status-format "#[fg=colour237,bg=colour239,noitalics]#[fg=colour223,bg=colour239] #I #[fg=colour223, bg=colour239] #W #[fg=colour239, bg=colour237, noitalics]"
 | 
			
		||||
#+end_src
 | 
			
		||||
* Bindings
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  # Set prefix to 'C-Space'
 | 
			
		||||
@@ -256,6 +196,9 @@
 | 
			
		||||
 | 
			
		||||
  # Show bells in window titles
 | 
			
		||||
  set -g window-status-bell-style fg=yellow,bold,underscore
 | 
			
		||||
 | 
			
		||||
  # Causes tmux to resize a window based on the smallest client actually viewing it, not on the smallest one attached to the entire session
 | 
			
		||||
  set-window-option -g aggressive-resize
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Plugins
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										124
									
								
								dotfiles/vim.org
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								dotfiles/vim.org
									
									
									
									
									
								
							@@ -1,7 +1,9 @@
 | 
			
		||||
#+TITLE: Vim Config
 | 
			
		||||
:DRAWER:
 | 
			
		||||
#+PROPERTY: header-args+ :comments none
 | 
			
		||||
#+PROPERTY: header-args+ :mkdirp yes
 | 
			
		||||
#+PROPERTY: header-args+ :tangle ~/.vimrc
 | 
			
		||||
:END:
 | 
			
		||||
 | 
			
		||||
* Plugins Install
 | 
			
		||||
** Plug start
 | 
			
		||||
@@ -27,7 +29,7 @@
 | 
			
		||||
 | 
			
		||||
** Git
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  " Plug 'jreybert/vimagit'
 | 
			
		||||
  Plug 'jreybert/vimagit'
 | 
			
		||||
  Plug 'tpope/vim-fugitive'     " A Git wrapper so awesome, it should be illegal
 | 
			
		||||
  Plug 'junegunn/gv.vim'        " A git commit browser
 | 
			
		||||
  Plug 'mhinz/vim-signify'      " Show a diff using Vim its sign column
 | 
			
		||||
@@ -260,6 +262,9 @@ set relativenumber
 | 
			
		||||
" Smarter J and K navigation
 | 
			
		||||
nnoremap <expr> j v:count ? (v:count > 5 ? "m'" . v:count : '') . 'j' : 'gj'
 | 
			
		||||
nnoremap <expr> k v:count ? (v:count > 5 ? "m'" . v:count : '') . 'k' : 'gk'
 | 
			
		||||
 | 
			
		||||
" Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
 | 
			
		||||
set splitbelow splitright
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Foldings
 | 
			
		||||
@@ -275,13 +280,14 @@ endif
 | 
			
		||||
 | 
			
		||||
** Colors and Fonts
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  " Theme
 | 
			
		||||
  syntax enable
 | 
			
		||||
 | 
			
		||||
  set background=dark
 | 
			
		||||
 | 
			
		||||
  let base16colorspace=256
 | 
			
		||||
 | 
			
		||||
  let g:gruvbox_contrast_dark = 'soft'
 | 
			
		||||
 | 
			
		||||
  try
 | 
			
		||||
      colorscheme gruvbox
 | 
			
		||||
  catch
 | 
			
		||||
@@ -444,23 +450,23 @@ endtry
 | 
			
		||||
* Mappings
 | 
			
		||||
** Normal mode related
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
" Smart way to move between windows
 | 
			
		||||
noremap <C-j> <C-W>j
 | 
			
		||||
noremap <C-k> <C-W>k
 | 
			
		||||
noremap <C-h> <C-W>h
 | 
			
		||||
noremap <C-l> <C-W>l
 | 
			
		||||
  " Smart way to move between windows
 | 
			
		||||
  noremap <C-j> <C-W>j
 | 
			
		||||
  noremap <C-k> <C-W>k
 | 
			
		||||
  noremap <C-h> <C-W>h
 | 
			
		||||
  noremap <C-l> <C-W>l
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Insert mode related
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
" Paste while in insert mode
 | 
			
		||||
inoremap <C-v> <C-r>*
 | 
			
		||||
  " Paste while in insert mode
 | 
			
		||||
  inoremap <C-v> <C-r>*
 | 
			
		||||
 | 
			
		||||
" Go to the end of line
 | 
			
		||||
inoremap <C-e> <Esc>A
 | 
			
		||||
  " Go to the end of line
 | 
			
		||||
  inoremap <C-e> <Esc>A
 | 
			
		||||
 | 
			
		||||
" Go to the beginning of line
 | 
			
		||||
inoremap <C-a> <Esc>I
 | 
			
		||||
  " Go to the beginning of line
 | 
			
		||||
  inoremap <C-a> <Esc>I
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Visual mode related
 | 
			
		||||
@@ -508,6 +514,18 @@ tnoremap <C-w>k <C-\><C-n><C-w>k
 | 
			
		||||
tnoremap <C-w>l <C-\><C-n><C-w>l
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Correct misspelled works
 | 
			
		||||
Taken from: https://vi.stackexchange.com/questions/68/autocorrect-spelling-mistakes
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  " Go back to last misspelled word and pick first suggestion.
 | 
			
		||||
  inoremap <C-L> <C-G>u<Esc>[s1z=`]a<C-G>u
 | 
			
		||||
 | 
			
		||||
  " Select last misspelled word (typing will edit).
 | 
			
		||||
  nnoremap <C-K> <Esc>[sve<C-G>
 | 
			
		||||
  inoremap <C-K> <Esc>[sve<C-G>
 | 
			
		||||
  snoremap <C-K> <Esc>b[sviw<C-G>
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Filetypes
 | 
			
		||||
** Vim Which Key
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
@@ -516,6 +534,10 @@ nnoremap <silent> <localleader> :<c-u>WhichKey  ','<CR>
 | 
			
		||||
let g:which_key_map_local =  {}
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Mails
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
  autocmd FileType mail set spell spelllang=en_us,fr
 | 
			
		||||
#+end_src
 | 
			
		||||
** MarkDown
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
" Automatically turn on spell-checking for Markdown files
 | 
			
		||||
@@ -777,7 +799,7 @@ let g:indentLine_color_term = 239
 | 
			
		||||
let g:webdevicons_enable_ctrlp = 1
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** TODO [#B] junegunn/goyo.vim
 | 
			
		||||
** junegunn/goyo.vim
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
  let g:goyo_width=100
 | 
			
		||||
  let g:goyo_margin_top = 2
 | 
			
		||||
@@ -834,65 +856,65 @@ let g:tex_conceal = ""
 | 
			
		||||
 | 
			
		||||
** Neomake
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
" Latex
 | 
			
		||||
autocmd! BufWritePost *.tex Neomake
 | 
			
		||||
let g:neomake_tex_chktex_maker = {
 | 
			
		||||
            \ 'exe': 'chktex',
 | 
			
		||||
            \ 'args': ['--inputfiles'],
 | 
			
		||||
            \ 'errorformat':
 | 
			
		||||
                \ '%EError %n in %f line %l: %m,' .
 | 
			
		||||
                \ '%WWarning %n in %f line %l: %m,' .
 | 
			
		||||
                \ '%WMessage %n in %f line %l: %m,' .
 | 
			
		||||
                \ '%Z%p^,' .
 | 
			
		||||
                \ '%-G%.%#'
 | 
			
		||||
            \ }
 | 
			
		||||
  " Latex
 | 
			
		||||
  autocmd! BufWritePost *.tex Neomake
 | 
			
		||||
  let g:neomake_tex_chktex_maker = {
 | 
			
		||||
  \ 'exe': 'chktex',
 | 
			
		||||
  \ 'args': ['--inputfiles'],
 | 
			
		||||
  \ 'errorformat':
 | 
			
		||||
  \ '%EError %n in %f line %l: %m,' .
 | 
			
		||||
  \ '%WWarning %n in %f line %l: %m,' .
 | 
			
		||||
  \ '%WMessage %n in %f line %l: %m,' .
 | 
			
		||||
  \ '%Z%p^,' .
 | 
			
		||||
  \ '%-G%.%#'
 | 
			
		||||
  \ }
 | 
			
		||||
 | 
			
		||||
let g:neomake_tex_enabled_makers = ['chktex']
 | 
			
		||||
  let g:neomake_tex_enabled_makers = ['chktex']
 | 
			
		||||
 | 
			
		||||
" Matlab
 | 
			
		||||
autocmd! BufWritePost *.m Neomake
 | 
			
		||||
let g:neomake_matlab_mlint_maker = {
 | 
			
		||||
            \ 'exe': 'mlint',
 | 
			
		||||
            \ 'mapexpr': "neomake_bufname.':'.v:val",
 | 
			
		||||
            \ 'errorformat':
 | 
			
		||||
            \     '%f:L %l (C %c): %m,' .
 | 
			
		||||
            \     '%f:L %l (C %c-%*[0-9]): %m,',
 | 
			
		||||
            \ }
 | 
			
		||||
let g:neomake_matlab_enabled_makers = ['mlint']
 | 
			
		||||
  " Matlab
 | 
			
		||||
  autocmd! BufWritePost *.m Neomake
 | 
			
		||||
  let g:neomake_matlab_mlint_maker = {
 | 
			
		||||
    \ 'exe': 'mlint',
 | 
			
		||||
    \ 'mapexpr': "neomake_bufname.':'.v:val",
 | 
			
		||||
    \ 'errorformat':
 | 
			
		||||
    \     '%f:L %l (C %c): %m,' .
 | 
			
		||||
    \     '%f:L %l (C %c-%*[0-9]): %m,',
 | 
			
		||||
    \ }
 | 
			
		||||
  let g:neomake_matlab_enabled_makers = ['mlint']
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** lervag/vimtex
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
" let g:tex_conceal=""
 | 
			
		||||
" autocmd FileType tex let b:vimtex_main = 'main.tex'
 | 
			
		||||
" let g:vimtex_mappings_enabled=0
 | 
			
		||||
  " let g:tex_conceal=""
 | 
			
		||||
  " autocmd FileType tex let b:vimtex_main = 'main.tex'
 | 
			
		||||
  " let g:vimtex_mappings_enabled=0
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** jpalardy/vim-slime
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
if exists('$TMUX')
 | 
			
		||||
    let g:slime_target = "tmux"
 | 
			
		||||
    let g:slime_default_config = {"socket_name": split($TMUX, ",")[0], "target_pane": ":.2"}
 | 
			
		||||
    let g:slime_dont_ask_default = 1
 | 
			
		||||
endif
 | 
			
		||||
  if exists('$TMUX')
 | 
			
		||||
  let g:slime_target = "tmux"
 | 
			
		||||
  let g:slime_default_config = {"socket_name": split($TMUX, ",")[0], "target_pane": ":.2"}
 | 
			
		||||
  let g:slime_dont_ask_default = 1
 | 
			
		||||
  endif
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** mhinz/vim-grepper
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
" nnoremap <leader>G :Grepper -tool ag<cr>
 | 
			
		||||
" nmap gs  <plug>(GrepperOperator)
 | 
			
		||||
" xmap gs  <plug>(GrepperOperator)
 | 
			
		||||
  " nnoremap <leader>G :Grepper -tool ag<cr>
 | 
			
		||||
  " nmap gs  <plug>(GrepperOperator)
 | 
			
		||||
  " xmap gs  <plug>(GrepperOperator)
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Editor config
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
" To ensure that this plugin works well with Tim Pope's fugitive, use the following patterns array:
 | 
			
		||||
let g:EditorConfig_exclude_patterns = ['fugitive://.*']
 | 
			
		||||
  " To ensure that this plugin works well with Tim Pope's fugitive, use the following patterns array:
 | 
			
		||||
  let g:EditorConfig_exclude_patterns = ['fugitive://.*']
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
** Polyglot
 | 
			
		||||
#+BEGIN_SRC conf
 | 
			
		||||
let g:polyglot_disabled = ['latex']
 | 
			
		||||
    let g:polyglot_disabled = ['latex']
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
* Bindings
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								dotfiles/zsh.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								dotfiles/zsh.org
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
#+TITLE: ZSH Config
 | 
			
		||||
:DRAWER:
 | 
			
		||||
#+PROPERTY: header-args:conf+ :comments both
 | 
			
		||||
#+PROPERTY: header-args:conf+ :mkdirp yes
 | 
			
		||||
#+PROPERTY: header-args:conf+ :tangle ~/.zshrc
 | 
			
		||||
:END:
 | 
			
		||||
 | 
			
		||||
https://github.com/unixorn/awesome-zsh-plugins
 | 
			
		||||
 | 
			
		||||
* Zplug
 | 
			
		||||
https://github.com/zplug/zplug
 | 
			
		||||
#+begin_src conf
 | 
			
		||||
source ~/.zplug/init.zsh
 | 
			
		||||
 | 
			
		||||
zplug mafredri/zsh-async, from:github
 | 
			
		||||
zplug sindresorhus/pure, use:pure.zsh, from:github, as:theme
 | 
			
		||||
 | 
			
		||||
# Install plugins if there are plugins that have not been installed
 | 
			
		||||
if ! zplug check --verbose; then
 | 
			
		||||
    printf "Install? [y/N]: "
 | 
			
		||||
    if read -q; then
 | 
			
		||||
        echo; zplug install
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Then, source plugins and add commands to $PATH
 | 
			
		||||
zplug load --verbose
 | 
			
		||||
#+end_src
 | 
			
		||||
		Reference in New Issue
	
	Block a user