Initial Commit
This commit is contained in:
commit
80113fd633
25
Makefile
Normal file
25
Makefile
Normal file
@ -0,0 +1,25 @@
|
||||
cache_dir := .cache
|
||||
orgs := $(wildcard dotfiles/*.org)
|
||||
|
||||
tangle_el := elisp/tangle.el
|
||||
|
||||
^el = $(filter %.el,$^)
|
||||
EMACS.funcall = emacs --batch --no-init-file $(addprefix --load ,$(^el)) --funcall
|
||||
|
||||
all: tangle
|
||||
|
||||
clean:
|
||||
rm -rf $(cache_dir)
|
||||
|
||||
tangle: $(basename $(orgs))
|
||||
$(cache_dir)/%.out: %.org $(tangle_el) $(cache_dir)/
|
||||
$(EMACS.funcall) literate-dotfiles-tangle $< > $@
|
||||
|
||||
%/:
|
||||
mkdir -p $@
|
||||
|
||||
%: %.org $(cache_dir)/%.out
|
||||
@$(NOOP)
|
||||
|
||||
.PHONY: all clean test
|
||||
.PRECIOUS: $(cache_dir)/ $(cache_dir)/%.out
|
65
awesome/emacs.org
Normal file
65
awesome/emacs.org
Normal file
@ -0,0 +1,65 @@
|
||||
#+TITLE: Awesome Emacs
|
||||
|
||||
* Other Awesome Emacs
|
||||
https://github.com/emacs-tw/awesome-emacs
|
||||
https://github.com/dakrone/eos
|
||||
|
||||
* Distributions
|
||||
https://github.com/hlissner/doom-emacs
|
||||
https://github.com/ralesi/spacemacs.org
|
||||
|
||||
* General
|
||||
https://github.com/chrisdone/elisp-guide
|
||||
https://github.com/melpa/melpa
|
||||
https://github.com/jwiegley/use-package
|
||||
|
||||
* Packages
|
||||
https://github.com/company-mode/company-mode
|
||||
https://github.com/emacs-evil/evil
|
||||
https://github.com/syl20bnr/spacemacs
|
||||
https://github.com/magit/magit
|
||||
https://github.com/jaypei/emacs-neotree
|
||||
https://github.com/abo-abo/swiper
|
||||
https://github.com/joaotavora/yasnippet
|
||||
https://github.com/politza/pdf-tools
|
||||
https://github.com/jkitchin/scimax
|
||||
https://github.com/jkitchin/org-ref
|
||||
https://github.com/weirdNox/org-noter
|
||||
https://github.com/abo-abo/avy
|
||||
https://github.com/bbatsov/projectile
|
||||
https://github.com/emacs-helm/helm
|
||||
https://github.com/redguardtoo/evil-matchit
|
||||
https://github.com/kiwanami/emacs-calfw
|
||||
https://github.com/ch11ng/exwm
|
||||
https://github.com/yuya373/emacs-slack
|
||||
https://github.com/rudolfochrist/interleave
|
||||
https://github.com/jwiegley/alert
|
||||
https://github.com/nashamri/academic-phrases
|
||||
https://github.com/vermiculus/magithub
|
||||
https://github.com/auto-complete/auto-complete
|
||||
https://github.com/Fuco1/smartparens
|
||||
https://github.com/Alexander-Miller/treemacs
|
||||
https://github.com/rexim/org-cliplink
|
||||
https://github.com/abo-abo/org-download
|
||||
https://github.com/jsinglet/latex-preview-pane
|
||||
https://github.com/noctuid/evil-guide
|
||||
https://github.com/linktohack/ox-latex-subfigure
|
||||
https://github.com/Wilfred/ag.el
|
||||
https://github.com/dengste/org-caldav
|
||||
https://github.com/tmalsburg/helm-bibtex
|
||||
https://github.com/pronobis/matlab-mode
|
||||
https://github.com/yuhonglin/matlab-mode
|
||||
https://github.com/Chobbes/org-chef
|
||||
https://github.com/fuxialexander/emacs-webkit-katex-render
|
||||
https://github.com/myuhe/org-gcal.el
|
||||
https://github.com/emacs-evil/evil-collection
|
||||
|
||||
* Theme
|
||||
https://github.com/greduan/emacs-theme-gruvbox
|
||||
|
||||
* Org Mode
|
||||
https://github.com/fniessen/org-html-themes
|
||||
https://github.com/astahlman/ob-async
|
||||
https://github.com/bastibe/org-journal
|
||||
https://github.com/alphapapa/org-super-agenda
|
||||
https://github.com/hagmonk/org-kanban
|
54
awesome/latex.org
Normal file
54
awesome/latex.org
Normal file
@ -0,0 +1,54 @@
|
||||
#+TITLE: Awesome LaTeX
|
||||
|
||||
* Other Awezome LaTeX
|
||||
https://github.com/cmichi/latex-template-collection
|
||||
https://github.com/latex3/latex3
|
||||
https://github.com/egeerardyn/awesome-LaTeX
|
||||
https://github.com/simonharrer/latex-best-practices
|
||||
https://github.com/dspinellis/latex-advice
|
||||
|
||||
* Learn LaTeX
|
||||
https://www.youtube.com/user/AlainOlivetti/playlists
|
||||
* Tools
|
||||
https://tectonic-typesetting.github.io/en-US/
|
||||
https://github.com/gpoore/minted
|
||||
|
||||
* Theme/class
|
||||
https://github.com/derric/cleanthesis
|
||||
https://github.com/tdehaeze/clean-latex-template
|
||||
https://github.com/deedy/Deedy-Resume
|
||||
https://github.com/deselaers/latex-beamerposter
|
||||
|
||||
* Beamer
|
||||
https://github.com/josephwright/beamer
|
||||
|
||||
** Theme
|
||||
https://github.com/matze/mtheme
|
||||
https://github.com/martinbjeldbak/ultimate-beamer-theme-list
|
||||
|
||||
* Tikz
|
||||
https://github.com/walmes/Tikz
|
||||
https://github.com/xiaohanyu/awesome-tikz
|
||||
https://github.com/circuitikz/circuitikz
|
||||
https://github.com/cbersch/pst-optexp
|
||||
https://github.com/hackl/TikZ-StructuralAnalysis
|
||||
https://github.com/fhackenberger/ktikz
|
||||
|
||||
* Packages
|
||||
https://github.com/T-F-S/tcolorbox
|
||||
* Math
|
||||
** Make arrows with text above and bellow
|
||||
https://tex.stackexchange.com/questions/103988/rightarrow-with-text-above-it
|
||||
|
||||
#+BEGIN_SRC latex
|
||||
\documentclass{article}
|
||||
\usepackage{mathtools}
|
||||
\begin{document}
|
||||
|
||||
$\xrightarrow[\text{world}]{\text{hello}}$
|
||||
$\xRightarrow[\text{world}]{\text{hello}}$
|
||||
|
||||
$\xrightarrow[g(x)]{f(x)}$
|
||||
$\xRightarrow[g(x)]{f(x)}$
|
||||
\end{document}
|
||||
#+END_SRC
|
73
awesome/vim.org
Normal file
73
awesome/vim.org
Normal file
@ -0,0 +1,73 @@
|
||||
#+TITLE: Awesome Vim
|
||||
|
||||
* Other Awesome Vim
|
||||
https://github.com/akrawchyk/awesome-vim
|
||||
|
||||
* Distribution
|
||||
https://github.com/SpaceVim/SpaceVim
|
||||
|
||||
* Packages
|
||||
https://github.com/metakirby5/codi.vim
|
||||
https://github.com/SirVer/ultisnips
|
||||
https://github.com/fatih/vim-go
|
||||
https://github.com/junegunn/fzf.vim
|
||||
https://github.com/junegunn/goyo.vim
|
||||
https://github.com/junegunn/vim-easy-align
|
||||
https://github.com/tpope/vim-obsession
|
||||
https://github.com/itchyny/lightline.vim
|
||||
https://github.com/christoomey/vim-tmux-navigator
|
||||
https://github.com/Valloric/YouCompleteMe
|
||||
https://github.com/tpope/vim-dispatch
|
||||
https://github.com/jpalardy/vim-slime
|
||||
https://github.com/Shougo/deoplete.nvim
|
||||
https://github.com/justinmk/vim-sneak
|
||||
https://github.com/sheerun/vim-polyglot
|
||||
https://github.com/tommcdo/vim-exchange
|
||||
https://github.com/tpope/vim-commentary
|
||||
https://github.com/neomake/neomake
|
||||
https://github.com/honza/vim-snippets
|
||||
https://github.com/kassio/neoterm
|
||||
https://github.com/Shougo/vimfiler.vim
|
||||
https://github.com/tpope/vim-abolish
|
||||
https://github.com/zchee/deoplete-jedi
|
||||
https://github.com/Rip-Rip/clang_complete
|
||||
https://github.com/jiangmiao/auto-pairs
|
||||
https://github.com/majutsushi/tagbar
|
||||
https://github.com/vim-scripts/a.vim
|
||||
https://github.com/mhinz/vim-startify
|
||||
https://github.com/dkprice/vim-easygrep
|
||||
https://github.com/tpope/vim-vinegar
|
||||
https://github.com/jceb/vim-orgmode
|
||||
https://github.com/plasticboy/vim-markdown
|
||||
https://github.com/AndrewRadev/splitjoin.vim
|
||||
https://github.com/tpope/vim-surround
|
||||
https://github.com/mhinz/vim-signify
|
||||
https://github.com/mhinz/vim-grepper
|
||||
https://github.com/itchyny/calendar.vim
|
||||
https://github.com/maxbrunsfeld/vim-yankstack
|
||||
https://github.com/brooth/far.vim
|
||||
https://github.com/JamshedVesuna/vim-markdown-preview
|
||||
https://github.com/sjl/gundo.vim
|
||||
https://github.com/wincent/terminus
|
||||
https://github.com/sbdchd/neoformat
|
||||
https://github.com/ntpeters/vim-better-whitespace
|
||||
https://github.com/tpope/vim-eunuch
|
||||
https://github.com/w0rp/ale
|
||||
https://github.com/Shougo/denite.nvim
|
||||
https://github.com/haya14busa/is.vim
|
||||
https://github.com/Olical/vim-enmasse
|
||||
https://github.com/wincent/loupe
|
||||
https://github.com/daeyun/vim-matlab
|
||||
https://github.com/cknadler/vim-anywhere
|
||||
https://github.com/szymonmaszke/vimpyter
|
||||
https://github.com/tpope/vim-dadbod
|
||||
https://github.com/urbainvaes/vim-remembrall
|
||||
https://github.com/junegunn/vim-peekaboo
|
||||
https://github.com/liuchengxu/vim-which-key
|
||||
https://github.com/easymotion/vim-easymotion
|
||||
https://github.com/chrisbra/NrrwRgn
|
||||
|
||||
* Themes
|
||||
https://github.com/jacoborus/tender.vim
|
||||
https://github.com/mhartington/oceanic-next
|
||||
https://github.com/morhetz/gruvbox
|
4
documentation/makefile.org
Normal file
4
documentation/makefile.org
Normal file
@ -0,0 +1,4 @@
|
||||
#+TITLE: Makefiles
|
||||
|
||||
- http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/
|
||||
- https://swcarpentry.github.io/make-novice/02-makefiles/
|
42
documentation/unix-commands.org
Normal file
42
documentation/unix-commands.org
Normal file
@ -0,0 +1,42 @@
|
||||
#+TITLE: Unix Commands
|
||||
|
||||
* Navigation
|
||||
- =pwd= Print Working Directory
|
||||
- =ls= List Segments: list files
|
||||
- =-a= All - show hidden files
|
||||
- =-l= Long
|
||||
- =-t= Time - in order of modification time
|
||||
- =cd= Change Directory
|
||||
- =mkdir= Make Directory
|
||||
|
||||
* Manipulation
|
||||
- =cp= : copies files
|
||||
- =mv= : moves and rename files
|
||||
- =rm= : remove files
|
||||
- =rm -r= : remove directories (-r : Recursive)
|
||||
|
||||
* Redirection
|
||||
- =>= : redirects output of a command to a file, overwriting previous content
|
||||
- =>>= : redirects output of a command to a file, appending new content to previous content
|
||||
- =<= : redirects standard input to a command
|
||||
- =|= : redirects standard output of a command to another command
|
||||
- =sort= : sort lines of text alphabetically
|
||||
- =uniq= : filters duplicate, adjacent lines of text
|
||||
- =grep= : searches for a text pattern and outputs it
|
||||
- =sed= : searches for a text pattern, modifies it, and outputs it
|
||||
|
||||
* Environnement
|
||||
- =~= (alt+n) : user’s home directory
|
||||
- =nano= : line text editor
|
||||
- =\.bash_profile= : is where environment settings are stored
|
||||
- ~export VARIABLE='Value'~
|
||||
- =USER= : the name of the current user
|
||||
- =HOME= : home directory (not to customize)
|
||||
- =env= : return a list of environment variables
|
||||
|
||||
* Grep
|
||||
=grep texte nomfichier=
|
||||
- =-i= : ne pas tenir compte de la casse (majuscules / minuscules)
|
||||
- =-n= : connaître les numéros des lignes
|
||||
- =-v= : inverser la recherche : ignorer un mot
|
||||
- =-r= : rechercher dans tous les fichiers et sous-dossiers
|
398
dotfiles/bash.org
Normal file
398
dotfiles/bash.org
Normal file
@ -0,0 +1,398 @@
|
||||
#+TITLE: Bash Configuration
|
||||
|
||||
* Bashrc
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.bashrc
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
** TODO What does that do?
|
||||
#+BEGIN_SRC conf
|
||||
[[ $- != *i* ]] && return
|
||||
#+END_SRC
|
||||
|
||||
** Bash Completion
|
||||
#+BEGIN_SRC conf
|
||||
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
|
||||
#+END_SRC
|
||||
|
||||
** Change the window title of X terminals
|
||||
#+BEGIN_SRC conf
|
||||
case ${TERM} in
|
||||
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
|
||||
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
|
||||
;;
|
||||
screen*)
|
||||
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
|
||||
;;
|
||||
esac
|
||||
#+END_SRC
|
||||
|
||||
** Use Color
|
||||
#+BEGIN_SRC conf
|
||||
use_color=true
|
||||
#+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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
unset use_color safe_term match_lhs sh
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
xhost +local:root > /dev/null 2>&1
|
||||
|
||||
complete -cf sudo
|
||||
|
||||
# Line wrap on window resize
|
||||
shopt -s checkwinsize
|
||||
|
||||
shopt -s expand_aliases
|
||||
|
||||
# Auto "cd" when entering just a path
|
||||
shopt -s autocd
|
||||
|
||||
# Enable history appending instead of overwriting
|
||||
shopt -s histappend
|
||||
#+END_SRC
|
||||
|
||||
** Rebind up and down arrow keys to search through bash history
|
||||
#+BEGIN_SRC conf
|
||||
bind '"\e[A": history-search-backward'
|
||||
bind '"\e[B": history-search-forward'
|
||||
#+END_SRC
|
||||
|
||||
** Aliases
|
||||
*** Better defaults for some commands
|
||||
#+BEGIN_SRC conf
|
||||
alias cp="cp -i" # confirm before overwriting something
|
||||
alias df='df -h' # human-readable sizes
|
||||
alias free='free -m' # show sizes in MB
|
||||
alias mutt="neomutt"
|
||||
#+END_SRC
|
||||
|
||||
*** One letter aliases
|
||||
#+BEGIN_SRC conf
|
||||
alias r="ranger"
|
||||
alias t="tmux"
|
||||
alias v="nvim"
|
||||
alias sv='sudo -E nvim'
|
||||
alias g="git"
|
||||
alias m="neomutt"
|
||||
alias y="yadm"
|
||||
alias o="xdg-open"
|
||||
#+END_SRC
|
||||
|
||||
*** Magit
|
||||
#+BEGIN_SRC conf
|
||||
alias magit="emacsclient -create-frame --alternate-editor=\"\" --eval '(magit-status)' ."
|
||||
#+END_SRC
|
||||
|
||||
*** Vim-like
|
||||
#+BEGIN_SRC conf
|
||||
alias :q=exit
|
||||
alias :e=nvim
|
||||
#+END_SRC
|
||||
|
||||
*** Youtube
|
||||
#+BEGIN_SRC conf
|
||||
alias yt="youtube-dl --add-metadata -ic" # Download video link
|
||||
alias yta="yt -x -f bestaudio/best" # Download only audio
|
||||
#+END_SRC
|
||||
|
||||
*** Print each PATH entry on a separate line
|
||||
#+BEGIN_SRC conf
|
||||
alias path='echo -e ${PATH//:/\\n}'
|
||||
#+END_SRC
|
||||
|
||||
*** TODO IP addresses - Remove the use of =dig= and =ifconfig=
|
||||
#+BEGIN_SRC conf
|
||||
# alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
|
||||
# alias localip="ip route get 8.8.4.4 | head -1 | awk '{print $7}'"
|
||||
# alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'"
|
||||
#+END_SRC
|
||||
|
||||
** Functions
|
||||
*** Display colors
|
||||
#+BEGIN_SRC conf
|
||||
colors() {
|
||||
local fgc bgc vals seq0
|
||||
|
||||
printf "Color escapes are %s\n" '\e[${value};...;${value}m'
|
||||
printf "Values 30..37 are \e[33mforeground colors\e[m\n"
|
||||
printf "Values 40..47 are \e[43mbackground colors\e[m\n"
|
||||
printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n"
|
||||
|
||||
# foreground colors
|
||||
for fgc in {30..37}; do
|
||||
# background colors
|
||||
for bgc in {40..47}; do
|
||||
fgc=${fgc#37} # white
|
||||
bgc=${bgc#40} # black
|
||||
|
||||
vals="${fgc:+$fgc;}${bgc}"
|
||||
vals=${vals%%;}
|
||||
|
||||
seq0="${vals:+\e[${vals}m}"
|
||||
printf " %-9s" "${seq0:-(default)}"
|
||||
printf " ${seq0}TEXT\e[m"
|
||||
printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m"
|
||||
done
|
||||
echo; echo
|
||||
done
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Meteo - Is Dig mandatory?
|
||||
To install =dig=, use =yay -S bind-tools=
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
meteo() {
|
||||
if [ -n "$*" ]; then
|
||||
address="wttr.in/"
|
||||
address+=$*
|
||||
address+="?lang=fr"
|
||||
curl "$address"
|
||||
else
|
||||
address="wttr.in/"
|
||||
address+=$(ip)
|
||||
address+="?lang=fr"
|
||||
curl "$address"
|
||||
fi
|
||||
}
|
||||
alias meteo=meteo
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Upload using transfer.sh
|
||||
#+BEGIN_SRC conf
|
||||
upload() {
|
||||
# write to output to tmpfile because of progress bar
|
||||
tmpfile=$(mktemp -t transferXXX)
|
||||
# basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9]/-/g')
|
||||
curl --progress-bar --upload-file "$1" "https://transfer.sh/" >> $tmpfile;
|
||||
cat $tmpfile | xclip;
|
||||
echo "Copied:" $(cat $tmpfile);
|
||||
rm -f $tmpfile;
|
||||
}
|
||||
alias upload=upload
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Upload alternative
|
||||
#+BEGIN_SRC conf
|
||||
transfer() {
|
||||
curl --progress-bar --upload-file "$1" https://transfer.sh/$(basename $1) | xclip -in -selection clipboard;
|
||||
}
|
||||
alias transfer=transfer
|
||||
#+END_SRC
|
||||
|
||||
*** Extract archive
|
||||
usage: ex <file>
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
ex ()
|
||||
{
|
||||
if [ -f $1 ] ; then
|
||||
case $1 in
|
||||
*.tar.bz2) tar xjf $1 ;;
|
||||
*.tar.gz) tar xzf $1 ;;
|
||||
*.bz2) bunzip2 $1 ;;
|
||||
*.rar) unrar x $1 ;;
|
||||
*.gz) gunzip $1 ;;
|
||||
*.tar) tar xf $1 ;;
|
||||
*.tbz2) tar xjf $1 ;;
|
||||
*.tgz) tar xzf $1 ;;
|
||||
*.zip) unzip $1 ;;
|
||||
*.Z) uncompress $1;;
|
||||
*.7z) 7z x $1 ;;
|
||||
*) echo "'$1' cannot be extracted via ex()" ;;
|
||||
esac
|
||||
else
|
||||
echo "'$1' is not a valid file"
|
||||
fi
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
*** Tree display
|
||||
=tre= is a shorthand for =tree= with hidden files and color enabled, ignoring
|
||||
the =.git= directory, listing directories first. The output gets piped into
|
||||
=less= with options to preserve color and line numbers, unless the output is
|
||||
small enough for one screen.
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
function tre() {
|
||||
tree -aC -I '.git|node_modules|bower_components' --dirsfirst "$@" | less -FRNX;
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
*** Create a new directory and enter it
|
||||
#+BEGIN_SRC conf
|
||||
function mkd() {
|
||||
mkdir -p "$@" && cd "$_";
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
*** Filesize of directory
|
||||
#+BEGIN_SRC conf
|
||||
function fs() {
|
||||
if du -b /dev/null > /dev/null 2>&1; then
|
||||
local arg=-sbh;
|
||||
else
|
||||
local arg=-sh;
|
||||
fi
|
||||
if [[ -n "$@" ]]; then
|
||||
du $arg -- "$@";
|
||||
else
|
||||
du $arg .[^.]* ./*;
|
||||
fi;
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
*** Redirect both standard output and standard error, as well as sending to background
|
||||
#+BEGIN_SRC conf
|
||||
function nullify() {
|
||||
"$@" >/dev/null 2>&1
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
** 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
|
||||
#+END_SRC
|
||||
|
||||
** Exports
|
||||
*** Better yaourt colors
|
||||
#+BEGIN_SRC conf
|
||||
export YAOURT_COLORS="nb=1:pkg=1:ver=1;32:lver=1;45:installed=1;42:grp=1;34:od=1;41;5:votes=1;44:dsc=0:other=1;35"
|
||||
#+END_SRC
|
||||
|
||||
*** Use Ripgrep for FZF
|
||||
#+BEGIN_SRC conf
|
||||
export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow --glob "!.git/*"'
|
||||
#+END_SRC
|
||||
|
||||
*** Goland
|
||||
#+BEGIN_SRC conf
|
||||
export GOPATH=$HOME/go
|
||||
#+END_SRC
|
||||
|
||||
*** Path
|
||||
#+BEGIN_SRC conf
|
||||
PATH=$GOPATH:$GOPATH/bin:$PATH
|
||||
PATH=$HOME/appimages:$PATH
|
||||
PATH=$HOME/.gem/ruby/2.5.0/bin:$PATH
|
||||
PATH=~/bin:$PATH
|
||||
export PATH
|
||||
#+END_SRC
|
||||
|
||||
** Bash History
|
||||
Undocumented feature which sets the size to "unlimited". http://stackoverflow.com/questions/9457233/unlimited-bash-history
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
export HISTFILESIZE=
|
||||
export HISTSIZE=
|
||||
export HISTTIMEFORMAT="[%F %T] "
|
||||
#+END_SRC
|
||||
|
||||
Change the file location because certain bash sessions truncate =.bash_history= file upon close. http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
export HISTFILE=~/.bash_eternal_history
|
||||
#+END_SRC
|
||||
|
||||
Force prompt to write history after every command. http://superuser.com/questions/20900/bash-history-loss
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
|
||||
#+END_SRC
|
||||
|
||||
** Base16 Shell
|
||||
#+BEGIN_SRC conf
|
||||
BASE16_SHELL="$HOME/.base16-manager/chriskempson/base16-shell/"
|
||||
[ -n "$PS1" ] && \
|
||||
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
|
||||
eval "$("$BASE16_SHELL/profile_helper.sh")"
|
||||
#+END_SRC
|
||||
|
||||
* Bash Profile
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.bash_profile
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
** Ignore case for autocompletion
|
||||
#+BEGIN_SRC conf
|
||||
bind "set completion-ignore-case on"
|
||||
bind "set show-all-if-ambiguous on"
|
||||
#+END_SRC
|
||||
|
||||
** Source bashrc
|
||||
#+BEGIN_SRC conf
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
#+END_SRC
|
||||
|
||||
* Profile
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.profile
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
** QT And GTK Themes
|
||||
#+BEGIN_SRC conf
|
||||
export QT_QPA_PLATFORMTHEME="qt5ct"
|
||||
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
|
||||
#+END_SRC
|
||||
|
||||
** Gui program to ask for sudo password
|
||||
#+BEGIN_SRC conf
|
||||
export SUDO_ASKPASS=~/bin/askpass-rofi
|
||||
#+END_SRC
|
||||
|
||||
** Default
|
||||
#+BEGIN_SRC conf
|
||||
export EDITOR=/usr/bin/nvim
|
||||
export BROWSER=/usr/bin/qutebrowser
|
||||
#+END_SRC
|
1719
dotfiles/config.org
Normal file
1719
dotfiles/config.org
Normal file
File diff suppressed because it is too large
Load Diff
209
dotfiles/git.org
Normal file
209
dotfiles/git.org
Normal file
@ -0,0 +1,209 @@
|
||||
#+TITLE: Git Configuration
|
||||
|
||||
* Gitconfig
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.gitconfig
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
** Aliases
|
||||
#+BEGIN_SRC conf
|
||||
[alias]
|
||||
# View abbreviated SHA, description, and history graph of the latest 20 commits
|
||||
l = log --pretty=oneline -n 20 --graph --abbrev-commit
|
||||
|
||||
# View the current working tree status using the short format
|
||||
s = status -s
|
||||
|
||||
# Show the diff between the latest commit and the current state
|
||||
d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"
|
||||
|
||||
di = diff --cached --ignore-all-space
|
||||
|
||||
# Pull in remote changes for the current repository and all its submodules
|
||||
p = !"git pull; git submodule foreach git pull origin master"
|
||||
|
||||
# Clone a repository including all submodules
|
||||
c = clone --recursive
|
||||
|
||||
# Commit all changes
|
||||
ca = !git add -A && git commit -av
|
||||
|
||||
# Switch to a branch, creating it if necessary
|
||||
go = "!f() { git checkout -b \"$1\" 2> /dev/null || git checkout \"$1\"; }; f"
|
||||
|
||||
# Show verbose output about tags, branches or remotes
|
||||
tags = tag -l
|
||||
branches = branch -a
|
||||
remotes = remote -v
|
||||
|
||||
# Amend the currently staged files to the latest commit
|
||||
amend = commit --amend --reuse-message=HEAD
|
||||
|
||||
# Credit an author on the latest commit
|
||||
credit = "!f() { git commit --amend --author \"$1 <$2>\" -C HEAD; }; f"
|
||||
|
||||
# Interactive rebase with the given number of latest commits
|
||||
reb = "!r() { git rebase -i HEAD~$1; }; r"
|
||||
|
||||
# Remove the old tag with this name and tag the latest commit with it.
|
||||
retag = "!r() { git tag -d $1 && git push origin :refs/tags/$1 && git tag $1; }; r"
|
||||
|
||||
# Find branches containing commit
|
||||
fb = "!f() { git branch -a --contains $1; }; f"
|
||||
|
||||
# Find tags containing commit
|
||||
ft = "!f() { git describe --always --contains $1; }; f"
|
||||
|
||||
# Find commits by source code
|
||||
fc = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short -S$1; }; f"
|
||||
|
||||
# Find commits by commit message
|
||||
fm = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short --grep=$1; }; f"
|
||||
|
||||
# Remove branches that have already been merged with master
|
||||
dm = "!git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d"
|
||||
|
||||
# List contributors with number of commits
|
||||
contributors = shortlog --summary --numbered
|
||||
|
||||
ec = config --global -e
|
||||
|
||||
# Pretty log output
|
||||
hist = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all
|
||||
|
||||
pp = pull origin $(git_current_branch)
|
||||
gg = push origin $(git_current_branch)
|
||||
rhh = reset HEAD --hard
|
||||
|
||||
unstage = reset HEAD --
|
||||
last = log -1 HEAD
|
||||
#+END_SRC
|
||||
|
||||
** Apply
|
||||
#+BEGIN_SRC conf
|
||||
[apply]
|
||||
# Detect whitespace errors when applying a patch
|
||||
whitespace = fix
|
||||
#+END_SRC
|
||||
|
||||
** Colors
|
||||
#+BEGIN_SRC conf
|
||||
[color]
|
||||
# Use colors in Git commands that are capable of colored output when outputting to the terminal
|
||||
ui = true
|
||||
|
||||
[color "branch"]
|
||||
current = yellow reverse
|
||||
local = yellow
|
||||
remote = green
|
||||
HEAD = red bold
|
||||
|
||||
[color "diff"]
|
||||
meta = yellow bold
|
||||
frag = magenta bold # line info
|
||||
old = red # deletions
|
||||
new = green # additions
|
||||
|
||||
[color "status"]
|
||||
added = green
|
||||
changed = yellow
|
||||
untracked = cyan
|
||||
|
||||
[color "decorate"]
|
||||
HEAD = red bold
|
||||
branch = green
|
||||
remoteBranch = cyan
|
||||
tag = yellow
|
||||
stash = bold yellow
|
||||
#+END_SRC
|
||||
|
||||
** Default Remote
|
||||
#+BEGIN_SRC conf
|
||||
# Use `origin` as the default remote on the `master` branch in all cases
|
||||
[branch "master"]
|
||||
remote = origin
|
||||
merge = refs/heads/master
|
||||
#+END_SRC
|
||||
|
||||
** Push Configuration
|
||||
#+BEGIN_SRC conf
|
||||
[push]
|
||||
default = matching
|
||||
# Make `git push` push relevant annotated tags when pushing branches out.
|
||||
followTags = true
|
||||
#+END_SRC
|
||||
|
||||
** User
|
||||
#+BEGIN_SRC conf
|
||||
[user]
|
||||
name = Thomas Dehaeze
|
||||
email = dehaeze.thomas@gmail.com
|
||||
#+END_SRC
|
||||
|
||||
** Core configuration
|
||||
#+BEGIN_SRC conf
|
||||
[core]
|
||||
# Use custom `.gitignore` and `.gitattributes`
|
||||
excludesfile = ~/.gitignore_global
|
||||
|
||||
# Treat spaces before tabs and all kinds of trailing whitespace as an error
|
||||
# [default] trailing-space: looks for spaces at the end of a line
|
||||
# [default] space-before-tab: looks for spaces before tabs at the beginning of a line
|
||||
whitespace = space-before-tab,-indent-with-non-tab,trailing-space
|
||||
|
||||
# Prevent showing files whose names contain non-ASCII symbols as unversioned.
|
||||
# http://michael-kuehnel.de/git/2014/11/21/git-mac-osx-and-german-umlaute.html
|
||||
precomposeunicode = false
|
||||
|
||||
pager = diff-so-fancy | less --tabs=4 -RFX
|
||||
|
||||
autocrlf = input
|
||||
|
||||
# Open vim, start Goyo and enter insert mode on the first line
|
||||
editor = "nvim -u ~/.vim/vimrc.git -c ':Goyo' -c 'goto 1' -c 'startinsert'"
|
||||
#+END_SRC
|
||||
|
||||
** Credentials using pass
|
||||
#+BEGIN_SRC conf
|
||||
[credential]
|
||||
helper = !pass-git-helper $@
|
||||
|
||||
[credential "https://github.com"]
|
||||
username = tdehaeze
|
||||
#+END_SRC
|
||||
|
||||
** Magithub
|
||||
#+BEGIN_SRC conf
|
||||
[magithub]
|
||||
online = false
|
||||
|
||||
[magithub "status"]
|
||||
includeStatusHeader = false
|
||||
includePullRequestsSection = false
|
||||
includeIssuesSection = false
|
||||
#+END_SRC
|
||||
|
||||
** Diff-so-fancy
|
||||
#+begin_src conf
|
||||
[diff-so-fancy]
|
||||
markEmptyLines = false
|
||||
#+end_src
|
||||
|
||||
** Github
|
||||
#+BEGIN_SRC conf
|
||||
[github]
|
||||
user = tdehaeze
|
||||
#+END_SRC
|
||||
|
||||
* Global Git Ignore
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.gitignore_global
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
*~
|
||||
.DS_Store
|
||||
Session.vim
|
||||
#+END_SRC
|
661
dotfiles/i3.org
Normal file
661
dotfiles/i3.org
Normal file
@ -0,0 +1,661 @@
|
||||
#+TITLE: I3 Configuration
|
||||
#+PROPERTY: header-args:conf+ :comments both
|
||||
#+PROPERTY: header-args:conf+ :mkdirp yes
|
||||
#+PROPERTY: header-args:conf+ :tangle ~/.i3/config
|
||||
|
||||
* Mod Key
|
||||
#+BEGIN_SRC conf
|
||||
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
|
||||
set $mod Mod4
|
||||
#+end_src
|
||||
|
||||
* Border Style
|
||||
#+begin_src conf
|
||||
# Configure border style <normal|1pixel|pixel xx|none|pixel>
|
||||
new_window pixel 2
|
||||
new_float normal
|
||||
# Hide borders
|
||||
hide_edge_borders none
|
||||
#+end_src
|
||||
|
||||
* Font for window titles
|
||||
#+begin_src conf
|
||||
font SauceCodePro Nerd Font 11
|
||||
#+end_src
|
||||
|
||||
* Multimedia keys
|
||||
#+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%-
|
||||
|
||||
# Backlight
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 10
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10
|
||||
|
||||
# Tracks
|
||||
bindsym XF86AudioPlay exec --no-startup-id mpc toggle
|
||||
bindsym XF86AudioNext exec --no-startup-id mpc next
|
||||
bindsym XF86AudioPrev exec --no-startup-id mpc prev
|
||||
|
||||
# Screenshots
|
||||
bindsym $mod+XF86LaunchA --release exec --no-startup-id i3-scrot -w
|
||||
bindsym $mod+Shift+XF86LaunchA --release exec --no-startup-id i3-scrot -s
|
||||
|
||||
# Other
|
||||
bindsym XF86LaunchB fullscreen toggle
|
||||
#+end_src
|
||||
|
||||
* Start Applications
|
||||
#+begin_src conf
|
||||
# TODO
|
||||
# Start program launcher
|
||||
bindsym $mod+d exec --no-startup-id rofi -show run
|
||||
# Windows Switch
|
||||
bindsym $mod+w exec --no-startup-id rofi -show window
|
||||
# CheatSheets
|
||||
bindsym $mod+Shift+c exec --no-startup-id rofi -show CheatSheets -modi CheatSheets:~/scripts/rofi_cheatsheets.sh
|
||||
# Program Launcher with Icons
|
||||
# bindsym $mod+Shift+d exec --no-startup-id rofi -show drun -show-icons
|
||||
# Launch categorized menu
|
||||
bindsym $mod+z exec --no-startup-id rofimenu
|
||||
# Bookmarks
|
||||
bindsym $mod+Shift+f exec --no-startup-id buku_run
|
||||
# Passwords
|
||||
bindsym $mod+Shift+p exec --no-startup-id rofi-pass
|
||||
# Start Terminal
|
||||
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'
|
||||
# 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/bin/toggle.sh bottom
|
||||
bindsym $mod+Shift+t exec --no-startup-id ~/.config/polybar/bin/toggle.sh top
|
||||
#+end_src
|
||||
|
||||
* Vim Anywhere
|
||||
#+begin_src conf
|
||||
# bindsym $mod+t exec vim-anywhere nvim termite
|
||||
#+end_src
|
||||
|
||||
* TODO Screenshot - Change to simplier keys
|
||||
#+begin_src conf
|
||||
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
|
||||
#+end_src
|
||||
|
||||
* 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
|
||||
|
||||
# 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
|
||||
#+end_src
|
||||
|
||||
* Move focused window
|
||||
#+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
|
||||
#+end_src
|
||||
|
||||
** Kill focused window
|
||||
#+begin_src conf
|
||||
bindsym $mod+Shift+q kill
|
||||
#+end_src
|
||||
|
||||
** Use Mouse+$mod to drag floating windows
|
||||
#+begin_src conf
|
||||
floating_modifier $mod
|
||||
#+end_src
|
||||
|
||||
** Toggle fullscreen mode for the focused container
|
||||
#+begin_src conf
|
||||
bindsym $mod+f fullscreen toggle
|
||||
#+end_src
|
||||
|
||||
** TODO 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
|
||||
#+end_src
|
||||
|
||||
** TODO Toggle tiling / floating
|
||||
#+begin_src conf
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
#+end_src
|
||||
|
||||
** TODO Change focus between tiling / floating windows
|
||||
#+begin_src conf
|
||||
# bindsym $mod+space focus mode_toggle
|
||||
#+end_src
|
||||
|
||||
** TODO Toggle sticky
|
||||
#+begin_src conf
|
||||
bindsym $mod+Shift+s sticky toggle
|
||||
#+end_src
|
||||
|
||||
** TODO Focus the parent container
|
||||
#+begin_src conf
|
||||
bindsym $mod+a focus parent
|
||||
#+end_src
|
||||
|
||||
* Scratchpad
|
||||
#+begin_src conf
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+BackSpace move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+BackSpace scratchpad show
|
||||
#+end_src
|
||||
|
||||
* 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"
|
||||
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
|
||||
#+begin_src conf
|
||||
for_window [instance="scratch-insect"] scratchpad show;
|
||||
exec termite --name="scratch-insect" --exec="insect"
|
||||
for_window [instance="scratch-insect"] floating enable;
|
||||
for_window [instance="scratch-insect"] move position 440 px 225 px;
|
||||
for_window [instance="scratch-insect"] resize set 800 px 600 px;
|
||||
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
|
||||
#+begin_src conf
|
||||
for_window [instance="scratch-ranger"] scratchpad show;
|
||||
exec urxvt -name scratch-ranger -e ranger
|
||||
for_window [instance="scratch-ranger"] floating enable;
|
||||
for_window [instance="scratch-ranger"] move position 240 px 125 px;
|
||||
for_window [instance="scratch-ranger"] resize set 1200 px 800 px;
|
||||
for_window [instance="scratch-ranger"] move scratchpad;
|
||||
#+end_src
|
||||
|
||||
** Terminal
|
||||
#+begin_src conf
|
||||
for_window [instance="scratch-termite"] scratchpad show;
|
||||
exec termite --name="scratch-termite"
|
||||
for_window [instance="scratch-termite"] floating enable;
|
||||
for_window [instance="scratch-termite"] move position 440 px 225 px;
|
||||
for_window [instance="scratch-termite"] resize set 800 px 600 px;
|
||||
for_window [instance="scratch-termite"] move scratchpad;
|
||||
#+end_src
|
||||
|
||||
** TODO Stratchpad Mode - Add scripts that is there is no windows with that name runs the windows and then displays it
|
||||
#+begin_src conf
|
||||
bindsym $mod+s mode "$mode_stratchpad"
|
||||
set $mode_stratchpad (m)ails (p)layer (c)alc (s)hell (n)ews (r)anger
|
||||
mode "$mode_stratchpad" {
|
||||
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"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
#+end_src
|
||||
|
||||
* TODO [#A] 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
|
||||
set $ws1 1:
|
||||
set $ws2 2:
|
||||
set $ws3 3:
|
||||
set $ws4 4:
|
||||
set $ws5 5:
|
||||
set $ws6 6:
|
||||
set $ws7 7:
|
||||
set $ws8 8:
|
||||
#+end_src
|
||||
|
||||
* Switch to workspace
|
||||
#+begin_src conf
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
#+end_src
|
||||
|
||||
* Navigate Workspace
|
||||
** Workspace back and forth (with/without active container)
|
||||
#+begin_src conf
|
||||
workspace_auto_back_and_forth yes
|
||||
bindsym $mod+b workspace back_and_forth
|
||||
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
|
||||
#+end_src
|
||||
|
||||
** Move to prev/next workspace
|
||||
#+begin_src conf
|
||||
bindsym $mod+n workspace next
|
||||
bindsym $mod+p workspace prev
|
||||
#+end_src
|
||||
|
||||
* 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
|
||||
bindsym $mod+Ctrl+3 move container to workspace $ws3
|
||||
bindsym $mod+Ctrl+4 move container to workspace $ws4
|
||||
bindsym $mod+Ctrl+5 move container to workspace $ws5
|
||||
bindsym $mod+Ctrl+6 move container to workspace $ws6
|
||||
bindsym $mod+Ctrl+7 move container to workspace $ws7
|
||||
bindsym $mod+Ctrl+8 move container to workspace $ws8
|
||||
#+end_src
|
||||
|
||||
* 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
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
|
||||
#+end_src
|
||||
|
||||
* Open applications on specific workspaces
|
||||
#+begin_src conf
|
||||
# assign [class="qutebrowser"] $ws1
|
||||
# assign [class="Pcmanfm"] $ws2
|
||||
|
||||
# Matlab Figures
|
||||
assign[title="^Fig"] $ws6
|
||||
for_window [title="^Fig"] layout tabbed
|
||||
assign[title="^HG_Peer"] $ws6 # Name of window when export figure with matlab
|
||||
#+end_src
|
||||
|
||||
* Open specific applications in floating mode
|
||||
#+begin_src conf
|
||||
for_window [title="alsamixer"] floating enable border pixel 1
|
||||
for_window [class="calamares"] floating enable border normal
|
||||
for_window [class="Clipgrab"] floating enable
|
||||
for_window [title="File Transfer*"] floating enable
|
||||
for_window [class="Galculator"] floating enable border pixel 1
|
||||
for_window [class="GParted"] floating enable border normal
|
||||
for_window [title="i3_help"] floating enable sticky enable border normal
|
||||
for_window [class="Lightdm-settings"] floating enable
|
||||
for_window [class="Lxappearance"] floating enable sticky enable border normal
|
||||
for_window [class="Manjaro Settings Manager"] floating enable border normal
|
||||
for_window [title="MuseScore: Play Panel"] floating enable
|
||||
for_window [class="Nitrogen"] floating enable sticky enable border normal
|
||||
for_window [class="Oblogout"] fullscreen enable
|
||||
for_window [class="octopi"] floating enable
|
||||
for_window [class="Pamac-manager"] floating enable
|
||||
for_window [class="Pavucontrol"] floating enable
|
||||
for_window [class="qt5ct"] floating enable sticky enable border normal
|
||||
for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal
|
||||
for_window [class="Simple-scan"] floating enable border normal
|
||||
for_window [class="(?i)System-config-printer.py"] floating enable border normal
|
||||
for_window [class="Skype"] floating enable border normal
|
||||
for_window [class="Timeset-gui"] floating enable border normal
|
||||
for_window [class="(?i)virtualbox"] floating enable border normal
|
||||
for_window [class="Xfburn"] floating enable
|
||||
for_window [title="^Documentation -"] floating enable border normal
|
||||
for_window [class="Yad"] floating enable
|
||||
#+end_src
|
||||
|
||||
* reload the configuration file
|
||||
#+begin_src conf
|
||||
# bindsym $mod+Shift+c reload
|
||||
#+end_src
|
||||
|
||||
* restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
#+begin_src conf
|
||||
bindsym $mod+Shift+r restart
|
||||
#+end_src
|
||||
|
||||
* exit i3 (logs you out of your X session)
|
||||
#+begin_src conf
|
||||
# bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||
#+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"
|
||||
# Mails with GUI
|
||||
bindsym Shift+m exec qutebrowser https://mail.google.com/ https://mail.ulg.ac.be/ https://ssl.esrf.fr/+CSCO+0h75676763663A2F2F6A6A6A662E726665732E7365++/rc/?_task=mail&_mbox=INBOX; 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"
|
||||
|
||||
# exit resize mode: Enter or Escape
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
#+end_src
|
||||
|
||||
* Emacs Mode
|
||||
#+begin_src conf
|
||||
bindsym $mod+e mode "emacs"
|
||||
|
||||
mode "emacs" {
|
||||
# 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"
|
||||
# Bibliography Managmenet with Emacs and Helm-Bibtex
|
||||
bindsym b exec emacsclient -create-frame --alternate-editor="" --eval '(helm-bibtex)'; mode "default"
|
||||
# Capture
|
||||
bindsym c exec emacsclient -create-frame --alternate-editor="" --eval '(org-capture)'; mode "default"
|
||||
# TODO Mails with Emacs
|
||||
# bindsym m exec emacsclient -create-frame --alternate-editor="" --eval '(mu4e)'; 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/wallpaper.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 1680x1050 --dpi 192
|
||||
|
||||
# Redshift
|
||||
exec --no-startup-id redshift
|
||||
|
||||
# Emacs Daemon
|
||||
exec --no-startup-id /usr/bin/emacs --fg-daemon
|
||||
|
||||
# TODO - Start polybar
|
||||
exec_always --no-startup-id $HOME/.config/polybar/bin/launch.sh
|
||||
# exec_always --no-startup-id $HOME/.i3/scripts/polybar_wrapper.sh launch
|
||||
#+end_src
|
||||
|
||||
* Old autostart Applications
|
||||
#+begin_src conf
|
||||
# Used to display shortcuts in the background
|
||||
# exec --no-startup-id start_conky_live_solarized
|
||||
# Tray keyboard indicator
|
||||
# exec_always --no-startup-id sbxkb
|
||||
# Clipboard Manager
|
||||
# exec --no-startup-id clipit
|
||||
# Tray Icon with update notifications
|
||||
# exec --no-startup-id pamac-tray
|
||||
# Sound Icon
|
||||
# exec --no-startup-id volumeicon
|
||||
# Find what this does
|
||||
# exec_always --no-startup-id fix_xcursor
|
||||
#+end_src
|
||||
|
||||
* Color palette used for the terminal ( ~/.Xresources file )
|
||||
Colors are gathered based on the documentation https://i3wm.org/docs/userguide.html#xresources.
|
||||
|
||||
#+begin_src conf
|
||||
set_from_resource $darkred color1 #000000
|
||||
set_from_resource $red color9 #000000
|
||||
set_from_resource $darkgreen color2 #000000
|
||||
set_from_resource $green color10 #000000
|
||||
set_from_resource $darkyellow color3 #000000
|
||||
set_from_resource $yellow color11 #000000
|
||||
set_from_resource $darkblue color4 #000000
|
||||
set_from_resource $blue color12 #000000
|
||||
set_from_resource $darkmagenta color5 #000000
|
||||
set_from_resource $magenta color13 #000000
|
||||
set_from_resource $darkcyan color6 #000000
|
||||
set_from_resource $cyan color14 #000000
|
||||
set_from_resource $darkwhite color7 #000000
|
||||
set_from_resource $white color15 #000000
|
||||
|
||||
# Use custom colors for black
|
||||
set $black #282828
|
||||
set $darkblack #1d2021
|
||||
set $transparent #00000000
|
||||
|
||||
# set_from_resource $term_background background
|
||||
# set_from_resource $term_foreground foreground
|
||||
# set_from_resource $term_color0 color0
|
||||
# set_from_resource $term_color1 color1
|
||||
# set_from_resource $term_color2 color2
|
||||
# set_from_resource $term_color3 color3
|
||||
# set_from_resource $term_color4 color4
|
||||
# set_from_resource $term_color5 color5
|
||||
# set_from_resource $term_color6 color6
|
||||
# set_from_resource $term_color7 color7
|
||||
# set_from_resource $term_color8 color8
|
||||
# set_from_resource $term_color9 color9
|
||||
# set_from_resource $term_color10 color10
|
||||
# set_from_resource $term_color11 color11
|
||||
# set_from_resource $term_color12 color12
|
||||
# set_from_resource $term_color13 color13
|
||||
# set_from_resource $term_color14 color14
|
||||
# set_from_resource $term_color15 color15
|
||||
#+end_src
|
||||
|
||||
* 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.background #2B2C2B
|
||||
#+end_src
|
||||
|
||||
* Settings for i3-gaps
|
||||
#+begin_src conf
|
||||
# Set inner/outer gaps
|
||||
gaps inner 10
|
||||
gaps outer -2
|
||||
|
||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
||||
# gaps inner|outer current|all set|plus|minus <px>
|
||||
# gaps inner all set 10
|
||||
# gaps outer all plus 5
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
# smart_gaps on
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
||||
|
||||
mode "$mode_gaps" {
|
||||
bindsym o mode "$mode_gaps_outer"
|
||||
bindsym i mode "$mode_gaps_inner"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_inner" {
|
||||
bindsym plus gaps inner current plus 5
|
||||
bindsym minus gaps inner current minus 5
|
||||
|
||||
bindsym 0 gaps inner current set 0
|
||||
|
||||
bindsym Shift+plus gaps inner all plus 5
|
||||
bindsym Shift+minus gaps inner all minus 5
|
||||
bindsym Shift+0 gaps inner all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_outer" {
|
||||
bindsym plus gaps outer current plus 5
|
||||
bindsym minus gaps outer current minus 5
|
||||
bindsym 0 gaps outer current set 0
|
||||
|
||||
bindsym Shift+plus gaps outer all plus 5
|
||||
bindsym Shift+minus gaps outer all minus 5
|
||||
bindsym Shift+0 gaps outer all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
#+end_src
|
||||
|
||||
* Keyboard Configuration
|
||||
#+begin_src conf
|
||||
# Set repetition keyboard rate
|
||||
exec --no-startup-id xset r rate 200 40
|
||||
# Set International US keyboard layout
|
||||
exec --no-startup-id setxkbmap -layout us -variant intl -option caps:escape
|
||||
# Default numpad on
|
||||
# exec --no-startup-id numlockx &
|
||||
# =============================================================
|
||||
#+END_SRC
|
910
dotfiles/mail.org
Normal file
910
dotfiles/mail.org
Normal file
@ -0,0 +1,910 @@
|
||||
#+TITLE: Mail Configuration
|
||||
|
||||
* Synchronize Mailboxes - Mbsync
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.mbsyncrc
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
http://isync.sourceforge.net/
|
||||
|
||||
** Global Defaults
|
||||
#+BEGIN_SRC conf
|
||||
# Automatically create missing mailboxes, both locally and on the server
|
||||
Create Both
|
||||
# Save the synchronization state files in the relevant directory
|
||||
SyncState *
|
||||
# Permanently remove all messages [on the Master/Slave] marked for deletion.
|
||||
Expunge Both
|
||||
#+END_SRC
|
||||
|
||||
** Gmail Account
|
||||
#+BEGIN_SRC conf
|
||||
IMAPAccount gmail
|
||||
Host imap.gmail.com
|
||||
User dehaeze.thomas@gmail.com
|
||||
PassCmd "pass email/dehaeze.thomas@gmail.com"
|
||||
SSLType IMAPS
|
||||
AuthMechs LOGIN
|
||||
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
IMAPStore gmail-remote
|
||||
Account gmail
|
||||
|
||||
MaildirStore gmail-local
|
||||
Path ~/.mail/gmail/
|
||||
Inbox ~/.mail/gmail/Inbox
|
||||
|
||||
Channel gmail-Home
|
||||
Master :gmail-remote:"INBOX"
|
||||
Slave :gmail-local:Inbox
|
||||
|
||||
Channel gmail-Drafts
|
||||
Master :gmail-remote:"[Gmail]/Drafts"
|
||||
Slave :gmail-local:Drafts
|
||||
|
||||
Channel gmail-Sent
|
||||
Master :gmail-remote:"[Gmail]/Sent Mail"
|
||||
Slave :gmail-local:Sent
|
||||
|
||||
Channel gmail-Trash
|
||||
Master :gmail-remote:"[Gmail]/Trash"
|
||||
Slave :gmail-local:Trash
|
||||
|
||||
Channel gmail-All
|
||||
Master :gmail-remote:"[Gmail]/All Mail"
|
||||
Slave :gmail-local:Archive
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
# Catch-all for everything else: note that the `Patterns` have to exclude both
|
||||
# the remote and local names for all the folders we want to exclude (except
|
||||
# "INBOX", which is special-cased, it would seem).
|
||||
Channel gmail
|
||||
Master :gmail-remote:
|
||||
Slave :gmail-local:
|
||||
# Exclude everything under the internal [Gmail] folder, except the interesting folders
|
||||
Patterns *
|
||||
Patterns !INBOX
|
||||
Patterns ![Gmail]*
|
||||
Patterns !Archive
|
||||
Patterns !Drafts
|
||||
Patterns !Sent Mail
|
||||
Patterns !Trash
|
||||
Patterns !Spam
|
||||
Patterns !Starred
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
# For doing a quick sync of just the INBOX with `mbsync gmail-download`.
|
||||
Channel gmail-download
|
||||
Master :gmail-remote:"INBOX"
|
||||
Slave :gmail-local:Inbox
|
||||
Create Slave
|
||||
Expunge Slave
|
||||
Sync Pull
|
||||
#+END_SRC
|
||||
|
||||
** ESRF Account
|
||||
#+BEGIN_SRC conf
|
||||
IMAPAccount esrf
|
||||
Host imaps.esrf.fr
|
||||
User dehaeze
|
||||
PassCmd "pass email/thomas.dehaeze@esrf.fr"
|
||||
SSLType IMAPS
|
||||
AuthMechs LOGIN
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
IMAPStore esrf-remote
|
||||
Account esrf
|
||||
|
||||
MaildirStore esrf-local
|
||||
Path ~/.mail/esrf/
|
||||
Inbox ~/.mail/esrf/Inbox
|
||||
|
||||
Channel esrf-Home
|
||||
Master :esrf-remote:"Inbox"
|
||||
Slave :esrf-local:Inbox
|
||||
|
||||
Channel esrf-Drafts
|
||||
Master :esrf-remote:"Drafts"
|
||||
Slave :esrf-local:Drafts
|
||||
|
||||
Channel esrf-Archive
|
||||
Master :esrf-remote:"Archive"
|
||||
Slave :esrf-local:Archive
|
||||
|
||||
Channel esrf-Sent
|
||||
Master :esrf-remote:"Sent"
|
||||
Slave :esrf-local:Sent
|
||||
|
||||
Channel esrf-Trash
|
||||
Master :esrf-remote:"Trash"
|
||||
Slave :esrf-local:Trash
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
Channel esrf
|
||||
Master :esrf-remote:
|
||||
Slave :esrf-local:
|
||||
#+END_SRC
|
||||
|
||||
For doing a quick sync of just the INBOX with `mbsync esrf-download`.
|
||||
#+BEGIN_SRC conf
|
||||
Channel esrf-download
|
||||
Master :esrf-remote:"INBOX"
|
||||
Slave :esrf-local:Inbox
|
||||
Create Slave
|
||||
Expunge Slave
|
||||
Sync Pull
|
||||
#+END_SRC
|
||||
|
||||
** ULG Account
|
||||
#+BEGIN_SRC conf
|
||||
IMAPAccount ulg
|
||||
Host mail.ulg.ac.be
|
||||
User thomas.dehaeze@doct.uliege.be
|
||||
PassCmd "pass email/thomas.dehaeze@doct.uliege.be"
|
||||
SSLType IMAPS
|
||||
AuthMechs LOGIN
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
IMAPStore ulg-remote
|
||||
Account ulg
|
||||
|
||||
MaildirStore ulg-local
|
||||
Path ~/.mail/ulg/
|
||||
Inbox ~/.mail/ulg/Inbox
|
||||
|
||||
Channel ulg-Home
|
||||
Master :ulg-remote:"Inbox"
|
||||
Slave :ulg-local:Inbox
|
||||
|
||||
Channel ulg-Drafts
|
||||
Master :ulg-remote:"Drafts"
|
||||
Slave :ulg-local:Drafts
|
||||
|
||||
Channel ulg-Archive
|
||||
Master :ulg-remote:"Archive"
|
||||
Slave :ulg-local:Archive
|
||||
|
||||
Channel ulg-Sent
|
||||
Master :ulg-remote:"Sent"
|
||||
Slave :ulg-local:Sent
|
||||
|
||||
Channel ulg-Trash
|
||||
Master :ulg-remote:"Trash"
|
||||
Slave :ulg-local:Trash
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
Channel ulg
|
||||
Master :ulg-remote:
|
||||
Slave :ulg-local:
|
||||
#+END_SRC
|
||||
|
||||
For doing a quick sync of just the INBOX with `mbsync ulg-download`.
|
||||
#+BEGIN_SRC conf
|
||||
Channel ulg-download
|
||||
Master :ulg-remote:"Inbox"
|
||||
Slave :ulg-local:Inbox
|
||||
Create Slave
|
||||
Expunge Slave
|
||||
Sync Pull
|
||||
#+END_SRC
|
||||
|
||||
* Send Mails - Msmtp
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.msmtprc
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
https://marlam.de/msmtp/
|
||||
|
||||
** Defaults
|
||||
#+BEGIN_SRC conf
|
||||
defaults
|
||||
auth on
|
||||
tls on
|
||||
tls_certcheck off
|
||||
#+END_SRC
|
||||
|
||||
** Gmail Account
|
||||
#+BEGIN_SRC conf
|
||||
account gmail
|
||||
host smtp.gmail.com
|
||||
port 587
|
||||
protocol smtp
|
||||
from dehaeze.thomas@gmail.com
|
||||
user dehaeze.thomas@gmail.com
|
||||
passwordeval "pass email/dehaeze.thomas@gmail.com"
|
||||
#+END_SRC
|
||||
|
||||
** ESRF Account
|
||||
#+BEGIN_SRC conf
|
||||
account esrf
|
||||
host smtps.esrf.fr
|
||||
port 465
|
||||
protocol smtp
|
||||
from thomas.dehaeze@esrf.fr
|
||||
user dehaeze
|
||||
tls_starttls off
|
||||
passwordeval "pass email/thomas.dehaeze@esrf.fr"
|
||||
#+END_SRC
|
||||
|
||||
** ULG Account
|
||||
#+BEGIN_SRC conf
|
||||
account ulg
|
||||
host smtp.ulg.ac.be
|
||||
port 587
|
||||
protocol smtp
|
||||
from thomas.dehaeze@doct.uliege.be
|
||||
user s177313
|
||||
tls_starttls on
|
||||
passwordeval "pass email/thomas.dehaeze@doct.uliege.be"
|
||||
#+END_SRC
|
||||
|
||||
** Default Account
|
||||
#+BEGIN_SRC conf
|
||||
account default : gmail
|
||||
#+END_SRC
|
||||
|
||||
* TODO Mail Indexer - Mu
|
||||
http://www.djcbsoftware.nl/code/mu/
|
||||
|
||||
** Cheatsheet
|
||||
http://www.djcbsoftware.nl/code/mu/cheatsheet.html
|
||||
|
||||
* Mail Client - NeoMutt
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.mutt/muttrc
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
https://neomutt.org/
|
||||
|
||||
** Bindings
|
||||
*** TODO Vim Bindings
|
||||
Unding toutes les touches (https://github.com/iagox86/mutt/blob/master/keybindings.conf) et rebind tout pour faire un truc coherent et documenté
|
||||
Rajouter les keybindings de vim https://github.com/neomutt/neomutt/issues/56#issuecomment-250780838
|
||||
|
||||
*** Unbind Few keys
|
||||
#+BEGIN_SRC conf
|
||||
bind index,pager i noop
|
||||
bind index,pager g noop
|
||||
bind index,pager \# noop
|
||||
bind index \Cf noop
|
||||
#+END_SRC
|
||||
|
||||
*** Index and Pager
|
||||
#+BEGIN_SRC conf
|
||||
bind index,pager R group-reply
|
||||
bind index,pager s sync-mailbox
|
||||
#+END_SRC
|
||||
|
||||
*** Navigation
|
||||
#+BEGIN_SRC conf
|
||||
bind index <space> collapse-thread
|
||||
|
||||
bind index k previous-entry
|
||||
bind pager k previous-line
|
||||
bind index j next-entry
|
||||
bind pager j next-line
|
||||
bind index l display-message
|
||||
bind index gg first-entry
|
||||
bind pager gg top
|
||||
bind index G last-entry
|
||||
bind pager G bottom
|
||||
|
||||
bind attach,index,pager \CD next-page
|
||||
bind attach,index,pager \CU previous-page
|
||||
|
||||
bind index h noop
|
||||
bind pager h exit
|
||||
#+END_SRC
|
||||
|
||||
*** Index
|
||||
#+BEGIN_SRC conf
|
||||
bind index u undelete-message
|
||||
|
||||
bind index F search
|
||||
|
||||
bind index,pager P print-message
|
||||
|
||||
bind index,pager p recall-message
|
||||
bind index,pager N search-opposite
|
||||
|
||||
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
||||
macro index,pager \Cw "<pipe-entry> urlview<enter>" "call urlview to open links"
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Sync email
|
||||
#+BEGIN_SRC conf
|
||||
# Just use one script for that. Merge with the script under ~/script
|
||||
macro index,pager o "<shell-escape>$HOME/.mutt/bin/get_new_mail.sh<enter>"
|
||||
macro index,pager O "<shell-escape>$HOME/.mutt/bin/get_new_mail.sh all<enter>"
|
||||
#+END_SRC
|
||||
|
||||
*** Copy and move dialogs
|
||||
#+BEGIN_SRC conf
|
||||
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
|
||||
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
|
||||
#+END_SRC
|
||||
|
||||
*** Quickly change mailboxes
|
||||
#+BEGIN_SRC conf
|
||||
macro index,pager c "<change-folder>?<toggle-mailboxes>" "change folder"
|
||||
macro index,pager gm "<change-folder>+gmail/Inbox<enter>" "go to inbox"
|
||||
macro index,pager ge "<change-folder>+esrf/Inbox<enter>" "go to inbox"
|
||||
macro index,pager gu "<change-folder>+ulg/Inbox<enter>" "go to inbox"
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Labels
|
||||
#+BEGIN_SRC conf
|
||||
bind index,pager y edit-label
|
||||
#+END_SRC
|
||||
|
||||
*** Open in Vim
|
||||
#+BEGIN_SRC conf
|
||||
bind index,pager V noop
|
||||
macro index,pager V "|nvim -u ~/.vim/vimrc.mutt -c 'setlocal ft=mail' -c 'setlocal buftype=nofile' -<enter>" "open in vim"
|
||||
#+END_SRC
|
||||
|
||||
*** Make quick html view macro
|
||||
#+BEGIN_SRC conf
|
||||
bind index,pager H noop # Unbinds V from version
|
||||
macro index,pager H "<view-attachments><search>html<enter><view-mailcap><exit>"
|
||||
#+END_SRC
|
||||
|
||||
*** Mouse wheel
|
||||
#+BEGIN_SRC conf
|
||||
bind pager \031 previous-line # Mouse wheel
|
||||
bind pager \005 next-line # Mouse wheel
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Contacts
|
||||
#+BEGIN_SRC conf
|
||||
macro pager \Ca "<pipe-message> goobook add<return>" "add the sender address to Google contacts"
|
||||
#+END_SRC
|
||||
|
||||
*** Compose
|
||||
#+BEGIN_SRC conf
|
||||
bind compose p postpone-message
|
||||
|
||||
macro attach,compose \Cw "<pipe-entry> urlview<enter>" "call urlview to open links"
|
||||
|
||||
bind compose R rename-attachment
|
||||
|
||||
bind compose a attach-file
|
||||
#+END_SRC
|
||||
|
||||
**** TODO Attach file using GUI File Manager
|
||||
#+BEGIN_SRC conf
|
||||
macro compose A "<shell-escape>bash $HOME/.mutt/bin/attach-file.sh<enter><enter-command>source /tmp/muttpick<enter>" "Attach with GUI"
|
||||
#+END_SRC
|
||||
|
||||
**** TODO - Write html emails using markdown
|
||||
#+BEGIN_SRC conf
|
||||
# macro compose M "F pandoc -s -f markdown -t html \ny^T^Utext/html; charset=us-ascii\n"
|
||||
#+END_SRC
|
||||
|
||||
**** TODO Open another instance of neomutt in readonly mode while composing
|
||||
#+BEGIN_SRC conf
|
||||
macro compose M "<shell-escape>termite -e \"neomutt -R\"<enter>"
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Sidebar
|
||||
#+BEGIN_SRC conf
|
||||
bind index,pager \Ck sidebar-prev
|
||||
bind index,pager \Cj sidebar-next
|
||||
bind index,pager \Co sidebar-open
|
||||
bind index,pager \Cp sidebar-prev-new
|
||||
bind index,pager \Cn sidebar-next-new
|
||||
bind index,pager B sidebar-toggle-visible
|
||||
#+END_SRC
|
||||
|
||||
*** Attachments
|
||||
#+BEGIN_SRC conf
|
||||
bind attach <return> view-mailcap
|
||||
|
||||
macro attach W <save-entry><kill-line>~/Downloads/<enter>y "Save entry"
|
||||
#+END_SRC
|
||||
|
||||
** Colors
|
||||
*** Basic colors
|
||||
#+BEGIN_SRC conf
|
||||
color normal brightblue default
|
||||
color error red default
|
||||
color tilde white default
|
||||
color message cyan default
|
||||
color markers red black
|
||||
color attachment black default
|
||||
color search brightmagenta default
|
||||
color status brightblue white
|
||||
color indicator brightwhite yellow
|
||||
color tree yellow default
|
||||
|
||||
# basic monocolor screen
|
||||
mono bold bold
|
||||
mono underline underline
|
||||
mono indicator reverse
|
||||
mono error bold
|
||||
#+END_SRC
|
||||
|
||||
*** Index
|
||||
#+BEGIN_SRC conf
|
||||
#color index red default "~D(!~p|~p)" # deleted
|
||||
#color index white default ~F # flagged
|
||||
#color index brightred default ~= # duplicate messages
|
||||
#color index brightcyan default "~A!~N!~T!~p!~Q!~F!~D!~P" # the rest
|
||||
#color index J_base default "~A~N!~T!~p!~Q!~F!~D" # the rest, new
|
||||
color index red default "~A" # all messages
|
||||
color index brightred default "~E" # expired messages
|
||||
color index blue default "~N" # new messages
|
||||
color index blue default "~O" # old messages
|
||||
color index brightmagenta default "~Q" # messages that have been replied to
|
||||
color index brightcyan default "~R" # read messages
|
||||
color index blue default "~U" # unread messages
|
||||
color index blue default "~U~$" # unread, unreferenced messages
|
||||
color index brightblue default "~v" # messages part of a collapsed thread
|
||||
color index brightblue default "~P" # messages from me
|
||||
color index cyan default "~p!~F" # messages to me
|
||||
color index cyan default "~N~p!~F" # new messages to me
|
||||
color index cyan default "~U~p!~F" # unread messages to me
|
||||
color index brightcyan default "~R~p!~F" # messages to me
|
||||
color index red default "~F" # flagged messages
|
||||
color index red default "~F~p" # flagged messages to me
|
||||
color index red default "~N~F" # new flagged messages
|
||||
color index red default "~N~F~p" # new flagged messages to me
|
||||
color index red default "~U~F~p" # new flagged messages to me
|
||||
color index white red "~D" # deleted messages
|
||||
color index brightgreen default "~v~(!~N)" # collapsed thread with no unread
|
||||
color index yellow default "~v~(~N)" # collapsed thread with some unread
|
||||
color index green default "~N~v~(~N)" # collapsed thread with unread parent
|
||||
# statusbg used to indicated flagged when foreground color shows other status
|
||||
# for collapsed thread
|
||||
color index red white "~v~(~F)!~N" # collapsed thread with flagged, no unread
|
||||
color index yellow white "~v~(~F~N)" # collapsed thread with some unread & flagged
|
||||
color index green white "~N~v~(~F~N)" # collapsed thread with unread parent & flagged
|
||||
color index green white "~N~v~(~F)" # collapsed thread with unread parent, no unread inside, but some flagged
|
||||
color index cyan white "~v~(~p)" # collapsed thread with unread parent, no unread inside, some to me directly
|
||||
color index yellow red "~v~(~D)" # thread with deleted (doesn't differentiate between all or partial)
|
||||
#color index yellow default "~(~N)" # messages in threads with some unread
|
||||
#color index green default "~S" # superseded messages
|
||||
#color index red default "~T" # tagged messages
|
||||
#color index brightred red "~=" # duplicated messages
|
||||
#+END_SRC
|
||||
|
||||
*** Message headers
|
||||
#+BEGIN_SRC conf
|
||||
color hdrdefault brightcyan default
|
||||
color header brightblue default "^(From)"
|
||||
color header blue default "^(Subject)"
|
||||
#+END_SRC
|
||||
|
||||
*** Body
|
||||
#+BEGIN_SRC conf
|
||||
color quoted blue default
|
||||
color quoted1 cyan default
|
||||
color quoted2 yellow default
|
||||
color quoted3 red default
|
||||
color quoted4 brightred default
|
||||
|
||||
color signature brightcyan default
|
||||
color bold white default
|
||||
color underline white default
|
||||
color normal default default
|
||||
|
||||
color body brightgreen default "[;:][-o][)/(|]" # emoticons
|
||||
color body brightgreen default "[;:][)(|]" # emoticons
|
||||
color body brightgreen default "[*]?((N)?ACK|CU|LOL|SCNR|BRB|BTW|CWYL|\
|
||||
|FWIW|vbg|GD&R|HTH|HTHBE|IMHO|IMNSHO|\
|
||||
|IRL|RTFM|ROTFL|ROFL|YMMV)[*]?"
|
||||
color body brightgreen default "[ ][*][^*]*[*][ ]?" # more emoticon?
|
||||
color body brightgreen default "[ ]?[*][^*]*[*][ ]" # more emoticon?
|
||||
#+END_SRC
|
||||
|
||||
*** PGP
|
||||
#+BEGIN_SRC conf
|
||||
color body red default "(BAD signature)"
|
||||
color body cyan default "(Good signature)"
|
||||
color body brightwhite default "^gpg: Good signature .*"
|
||||
color body brightblue default "^gpg: "
|
||||
color body brightblue red "^gpg: BAD signature from.*"
|
||||
mono body bold "^gpg: Good signature"
|
||||
mono body bold "^gpg: BAD signature from.*"
|
||||
#+END_SRC
|
||||
|
||||
*** Urls
|
||||
#+BEGIN_SRC conf
|
||||
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
|
||||
#+END_SRC
|
||||
|
||||
*** Emails
|
||||
#+BEGIN_SRC conf
|
||||
# color body J_magent default "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])"
|
||||
#+END_SRC
|
||||
|
||||
*** Various smilies and the like
|
||||
#+BEGIN_SRC conf
|
||||
#color body brightblack default "<[Gg]>" # <g>
|
||||
#color body brightblack default "<[Bb][Gg]>" # <bg>
|
||||
#color body yellow default " [;:]-*[})>{(<|]" # :-) etc...
|
||||
# *bold*
|
||||
#color body blue default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)"
|
||||
#mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)"
|
||||
# _underline_
|
||||
#color body blue default "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)"
|
||||
#mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)"
|
||||
# /italic/ (Sometimes gets directory names)
|
||||
#color body blue default "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)"
|
||||
#mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)"
|
||||
|
||||
# Border lines.
|
||||
#color body blue default "( *[-+=#*~_]){6,}"
|
||||
|
||||
#folder-hook . "color status J_black J_status "
|
||||
#folder-hook gmail/inbox "color status J_black yellow "
|
||||
#folder-hook gmail/important "color status J_black yellow "
|
||||
#+END_SRC
|
||||
|
||||
** Sidebar
|
||||
#+BEGIN_SRC conf
|
||||
# Should the Sidebar be shown?
|
||||
set sidebar_visible = yes
|
||||
|
||||
# How wide should the Sidebar be in screen columns?
|
||||
# Note: Some characters, e.g. Chinese, take up two columns each.
|
||||
set sidebar_width = 20
|
||||
|
||||
# Should the mailbox paths be abbreviated?
|
||||
set sidebar_short_path = yes
|
||||
|
||||
# When abbreviating mailbox path names, use any of these characters as path
|
||||
# separators. Only the part after the last separators will be shown.
|
||||
# For file folders '/' is good. For IMAP folders, often '.' is useful.
|
||||
set sidebar_delim_chars = '/.'
|
||||
|
||||
# If the mailbox path is abbreviated, should it be indented?
|
||||
set sidebar_folder_indent = yes
|
||||
|
||||
# Indent mailbox paths with this string.
|
||||
set sidebar_indent_string = ' '
|
||||
|
||||
# Make the Sidebar only display mailboxes that contain new, or flagged,
|
||||
# mail.
|
||||
set sidebar_new_mail_only = no
|
||||
|
||||
# Any mailboxes that are whitelisted will always be visible, even if the
|
||||
# sidebar_new_mail_only option is enabled.
|
||||
# sidebar_whitelist '/home/user/mailbox1'
|
||||
# sidebar_whitelist '/home/user/mailbox2'
|
||||
|
||||
# When searching for mailboxes containing new mail, should the search wrap
|
||||
# around when it reaches the end of the list?
|
||||
set sidebar_next_new_wrap = no
|
||||
|
||||
# Show the Sidebar on the right-hand side of the screen
|
||||
set sidebar_on_right = no
|
||||
|
||||
# The character to use as the divider between the Sidebar and the other Mutt
|
||||
# panels.
|
||||
# Note: Only the first character of this string is used.
|
||||
set sidebar_divider_char = '│'
|
||||
|
||||
# Enable extended buffy mode to calculate total, new, and flagged
|
||||
# message counts for each mailbox.
|
||||
set mail_check_stats
|
||||
|
||||
# Display the Sidebar mailboxes using this format string.
|
||||
set sidebar_format = '%B%?F? [%F]?%* %?N?%N/?%S'
|
||||
|
||||
# Sort the mailboxes in the Sidebar using this method:
|
||||
# count - total number of messages
|
||||
# flagged - number of flagged messages
|
||||
# new - number of new messages
|
||||
# path - mailbox path
|
||||
# unsorted - do not sort the mailboxes
|
||||
set sidebar_sort_method = 'unsorted'
|
||||
#+END_SRC
|
||||
|
||||
** TODO [#A] Searching using Mu
|
||||
#+begin_src conf
|
||||
# mutt macros for mu
|
||||
macro index \Cf "<shell-escape>mu find --clearlinks --format=links --linksdir=~/.mail/search " \
|
||||
"mu find"
|
||||
macro index gf "<change-folder-readonly>~/.mail/search<enter>" \
|
||||
"mu find results"
|
||||
#+end_src
|
||||
|
||||
** Contacts with Mu
|
||||
#+BEGIN_SRC conf
|
||||
# set query_command="goobook query '%s'"
|
||||
# set query_command="lbdbq '%s'"
|
||||
set query_command="mu cfind '%s' -o mutt-ab"
|
||||
|
||||
bind editor <Tab> complete-query
|
||||
#+END_SRC
|
||||
|
||||
** Paths
|
||||
#+BEGIN_SRC conf
|
||||
set folder = ~/.mail # mail location
|
||||
set alias_file = ~/.mutt/alias # where to store aliases
|
||||
set header_cache = ~/.mutt/cache/headers # where to store headers
|
||||
set message_cachedir = ~/.mutt/cache/bodies # where to store bodies
|
||||
set certificate_file = ~/.mutt/certificates # where to store certs
|
||||
# set mailcap_path = ~/.mutt/config/mailcap # entries for filetypes
|
||||
set tmpdir = ~/.mutt/temp # where to keep temp files
|
||||
#+END_SRC
|
||||
|
||||
** TODO Mailcap configuration
|
||||
** TODO Print
|
||||
https://unix.stackexchange.com/questions/20456/pretty-print-mails-from-mutt
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
set print_command="$HOME/.mutt/bin/mutt_print.sh"
|
||||
#+END_SRC
|
||||
|
||||
** Accounts
|
||||
#+BEGIN_SRC conf
|
||||
set spoolfile = "+gmail/Inbox" # Default inbox
|
||||
set realname = "Dehaeze Thomas"
|
||||
set from = "dehaeze.thomas@gmail.com"
|
||||
|
||||
folder-hook gmail/* source ~/.mutt/accounts/gmail
|
||||
folder-hook esrf/* source ~/.mutt/accounts/esrf
|
||||
folder-hook ulg/* source ~/.mutt/accounts/ulg
|
||||
#+END_SRC
|
||||
|
||||
*** Gmail
|
||||
**** Configuration
|
||||
#+begin_src conf :tangle ~/.mutt/accounts/gmail :comments none
|
||||
set from = "dehaeze.thomas@gmail.com"
|
||||
set sendmail = "msmtp -a gmail"
|
||||
|
||||
# Other special folders.
|
||||
set mbox = "+gmail/Archive"
|
||||
set record = "+gmail/Sent"
|
||||
set postponed = "+gmail/Drafts"
|
||||
|
||||
set signature = "~/.mutt/accounts/gmail.signature"
|
||||
|
||||
color status cyan default
|
||||
|
||||
macro index,pager d \
|
||||
"<save-message>+gmail/Archive<enter>" \
|
||||
"Move message to the Archive"
|
||||
|
||||
macro index,pager D \
|
||||
"<save-message>+gmail/Trash<enter>" \
|
||||
"Move message to the Trash"
|
||||
#+end_src
|
||||
|
||||
**** Signature
|
||||
#+begin_src conf :tangle ~/.mutt/accounts/gmail.signature :comments none
|
||||
Thomas Dehaeze
|
||||
|
||||
#+end_src
|
||||
|
||||
*** ESRF
|
||||
**** Configuration
|
||||
#+begin_src conf :tangle ~/.mutt/accounts/esrf :comments none
|
||||
set from = "thomas.dehaeze@esrf.fr"
|
||||
set sendmail = "msmtp -a esrf"
|
||||
|
||||
# Other special folders.
|
||||
set mbox = "+esrf/Archive"
|
||||
set record = "+esrf/Sent"
|
||||
set postponed = "+esrf/Drafts"
|
||||
|
||||
set signature = "~/.mutt/accounts/esrf.signature"
|
||||
|
||||
color status cyan default
|
||||
|
||||
macro index,pager d \
|
||||
"<save-message>+esrf/Archive<enter>" \
|
||||
"Move message to the Archive"
|
||||
|
||||
macro index,pager D \
|
||||
"<save-message>+esrf/Trash<enter>" \
|
||||
"Move message to the Trash"
|
||||
#+end_src
|
||||
|
||||
**** Signature
|
||||
#+begin_src conf :tangle ~/.mutt/accounts/esrf.signature :comments none
|
||||
Thomas Dehaeze
|
||||
|
||||
#+end_src
|
||||
|
||||
*** ULG
|
||||
**** Configuration
|
||||
#+begin_src conf :tangle ~/.mutt/accounts/ulg :comments none
|
||||
set from = "thomas.dehaeze@doct.uliege.be"
|
||||
set sendmail = "msmtp -a ulg"
|
||||
|
||||
# Other special folders.
|
||||
set mbox = "+ulg/Archive"
|
||||
set record = "+ulg/Sent"
|
||||
set postponed = "+ulg/Drafts"
|
||||
|
||||
set signature = "~/.mutt/accounts/ulg.signature"
|
||||
|
||||
color status cyan default
|
||||
|
||||
macro index,pager d \
|
||||
"<save-message>+ulg/Archive<enter>" \
|
||||
"Move message to the Archive"
|
||||
|
||||
macro index,pager D \
|
||||
"<save-message>+ulg/Trash<enter>" \
|
||||
"Move message to the Trash"
|
||||
#+end_src
|
||||
|
||||
**** Signature
|
||||
#+begin_src conf :tangle ~/.mutt/accounts/ulg.signature :comments none
|
||||
Thomas Dehaeze
|
||||
|
||||
#+end_src
|
||||
|
||||
** Mailboxes to show in the sidebar.
|
||||
#+BEGIN_SRC conf
|
||||
mailboxes \
|
||||
+search \
|
||||
"+Google" \
|
||||
+gmail/Inbox \
|
||||
+gmail/Archive \
|
||||
+gmail/Drafts \
|
||||
+gmail/Sent \
|
||||
+gmail/Trash \
|
||||
"+ESRF" \
|
||||
+esrf/Inbox \
|
||||
+esrf/Archive \
|
||||
+esrf/Drafts \
|
||||
+esrf/Sent \
|
||||
+esrf/Trash \
|
||||
"+ULG" \
|
||||
+ulg/Inbox \
|
||||
+ulg/Archive \
|
||||
+ulg/Drafts \
|
||||
+ulg/Sent \
|
||||
+ulg/Trash \
|
||||
|
||||
set sendmail_wait = 0 # no please don't silently fail, email is important
|
||||
unset record
|
||||
#+END_SRC
|
||||
|
||||
** Use Vim to compose email, with a few default options.
|
||||
#+BEGIN_SRC conf
|
||||
set editor = "nvim -u ~/.vim/vimrc.mutt -c ':Goyo' -c '/\\n--' -c ':noh' -c 'startinsert'"
|
||||
#+END_SRC
|
||||
|
||||
** Basic Options
|
||||
#+BEGIN_SRC conf
|
||||
set wait_key = no # shut up, mutt
|
||||
set mbox_type = Maildir # mailbox type
|
||||
set help = no # No top bar
|
||||
set timeout = 3 # idle time before scanning
|
||||
set sleep_time = 0 # how long NeoMutt may wait after an error message
|
||||
set mail_check = 0 # minimum time between scans
|
||||
unset move # gmail does that
|
||||
set delete # don't ask, just do
|
||||
unset confirmappend # don't ask, just do!
|
||||
set quit # don't ask, just do!!
|
||||
set mark_old = no # read/new is good enough for me
|
||||
set beep_new # bell on new mails
|
||||
# set pipe_decode # strip headers and eval mimes when piping
|
||||
set thorough_search # strip headers and eval mimes before searching
|
||||
set send_charset="us-ascii:utf-8:iso-8859-1"
|
||||
set use_from # respect the From: address the editor sends back
|
||||
#+END_SRC
|
||||
|
||||
** Status Bar
|
||||
#+BEGIN_SRC conf
|
||||
set status_on_top = no
|
||||
set status_chars = " *%A"
|
||||
set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
|
||||
#+END_SRC
|
||||
|
||||
** Index View Options
|
||||
#+BEGIN_SRC conf
|
||||
set date_format = "%d/%m/%y %H:%M"
|
||||
set index_format = "[%Z] %D %-20.20F %s"
|
||||
# set index_format = " %Z %<[y?%<[m?%<[d?%[ %H:%M]&%[ %a %d]>&%[ %b %d]>&%[%d/%m/%Y]> %-30.30F %<M?(%2M)& > %?GS?%GS& ?%?GE?%GE& ?%?GA?%GA& ? %g %s"
|
||||
# set index_format='%4C %S %[%y.%m.%d] %-18.18n %?GU?%GU& ? %?GR?%GR& ? %?GI?%GI& ? %s'
|
||||
|
||||
set sort = threads # like gmail
|
||||
set sort_aux = reverse-last-date-received # like gmail
|
||||
set uncollapse_jump # don't collapse on an unread message
|
||||
set sort_re # thread based on regex
|
||||
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
||||
set folder_format = "%2C %t %N %8s %f"
|
||||
#+END_SRC
|
||||
|
||||
** Pager View Options
|
||||
#+BEGIN_SRC conf
|
||||
set pager_index_lines = 10 # number of index lines to show
|
||||
set pager_context = 3 # number of context lines to show
|
||||
set pager_stop # don't go to next message automatically
|
||||
set menu_scroll # scroll in menus
|
||||
set tilde # show tildes like in vim
|
||||
set markers = no # no ugly plus signs
|
||||
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
||||
|
||||
auto_view text/html # view html automatically
|
||||
alternative_order text/plain text/enriched text/html # save html for last
|
||||
#+END_SRC
|
||||
|
||||
** Compose View Options
|
||||
#+BEGIN_SRC conf
|
||||
set envelope_from # which from?
|
||||
set sig_dashes # dashes before sig
|
||||
set sig_on_top # the signature is just below the response
|
||||
set edit_headers # show headers when composing
|
||||
set fast_reply # skip to compose when replying
|
||||
set askcc # ask for CC:
|
||||
set fcc_attach # save attachments with the body
|
||||
set mime_forward = yes # forward attachments as part of body
|
||||
set forward_format = "Fwd: %s" # format of subject when forwarding
|
||||
set forward_decode # decode when forwarding
|
||||
set attribution = "On %d, %n wrote:" # format of quoting header
|
||||
set reply_to # reply to Reply to: field
|
||||
set reverse_name # reply as whomever it was to
|
||||
set include # include message in replies
|
||||
set forward_quote # include message in forwards
|
||||
#+END_SRC
|
||||
|
||||
** Attachment View Options
|
||||
#+BEGIN_SRC conf
|
||||
set attach_format = "[%D %t] %2n [%-7.7m/%10.10M] %.40d %> [%s] "
|
||||
#+END_SRC
|
||||
|
||||
** Headers
|
||||
#+BEGIN_SRC conf
|
||||
ignore * # ignore all headers
|
||||
unignore from: to: cc: date: subject: # show only these
|
||||
unhdr_order *
|
||||
hdr_order from: to: cc: date: subject: # and in this order
|
||||
#+END_SRC
|
||||
|
||||
** Progress Bar
|
||||
#+BEGIN_SRC conf
|
||||
color progress white red
|
||||
#+END_SRC
|
||||
|
||||
** TODO Open PDF from mail
|
||||
=~/scripts/openfile.sh=
|
||||
|
||||
** TODO [#B] Integrate with contact manager
|
||||
** TODO Integration with org-mode
|
||||
https://www.donarmstrong.com/posts/org_mode_mutt_capture/
|
||||
https://upsilon.cc/~zack/blog/posts/2010/02/integrating_Mutt_with_Org-mode/
|
||||
** TODO Send HTML mails using Markdown
|
||||
https://unix.stackexchange.com/questions/108485/send-email-written-in-markdown-using-mutt/424162
|
||||
https://github.com/Roguelazer/muttdown
|
||||
|
||||
** TODO Attachments
|
||||
*** Attach multiple files at once
|
||||
First, tag the files you want to send using =t=, then =;= to apply the action on all tagged files and finally =<enter>= to add them all
|
||||
*** TODO Add attachment using GUI file manager
|
||||
*** Cheatsheet
|
||||
| Command | Usage |
|
||||
|---------+---------------|
|
||||
| =<spc>= | Open the file |
|
||||
|
||||
** TODO Open Url from mail
|
||||
#+BEGIN_SRC bash
|
||||
yay -S urlview
|
||||
#+END_SRC
|
||||
|
||||
** TODO View emails while composing
|
||||
https://wiki.archlinux.org/index.php/Mutt#Display_another_email_while_composing
|
||||
|
||||
** TODO Integration with calendar application
|
||||
http://jasonwryan.com/blog/2014/04/05/calendar/
|
||||
https://gist.github.com/guiniol/5109c5bd953af950e0530b720507d704
|
||||
|
||||
=~/scripts/printics.sh=
|
||||
|
||||
* TODO Notification system
|
||||
A script (=~/scripts/checkmail.sh=) is used to retreive new mails and use =notify=send= is there are new received mails.
|
981
dotfiles/music.org
Normal file
981
dotfiles/music.org
Normal file
@ -0,0 +1,981 @@
|
||||
#+TITLE: Music Configuration
|
||||
|
||||
|
||||
* NCMPCPP
|
||||
https://rybczak.net/ncmpcpp/
|
||||
Cheatsheet: https://pkgbuild.com/~jelle/ncmpcpp/
|
||||
|
||||
** Config
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.ncmpcpp/config
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
##############################################################################
|
||||
## This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ##
|
||||
## or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ##
|
||||
##############################################################################
|
||||
#
|
||||
##### directories ######
|
||||
##
|
||||
## Directory for storing ncmpcpp related files. Changing it is useful if you
|
||||
## want to store everything somewhere else and provide command line setting for
|
||||
## alternative location to config file which defines that while launching
|
||||
## ncmpcpp.
|
||||
##
|
||||
#
|
||||
ncmpcpp_directory = ~/.config/.ncmpcpp
|
||||
#
|
||||
##
|
||||
## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other
|
||||
## MPD clients (eg. ncmpc) also use that location.
|
||||
##
|
||||
#
|
||||
#lyrics_directory = ~/.lyrics
|
||||
#
|
||||
##### connection settings #####
|
||||
#
|
||||
mpd_host = localhost
|
||||
|
||||
mpd_port = 6600
|
||||
|
||||
#mpd_connection_timeout = 5
|
||||
|
||||
## Needed for tag editor and file operations to work.
|
||||
##
|
||||
mpd_music_dir = ~/Music
|
||||
#
|
||||
#mpd_crossfade_time = 5
|
||||
#
|
||||
##### music visualizer #####
|
||||
##
|
||||
## Note: In order to make music visualizer work you'll need to use mpd fifo
|
||||
## output, whose format parameter has to be set to 44100:16:1 for mono
|
||||
## visualization or 44100:16:2 for stereo visualization. Example configuration
|
||||
## (it has to be put into mpd.conf):
|
||||
##
|
||||
## audio_output {
|
||||
## type "fifo"
|
||||
## name "Visualizer feed"
|
||||
## path "/tmp/mpd.fifo"
|
||||
## format "44100:16:2"
|
||||
## }
|
||||
##
|
||||
#
|
||||
#visualizer_fifo_path = /tmp/mpd.fifo
|
||||
#
|
||||
##
|
||||
## Note: Below parameter is needed for ncmpcpp to determine which output
|
||||
## provides data for visualizer and thus allow syncing between visualization and
|
||||
## sound as currently there are some problems with it.
|
||||
##
|
||||
#
|
||||
#visualizer_output_name = Visualizer feed
|
||||
#
|
||||
##
|
||||
## If you set format to 44100:16:2, make it 'yes'.
|
||||
##
|
||||
#visualizer_in_stereo = yes
|
||||
#
|
||||
##
|
||||
## Note: Below parameter defines how often ncmpcpp has to "synchronize"
|
||||
## visualizer and audio outputs. 30 seconds is optimal value, but if you
|
||||
## experience synchronization problems, set it to lower value. Keep in mind
|
||||
## that sane values start with >=10.
|
||||
##
|
||||
#
|
||||
#visualizer_sync_interval = 30
|
||||
#
|
||||
##
|
||||
## Note: To enable spectrum frequency visualization you need to compile ncmpcpp
|
||||
## with fftw3 support.
|
||||
##
|
||||
#
|
||||
## Available values: spectrum, wave, wave_filled, ellipse.
|
||||
##
|
||||
#visualizer_type = wave
|
||||
#
|
||||
#visualizer_look = ●▮
|
||||
#
|
||||
#visualizer_color = blue, cyan, green, yellow, magenta, red
|
||||
#
|
||||
## Alternative subset of 256 colors for terminals that support it.
|
||||
##
|
||||
#visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
|
||||
#
|
||||
##### system encoding #####
|
||||
##
|
||||
## ncmpcpp should detect your charset encoding but if it failed to do so, you
|
||||
## can specify charset encoding you are using here.
|
||||
##
|
||||
## Note: You can see whether your ncmpcpp build supports charset detection by
|
||||
## checking output of `ncmpcpp --version`.
|
||||
##
|
||||
## Note: Since MPD uses UTF-8 by default, setting this option makes sense only
|
||||
## if your encoding is different.
|
||||
##
|
||||
#
|
||||
#system_encoding = ""
|
||||
#
|
||||
##### delays #####
|
||||
#
|
||||
## Time of inactivity (in seconds) after playlist highlighting will be disabled
|
||||
## (0 = always on).
|
||||
##
|
||||
#playlist_disable_highlight_delay = 5
|
||||
#
|
||||
## Defines how long messages are supposed to be visible.
|
||||
##
|
||||
#message_delay_time = 5
|
||||
#
|
||||
##### song format #####
|
||||
##
|
||||
## For a song format you can use:
|
||||
##
|
||||
## %l - length
|
||||
## %f - filename
|
||||
## %D - directory
|
||||
## %a - artist
|
||||
## %A - album artist
|
||||
## %t - title
|
||||
## %b - album
|
||||
## %y - date
|
||||
## %n - track number (01/12 -> 01)
|
||||
## %N - full track info (01/12 -> 01/12)
|
||||
## %g - genre
|
||||
## %c - composer
|
||||
## %p - performer
|
||||
## %d - disc
|
||||
## %C - comment
|
||||
## %P - priority
|
||||
## $R - begin right alignment
|
||||
##
|
||||
## If you want to make sure that a part of the format is displayed only when
|
||||
## certain tags are present, you can archieve it by grouping them with brackets,
|
||||
## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are
|
||||
## present or '' otherwise. It is also possible to define a list of
|
||||
## alternatives by providing several groups and separating them with '|',
|
||||
## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is
|
||||
## not present.
|
||||
##
|
||||
## Note: If you want to set limit on maximal length of a tag, just put the
|
||||
## appropriate number between % and character that defines tag type, e.g. to
|
||||
## make album take max. 20 terminal cells, use '%20b'.
|
||||
##
|
||||
## In addition, formats support markers used for text attributes. They are
|
||||
## followed by character '$'. After that you can put:
|
||||
##
|
||||
## - 0 - default window color (discards all other colors)
|
||||
## - 1 - black
|
||||
## - 2 - red
|
||||
## - 3 - green
|
||||
## - 4 - yellow
|
||||
## - 5 - blue
|
||||
## - 6 - magenta
|
||||
## - 7 - cyan
|
||||
## - 8 - white
|
||||
## - 9 - end of current color
|
||||
## - b - bold text
|
||||
## - u - underline text
|
||||
## - r - reverse colors
|
||||
## - a - use alternative character set
|
||||
##
|
||||
## If you don't want to use a non-color attribute anymore, just put it again,
|
||||
## but this time insert character '/' between '$' and attribute character,
|
||||
## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with
|
||||
## reversed colors.
|
||||
##
|
||||
## If you want to use 256 colors and/or background colors in formats (the naming
|
||||
## scheme is described below in section about color definitions), it can be done
|
||||
## with the syntax $(COLOR), e.g. to set the artist tag to one of the
|
||||
## non-standard colors and make it have yellow background, you need to write
|
||||
## $(197_yellow)%a$(end). Note that for standard colors this is interchangable
|
||||
## with attributes listed above.
|
||||
##
|
||||
## Note: colors can be nested.
|
||||
##
|
||||
#
|
||||
#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
|
||||
#
|
||||
#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
|
||||
#
|
||||
#song_library_format = {%n - }{%t}|{%f}
|
||||
#
|
||||
#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
|
||||
#
|
||||
#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
|
||||
#
|
||||
#current_item_prefix = $(yellow)$r
|
||||
#
|
||||
#current_item_suffix = $/r$(end)
|
||||
#
|
||||
#current_item_inactive_column_prefix = $(white)$r
|
||||
#
|
||||
#current_item_inactive_column_suffix = $/r$(end)
|
||||
#
|
||||
#now_playing_prefix = $b
|
||||
#
|
||||
#now_playing_suffix = $/b
|
||||
#
|
||||
#browser_playlist_prefix = "$2playlist$9 "
|
||||
#
|
||||
#selected_item_prefix = $6
|
||||
#
|
||||
#selected_item_suffix = $9
|
||||
#
|
||||
#modified_item_prefix = $3> $9
|
||||
#
|
||||
##
|
||||
## Note: attributes are not supported for the following variables.
|
||||
##
|
||||
#song_window_title_format = {%a - }{%t}|{%f}
|
||||
##
|
||||
## Note: Below variables are used for sorting songs in browser. The sort mode
|
||||
## determines how songs are sorted, and can be used in combination with a sort
|
||||
## format to specify a custom sorting format. Available values for
|
||||
## browser_sort_mode are "name", "mtime", "format" and "noop".
|
||||
##
|
||||
#
|
||||
#browser_sort_mode = name
|
||||
#
|
||||
#browser_sort_format = {%a - }{%t}|{%f} {(%l)}
|
||||
#
|
||||
##### columns settings #####
|
||||
##
|
||||
## syntax of song columns list format is "column column etc."
|
||||
##
|
||||
## - syntax for each column is:
|
||||
##
|
||||
## (width of the column)[color of the column]{displayed tag}
|
||||
##
|
||||
## Note: Width is by default in %, if you want a column to have fixed size, add
|
||||
## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of
|
||||
## screen (so the real width will depend on actual screen size), whereas
|
||||
## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen
|
||||
## is.
|
||||
##
|
||||
## - color is optional (if you want the default one, leave the field empty).
|
||||
##
|
||||
## Note: You can give a column additional attributes by putting appropriate
|
||||
## character after displayed tag character. Available attributes are:
|
||||
##
|
||||
## - r - column will be right aligned
|
||||
## - E - if tag is empty, empty tag marker won't be displayed
|
||||
##
|
||||
## You can also:
|
||||
##
|
||||
## - give a column custom name by putting it after attributes, separated with
|
||||
## character ':', e.g. {lr:Length} gives you right aligned column of lengths
|
||||
## named "Length".
|
||||
##
|
||||
## - define sequence of tags, that have to be displayed in case predecessor is
|
||||
## empty in a way similar to the one in classic song format, i.e. using '|'
|
||||
## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to
|
||||
## display artist tag and then composer and performer if previous ones are not
|
||||
## available.
|
||||
##
|
||||
#
|
||||
#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
|
||||
#
|
||||
##### various settings #####
|
||||
#
|
||||
##
|
||||
## Note: Custom command that will be executed each time song changes. Useful for
|
||||
## notifications etc.
|
||||
##
|
||||
#execute_on_song_change = ""
|
||||
#
|
||||
##
|
||||
## Note: Custom command that will be executed each time player state
|
||||
## changes. The environment variable MPD_PLAYER_STATE is set to the current
|
||||
## state (either unknown, play, pause, or stop) for its duration.
|
||||
##
|
||||
#
|
||||
#execute_on_player_state_change = ""
|
||||
#
|
||||
#playlist_show_mpd_host = no
|
||||
#
|
||||
#playlist_show_remaining_time = no
|
||||
#
|
||||
#playlist_shorten_total_times = no
|
||||
#
|
||||
#playlist_separate_albums = no
|
||||
#
|
||||
##
|
||||
## Note: Possible display modes: classic, columns.
|
||||
##
|
||||
#playlist_display_mode = columns
|
||||
#
|
||||
#browser_display_mode = classic
|
||||
#
|
||||
#search_engine_display_mode = classic
|
||||
#
|
||||
#playlist_editor_display_mode = classic
|
||||
#
|
||||
#discard_colors_if_item_is_selected = yes
|
||||
#
|
||||
#show_duplicate_tags = yes
|
||||
#
|
||||
#incremental_seeking = yes
|
||||
#
|
||||
#seek_time = 1
|
||||
#
|
||||
#volume_change_step = 2
|
||||
#
|
||||
#autocenter_mode = no
|
||||
#
|
||||
#centered_cursor = no
|
||||
#
|
||||
##
|
||||
## Note: You can specify third character which will be used to build 'empty'
|
||||
## part of progressbar.
|
||||
##
|
||||
#progressbar_look = =>
|
||||
#
|
||||
## Available values: database, playlist.
|
||||
##
|
||||
#default_place_to_search_in = database
|
||||
#
|
||||
## Available values: classic, alternative.
|
||||
##
|
||||
#user_interface = classic
|
||||
#
|
||||
#data_fetching_delay = yes
|
||||
#
|
||||
## Available values: artist, album_artist, date, genre, composer, performer.
|
||||
##
|
||||
#media_library_primary_tag = artist
|
||||
#
|
||||
#media_library_albums_split_by_date = yes
|
||||
#
|
||||
## Available values: wrapped, normal.
|
||||
##
|
||||
#default_find_mode = wrapped
|
||||
#
|
||||
#default_tag_editor_pattern = %n - %t
|
||||
#
|
||||
#header_visibility = yes
|
||||
#
|
||||
#statusbar_visibility = yes
|
||||
#
|
||||
#titles_visibility = yes
|
||||
#
|
||||
#header_text_scrolling = yes
|
||||
#
|
||||
#cyclic_scrolling = no
|
||||
#
|
||||
#lines_scrolled = 2
|
||||
#
|
||||
#lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet
|
||||
#
|
||||
#follow_now_playing_lyrics = no
|
||||
#
|
||||
#fetch_lyrics_for_current_song_in_background = no
|
||||
#
|
||||
#store_lyrics_in_song_dir = no
|
||||
#
|
||||
#generate_win32_compatible_filenames = yes
|
||||
#
|
||||
#allow_for_physical_item_deletion = no
|
||||
#
|
||||
##
|
||||
## Note: If you set this variable, ncmpcpp will try to get info from last.fm in
|
||||
## language you set and if it fails, it will fall back to english. Otherwise it
|
||||
## will use english the first time.
|
||||
##
|
||||
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
|
||||
##
|
||||
#lastfm_preferred_language = en
|
||||
#
|
||||
#space_add_mode = add_remove
|
||||
#
|
||||
#show_hidden_files_in_local_browser = no
|
||||
#
|
||||
##
|
||||
## How shall screen switcher work?
|
||||
##
|
||||
## - "previous" - switch between the current and previous screen.
|
||||
## - "screen1,...,screenN" - switch between given sequence of screens.
|
||||
##
|
||||
## Screens available for use: help, playlist, browser, search_engine,
|
||||
## media_library, playlist_editor, tag_editor, outputs, visualizer, clock,
|
||||
## lyrics, last_fm.
|
||||
##
|
||||
#screen_switcher_mode = playlist, browser
|
||||
#
|
||||
##
|
||||
## Note: You can define startup screen by choosing screen from the list above.
|
||||
##
|
||||
#startup_screen = playlist
|
||||
#
|
||||
##
|
||||
## Note: You can define startup slave screen by choosing screen from the list
|
||||
## above or an empty value for no slave screen.
|
||||
##
|
||||
#startup_slave_screen = ""
|
||||
#
|
||||
#startup_slave_screen_focus = no
|
||||
#
|
||||
##
|
||||
## Default width of locked screen (in %). Acceptable values are from 20 to 80.
|
||||
##
|
||||
#
|
||||
#locked_screen_width_part = 50
|
||||
#
|
||||
#ask_for_locked_screen_width_part = yes
|
||||
#
|
||||
#jump_to_now_playing_song_at_start = yes
|
||||
#
|
||||
#ask_before_clearing_playlists = yes
|
||||
#
|
||||
#clock_display_seconds = no
|
||||
#
|
||||
#display_volume_level = yes
|
||||
#
|
||||
#display_bitrate = no
|
||||
#
|
||||
#display_remaining_time = no
|
||||
#
|
||||
## Available values: none, basic, extended, perl.
|
||||
##
|
||||
#regular_expressions = perl
|
||||
#
|
||||
##
|
||||
## Note: if below is enabled, ncmpcpp will ignore leading "The" word while
|
||||
## sorting items in browser, tags in media library, etc.
|
||||
##
|
||||
#ignore_leading_the = no
|
||||
#
|
||||
##
|
||||
## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and
|
||||
## filtering lists. This takes an effect only if boost was compiled with ICU
|
||||
## support.
|
||||
##
|
||||
#ignore_diacritics = no
|
||||
#
|
||||
#block_search_constraints_change_if_items_found = yes
|
||||
#
|
||||
#mouse_support = yes
|
||||
#
|
||||
#mouse_list_scroll_whole_page = yes
|
||||
#
|
||||
#empty_tag_marker = <empty>
|
||||
#
|
||||
#tags_separator = " | "
|
||||
#
|
||||
#tag_editor_extended_numeration = no
|
||||
#
|
||||
#media_library_sort_by_mtime = no
|
||||
#
|
||||
#enable_window_title = yes
|
||||
#
|
||||
##
|
||||
## Note: You can choose default search mode for search engine. Available modes
|
||||
## are:
|
||||
##
|
||||
## - 1 - use mpd built-in searching (no regexes, pattern matching)
|
||||
##
|
||||
## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but
|
||||
## if your mpd is on a remote machine, downloading big database to process
|
||||
## it can take a while
|
||||
##
|
||||
## - 3 - match only exact values (this mode uses mpd function for searching in
|
||||
## database and local one for searching in current playlist)
|
||||
##
|
||||
#
|
||||
#search_engine_default_search_mode = 1
|
||||
#
|
||||
#external_editor = nano
|
||||
#
|
||||
## Note: set to yes if external editor is a console application.
|
||||
##
|
||||
#use_console_editor = yes
|
||||
#
|
||||
##### colors definitions #####
|
||||
##
|
||||
## It is possible to set a background color by setting a color value
|
||||
## "<foreground>_<background>", e.g. red_black will set foregound color to red
|
||||
## and background color to black.
|
||||
##
|
||||
## In addition, for terminals that support 256 colors it is possible to set one
|
||||
## of them by using a number in range [1, 256] instead of color name,
|
||||
## e.g. numerical value corresponding to red_black is 2_1. To find out if the
|
||||
## terminal supports 256 colors, run ncmpcpp and check out the bottom of the
|
||||
## help screen for list of available colors and their numerical values.
|
||||
##
|
||||
## What is more, there are two special values for the background color:
|
||||
## "transparent" and "current". The first one explicitly sets the background to
|
||||
## be transparent, while the second one allows you to preserve current
|
||||
## background color and change only the foreground one. It's used implicitly
|
||||
## when background color is not specified.
|
||||
##
|
||||
## Moreover, it is possible to attach format information to selected color
|
||||
## variables by appending to their end a colon followed by one or more format
|
||||
## flags, e.g. black:b or red:ur. The following variables support this syntax:
|
||||
## visualizer_color, color1, color2, empty_tag_color, volume_color,
|
||||
## state_line_color, state_flags_color, progressbar_color,
|
||||
## progressbar_elapsed_color, player_state_color, statusbar_time_color,
|
||||
## alternative_ui_separator_color.
|
||||
##
|
||||
## Note: due to technical limitations of older ncurses version, if 256 colors
|
||||
## are used there is a possibility that you'll be able to use only colors with
|
||||
## transparent background.
|
||||
#
|
||||
#colors_enabled = yes
|
||||
#
|
||||
#empty_tag_color = cyan
|
||||
#
|
||||
#header_window_color = default
|
||||
#
|
||||
#volume_color = default
|
||||
#
|
||||
#state_line_color = default
|
||||
#
|
||||
#state_flags_color = default:b
|
||||
#
|
||||
#main_window_color = yellow
|
||||
#
|
||||
#color1 = white
|
||||
#
|
||||
#color2 = green
|
||||
#
|
||||
#progressbar_color = black:b
|
||||
#
|
||||
#progressbar_elapsed_color = green:b
|
||||
#
|
||||
#statusbar_color = default
|
||||
#
|
||||
#statusbar_time_color = default:b
|
||||
#
|
||||
#player_state_color = default:b
|
||||
#
|
||||
#alternative_ui_separator_color = black:b
|
||||
#
|
||||
#window_border_color = green
|
||||
#
|
||||
#active_window_border = red
|
||||
#
|
||||
#+END_SRC
|
||||
|
||||
** Bindings
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.ncmpcpp/bindings
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
# =============================================================
|
||||
def_key "l"
|
||||
next_column
|
||||
def_key "h"
|
||||
previous_column
|
||||
def_key "k"
|
||||
scroll_up
|
||||
def_key "j"
|
||||
scroll_down
|
||||
# =============================================================
|
||||
#+END_SRC
|
||||
|
||||
* MPD
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.config/mpd/mpd.conf
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
https://www.musicpd.org/
|
||||
|
||||
** Files and directories
|
||||
#+BEGIN_SRC conf
|
||||
# This setting controls the top directory which MPD will search to discover the
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||
# be disabled and audio files will only be accepted over ipc socket (using
|
||||
# file:// protocol) or streaming files over an accepted protocol.
|
||||
music_directory "~/Music"
|
||||
|
||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# playlist files not created by the server but only if they are in the MPD
|
||||
# format. This setting defaults to playlist saving being disabled.
|
||||
playlist_directory "~/.config/mpd/playlists"
|
||||
|
||||
# This setting sets the location of the MPD database. This file is used to
|
||||
# load the database at server start up and store the database while the
|
||||
# server is not up. This setting defaults to disabled which will allow
|
||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||
# files over an accepted protocol.
|
||||
#
|
||||
db_file "~/.config/mpd/database"
|
||||
|
||||
# These settings are the locations for the daemon log files for the daemon.
|
||||
# These logs are great for troubleshooting, depending on your log_level
|
||||
# settings.
|
||||
#
|
||||
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||
# setting defaults to logging to syslog, otherwise logging is disabled.
|
||||
log_file "~/.config/mpd/log"
|
||||
|
||||
# This setting sets the location of the file which stores the process ID
|
||||
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||
# default and the pid file will not be stored.
|
||||
#
|
||||
pid_file "~/.config/mpd/pid"
|
||||
|
||||
# This setting sets the location of the file which contains information about
|
||||
# most variables to get MPD back into the same general shape it was in before
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# state will be reset on server start up.
|
||||
state_file "~/.config/mpd/state"
|
||||
|
||||
# The location of the sticker database. This is a database which
|
||||
# manages dynamic information attached to songs.
|
||||
#sticker_file "~/.config/mpd/sticker.sql"
|
||||
#+END_SRC
|
||||
|
||||
** General music daemon options
|
||||
#+BEGIN_SRC conf
|
||||
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||
# root and you may use this setting to make MPD change its user ID after
|
||||
# initialization. This setting is disabled by default and MPD is run as the
|
||||
# current user.
|
||||
#
|
||||
#user "nobody"
|
||||
#
|
||||
# This setting specifies the group that MPD will run as. If not specified
|
||||
# primary group of user specified with "user" setting will be used (if set).
|
||||
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||
# have permission to use sound card.
|
||||
#
|
||||
#group "nogroup"
|
||||
#
|
||||
# This setting sets the address for the daemon to listen on. Careful attention
|
||||
# should be paid if this is assigned to anything other then the default, any.
|
||||
# This setting can deny access to control of the daemon. Not effective if
|
||||
# systemd socket activiation is in use.
|
||||
#
|
||||
# For network
|
||||
#bind_to_address "any"
|
||||
#
|
||||
# And for Unix Socket
|
||||
#bind_to_address "~/.mpd/socket"
|
||||
#
|
||||
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||
# to.
|
||||
#
|
||||
#port "6600"
|
||||
#
|
||||
# This setting controls the type of information which is logged. Available
|
||||
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
|
||||
# argument is recommended for troubleshooting, though can quickly stretch
|
||||
# available resources on limited hardware storage.
|
||||
#
|
||||
#log_level "default"
|
||||
#
|
||||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||
# of starting playback after startup.
|
||||
#
|
||||
#restore_paused "no"
|
||||
#
|
||||
# This setting enables MPD to create playlists in a format usable by other
|
||||
# music players.
|
||||
#
|
||||
#save_absolute_paths_in_playlists "no"
|
||||
#
|
||||
# This setting defines a list of tag types that will be extracted during the
|
||||
# audio file discovery process. The complete list of possible values can be
|
||||
# found in the user manual.
|
||||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||
#
|
||||
# This example just enables the "comment" tag without disabling all
|
||||
# the other supported tags:
|
||||
#metadata_to_use "+comment"
|
||||
#
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# music_directory are changed.
|
||||
#
|
||||
#auto_update "yes"
|
||||
#
|
||||
# Limit the depth of the directories being watched, 0 means only watch
|
||||
# the music directory itself. There is no limit by default.
|
||||
#
|
||||
#auto_update_depth "3"
|
||||
#
|
||||
#+END_SRC
|
||||
|
||||
** Symbolic link behavior
|
||||
#+BEGIN_SRC conf
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#
|
||||
#follow_outside_symlinks "yes"
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links inside of the configured music_directory.
|
||||
#
|
||||
#follow_inside_symlinks "yes"
|
||||
#
|
||||
#+END_SRC
|
||||
|
||||
** Zeroconf / Avahi Service Discovery
|
||||
#+BEGIN_SRC conf
|
||||
# If this setting is set to "yes", service information will be published with
|
||||
# Zeroconf / Avahi.
|
||||
#
|
||||
#zeroconf_enabled "yes"
|
||||
#
|
||||
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||
# this MPD server on the network. %h will be replaced with the hostname.
|
||||
#
|
||||
#zeroconf_name "Music Player @ %h"
|
||||
#
|
||||
#+END_SRC
|
||||
|
||||
** Permissions
|
||||
#+BEGIN_SRC conf
|
||||
# If this setting is set, MPD will require password authorization. The password
|
||||
# setting can be specified multiple times for different password profiles.
|
||||
#
|
||||
#password "password@read,add,control,admin"
|
||||
#
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
#
|
||||
#default_permissions "read,add,control,admin"
|
||||
#
|
||||
#+END_SRC
|
||||
|
||||
** Database
|
||||
#+BEGIN_SRC conf
|
||||
#database {
|
||||
# plugin "proxy"
|
||||
# host "other.mpd.host"
|
||||
# port "6600"
|
||||
#}
|
||||
#+END_SRC
|
||||
|
||||
** Input
|
||||
#+BEGIN_SRC conf
|
||||
input {
|
||||
plugin "curl"
|
||||
# proxy "proxy.isp.com:8080"
|
||||
# proxy_user "user"
|
||||
# proxy_password "password"
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
** Audio Output
|
||||
#+BEGIN_SRC conf
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# blocks. Setting this block is optional, though the server will only attempt
|
||||
# autodetection for one sound card.
|
||||
#
|
||||
# An example of an ALSA output:
|
||||
#
|
||||
audio_output {
|
||||
type "alsa"
|
||||
name "My ALSA Device"
|
||||
period_time "50000"
|
||||
# device "hw:0,0" # optional
|
||||
# mixer_type "hardware" # optional
|
||||
# mixer_device "default" # optional
|
||||
# mixer_control "PCM" # optional
|
||||
# mixer_index "0" # optional
|
||||
}
|
||||
|
||||
# For NCMPCPP Visualizer
|
||||
audio_output {
|
||||
type "fifo"
|
||||
name "Visualizer feed"
|
||||
path "/tmp/mpd.fifo"
|
||||
format "44100:16:2"
|
||||
}
|
||||
|
||||
#
|
||||
# An example of an OSS output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "oss"
|
||||
# name "My OSS Device"
|
||||
## device "/dev/dsp" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "/dev/mixer" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a shout output (for streaming to Icecast):
|
||||
#
|
||||
#audio_output {
|
||||
# type "shout"
|
||||
# encoder "vorbis" # optional
|
||||
# name "My Shout Stream"
|
||||
# host "localhost"
|
||||
# port "8000"
|
||||
# mount "/mpd.ogg"
|
||||
# password "hackme"
|
||||
# quality "5.0"
|
||||
# bitrate "128"
|
||||
# format "44100:16:1"
|
||||
## protocol "icecast2" # optional
|
||||
## user "source" # optional
|
||||
## description "My Stream Description" # optional
|
||||
## url "http://example.com" # optional
|
||||
## genre "jazz" # optional
|
||||
## public "no" # optional
|
||||
## timeout "2" # optional
|
||||
## mixer_type "software" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a recorder output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "recorder"
|
||||
# name "My recorder"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
#}
|
||||
#
|
||||
# An example of a httpd output (built-in HTTP streaming server):
|
||||
#
|
||||
#audio_output {
|
||||
# type "httpd"
|
||||
# name "My HTTP Stream"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# port "8000"
|
||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
# max_clients "0" # optional 0=no limit
|
||||
#}
|
||||
#
|
||||
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||
#
|
||||
#audio_output {
|
||||
# type "pulse"
|
||||
# name "My Pulse Output"
|
||||
## server "remote_server" # optional
|
||||
## sink "remote_server_sink" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a winmm output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "winmm"
|
||||
# name "My WinMM output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an openal output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "openal"
|
||||
# name "My OpenAL output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an sndio output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "sndio"
|
||||
# name "sndio output"
|
||||
# mixer_type "hardware"
|
||||
#}
|
||||
#
|
||||
# An example of an OS X output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "osx"
|
||||
# name "My OS X Device"
|
||||
## device "Built-in Output" # optional
|
||||
## channel_map "-1,-1,0,1" # optional
|
||||
#}
|
||||
#
|
||||
## Example "pipe" output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "pipe"
|
||||
# name "my pipe"
|
||||
# command "aplay -f cd 2>/dev/null"
|
||||
## Or if you're want to use AudioCompress
|
||||
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||
## Or to send raw PCM stream through PCM:
|
||||
# command "nc example.org 8765"
|
||||
# format "44100:16:2"
|
||||
#}
|
||||
#
|
||||
## An example of a null output (for no audio output):
|
||||
#
|
||||
#audio_output {
|
||||
# type "null"
|
||||
# name "My Null Output"
|
||||
# mixer_type "none" # optional
|
||||
#}
|
||||
#
|
||||
#+END_SRC
|
||||
|
||||
** Normalization automatic volume adjustments
|
||||
#+BEGIN_SRC conf
|
||||
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||
# chooses between "track" and "album" depending on the current state of
|
||||
# random playback. If random playback is enabled then "track" mode is used.
|
||||
# See <http://www.replaygain.org> for more details about ReplayGain.
|
||||
# This setting is off by default.
|
||||
#
|
||||
#replaygain "album"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||
# default this setting is disabled.
|
||||
#
|
||||
#replaygain_preamp "0"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
||||
# By default this setting is disabled.
|
||||
#
|
||||
#replaygain_missing_preamp "0"
|
||||
#
|
||||
# This setting enables or disables ReplayGain limiting.
|
||||
# MPD calculates actual amplification based on the ReplayGain tags
|
||||
# and replaygain_preamp / replaygain_missing_preamp setting.
|
||||
# If replaygain_limit is enabled MPD will never amplify audio signal
|
||||
# above its original level. If replaygain_limit is disabled such amplification
|
||||
# might occur. By default this setting is enabled.
|
||||
#
|
||||
#replaygain_limit "yes"
|
||||
#
|
||||
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# equal "loudness". This setting is disabled by default.
|
||||
#
|
||||
#volume_normalization "no"
|
||||
#
|
||||
#+END_SRC
|
||||
|
||||
** Character Encoding
|
||||
#+BEGIN_SRC conf
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# may need to modify this setting.
|
||||
#
|
||||
#filesystem_charset "UTF-8"
|
||||
#+END_SRC
|
||||
|
||||
* Beets
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.config/beets/config.yaml
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
http://beets.io/
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
directory: ~/Music
|
||||
library: ~/Music/musiclibrary.db
|
||||
|
||||
import:
|
||||
move: yes
|
||||
#+END_SRC
|
288
dotfiles/newsboat.org
Normal file
288
dotfiles/newsboat.org
Normal file
@ -0,0 +1,288 @@
|
||||
#+TITLE: Newsboat Configuration
|
||||
|
||||
* Config
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/newsboat/config
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+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
|
||||
|
||||
confirm-exit yes
|
||||
|
||||
external-url-viewer "urlscan -dc -r 'linkhandler {}'"
|
||||
|
||||
goto-first-unread no
|
||||
goto-next-feed no
|
||||
|
||||
save-path "~/Saved Articles"
|
||||
download-path "~/Downloads"
|
||||
|
||||
# If set to no, then the keymap hints on the bottom of screen will not be displayed.
|
||||
show-keymap-hint no
|
||||
|
||||
feed-sort-order lastupdated
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# Notifications
|
||||
# =============================================================
|
||||
notify-format "newsbeuter: %n unread articles within %f unread feeds"
|
||||
notify-program notify-send
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# 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
|
||||
|
||||
bind-key l open
|
||||
bind-key h quit
|
||||
|
||||
bind-key a toggle-article-read
|
||||
|
||||
bind-key n next-unread
|
||||
bind-key N prev-unread
|
||||
|
||||
bind-key D pb-download
|
||||
|
||||
bind-key U show-urls
|
||||
|
||||
# bind-key x pb-delete
|
||||
|
||||
bind-key t set-tag
|
||||
bind-key T clear-tag
|
||||
|
||||
bind-key r reload # Reload the currently selected feed
|
||||
bind-key R reload-all # Reload all feeds
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# Macros - Starts with , key
|
||||
# =============================================================
|
||||
# Default Browser
|
||||
browser "qutebrowser %u"
|
||||
|
||||
# Open in Browser
|
||||
macro , open-in-browser
|
||||
|
||||
# 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"
|
||||
|
||||
# Download Audio with Youtube-DL
|
||||
macro a set browser "~/scripts/download-audio.sh %u" ; 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"
|
||||
|
||||
# Copy Address to clipboard
|
||||
macro c set browser "xsel -b <<<" ; open-in-browser ; set browser "qutebrowser %u"
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# hide articles matching
|
||||
# =============================================================
|
||||
ignore-article "*" "title =~ \"Sponsor\""
|
||||
ignore-article "*" "title =~ \"Advertisement\""
|
||||
ignore-mode "display"
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# Feedlist and Article Format
|
||||
# =============================================================
|
||||
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"
|
||||
|
||||
itemview-title-format "Article '%T'"
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# Color Scheme
|
||||
# =============================================================
|
||||
include "~/.config/newsboat/colors"
|
||||
# =============================================================
|
||||
#+END_SRC
|
||||
|
||||
* Colors
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/newsboat/colors
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
# =============================================================
|
||||
# Color Scheme
|
||||
# =============================================================
|
||||
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
|
||||
|
||||
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
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/newsboat/urls
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
https://lukesmith.xyz/rss.xml unix
|
||||
|
||||
http://www.planet.emacsen.org/atom.xml emacs
|
||||
http://sachachua.com/blog/feed/ emacs
|
||||
https://www.reddit.com/r/emacs/.rss reddit emacs
|
||||
|
||||
http://xkcd.com/rss.xml fun
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJM10Rp7G0h9j5S92QszJ5Q "~Tales From The Click (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRhyS_ylPQ5GWBl1lK92ftA "~Léo - TechMaker (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCBJycsmduvYEL83R_U4JriQ "~Marques Brownlee (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCPpNtkHeCnwN7Tl5oLq4AAg "~Une chanson, l'addition (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4HANn7TBY-xcION-eL3rLA "~Daniil le Russe (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCww2zZWg4Cf5xcRKG-ThmXQ "~Norman Fait Des Vidéos (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCf0mOxfawezlHIVuHd3L2VA "~Didi Chandouidoui (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCuBzVunAVbcwzMfQaJVacuw "~Le Roi Des Rats (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCyWqModMQlbIo8274Wh_ZsQ "~Cyprien (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWeg2Pkate69NFdBeuRFTAw "~Squeezie (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOuIgj0CYCXCvjWywjDbauw "~Chat sceptique (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCEfFUaIkjbI06PhALdcXNVA "~EmacsCast (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCZHPwKyeypWwU8SNJSzQhCw "~Révisons nos Classiques (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCZeyUZmGAyRLDfM2ir3q-OQ "~Captain Popcorn (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDEtZ7AKmwS0_GNJog01D2g "~Uncle Dave (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCk0fGHsCEzGig-rSzkfCjMw "~The Engineering Mindset (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOchT7ZJ4TXe3stdLW1Sfxw "~Dans Ton Corps (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCkK9UDm_ZNrq_rIXCz3xCGA "~Bryan Lunduke (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCkRmQ_G_NbdbCQMpALg6UPg "~Emacsrocks (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCQp2VLAOlvq142YN3JO3y8w "~John Kitchin (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCq0imsn84ShAe9PBOFnoIrg "~Brian Douglas (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6mzA8J7n0ylf0RnDpj-vrg "~PS Audio (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm5mt-A4w61lknZ9lCsZtBw "~Steve Brunton (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCyGEYs6CykOtrb8Ok69kL9w "~Alain Olivetti (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUR03ZSZlEvCO6EWwv4jU2w "~Absol Vidéos (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCP5tjEmvPItGyLhmjdwP7Ww "~RealLifeLore (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDPK_MTu3uTUFJXRVcTJcEw "~Mcfly & Carlito (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCCMxHHciWRBBouzk-PGzmtQ "~Bazar du Grenier (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCMFcMhePnH4onVHt2-ItPZw "~Hygiène Mentale (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtI0Hodo5o5dUb67FeUjDeA "~SpaceX (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCdL3UpiseRlvxXuORJjmqZw "~Stardust - La Chaîne Espace (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6wrGV-8evsewfCpVnYv2sw "~ESRFsynchrotron (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCxqAWLTk1CmBvZFPzeZMd9A "~Domain of Science (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5X4e8ScZI2AFd_vkjSoyoQ "~AstronoGeek (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCTafEJoRl5myC8A50plIrng "~FabienOlicard (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5ClFK9Ko4ACRgXjRZc_GfA "~Rhinofeed (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWty1tzwZW_ZNSp5GVGteaA "~La statistique expliquée à mon chat (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4PasDd25MXqlXBogBw9CAg "~Mickaël Launay (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7vVhkEfw4nOGp8TyDk7RcQ "~BostonDynamics (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "~Greg Hurrell (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCqdRx3JV3xRchi4_xwFJUTA "~8FabLab (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCs7Jg5KBsgiova4CrseuwIw "~TheGrandTest (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUR1pFG_3XoZn3JNKjulqZg "~Thoughtbot (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9Ntx-EF3LzKY1nQ5rTUP2g "~Cyriak (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCmkP178NasnhR3TWQyyP4Gw "~How To Mechatronics (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJRljQ8OcyfzHBYpS_bDbow "~La Mezzanine (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC3gZqwD45zGCsduBn-Q2lew "~Gabrielle Grau (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9BnGZLT4iPaJtDOXYwQuHQ "~Primum Non Nocere (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsz9DiwPtgDvxJ-njWnieZw "~Passe-Science (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCP46_MXP_WG_auH88FnfS1A "~Nota Bene (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5eOLQO5VUEFJukNg9cl5jg "~Dave Sheik (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4Euikzr0bLKsnNuIKW6Sfg "~On n'est pas couché (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2LZO6swZ9SLUEOks3WnsfA "~2veritasium (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCeR8BYZS7IHYjk_9Mh5JgkA "~Scilabus (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCCsdIja21VT7AKkbVI5y8bQ "~Alain Vaillancourt (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCr-cm90DwFJC0W3f9jBs5jA "~EEVblog2 (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_ZChHhr5nDrUymz7qsRqRw "~Confér'ENS (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2UT8pPDlUvRbQXTVOf5Ocw "~Hihacks (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSULDz1yaHLVQWHpm4g_GHA "~Monsieur bidouille (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjsHDXUU3BjBCG7OaCbNDyQ "~Le Sense Of Wonder (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCwRXb5dUK4cvsHbx-rGzSgw "~Derek Banas (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCND0gjuG9ltEWDvh82VJITg "~Jeannot Nymouce (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWMYFDuCcvkmPiOf1RP_IKQ "~Bigorneaux et Coquillages (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYD22MFqaNqXp-ogTMosW_A "~Le Show Jaune (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0qKPcBbWJpJbyxPhtye5cg "~Ce soir ou jamais (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCVqx3vXNghSqUcVg2nmegYA "~U꞊RI (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaNlbnghtwlsGF-KzAFThqA "~ScienceEtonnante (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNmLe68qKzdjuEpT_YTDFuA "~Etonnarium (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2qLXSbTeNI3bHkfrHGvn1g "~ProfOkita (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm3C3OSgcyzaTBXrNRupB3Q "~Le Woop (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUK0HBIBWgM2c4vsPhkYY4w "~The Slow Mo Guys (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCH6ppHEvV3_WIXEwmhv9HEg "~Deus Ex Silicium (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5QPFDZ3Y4ylkkGJc6Y1OOA "~Philippe Demerliac (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtqICqGbPSbTN09K1_7VZ3Q "~DirtyBiology (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2bkHVIDjXS7sgrgjFtzOXQ "~Engineerguy (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCw3tZ7g_FljNjzGprCuptpA "~Taupe10 (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCwbV8cTR4yBgFdfa_BXV2OA "~Le Fossoyeur de Films (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7DdEm33SyaTDtWYGO2CwdA "~Physics Girl (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCx8mQU1dOemRUTPmrjs_Jaw "~MrGalagomusic (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSqyMHDUsc1gs6wz4sUy91w "~Jipihorn (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC8gSNcKgwBK7B4ulB8nh_gw "~Igor Presnyakov (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCiLhOvfEbf_uPvlcWWZKOrw "~Gonzaguetv (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCcziTK2NKeWtWQ6kB5tmQ8Q "~E-penser (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm5wThREh298TkK8hCT9HuA "~Data Gueule (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_GlthPB9gzdxfkTTEIVxMA "~Incroyables Expériences (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA "~Veritasium (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2_OG1L8DLTzQ7UrZVOk7OA "~Axolot (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCAFQjCZo5okIPkHUQlBZM-g "~Bonjour Tristesse (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCTt2AnK--mnRmICnf-CCcrw "~Le Rire Jaune (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCyi6pFP-lmaDD3Eb4dqsvdg "~Ioduremetallique (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCGgvKW19IWVvUUblrr8EgHA "~Experimentboy 2 (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCvGag7MyHR8H9oRm9iL9Ifw "~Experimentboy (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCj_iGliGCkLcHSZ8eqVNPDQ "~Grafikart.fr (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCt52sko033qGQl9EjtgTWPA "~Juliette Koch (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCeQEKFH31vvD-InkTGSvCrA "~Brusspup (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCxeA1l2E5AYrtpkqUbBEg3A "~Pierre Lecourt (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUJQSGHlYC9Xyz-uNfSpSsA "~ElectronikHeart (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtI6_1vGanPlH5lgVIDjJGQ "~MrAntoineDaniel (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCkEa1AfdeB93-he4VziKGFg "~Jigmé (Youtube)" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCfXXAQ-mp1uUcvSpvMcAAtw "~LinksTheSun (Youtube)" youtube
|
||||
#+END_SRC
|
807
dotfiles/polybar.org
Normal file
807
dotfiles/polybar.org
Normal file
@ -0,0 +1,807 @@
|
||||
#+TITLE: Polybar Configuration
|
||||
#+PROPERTY: header-args+ :comments both
|
||||
#+PROPERTY: header-args+ :mkdirp yes
|
||||
#+PROPERTY: header-args+ :tangle ~/.config/polybar/config
|
||||
|
||||
* Colors
|
||||
#+begin_src conf
|
||||
[colors]
|
||||
base00 = ${xrdb:color0:#000000}
|
||||
base01 = ${xrdb:color10:#000000}
|
||||
base02 = ${xrdb:color11:#000000}
|
||||
base03 = ${xrdb:color8:#000000}
|
||||
base04 = ${xrdb:color12:#000000}
|
||||
base05 = ${xrdb:color7:#000000}
|
||||
base06 = ${xrdb:color13:#000000}
|
||||
base07 = ${xrdb:color15:#000000}
|
||||
base08 = ${xrdb:color1:#000000}
|
||||
base09 = ${xrdb:color9:#000000}
|
||||
base0A = ${xrdb:color3:#000000}
|
||||
base0B = ${xrdb:color2:#000000}
|
||||
base0C = ${xrdb:color6:#000000}
|
||||
base0D = ${xrdb:color4:#000000}
|
||||
base0E = ${xrdb:color5:#000000}
|
||||
base0F = ${xrdb:color14:#000000}
|
||||
|
||||
; based on http://chriskempson.com/projects/base16/
|
||||
background = ${colors.base00}
|
||||
background-light = ${colors.base01}
|
||||
background-selection = ${colors.base02}
|
||||
comments = ${colors.base03}
|
||||
foreground-dark = ${colors.base04}
|
||||
foreground = ${colors.base05}
|
||||
foreground-light = ${colors.base06}
|
||||
foreground-light-bis = ${colors.base07}
|
||||
red = ${colors.base08}
|
||||
orange = ${colors.base09}
|
||||
brown = ${colors.base0A}
|
||||
green = ${colors.base0B}
|
||||
turquoise = ${colors.base0C}
|
||||
blue = ${colors.base0D}
|
||||
purple = ${colors.base0E}
|
||||
magenta = ${colors.base0F}
|
||||
black = ${#000000}
|
||||
#+end_src
|
||||
|
||||
* VM
|
||||
#+begin_src conf
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
#+end_src
|
||||
|
||||
* Top Bar
|
||||
#+BEGIN_SRC conf
|
||||
[bar/top]
|
||||
# monitor = ${env:MONITOR:eDP1}
|
||||
enable-ipc = true
|
||||
override-redirect = false
|
||||
bottom = false
|
||||
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 = SauceCodePro 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 = i3 xwindow
|
||||
modules-left = i3
|
||||
modules-center = xwindow
|
||||
modules-right = nordvpn 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]
|
||||
# monitor = ${env:MONITOR:eDP1}
|
||||
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 = SauceCodePro 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 = screenshot weather emacs caffeine redshift
|
||||
|
||||
# tray-position = right
|
||||
# tray-padding = 2
|
||||
#tray-transparent = true
|
||||
#tray-background = #0063ff
|
||||
|
||||
#cursor-click = pointer
|
||||
#cursor-scroll = ns-resize
|
||||
#+END_SRC
|
||||
|
||||
* Show Windows Title
|
||||
#+BEGIN_SRC conf
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:30:...%
|
||||
#+END_SRC
|
||||
|
||||
* Current Layour 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 = %{F#0a81f5}%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]
|
||||
type = internal/i3
|
||||
|
||||
enable-scroll = false
|
||||
wrapping-scroll = false
|
||||
#+END_SRC
|
||||
|
||||
** TODO - Choose some nice icons
|
||||
#+BEGIN_SRC conf
|
||||
ws-icon-0 = 1;
|
||||
ws-icon-1 = 2;
|
||||
ws-icon-2 = 3;
|
||||
ws-icon-3 = 4;
|
||||
ws-icon-4 = 5;
|
||||
ws-icon-default =
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
format = <label-state> <label-mode>
|
||||
index-sort = true
|
||||
#+END_SRC
|
||||
|
||||
** Colors
|
||||
#+BEGIN_SRC conf
|
||||
label-mode-foreground = ${colors.foreground}
|
||||
label-mode-background = ${colors.turquoise}
|
||||
label-mode-padding = 1
|
||||
|
||||
# focused = Active workspace on focused monitor
|
||||
label-focused = %icon% %index%
|
||||
label-focused-foreground = ${colors.foreground}
|
||||
label-focused-background = ${colors.background}
|
||||
label-focused-underline = ${colors.turquoise}
|
||||
label-focused-padding = 1
|
||||
|
||||
# unfocused = Inactive workspace on any monitor
|
||||
label-unfocused = %icon% %index%
|
||||
label-unfocused-foreground = ${colors.foreground}
|
||||
label-unfocused-background = ${colors.background}
|
||||
label-unfocused-underline = ${colors.background}
|
||||
label-unfocused-padding = 1
|
||||
|
||||
# visible = Active workspace on unfocused monitor
|
||||
label-visible = %icon% %index%
|
||||
label-visible-background = ${colors.background}
|
||||
label-visible-underline = ${colors.turquoise}
|
||||
label-visible-padding = 1
|
||||
|
||||
# urgent = Workspace with urgency hint set
|
||||
label-urgent = %icon% %index%
|
||||
label-urgent-background = ${colors.red}
|
||||
label-urgent-padding = 1
|
||||
|
||||
# Separator in between workspaces
|
||||
#label-separator = |
|
||||
#+END_SRC
|
||||
|
||||
* Music using MPD
|
||||
#+BEGIN_SRC conf
|
||||
[module/mpd]
|
||||
type = internal/mpd
|
||||
format-online = <icon-prev> <toggle> <icon-next> <icon-repeat> <icon-random> <bar-progress> %{A1:termite -e "ncmpcpp" &:}<label-song>%{A}
|
||||
|
||||
format-online-spacing = 0
|
||||
format-online-padding = 0
|
||||
|
||||
label-offline = mpd is offline
|
||||
format-offline = <label-offline>
|
||||
format-offline-foreground = #777
|
||||
|
||||
label-song = %artist% - %title%
|
||||
label-song-maxlen = 30
|
||||
label-song-ellipsis = true
|
||||
|
||||
icon-prev = 寧
|
||||
icon-stop = 栗
|
||||
icon-play = 契
|
||||
icon-pause =
|
||||
icon-next = 嶺
|
||||
icon-random = 咽
|
||||
icon-repeat = 凌
|
||||
|
||||
# Used to display the state of random/repeat/repeatone/single
|
||||
# Only applies if <icon-[random|repeat|repeatone|single]> is used
|
||||
toggle-on-foreground = ${colors.foreground-light}
|
||||
toggle-off-foreground = ${colors.comments}
|
||||
|
||||
bar-progress-width = 15
|
||||
bar-progress-indicator = |
|
||||
bar-progress-fill = ─
|
||||
bar-progress-empty = ─
|
||||
#+END_SRC
|
||||
|
||||
* Backlight level
|
||||
#+BEGIN_SRC conf
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
|
||||
format = <ramp>
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
ramp-3 =
|
||||
ramp-4 =
|
||||
ramp-5 =
|
||||
ramp-6 =
|
||||
ramp-7 =
|
||||
ramp-8 =
|
||||
ramp-9 =
|
||||
ramp-10 =
|
||||
ramp-11 =
|
||||
#+END_SRC
|
||||
|
||||
* CPU Usage
|
||||
#+BEGIN_SRC conf
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
|
||||
format-prefix-foreground = ${colors.foreground}
|
||||
|
||||
format-underline = ${colors.background}
|
||||
|
||||
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]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
# Open google calendar on left right
|
||||
date = %{A1:qutebrowser https\://calendar.google.com/ &:} %d-%m%{A}
|
||||
date-alt = "%{A1:qutebrowser https\://calendar.google.com/ &:} %d-%m-%Y%{A}"
|
||||
|
||||
time = %H:%M
|
||||
time-alt = %H:%M:%S
|
||||
|
||||
label = %date% %time%
|
||||
#+END_SRC
|
||||
|
||||
* Sound Volume
|
||||
#+BEGIN_SRC conf
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
# Open pavucontrol on left right
|
||||
format-volume =%{A1:pavucontrol &:}<label-volume> <bar-volume>%{A}
|
||||
|
||||
label-volume = %percentage%%
|
||||
label-volume-foreground = ${root.foreground}
|
||||
|
||||
label-muted = ﱝ muted
|
||||
|
||||
bar-volume-width = 10
|
||||
bar-volume-foreground-0 = ${colors.green}
|
||||
bar-volume-foreground-1 = ${colors.green}
|
||||
bar-volume-foreground-2 = ${colors.blue}
|
||||
bar-volume-foreground-3 = ${colors.blue}
|
||||
bar-volume-foreground-4 = ${colors.red}
|
||||
bar-volume-foreground-5 = ${colors.red}
|
||||
bar-volume-foreground-6 = ${colors.red}
|
||||
bar-volume-gradient = false
|
||||
bar-volume-indicator = |
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
bar-volume-empty-foreground = ${colors.foreground}
|
||||
#+END_SRC
|
||||
|
||||
* Battery
|
||||
#+BEGIN_SRC conf
|
||||
# TODO - open battery manager on click
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
|
||||
battery = BAT0
|
||||
adapter = ADP1
|
||||
full-at = 95
|
||||
|
||||
format-charging = <ramp-capacity> <label-charging>
|
||||
format-charging-underline = ${colors.blue}
|
||||
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
format-discharging-underline = ${colors.red}
|
||||
|
||||
format-full-prefix = " "
|
||||
format-full-prefix-foreground = ${colors.foreground}
|
||||
format-full-underline = ${colors.background}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-foreground = ${colors.foreground}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-foreground = ${colors.foreground}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-3 =
|
||||
animation-discharging-4 =
|
||||
animation-discharging-foreground = ${colors.foreground}
|
||||
animation-discharging-framerate = 750
|
||||
#+END_SRC
|
||||
|
||||
* TODO Temperature
|
||||
- [ ] Open temperature manager on click
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
|
||||
interval = 5
|
||||
thermal-zone = 0
|
||||
warn-temperature = 70
|
||||
;; Temperature off one cpu core
|
||||
hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input
|
||||
|
||||
format = <ramp> <label>
|
||||
format-underline = ${colors.background}
|
||||
format-warn = <ramp> <label-warn>
|
||||
format-warn-underline = ${colors.red}
|
||||
|
||||
label = %temperature-c%
|
||||
label-warn = %temperature-c%
|
||||
label-warn-foreground = ${colors.red}
|
||||
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
ramp-3 =
|
||||
ramp-4 =
|
||||
ramp-foreground = ${colors.foreground}
|
||||
#+END_SRC
|
||||
|
||||
* Power Menu
|
||||
#+BEGIN_SRC conf
|
||||
[module/powermenu]
|
||||
type = custom/menu
|
||||
|
||||
expand-right = true
|
||||
|
||||
format-spacing = 1
|
||||
label-open =
|
||||
label-open-foreground = ${colors.blue}
|
||||
label-close = cancel
|
||||
label-close-foreground = ${colors.blue}
|
||||
label-separator = |
|
||||
label-separator-foreground = ${colors.foreground}
|
||||
|
||||
menu-0-0 = reboot
|
||||
menu-0-0-exec = menu-open-1
|
||||
menu-0-1 = power off
|
||||
menu-0-1-exec = menu-open-2
|
||||
|
||||
menu-1-0 = cancel
|
||||
menu-1-0-exec = menu-open-0
|
||||
menu-1-1 = reboot
|
||||
menu-1-1-exec = sudo reboot
|
||||
|
||||
menu-2-0 = power off
|
||||
menu-2-0-exec = sudo poweroff
|
||||
menu-2-1 = cancel
|
||||
menu-2-1-exec = menu-open-0
|
||||
#+END_SRC
|
||||
|
||||
* Settings
|
||||
#+BEGIN_SRC conf
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
#compositing-background = xor
|
||||
#compositing-background = screen
|
||||
#compositing-foreground = source
|
||||
#compositing-border = over
|
||||
#+END_SRC
|
||||
|
||||
* TODO Unread Mails
|
||||
- [ ] Add custom color when having new email
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
[module/unread_mail]
|
||||
type = custom/script
|
||||
|
||||
label-font = 2
|
||||
format-underline = ${colors.background}
|
||||
click-left = termite -e "tmuxinator start neomutt" &
|
||||
format = <label>
|
||||
exec = ~/.config/polybar/scripts/unread_mails.sh
|
||||
interval = 1
|
||||
#+END_SRC
|
||||
|
||||
* Redshift
|
||||
#+BEGIN_SRC conf
|
||||
[module/redshift]
|
||||
type = custom/script
|
||||
|
||||
label-font = 2
|
||||
format-underline = ${colors.background}
|
||||
click-left = ~/.config/polybar/scripts/redshift.sh toggle
|
||||
format = <label>
|
||||
exec = ~/.config/polybar/scripts/redshift.sh
|
||||
interval = 1
|
||||
#+END_SRC
|
||||
|
||||
* TODO Calendar
|
||||
#+begin_src conf
|
||||
[module/popup-calendar]
|
||||
type = custom/script
|
||||
exec = ~/scripts/popup-calendar.sh
|
||||
interval = 5
|
||||
click-left = ~/scripts/popup-calendar.sh --popup
|
||||
#+end_src
|
||||
* TODO Emacs Server
|
||||
#+begin_src conf
|
||||
[module/emacs]
|
||||
type = custom/script
|
||||
|
||||
label-font = 2
|
||||
format-underline = ${colors.background}
|
||||
click-left = ~/scripts/emacsclient.sh &
|
||||
format = <label>
|
||||
exec = ~/.config/polybar/scripts/emacs.sh
|
||||
interval = 1
|
||||
#+end_src
|
||||
|
||||
** Emacs Server Scripts
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/polybar/scripts/emacs.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
|
||||
|
||||
* TODO NordVPN
|
||||
Make a script that is called with left-click that toggles to status of the VPN.
|
||||
#+BEGIN_SRC conf
|
||||
[module/nordvpn]
|
||||
type = custom/script
|
||||
|
||||
format-underline = ${colors.background}
|
||||
click-left = ~/.config/polybar/scripts/nordvpn-toggle.sh
|
||||
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
|
||||
#+END_SRC
|
||||
|
||||
** Nordvpn Status script
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/polybar/scripts/nordvpn.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
|
||||
echo "";
|
||||
else
|
||||
country=`echo -e $vpnstatus | sed 's/^.*Country: \(\w*\) .*$/\1/'`
|
||||
echo "%{F#859900}%{F-} $country";
|
||||
fi
|
||||
#+END_SRC
|
||||
|
||||
* TODO Caffeine
|
||||
#+BEGIN_SRC conf
|
||||
[module/caffeine]
|
||||
type = custom/script
|
||||
|
||||
label-font = 2
|
||||
format-underline = ${colors.background}
|
||||
click-left = xautolock -disable && notify-send "Lock Disabled"
|
||||
click-right = xautolock -enable && notify-send "Lock Enabled"
|
||||
format = <label>
|
||||
exec = echo -e "\uf0f4"
|
||||
interval = 1
|
||||
#+END_SRC
|
||||
|
||||
* Side panel config
|
||||
#+BEGIN_SRC conf
|
||||
# [bar/panel]
|
||||
# monitor = ${env:MONITOR:eDP1}
|
||||
# enable-ipc = true
|
||||
# override-redirect = true
|
||||
# bottom = false
|
||||
#
|
||||
# width = 30%
|
||||
# height = 600 # 1080p - bar height - 2*border width
|
||||
# offset-x = 70%
|
||||
# offset-y = 27
|
||||
# fixed-center = true
|
||||
# spacing = 1
|
||||
# module-margin-left = 2
|
||||
# module-margin-right = 2
|
||||
#
|
||||
# border-size = 2
|
||||
# border-color = ${colors.turquoise}
|
||||
#
|
||||
# background = ${colors.background}
|
||||
# foreground = ${colors.foreground}
|
||||
#
|
||||
# font-0 = SauceCodePro Nerd Font:style=Medium,Regular:pixelsize=10;1
|
||||
# font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
||||
# font-2 = siji:pixelsize=10;1
|
||||
#
|
||||
# modules-center = lock logout hibernate reboot shutdown screenshot
|
||||
#+END_SRC
|
||||
|
||||
* TODO Weather
|
||||
https://github.com/x70b1/polybar-scripts/tree/master/polybar-scripts/openweathermap-fullfeatured
|
||||
|
||||
#+begin_src conf
|
||||
[module/weather]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/weather.sh
|
||||
interval = 600
|
||||
label-font = 3
|
||||
#+end_src
|
||||
|
||||
** TODO Add action when cliking on it => open webpage with meteo
|
||||
|
||||
* TODO Network
|
||||
#+begin_src conf
|
||||
[module/network]
|
||||
type = internal/network
|
||||
interface = wlp3s0
|
||||
|
||||
; Seconds to sleep between updates
|
||||
; Default: 1
|
||||
interval = 3.0
|
||||
|
||||
; ; 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 = <label-connected>
|
||||
|
||||
; ; Available tags:
|
||||
; ; <label-disconnected> (default)
|
||||
; format-disconnected = <label-disconnected>
|
||||
|
||||
; ; Available tags:
|
||||
; ; <label-connected> (default)
|
||||
; ; <label-packetloss>
|
||||
; ; <animation-packetloss>
|
||||
; format-packetloss = <animation-packetloss> <label-connected>
|
||||
|
||||
; ; 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
|
||||
|
||||
; ; Available tokens:
|
||||
; ; %ifname% [wireless+wired]
|
||||
; ; Default: (none)
|
||||
; label-disconnected = not connected
|
||||
; label-disconnected-foreground = #66ffffff
|
||||
|
||||
; ; 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
|
||||
|
||||
; ; 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
|
||||
#+end_src
|
||||
|
||||
* Option Menu
|
||||
#+BEGIN_SRC conf
|
||||
[module/option_menu]
|
||||
type = custom/ipc
|
||||
|
||||
hook-0 = ~/.i3/scripts/polybar_wrapper.sh options_icon
|
||||
initial = 1
|
||||
click-left = ~/.i3/scripts/polybar_wrapper.sh options
|
||||
#+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 Screenshot
|
||||
First it blocking the polybar, then the right click is not working
|
||||
#+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'
|
||||
#+END_SRC
|
897
dotfiles/qutebrowser.org
Normal file
897
dotfiles/qutebrowser.org
Normal file
@ -0,0 +1,897 @@
|
||||
#+TITLE: Qutebrowser Configuration
|
||||
#+PROPERTY: header-args+ :comments none
|
||||
#+PROPERTY: header-args+ :mkdirp yes
|
||||
#+PROPERTY: header-args+ :tangle ~/.config/qutebrowser/config.py
|
||||
|
||||
* General config
|
||||
#+BEGIN_SRC conf
|
||||
# This is here so configs done via the GUI are still loaded.
|
||||
# Remove it to not load settings done via the GUI.
|
||||
# config.load_autoconfig()
|
||||
|
||||
# Aliases for commands. The keys of the given dictionary are the
|
||||
c.aliases = {'w': 'session-save', 'q': 'quit', 'wq': 'quit --save'}
|
||||
|
||||
# Time interval (in milliseconds) between auto-saves of config/cookies/etc.
|
||||
c.auto_save.interval = 15000
|
||||
|
||||
# Always restore open sites when qutebrowser is reopened.
|
||||
c.auto_save.session = False
|
||||
|
||||
# Backend to use to display websites
|
||||
c.backend = 'webengine'
|
||||
|
||||
# Require a confirmation before quitting the application.
|
||||
# Valid values:
|
||||
# - always: Always show a confirmation.
|
||||
# - multiple-tabs: Show a confirmation if multiple tabs are opened.
|
||||
# - downloads: Show a confirmation if downloads are running
|
||||
# - never: Never show a confirmation.
|
||||
c.confirm_quit = ['downloads']
|
||||
#+END_SRC
|
||||
|
||||
* Content
|
||||
#+BEGIN_SRC conf
|
||||
# Automatically start playing `<video>` elements
|
||||
c.content.autoplay = False
|
||||
|
||||
# Allow websites to request geolocations.
|
||||
c.content.geolocation = 'ask'
|
||||
|
||||
# Show javascript alerts.
|
||||
c.content.javascript.alert = True
|
||||
|
||||
# Allow JavaScript to read from or write to the clipboard
|
||||
c.content.javascript.can_access_clipboard = True
|
||||
|
||||
# Allow websites to record audio/video.
|
||||
c.content.media_capture = 'ask'
|
||||
|
||||
# Allow pdf.js to view PDF files in the browser
|
||||
c.content.pdfjs = False
|
||||
|
||||
# Proxy to use. In addition to the listed values, you can use a
|
||||
# `socks://...` or `http://...` URL.
|
||||
# Valid values:
|
||||
# - system: Use the system wide proxy.
|
||||
# - none: Don't use any proxy
|
||||
c.content.proxy = 'system'
|
||||
#+END_SRC
|
||||
|
||||
* Downloads
|
||||
#+BEGIN_SRC conf
|
||||
# Directory to save downloads to
|
||||
c.downloads.location.directory = '$HOME/Downloads/'
|
||||
|
||||
# Prompt the user for the download location
|
||||
c.downloads.location.prompt = True
|
||||
|
||||
# Remember the last used download directory.
|
||||
c.downloads.location.remember = True
|
||||
|
||||
# What to display in the download filename input.
|
||||
# Valid values:
|
||||
# - path: Show only the download path.
|
||||
# - filename: Show only download filename.
|
||||
# - both: Show download path and filename.
|
||||
c.downloads.location.suggestion = 'path'
|
||||
|
||||
# Where to show the downloaded files.
|
||||
c.downloads.position = 'bottom'
|
||||
|
||||
# Duration (in milliseconds) to wait before removing finished downloads
|
||||
c.downloads.remove_finished = 10000
|
||||
#+END_SRC
|
||||
|
||||
* Fonts
|
||||
#+BEGIN_SRC conf
|
||||
# Default monospace fonts
|
||||
c.fonts.monospace = '"SauceCodePro Nerd Font Mono" "xos4 Terminus", Terminus, Monospace, "DejaVu Sans Mono", Monaco, "Bitstream Vera Sans Mono", "Andale Mono", "Courier New", Courier, "Liberation Mono", monospace, Fixed, Consolas, Terminal'
|
||||
|
||||
# Font used for prompts.
|
||||
c.fonts.prompts = '10pt monospace'
|
||||
|
||||
# Font used in the statusbar.
|
||||
c.fonts.statusbar = '10pt monospace'
|
||||
|
||||
# Font used in the tab bar.
|
||||
c.fonts.tabs = '10pt monospace'
|
||||
#+END_SRC
|
||||
|
||||
* Hints
|
||||
#+BEGIN_SRC conf
|
||||
# When a hint can be automatically followed without pressing Enter.
|
||||
# Valid values:
|
||||
# - always: Auto-follow whenever there is only a single hint on a page.
|
||||
# - unique-match: Auto-follow whenever there is a unique non-empty match in either the hint string (word mode) or filter (number mode).
|
||||
# - full-match: Follow the hint when the user typed the whole hint (letter, word or number mode) or the element's text (only in number mode).
|
||||
# - never: The user will always need to press Enter to follow a hint.
|
||||
# c.hints.auto_follow = 'unique-match'
|
||||
|
||||
# Duration (in milliseconds) to ignore normal-mode key bindings after a
|
||||
# successful auto-follow.
|
||||
# c.hints.auto_follow_timeout = 0
|
||||
|
||||
# CSS border value for hints.
|
||||
# c.hints.border = '1px solid #E3BE23'
|
||||
|
||||
# Characters used for hint strings.
|
||||
# c.hints.chars = 'asdfghjkl'
|
||||
|
||||
# Dictionary file to be used by the word hints.
|
||||
# c.hints.dictionary = '/usr/share/dict/words'
|
||||
|
||||
# Which implementation to use to find elements to hint.
|
||||
# Valid values:
|
||||
# - javascript: Better but slower
|
||||
# - python: Slightly worse but faster
|
||||
# c.hints.find_implementation = 'python'
|
||||
|
||||
# Hide unmatched hints in rapid mode.
|
||||
# c.hints.hide_unmatched_rapid_hints = True
|
||||
|
||||
# Minimum number of characters used for hint strings.
|
||||
# c.hints.min_chars = 1
|
||||
|
||||
# Mode to use for hints.
|
||||
# Valid values:
|
||||
# - number: Use numeric hints. (In this mode you can also type letters from the hinted element to filter and reduce the number of elements that are hinted.)
|
||||
# - letter: Use the characters in the `hints.chars` setting.
|
||||
# - word: Use hints words based on the html elements and the extra words.
|
||||
# c.hints.mode = 'letter'
|
||||
|
||||
# Comma-separated list of regular expressions to use for 'next' links.
|
||||
# c.hints.next_regexes = ['\\bnext\\b', '\\bmore\\b', '\\bnewer\\b', '\\b[>→≫]\\b', '\\b(>>|»)\\b', '\\bcontinue\\b']
|
||||
|
||||
# Comma-separated list of regular expressions to use for 'prev' links.
|
||||
# c.hints.prev_regexes = ['\\bprev(ious)?\\b', '\\bback\\b', '\\bolder\\b', '\\b[<←≪]\\b', '\\b(<<|«)\\b']
|
||||
|
||||
# Scatter hint key chains (like Vimium) or not (like dwb). Ignored for
|
||||
# number hints.
|
||||
# c.hints.scatter = True
|
||||
|
||||
# Make characters in hint strings uppercase.
|
||||
# c.hints.uppercase = False
|
||||
#+END_SRC
|
||||
|
||||
* Input
|
||||
#+BEGIN_SRC conf
|
||||
# Enter insert mode if an editable element is clicked.
|
||||
c.input.insert_mode.auto_enter = True
|
||||
|
||||
# Leave insert mode if a non-editable element is clicked.
|
||||
c.input.insert_mode.auto_leave = True
|
||||
|
||||
# Automatically enter insert mode if an editable element is focused
|
||||
# after loading the page.
|
||||
c.input.insert_mode.auto_load = False
|
||||
|
||||
# Switch to insert mode when clicking flash and other plugins.
|
||||
# c.input.insert_mode.plugins = False
|
||||
|
||||
# Include hyperlinks in the keyboard focus chain when tabbing.
|
||||
# c.input.links_included_in_focus_chain = True
|
||||
|
||||
# Timeout (in milliseconds) for partially typed key bindings. If the
|
||||
# current input forms only partial matches, the keystring will be
|
||||
# cleared after this time.
|
||||
# c.input.partial_timeout = 5000
|
||||
|
||||
# Enable Opera-like mouse rocker gestures. This disables the context
|
||||
# menu.
|
||||
# c.input.rocker_gestures = False
|
||||
|
||||
# Enable spatial navigation. Spatial navigation consists in the ability
|
||||
# to navigate between focusable elements in a Web page, such as
|
||||
# hyperlinks and form controls, by using Left, Right, Up and Down arrow
|
||||
# keys. For example, if the user presses the Right key, heuristics
|
||||
# determine whether there is an element he might be trying to reach
|
||||
# towards the right and which element he probably wants.
|
||||
# c.input.spatial_navigation = False
|
||||
#+END_SRC
|
||||
|
||||
* Keyhint
|
||||
#+BEGIN_SRC conf
|
||||
# Keychains that shouldn't be shown in the keyhint dialog. Globs are
|
||||
# supported, so `;*` will blacklist all keychains starting with `;`. Use
|
||||
# `*` to disable keyhints.
|
||||
# c.keyhint.blacklist = []
|
||||
|
||||
# Time (in milliseconds) from pressing a key to seeing the keyhint
|
||||
# dialog.
|
||||
# c.keyhint.delay = 500
|
||||
|
||||
# Rounding radius (in pixels) for the edges of the keyhint dialog.
|
||||
# c.keyhint.radius = 6
|
||||
#+END_SRC
|
||||
|
||||
* Messages
|
||||
#+BEGIN_SRC conf
|
||||
# Duration (in milliseconds) to show messages in the statusbar for. Set
|
||||
# to 0 to never clear messages.
|
||||
# c.messages.timeout = 2000
|
||||
#+END_SRC
|
||||
|
||||
* New Instance Options
|
||||
#+BEGIN_SRC conf
|
||||
# How to open links in an existing instance if a new one is launched.
|
||||
# This happens when e.g. opening a link from a terminal. See
|
||||
# `new_instance_open_target_window` to customize in which window the
|
||||
# link is opened in.
|
||||
# Valid values:
|
||||
# - tab: Open a new tab in the existing window and activate the window.
|
||||
# - tab-bg: Open a new background tab in the existing window and activate the window.
|
||||
# - tab-silent: Open a new tab in the existing window without activating the window.
|
||||
# - tab-bg-silent: Open a new background tab in the existing window without activating the window.
|
||||
# - window: Open in a new window.
|
||||
# c.new_instance_open_target = 'tab'
|
||||
|
||||
# Which window to choose when opening links as new tabs. When
|
||||
# `new_instance_open_target` is not set to `window`, this is ignored.
|
||||
# Valid values:
|
||||
# - first-opened: Open new tabs in the first (oldest) opened window.
|
||||
# - last-opened: Open new tabs in the last (newest) opened window.
|
||||
# - last-focused: Open new tabs in the most recently focused window.
|
||||
# - last-visible: Open new tabs in the most recently visible window.
|
||||
# c.new_instance_open_target_window = 'last-focused'
|
||||
#+END_SRC
|
||||
|
||||
* Prompt
|
||||
#+BEGIN_SRC conf
|
||||
# Show a filebrowser in upload/download prompts.
|
||||
# c.prompt.filebrowser = True
|
||||
|
||||
# Rounding radius (in pixels) for the edges of prompts.
|
||||
# c.prompt.radius = 8
|
||||
#+END_SRC
|
||||
|
||||
* Qt
|
||||
#+BEGIN_SRC conf
|
||||
# Additional arguments to pass to Qt, without leading `--`. With
|
||||
# QtWebEngine, some Chromium arguments (see
|
||||
# https://peter.sh/experiments/chromium-command-line-switches/ for a
|
||||
# list) will work.
|
||||
# c.qt.args = []
|
||||
|
||||
# Force a Qt platform to use. This sets the `QT_QPA_PLATFORM`
|
||||
# environment variable and is useful to force using the XCB plugin when
|
||||
# running QtWebEngine on Wayland.
|
||||
# c.qt.force_platform = None
|
||||
|
||||
# Force software rendering for QtWebEngine. This is needed for
|
||||
# QtWebEngine to work with Nouveau drivers and can be useful in other
|
||||
# scenarios related to graphic issues.
|
||||
# Valid values:
|
||||
# - software-opengl: Tell LibGL to use a software implementation of GL (`LIBGL_ALWAYS_SOFTWARE` / `QT_XCB_FORCE_SOFTWARE_OPENGL`)
|
||||
# - qt-quick: Tell Qt Quick to use a software renderer instead of OpenGL. (`QT_QUICK_BACKEND=software`)
|
||||
# - chromium: Tell Chromium to disable GPU support and use Skia software rendering instead. (`--disable-gpu`)
|
||||
# - none: Don't force software rendering.
|
||||
# c.qt.force_software_rendering = 'none'
|
||||
|
||||
# Turn on Qt HighDPI scaling. This is equivalent to setting
|
||||
# QT_AUTO_SCREEN_SCALE_FACTOR=1 in the environment. It's off by default
|
||||
# as it can cause issues with some bitmap fonts. As an alternative to
|
||||
# this, it's possible to set font sizes and the `zoom.default` setting.
|
||||
# c.qt.highdpi = False
|
||||
|
||||
# When to use Chromium's low-end device mode. This improves the RAM
|
||||
# usage of renderer processes, at the expense of performance.
|
||||
# Valid values:
|
||||
# - always: Always use low-end device mode.
|
||||
# - auto: Decide automatically (uses low-end mode with < 1 GB available RAM).
|
||||
# - never: Never use low-end device mode.
|
||||
# c.qt.low_end_device_mode = 'auto'
|
||||
|
||||
# Which Chromium process model to use. Alternative process models use
|
||||
# less resources, but decrease security and robustness. See the
|
||||
# following pages for more details: -
|
||||
# https://www.chromium.org/developers/design-documents/process-models
|
||||
# - https://doc.qt.io/qt-5/qtwebengine-features.html#process-models
|
||||
# Valid values:
|
||||
# - process-per-site-instance: Pages from separate sites are put into separate processes and separate visits to the same site are also isolated.
|
||||
# - process-per-site: Pages from separate sites are put into separate processes. Unlike Process per Site Instance, all visits to the same site will share an OS process. The benefit of this model is reduced memory consumption, because more web pages will share processes. The drawbacks include reduced security, robustness, and responsiveness.
|
||||
# - single-process: Run all tabs in a single process. This should be used for debugging purposes only, and it disables `:open --private`.
|
||||
# c.qt.process_model = 'process-per-site-instance'
|
||||
#+END_SRC
|
||||
|
||||
* Scrolling
|
||||
#+BEGIN_SRC conf
|
||||
# When to show the scrollbar.
|
||||
# Valid values:
|
||||
# - always: Always show the scrollbar.
|
||||
# - never: Never show the scrollbar.
|
||||
# - when-searching: Show the scrollbar when searching for text in the webpage. With the QtWebKit backend, this is equal to `never`.
|
||||
# c.scrolling.bar = 'when-searching'
|
||||
|
||||
# Enable smooth scrolling for web pages. Note smooth scrolling does not
|
||||
# work with the `:scroll-px` command.
|
||||
# c.scrolling.smooth = False
|
||||
#+END_SRC
|
||||
|
||||
* Search
|
||||
#+BEGIN_SRC conf
|
||||
# When to find text on a page case-insensitively.
|
||||
# Valid values:
|
||||
# - always: Search case-insensitively.
|
||||
# - never: Search case-sensitively.
|
||||
# - smart: Search case-sensitively if there are capital characters.
|
||||
# c.search.ignore_case = 'smart'
|
||||
|
||||
# Find text on a page incrementally, renewing the search for each typed
|
||||
# character.
|
||||
# c.search.incremental = True
|
||||
#+END_SRC
|
||||
|
||||
* Session
|
||||
#+BEGIN_SRC conf
|
||||
# Name of the session to save by default. If this is set to null, the
|
||||
# session which was last loaded is saved.
|
||||
# c.session.default_name = None
|
||||
|
||||
# Load a restored tab as soon as it takes focus.
|
||||
# c.session.lazy_restore = False
|
||||
#+END_SRC
|
||||
|
||||
* Spell Check
|
||||
Languages to use for spell checking. You can check for available
|
||||
languages and install dictionaries using scripts/dictcli.py. Run the
|
||||
script with -h/--help for instructions.
|
||||
Valid values:
|
||||
- af-ZA: Afrikaans (South Africa)
|
||||
- bg-BG: Bulgarian (Bulgaria)
|
||||
- ca-ES: Catalan (Spain)
|
||||
- cs-CZ: Czech (Czech Republic)
|
||||
- da-DK: Danish (Denmark)
|
||||
- de-DE: German (Germany)
|
||||
- el-GR: Greek (Greece)
|
||||
- en-AU: English (Australia)
|
||||
- en-CA: English (Canada)
|
||||
- en-GB: English (United Kingdom)
|
||||
- en-US: English (United States)
|
||||
- es-ES: Spanish (Spain)
|
||||
- et-EE: Estonian (Estonia)
|
||||
- fa-IR: Farsi (Iran)
|
||||
- fo-FO: Faroese (Faroe Islands)
|
||||
- fr-FR: French (France)
|
||||
- he-IL: Hebrew (Israel)
|
||||
- hi-IN: Hindi (India)
|
||||
- hr-HR: Croatian (Croatia)
|
||||
- hu-HU: Hungarian (Hungary)
|
||||
- id-ID: Indonesian (Indonesia)
|
||||
- it-IT: Italian (Italy)
|
||||
- ko: Korean
|
||||
- lt-LT: Lithuanian (Lithuania)
|
||||
- lv-LV: Latvian (Latvia)
|
||||
- nb-NO: Norwegian (Norway)
|
||||
- nl-NL: Dutch (Netherlands)
|
||||
- pl-PL: Polish (Poland)
|
||||
- pt-BR: Portuguese (Brazil)
|
||||
- pt-PT: Portuguese (Portugal)
|
||||
- ro-RO: Romanian (Romania)
|
||||
- ru-RU: Russian (Russia)
|
||||
- sh: Serbo-Croatian
|
||||
- sk-SK: Slovak (Slovakia)
|
||||
- sl-SI: Slovenian (Slovenia)
|
||||
- sq: Albanian
|
||||
- sr: Serbian
|
||||
- sv-SE: Swedish (Sweden)
|
||||
- ta-IN: Tamil (India)
|
||||
- tg-TG: Tajik (Tajikistan)
|
||||
- tr-TR: Turkish (Turkey)
|
||||
- uk-UA: Ukrainian (Ukraine)
|
||||
- vi-VN: Vietnamese (Viet Nam)
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
c.spellcheck.languages = ['en-US', 'fr-FR']
|
||||
#+END_SRC
|
||||
|
||||
* Status Bar
|
||||
#+BEGIN_SRC conf
|
||||
# Hide the statusbar unless a message is shown.
|
||||
# c.statusbar.hide = False
|
||||
|
||||
# Padding (in pixels) for the statusbar.
|
||||
# c.statusbar.padding = {'top': 1, 'bottom': 1, 'left': 0, 'right': 0}
|
||||
|
||||
# Position of the status bar.
|
||||
# Valid values:
|
||||
# - top
|
||||
# - bottom
|
||||
# c.statusbar.position = 'bottom'
|
||||
|
||||
# List of widgets displayed in the statusbar.
|
||||
# Valid values:
|
||||
# - url: Current page URL.
|
||||
# - scroll: Percentage of the current page position like `10%`.
|
||||
# - scroll_raw: Raw percentage of the current page position like `10`.
|
||||
# - history: Display an arrow when possible to go back/forward in history.
|
||||
# - tabs: Current active tab, e.g. `2`.
|
||||
# - keypress: Display pressed keys when composing a vi command.
|
||||
# - progress: Progress bar for the current page loading.
|
||||
# c.statusbar.widgets = ['keypress', 'url', 'scroll', 'history', 'tabs', 'progress']
|
||||
#+END_SRC
|
||||
|
||||
* Tabs
|
||||
#+BEGIN_SRC conf
|
||||
# Open new tabs (middleclick/ctrl+click) in the background.
|
||||
c.tabs.background = True
|
||||
|
||||
# Mouse button with which to close tabs.
|
||||
c.tabs.close_mouse_button = 'right'
|
||||
|
||||
# How to behave when the close mouse button is pressed on the tab bar.
|
||||
# Valid values:
|
||||
# - new-tab: Open a new tab.
|
||||
# - close-current: Close the current tab.
|
||||
# - close-last: Close the last tab.
|
||||
# - ignore: Don't do anything.
|
||||
# c.tabs.close_mouse_button_on_bar = 'new-tab'
|
||||
|
||||
# Width (in pixels) of the progress indicator (0 to disable).
|
||||
# c.tabs.indicator.width = 3
|
||||
|
||||
# How to behave when the last tab is closed.
|
||||
# Valid values:
|
||||
# - ignore: Don't do anything.
|
||||
# - blank: Load a blank page.
|
||||
# - startpage: Load the start page.
|
||||
# - default-page: Load the default page.
|
||||
# - close: Close the window.
|
||||
c.tabs.last_close = 'close'
|
||||
|
||||
# When switching tabs, what input mode is applied.
|
||||
# Valid values:
|
||||
# - persist: Retain the current mode.
|
||||
# - restore: Restore previously saved mode.
|
||||
# - normal: Always revert to normal mode.
|
||||
# c.tabs.mode_on_change = 'normal'
|
||||
|
||||
# Switch between tabs using the mouse wheel.
|
||||
c.tabs.mousewheel_switching = False
|
||||
|
||||
# Position of new tabs opened from another tab.
|
||||
# Valid values:
|
||||
# - prev: Before the current tab.
|
||||
# - next: After the current tab.
|
||||
# - first: At the beginning.
|
||||
# - last: At the end.
|
||||
# c.tabs.new_position.related = 'next'
|
||||
|
||||
# Position of new tabs which aren't opened from another tab.
|
||||
# Valid values:
|
||||
# - prev: Before the current tab.
|
||||
# - next: After the current tab.
|
||||
# - first: At the beginning.
|
||||
# - last: At the end.
|
||||
# c.tabs.new_position.unrelated = 'last'
|
||||
|
||||
# Padding (in pixels) around text for tabs.
|
||||
# c.tabs.padding = {'top': 0, 'bottom': 0, 'left': 5, 'right': 5}
|
||||
|
||||
# Shrink pinned tabs down to their contents.
|
||||
# c.tabs.pinned.shrink = True
|
||||
|
||||
# Position of the tab bar.
|
||||
c.tabs.position = 'left'
|
||||
|
||||
# Which tab to select when the focused tab is removed.
|
||||
c.tabs.select_on_remove = 'next'
|
||||
|
||||
# Format to use for the tab title. The following placeholders are
|
||||
# defined: * `{perc}`: Percentage as a string like `[10%]`. *
|
||||
# `{perc_raw}`: Raw percentage, e.g. `10`. * `{title}`: Title of the
|
||||
# current web page. * `{title_sep}`: The string ` - ` if a title is set,
|
||||
# empty otherwise. * `{index}`: Index of this tab. * `{id}`: Internal
|
||||
# tab ID of this tab. * `{scroll_pos}`: Page scroll position. *
|
||||
# `{host}`: Host of the current web page. * `{backend}`: Either
|
||||
# ''webkit'' or ''webengine'' * `{private}`: Indicates when private mode
|
||||
# is enabled. * `{current_url}`: URL of the current web page. *
|
||||
# `{protocol}`: Protocol (http/https/...) of the current web page. *
|
||||
# `{audio}`: Indicator for audio/mute status.
|
||||
# c.tabs.title.format = '{audio}{index}: {title}'
|
||||
|
||||
# Width (in pixels or as percentage of the window) of the tab bar if it's vertical.
|
||||
c.tabs.width = 30
|
||||
|
||||
# Wrap when changing tabs.
|
||||
c.tabs.wrap = False
|
||||
#+END_SRC
|
||||
|
||||
* Urls
|
||||
#+BEGIN_SRC conf
|
||||
# What search to start when something else than a URL is entered.
|
||||
# Valid values:
|
||||
# - naive: Use simple/naive check.
|
||||
# - dns: Use DNS requests (might be slow!).
|
||||
# - never: Never search automatically.
|
||||
# c.url.auto_search = 'naive'
|
||||
|
||||
# URL segments where `:navigate increment/decrement` will search for a
|
||||
# number.
|
||||
# Valid values:
|
||||
# - host
|
||||
# - port
|
||||
# - path
|
||||
# - query
|
||||
# - anchor
|
||||
# c.url.incdec_segments = ['path', 'query']
|
||||
|
||||
# Search engines which can be used via the address bar. Maps a search
|
||||
# engine name (such as `DEFAULT`, or `ddg`) to a URL with a `{}`
|
||||
# placeholder. The placeholder will be replaced by the search term, use
|
||||
# `{{` and `}}` for literal `{`/`}` signs. The search engine named
|
||||
# `DEFAULT` is used when `url.auto_search` is turned on and something
|
||||
# else than a URL was entered to be opened. Other search engines can be
|
||||
# used by prepending the search engine name to the search term, e.g.
|
||||
# `:open google qutebrowser`.
|
||||
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={}',
|
||||
'yt': 'https://www.youtube.com/results?search_query={}',
|
||||
'gh': 'https://github.com/search?utf8={}&q=test&type=',
|
||||
'r': '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={}',
|
||||
}
|
||||
|
||||
# Page(s) to open at the start.
|
||||
c.url.start_pages = ['https://start.duckduckgo.com']
|
||||
#+END_SRC
|
||||
|
||||
* Window
|
||||
#+BEGIN_SRC conf
|
||||
# Hide the window decoration. This setting requires a restart on
|
||||
# Wayland.
|
||||
# c.window.hide_decoration = False
|
||||
|
||||
# Format to use for the window title. The same placeholders like for
|
||||
# `tabs.title.format` are defined.
|
||||
# c.window.title_format = '{perc}{title}{title_sep}qutebrowser'
|
||||
#+END_SRC
|
||||
|
||||
* Bindings
|
||||
** Normal Mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind("'", 'enter-mode jump_mark')
|
||||
|
||||
# config.bind('+', 'zoom-in')
|
||||
# config.bind('-', 'zoom-out')
|
||||
|
||||
# config.bind('.', 'repeat-command')
|
||||
# config.bind('/', 'set-cmd-text /')
|
||||
# config.bind(':', 'set-cmd-text :')
|
||||
|
||||
# config.bind(';I', 'hint images tab')
|
||||
# config.bind(';O', 'hint links fill :open -t -r {hint-url}')
|
||||
# config.bind(';R', 'hint --rapid links window')
|
||||
# config.bind(';Y', 'hint links yank-primary')
|
||||
# config.bind(';b', 'hint all tab-bg')
|
||||
# config.bind(';d', 'hint links download')
|
||||
# config.bind(';f', 'hint all tab-fg')
|
||||
# config.bind(';h', 'hint all hover')
|
||||
# config.bind(';i', 'hint images')
|
||||
# config.bind(';o', 'hint links fill :open {hint-url}')
|
||||
# config.bind(';r', 'hint --rapid links tab-bg')
|
||||
# config.bind(';t', 'hint inputs')
|
||||
# config.bind(';y', 'hint links yank')
|
||||
|
||||
# config.bind('<Alt-1>', 'tab-focus 1')
|
||||
# config.bind('<Alt-2>', 'tab-focus 2')
|
||||
# config.bind('<Alt-3>', 'tab-focus 3')
|
||||
# config.bind('<Alt-4>', 'tab-focus 4')
|
||||
# config.bind('<Alt-5>', 'tab-focus 5')
|
||||
# config.bind('<Alt-6>', 'tab-focus 6')
|
||||
# config.bind('<Alt-7>', 'tab-focus 7')
|
||||
# config.bind('<Alt-8>', 'tab-focus 8')
|
||||
# config.bind('<Alt-9>', 'tab-focus -1')
|
||||
# config.bind('<Alt-m>', 'tab-mute')
|
||||
|
||||
# config.bind('<Ctrl-A>', 'navigate increment')
|
||||
|
||||
# config.bind('<Ctrl-Alt-p>', 'print')
|
||||
|
||||
# config.bind('<Ctrl-B>', 'scroll-page 0 -1')
|
||||
# config.bind('<Ctrl-D>', 'scroll-page 0 0.5')
|
||||
# config.bind('<Ctrl-F5>', 'reload -f')
|
||||
# config.bind('<Ctrl-F>', 'scroll-page 0 1')
|
||||
# config.bind('<Ctrl-N>', 'open -w')
|
||||
# config.bind('<Ctrl-PgDown>', 'tab-next')
|
||||
# config.bind('<Ctrl-PgUp>', 'tab-prev')
|
||||
# config.bind('<Ctrl-Q>', 'quit')
|
||||
# config.bind('<Ctrl-Return>', 'follow-selected -t')
|
||||
# config.bind('<Ctrl-Shift-N>', 'open -p')
|
||||
# config.bind('<Ctrl-Shift-T>', 'undo')
|
||||
# config.bind('<Ctrl-Shift-Tab>', 'nop')
|
||||
# config.bind('<Ctrl-Shift-W>', 'close')
|
||||
# config.bind('<Ctrl-T>', 'open -t')
|
||||
# config.bind('<Ctrl-Tab>', 'tab-focus last')
|
||||
# config.bind('<Ctrl-U>', 'scroll-page 0 -0.5')
|
||||
# config.bind('<Ctrl-V>', 'enter-mode passthrough')
|
||||
# config.bind('<Ctrl-W>', 'tab-close')
|
||||
# config.bind('<Ctrl-X>', 'navigate decrement')
|
||||
# config.bind('<Ctrl-^>', 'tab-focus last')
|
||||
# config.bind('<Ctrl-h>', 'home')
|
||||
# config.bind('<Ctrl-p>', 'tab-pin')
|
||||
# config.bind('<Ctrl-s>', 'stop')
|
||||
# config.bind('<Escape>', 'clear-keychain ;; search ;; fullscreen --leave')
|
||||
# config.bind('<F11>', 'fullscreen')
|
||||
# config.bind('<F5>', 'reload')
|
||||
# config.bind('<Return>', 'follow-selected')
|
||||
# config.bind('<back>', 'back')
|
||||
# config.bind('<forward>', 'forward')
|
||||
# config.bind('=', 'zoom')
|
||||
# config.bind('?', 'set-cmd-text ?')
|
||||
# config.bind('@', 'run-macro')
|
||||
# config.bind('B', 'set-cmd-text -s :quickmark-load -t')
|
||||
# config.bind('D', 'tab-close -o')
|
||||
# config.bind('F', 'hint all tab')
|
||||
# config.bind('G', 'scroll-to-perc')
|
||||
# config.bind('H', 'back')
|
||||
# config.bind('J', 'tab-next')
|
||||
# config.bind('K', 'tab-prev')
|
||||
# config.bind('L', 'forward')
|
||||
# config.bind('M', 'bookmark-add')
|
||||
# config.bind('N', 'search-prev')
|
||||
# config.bind('O', 'set-cmd-text -s :open -t')
|
||||
# config.bind('PP', 'open -t -- {primary}')
|
||||
# config.bind('Pp', 'open -t -- {clipboard}')
|
||||
# config.bind('R', 'reload -f')
|
||||
# config.bind('Sb', 'open qute://bookmarks#bookmarks')
|
||||
# config.bind('Sh', 'open qute://history')
|
||||
# config.bind('Sq', 'open qute://bookmarks')
|
||||
# config.bind('Ss', 'open qute://settings')
|
||||
# config.bind('T', 'tab-focus')
|
||||
# config.bind('ZQ', 'quit')
|
||||
# config.bind('ZZ', 'quit --save')
|
||||
# config.bind('[[', 'navigate prev')
|
||||
# config.bind(']]', 'navigate next')
|
||||
# config.bind('`', 'enter-mode set_mark')
|
||||
# config.bind('ad', 'download-cancel')
|
||||
# config.bind('b', 'set-cmd-text -s :quickmark-load')
|
||||
# config.bind('cd', 'download-clear')
|
||||
# config.bind('co', 'tab-only')
|
||||
# config.bind('d', 'tab-close')
|
||||
# config.bind('f', 'hint')
|
||||
# config.bind('g$', 'tab-focus -1')
|
||||
# config.bind('g0', 'tab-focus 1')
|
||||
# config.bind('gB', 'set-cmd-text -s :bookmark-load -t')
|
||||
# config.bind('gC', 'tab-clone')
|
||||
# config.bind('gD', 'tab-give')
|
||||
# config.bind('gO', 'set-cmd-text :open -t -r {url:pretty}')
|
||||
# config.bind('gU', 'navigate up -t')
|
||||
# config.bind('g^', 'tab-focus 1')
|
||||
# config.bind('ga', 'open -t')
|
||||
# config.bind('gb', 'set-cmd-text -s :bookmark-load')
|
||||
# config.bind('gd', 'download')
|
||||
# config.bind('gf', 'view-source')
|
||||
# config.bind('gg', 'scroll-to-perc 0')
|
||||
# config.bind('gi', 'hint inputs --first')
|
||||
# config.bind('gl', 'tab-move -')
|
||||
# config.bind('gm', 'tab-move')
|
||||
# config.bind('go', 'set-cmd-text :open {url:pretty}')
|
||||
# config.bind('gr', 'tab-move +')
|
||||
# config.bind('gt', 'set-cmd-text -s :buffer')
|
||||
# config.bind('gu', 'navigate up')
|
||||
|
||||
# Move tabs around
|
||||
config.bind('gK', 'tab-move -')
|
||||
config.bind('gJ', 'tab-move +')
|
||||
|
||||
# Go to specific websites
|
||||
config.bind('gy', 'open -o https://youtube.com/')
|
||||
|
||||
# Add current page to Buku (Bookmark Manager)
|
||||
# TODO - Add it interactively
|
||||
# Add a way to specify tags
|
||||
# Maybe use Rofi for that
|
||||
config.bind('B', 'spawn buku -a {url}')
|
||||
|
||||
# config.bind('h', 'scroll left')
|
||||
# config.bind('i', 'enter-mode insert')
|
||||
# config.bind('j', 'scroll down')
|
||||
# config.bind('k', 'scroll up')
|
||||
# config.bind('l', 'scroll right')
|
||||
# config.bind('m', 'quickmark-save')
|
||||
# config.bind('n', 'search-next')
|
||||
# config.bind('o', 'set-cmd-text -s :open')
|
||||
# config.bind('pP', 'open -- {primary}')
|
||||
# config.bind('pp', 'open -- {clipboard}')
|
||||
# config.bind('q', 'record-macro')
|
||||
# config.bind('r', 'reload')
|
||||
# config.bind('sf', 'save')
|
||||
# config.bind('sk', 'set-cmd-text -s :bind')
|
||||
# config.bind('sl', 'set-cmd-text -s :set -t')
|
||||
# config.bind('ss', 'set-cmd-text -s :set')
|
||||
# config.bind('tIH', 'config-cycle -p -u *://*.{url:host}/* content.images ;; reload')
|
||||
# config.bind('tIh', 'config-cycle -p -u *://{url:host}/* content.images ;; reload')
|
||||
# config.bind('tIu', 'config-cycle -p -u {url} content.images ;; reload')
|
||||
# config.bind('tPH', 'config-cycle -p -u *://*.{url:host}/* content.plugins ;; reload')
|
||||
# config.bind('tPh', 'config-cycle -p -u *://{url:host}/* content.plugins ;; reload')
|
||||
# config.bind('tPu', 'config-cycle -p -u {url} content.plugins ;; reload')
|
||||
# config.bind('tSH', 'config-cycle -p -u *://*.{url:host}/* content.javascript.enabled ;; reload')
|
||||
# config.bind('tSh', 'config-cycle -p -u *://{url:host}/* content.javascript.enabled ;; reload')
|
||||
# config.bind('tSu', 'config-cycle -p -u {url} content.javascript.enabled ;; reload')
|
||||
# config.bind('th', 'back -t')
|
||||
# config.bind('tiH', 'config-cycle -p -t -u *://*.{url:host}/* content.images ;; reload')
|
||||
# config.bind('tih', 'config-cycle -p -t -u *://{url:host}/* content.images ;; reload')
|
||||
# config.bind('tiu', 'config-cycle -p -t -u {url} content.images ;; reload')
|
||||
# config.bind('tl', 'forward -t')
|
||||
# config.bind('tpH', 'config-cycle -p -t -u *://*.{url:host}/* content.plugins ;; reload')
|
||||
# config.bind('tph', 'config-cycle -p -t -u *://{url:host}/* content.plugins ;; reload')
|
||||
# config.bind('tpu', 'config-cycle -p -t -u {url} content.plugins ;; reload')
|
||||
# config.bind('tsH', 'config-cycle -p -t -u *://*.{url:host}/* content.javascript.enabled ;; reload')
|
||||
# config.bind('tsh', 'config-cycle -p -t -u *://{url:host}/* content.javascript.enabled ;; reload')
|
||||
# config.bind('tsu', 'config-cycle -p -t -u {url} content.javascript.enabled ;; reload')
|
||||
# config.bind('u', 'undo')
|
||||
# config.bind('v', 'enter-mode caret')
|
||||
# config.bind('wB', 'set-cmd-text -s :bookmark-load -w')
|
||||
# config.bind('wO', 'set-cmd-text :open -w {url:pretty}')
|
||||
# config.bind('wP', 'open -w -- {primary}')
|
||||
# config.bind('wb', 'set-cmd-text -s :quickmark-load -w')
|
||||
# config.bind('wf', 'hint all window')
|
||||
# config.bind('wh', 'back -w')
|
||||
# config.bind('wi', 'inspector')
|
||||
# config.bind('wl', 'forward -w')
|
||||
# config.bind('wo', 'set-cmd-text -s :open -w')
|
||||
# config.bind('wp', 'open -w -- {clipboard}')
|
||||
# config.bind('xO', 'set-cmd-text :open -b -r {url:pretty}')
|
||||
# config.bind('xo', 'set-cmd-text -s :open -b')
|
||||
# config.bind('yD', 'yank domain -s')
|
||||
# config.bind('yP', 'yank pretty-url -s')
|
||||
# config.bind('yT', 'yank title -s')
|
||||
# config.bind('yY', 'yank -s')
|
||||
# config.bind('yd', 'yank domain')
|
||||
# config.bind('yp', 'yank pretty-url')
|
||||
# config.bind('yt', 'yank title')
|
||||
# config.bind('yy', 'yank')
|
||||
# config.bind('{{', 'navigate prev -t')
|
||||
# config.bind('}}', 'navigate next -t')
|
||||
#+END_SRC
|
||||
|
||||
** Caret mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('$', 'move-to-end-of-line', mode='caret')
|
||||
# config.bind('0', 'move-to-start-of-line', mode='caret')
|
||||
# config.bind('<Ctrl-Space>', 'drop-selection', mode='caret')
|
||||
# config.bind('<Escape>', 'leave-mode', mode='caret')
|
||||
# config.bind('<Return>', 'yank selection', mode='caret')
|
||||
# config.bind('<Space>', 'toggle-selection', mode='caret')
|
||||
# config.bind('G', 'move-to-end-of-document', mode='caret')
|
||||
# config.bind('H', 'scroll left', mode='caret')
|
||||
# config.bind('J', 'scroll down', mode='caret')
|
||||
# config.bind('K', 'scroll up', mode='caret')
|
||||
# config.bind('L', 'scroll right', mode='caret')
|
||||
# config.bind('Y', 'yank selection -s', mode='caret')
|
||||
# config.bind('[', 'move-to-start-of-prev-block', mode='caret')
|
||||
# config.bind(']', 'move-to-start-of-next-block', mode='caret')
|
||||
# config.bind('b', 'move-to-prev-word', mode='caret')
|
||||
# config.bind('c', 'enter-mode normal', mode='caret')
|
||||
# config.bind('e', 'move-to-end-of-word', mode='caret')
|
||||
# config.bind('gg', 'move-to-start-of-document', mode='caret')
|
||||
# config.bind('h', 'move-to-prev-char', mode='caret')
|
||||
# config.bind('j', 'move-to-next-line', mode='caret')
|
||||
# config.bind('k', 'move-to-prev-line', mode='caret')
|
||||
# config.bind('l', 'move-to-next-char', mode='caret')
|
||||
# config.bind('v', 'toggle-selection', mode='caret')
|
||||
# config.bind('w', 'move-to-next-word', mode='caret')
|
||||
# config.bind('y', 'yank selection', mode='caret')
|
||||
# config.bind('{', 'move-to-end-of-prev-block', mode='caret')
|
||||
# config.bind('}', 'move-to-end-of-next-block', mode='caret')
|
||||
#+END_SRC
|
||||
|
||||
** Bindings for command mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('<Alt-B>', 'rl-backward-word', mode='command')
|
||||
# config.bind('<Alt-Backspace>', 'rl-backward-kill-word', mode='command')
|
||||
# config.bind('<Alt-D>', 'rl-kill-word', mode='command')
|
||||
# config.bind('<Alt-F>', 'rl-forward-word', mode='command')
|
||||
# config.bind('<Ctrl-?>', 'rl-delete-char', mode='command')
|
||||
# config.bind('<Ctrl-A>', 'rl-beginning-of-line', mode='command')
|
||||
# config.bind('<Ctrl-B>', 'rl-backward-char', mode='command')
|
||||
# config.bind('<Ctrl-C>', 'completion-item-yank', mode='command')
|
||||
# config.bind('<Ctrl-D>', 'completion-item-del', mode='command')
|
||||
# config.bind('<Ctrl-E>', 'rl-end-of-line', mode='command')
|
||||
# config.bind('<Ctrl-F>', 'rl-forward-char', mode='command')
|
||||
# config.bind('<Ctrl-H>', 'rl-backward-delete-char', mode='command')
|
||||
# config.bind('<Ctrl-K>', 'rl-kill-line', mode='command')
|
||||
# config.bind('<Ctrl-N>', 'command-history-next', mode='command')
|
||||
# config.bind('<Ctrl-P>', 'command-history-prev', mode='command')
|
||||
# config.bind('<Ctrl-Return>', 'command-accept --rapid', mode='command')
|
||||
# config.bind('<Ctrl-Shift-C>', 'completion-item-yank --sel', mode='command')
|
||||
# config.bind('<Ctrl-Shift-Tab>', 'completion-item-focus prev-category', mode='command')
|
||||
# config.bind('<Ctrl-Tab>', 'completion-item-focus next-category', mode='command')
|
||||
# config.bind('<Ctrl-U>', 'rl-unix-line-discard', mode='command')
|
||||
# config.bind('<Ctrl-W>', 'rl-unix-word-rubout', mode='command')
|
||||
# config.bind('<Ctrl-Y>', 'rl-yank', mode='command')
|
||||
# config.bind('<Down>', 'completion-item-focus --history next', mode='command')
|
||||
# config.bind('<Escape>', 'leave-mode', mode='command')
|
||||
# config.bind('<Return>', 'command-accept', mode='command')
|
||||
# config.bind('<Shift-Delete>', 'completion-item-del', mode='command')
|
||||
# config.bind('<Shift-Tab>', 'completion-item-focus prev', mode='command')
|
||||
# config.bind('<Tab>', 'completion-item-focus next', mode='command')
|
||||
# config.bind('<Up>', 'completion-item-focus --history prev', mode='command')
|
||||
#+END_SRC
|
||||
|
||||
** Bindings for hint mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('<Ctrl-B>', 'hint all tab-bg', mode='hint')
|
||||
# config.bind('<Ctrl-F>', 'hint links', mode='hint')
|
||||
# config.bind('<Ctrl-R>', 'hint --rapid links tab-bg', mode='hint')
|
||||
# config.bind('<Escape>', 'leave-mode', mode='hint')
|
||||
# config.bind('<Return>', 'follow-hint', mode='hint')
|
||||
#+END_SRC
|
||||
|
||||
** Bindings for insert mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('<Ctrl-E>', 'open-editor', mode='insert')
|
||||
# config.bind('<Escape>', 'leave-mode', mode='insert')
|
||||
# config.bind('<Shift-Ins>', 'insert-text {primary}', mode='insert')
|
||||
#+END_SRC
|
||||
|
||||
** Bindings for passthrough mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('<Shift-Escape>', 'leave-mode', mode='passthrough')
|
||||
#+END_SRC
|
||||
|
||||
** Bindings for prompt mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('<Alt-B>', 'rl-backward-word', mode='prompt')
|
||||
# config.bind('<Alt-Backspace>', 'rl-backward-kill-word', mode='prompt')
|
||||
# config.bind('<Alt-D>', 'rl-kill-word', mode='prompt')
|
||||
# config.bind('<Alt-F>', 'rl-forward-word', mode='prompt')
|
||||
# config.bind('<Alt-Shift-Y>', 'prompt-yank --sel', mode='prompt')
|
||||
# config.bind('<Alt-Y>', 'prompt-yank', mode='prompt')
|
||||
# config.bind('<Ctrl-?>', 'rl-delete-char', mode='prompt')
|
||||
# config.bind('<Ctrl-A>', 'rl-beginning-of-line', mode='prompt')
|
||||
# config.bind('<Ctrl-B>', 'rl-backward-char', mode='prompt')
|
||||
# config.bind('<Ctrl-E>', 'rl-end-of-line', mode='prompt')
|
||||
# config.bind('<Ctrl-F>', 'rl-forward-char', mode='prompt')
|
||||
# config.bind('<Ctrl-H>', 'rl-backward-delete-char', mode='prompt')
|
||||
# config.bind('<Ctrl-K>', 'rl-kill-line', mode='prompt')
|
||||
# config.bind('<Ctrl-P>', 'prompt-open-download --pdfjs', mode='prompt')
|
||||
# config.bind('<Ctrl-U>', 'rl-unix-line-discard', mode='prompt')
|
||||
# config.bind('<Ctrl-W>', 'rl-unix-word-rubout', mode='prompt')
|
||||
# config.bind('<Ctrl-X>', 'prompt-open-download', mode='prompt')
|
||||
# config.bind('<Ctrl-Y>', 'rl-yank', mode='prompt')
|
||||
# config.bind('<Down>', 'prompt-item-focus next', mode='prompt')
|
||||
# config.bind('<Escape>', 'leave-mode', mode='prompt')
|
||||
# config.bind('<Return>', 'prompt-accept', mode='prompt')
|
||||
# config.bind('<Shift-Tab>', 'prompt-item-focus prev', mode='prompt')
|
||||
# config.bind('<Tab>', 'prompt-item-focus next', mode='prompt')
|
||||
# config.bind('<Up>', 'prompt-item-focus prev', mode='prompt')
|
||||
#+END_SRC
|
||||
|
||||
** Bindings for register mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('<Escape>', 'leave-mode', mode='register')
|
||||
#+END_SRC
|
||||
|
||||
** Bindings for yesno mode
|
||||
#+BEGIN_SRC conf
|
||||
# config.bind('<Alt-Shift-Y>', 'prompt-yank --sel', mode='yesno')
|
||||
# config.bind('<Alt-Y>', 'prompt-yank', mode='yesno')
|
||||
# config.bind('<Escape>', 'leave-mode', mode='yesno')
|
||||
# config.bind('<Return>', 'prompt-accept', mode='yesno')
|
||||
# config.bind('n', 'prompt-accept no', mode='yesno')
|
||||
# config.bind('y', 'prompt-accept yes', mode='yesno')
|
||||
#+END_SRC
|
||||
|
||||
** Custom Bindings
|
||||
Use Pass to fill password and username
|
||||
#+BEGIN_SRC conf
|
||||
config.bind(',p', 'spawn --userscript password_fill')
|
||||
#+END_SRC
|
||||
|
||||
Open Youtube video using MPV
|
||||
#+BEGIN_SRC conf
|
||||
config.bind(',m', 'spawn mpv {url}')
|
||||
config.bind(',M', ':hint links spawn mpv {hint-url}')
|
||||
#+END_SRC
|
||||
|
||||
Cast to Chromecast
|
||||
#+BEGIN_SRC conf
|
||||
config.bind(',c', ':hint links spawn catt cast {hint-url}')
|
||||
#+END_SRC
|
902
dotfiles/ranger.org
Normal file
902
dotfiles/ranger.org
Normal file
@ -0,0 +1,902 @@
|
||||
#+TITLE: Ranger Configuration
|
||||
|
||||
* Config
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/ranger/rc.conf
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
** Options
|
||||
#+BEGIN_SRC conf
|
||||
# Which viewmode should be used? Possible values are:
|
||||
# miller: Use miller columns which show multiple levels of the hierarchy
|
||||
# multipane: Midnight-commander like multipane view showing all tabs next
|
||||
# to each other
|
||||
set viewmode miller
|
||||
#set viewmode multipane
|
||||
|
||||
# How many columns are there, and what are their relative widths?
|
||||
set column_ratios 1,3,4
|
||||
|
||||
# Which files should be hidden? (regular expression)
|
||||
#set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
|
||||
set hidden_filter ^\.|\.(?:pyc|vrb|pyo|lof|bak|swp|aux|log|nav|out|snm|toc|bcf|run\.xml|synctex\.gz|blg|bbl)$|^lost\+found$|^__(py)?cache__$
|
||||
|
||||
# Show hidden files? You can toggle this by typing 'zh'
|
||||
set show_hidden false
|
||||
|
||||
# Ask for a confirmation when running the "delete" command?
|
||||
# Valid values are "always", "never", "multiple" (default)
|
||||
# With "multiple", ranger will ask only if you delete multiple files at once.
|
||||
set confirm_on_delete multiple
|
||||
|
||||
# Which script is used to generate file previews?
|
||||
# ranger ships with scope.sh, a script that calls external programs (see
|
||||
# README.md for dependencies) to preview images, archives, etc.
|
||||
set preview_script ~/.config/ranger/scope.sh
|
||||
|
||||
# Use the external preview script or display simple plain text or image previews?
|
||||
set use_preview_script true
|
||||
|
||||
# Automatically count files in the directory, even before entering them?
|
||||
set automatically_count_files true
|
||||
|
||||
# Open all images in this directory when running certain image viewers
|
||||
# like feh or sxiv? You can still open selected files by marking them.
|
||||
# TODO
|
||||
set open_all_images true
|
||||
|
||||
# Be aware of version control systems and display information.
|
||||
set vcs_aware false
|
||||
|
||||
# State of the three backends git, hg, bzr. The possible states are
|
||||
# disabled, local (only show local info), enabled (show local and remote
|
||||
# information).
|
||||
set vcs_backend_git enabled
|
||||
set vcs_backend_hg disabled
|
||||
set vcs_backend_bzr disabled
|
||||
|
||||
# Use one of the supported image preview protocols
|
||||
set preview_images true
|
||||
|
||||
# Set the preview image method
|
||||
# TODO
|
||||
set preview_images_method w3m
|
||||
|
||||
# Use a unicode "..." character to mark cut-off filenames?
|
||||
set unicode_ellipsis false
|
||||
|
||||
# Show dotfiles in the bookmark preview box?
|
||||
set show_hidden_bookmarks true
|
||||
|
||||
# Which colorscheme to use? These colorschemes are available by default:
|
||||
# default, jungle, snow, solarized
|
||||
set colorscheme solarized
|
||||
|
||||
# Preview files on the rightmost column?
|
||||
# And collapse (shrink) the last column if there is nothing to preview?
|
||||
set preview_files true
|
||||
set preview_directories true
|
||||
set collapse_preview true
|
||||
|
||||
# Save the console history on exit?
|
||||
set save_console_history false
|
||||
|
||||
# Draw the status bar on top of the browser window (default: bottom)
|
||||
set status_bar_on_top false
|
||||
|
||||
# Draw a progress bar in the status bar which displays the average state of all
|
||||
# currently running tasks which support progress bars?
|
||||
set draw_progress_bar_in_status_bar true
|
||||
|
||||
# Draw borders around columns?
|
||||
set draw_borders true
|
||||
|
||||
# Display the directory name in tabs?
|
||||
set dirname_in_tabs false
|
||||
|
||||
# Enable the mouse support?
|
||||
set mouse_enabled true
|
||||
|
||||
# Display the file size in the main column or status bar?
|
||||
set display_size_in_main_column true
|
||||
set display_size_in_status_bar true
|
||||
|
||||
# Display files tags in all columns or only in main column?
|
||||
set display_tags_in_all_columns true
|
||||
|
||||
# Set a title for the window?
|
||||
set update_title false
|
||||
|
||||
# Set the title to "ranger" in the tmux program?
|
||||
set update_tmux_title false
|
||||
|
||||
# Shorten the title if it gets long? The number defines how many
|
||||
# directories are displayed at once, 0 turns off this feature.
|
||||
set shorten_title 3
|
||||
|
||||
# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
|
||||
set tilde_in_titlebar true
|
||||
|
||||
# How many directory-changes or console-commands should be kept in history?
|
||||
set max_history_size 20
|
||||
set max_console_history_size 50
|
||||
|
||||
# Try to keep so much space between the top/bottom border when scrolling:
|
||||
set scroll_offset 8
|
||||
|
||||
# Flush the input after each key hit? (Noticeable when ranger lags)
|
||||
set flushinput true
|
||||
|
||||
# Padding on the right when there's no preview?
|
||||
# This allows you to click into the space to run the file.
|
||||
set padding_right true
|
||||
|
||||
# Save bookmarks (used with mX and `X) instantly?
|
||||
# This helps to synchronize bookmarks between multiple ranger
|
||||
# instances but leads to *slight* performance loss.
|
||||
# When false, bookmarks are saved when ranger is exited.
|
||||
set autosave_bookmarks false
|
||||
|
||||
# You can display the "real" cumulative size of directories by using the
|
||||
# command :get_cumulative_size or typing "dc". The size is expensive to
|
||||
# calculate and will not be updated automatically. You can choose
|
||||
# to update it automatically though by turning on this option:
|
||||
set autoupdate_cumulative_size false
|
||||
|
||||
# Turning this on makes sense for screen readers:
|
||||
set show_cursor false
|
||||
|
||||
# One of: size, natural, basename, atime, ctime, mtime, type, random
|
||||
set sort natural
|
||||
|
||||
# Additional sorting options
|
||||
set sort_reverse false
|
||||
set sort_case_insensitive true
|
||||
set sort_directories_first true
|
||||
set sort_unicode false
|
||||
|
||||
# Enable this if key combinations with the Alt Key don't work for you.
|
||||
# (Especially on xterm)
|
||||
set xterm_alt_key false
|
||||
|
||||
# Whether to include bookmarks in cd command
|
||||
set cd_bookmarks false
|
||||
|
||||
# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
|
||||
# disable this feature.
|
||||
set preview_max_size 0
|
||||
|
||||
# Add the highlighted file to the path in the titlebar
|
||||
set show_selection_in_titlebar true
|
||||
|
||||
# The delay that ranger idly waits for user input, in milliseconds, with a
|
||||
# resolution of 100ms. Lower delay reduces lag between directory updates but
|
||||
# increases CPU load.
|
||||
set idle_delay 2000
|
||||
|
||||
# When the metadata manager module looks for metadata, should it only look for
|
||||
# a ".metadata.json" file in the current directory, or do a deep search and
|
||||
# check all directories above the current one as well?
|
||||
set metadata_deep_search false
|
||||
|
||||
# Clear all existing filters when leaving a directory
|
||||
set clear_filters_on_dir_change false
|
||||
|
||||
# Disable displaying line numbers in main column
|
||||
set line_numbers false
|
||||
#+END_SRC
|
||||
|
||||
** Command Aliases in the Console
|
||||
#+BEGIN_SRC conf
|
||||
alias e edit
|
||||
alias q quit
|
||||
alias q! quitall
|
||||
alias qa quitall
|
||||
alias qall quitall
|
||||
alias setl setlocal
|
||||
|
||||
alias filter scout -prt
|
||||
alias find scout -aeit
|
||||
alias mark scout -mr
|
||||
alias unmark scout -Mr
|
||||
alias search scout -rs
|
||||
alias search_inc scout -rts
|
||||
alias travel scout -aefiklst
|
||||
#+END_SRC
|
||||
|
||||
** Some Custom Keybindings
|
||||
*** Extract
|
||||
#+BEGIN_SRC conf
|
||||
map X shell extract %f
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Compress
|
||||
#+BEGIN_SRC conf
|
||||
map Z shell tar -cvzf %f.tar.gz %f
|
||||
#+END_SRC
|
||||
|
||||
*** Delete first page of pdf
|
||||
#+BEGIN_SRC conf
|
||||
map Cp shell ~/scripts/pdf-delete-first-page.sh %f
|
||||
#+END_SRC
|
||||
|
||||
** Define keys for the browser
|
||||
*** Basic
|
||||
#+BEGIN_SRC conf
|
||||
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 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
|
||||
#+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 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
|
||||
#+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
|
||||
#+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
|
||||
#+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>
|
||||
#+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
|
||||
#+END_SRC
|
||||
|
||||
*** TODO Go to special folders
|
||||
#+BEGIN_SRC conf
|
||||
map gh cd ~
|
||||
map gd cd ~/gdrive/These
|
||||
map gD cd ~/Downloads
|
||||
#+END_SRC
|
||||
|
||||
*** External Programs
|
||||
#+BEGIN_SRC conf
|
||||
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
|
||||
#+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
|
||||
#+END_SRC
|
||||
|
||||
*** Filesystem Operations
|
||||
#+BEGIN_SRC conf
|
||||
map = chmod
|
||||
#+END_SRC
|
||||
|
||||
*** 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 ")
|
||||
#+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)
|
||||
#+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
|
||||
#+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
|
||||
#+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
|
||||
#+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)
|
||||
#+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
|
||||
#+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
|
||||
#+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 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
|
||||
#+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
|
||||
#+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 m<bg> draw_bookmarks
|
||||
copymap m<bg> um<bg> `<bg> '<bg>
|
||||
#+END_SRC
|
||||
|
||||
*** Custom Mapping
|
||||
#+BEGIN_SRC conf
|
||||
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))
|
||||
#+END_SRC
|
||||
|
||||
** Define keys for the console
|
||||
*** Basic
|
||||
#+BEGIN_SRC conf
|
||||
cmap <tab> eval fm.ui.console.tab()
|
||||
cmap <s-tab> eval fm.ui.console.tab(-1)
|
||||
cmap <ESC> eval fm.ui.console.close()
|
||||
cmap <CR> eval fm.ui.console.execute()
|
||||
cmap <C-l> redraw_window
|
||||
|
||||
copycmap <ESC> <C-c>
|
||||
copycmap <CR> <C-j>
|
||||
#+END_SRC
|
||||
|
||||
*** Move around
|
||||
#+BEGIN_SRC conf
|
||||
cmap <up> eval fm.ui.console.history_move(-1)
|
||||
cmap <down> eval fm.ui.console.history_move(1)
|
||||
cmap <left> eval fm.ui.console.move(left=1)
|
||||
cmap <right> eval fm.ui.console.move(right=1)
|
||||
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
|
||||
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
|
||||
cmap <a-left> eval fm.ui.console.move_word(left=1)
|
||||
cmap <a-right> eval fm.ui.console.move_word(right=1)
|
||||
#+END_SRC
|
||||
|
||||
*** Line Editing
|
||||
#+BEGIN_SRC conf
|
||||
cmap <backspace> eval fm.ui.console.delete(-1)
|
||||
cmap <delete> eval fm.ui.console.delete(0)
|
||||
cmap <C-w> eval fm.ui.console.delete_word()
|
||||
cmap <A-d> eval fm.ui.console.delete_word(backward=False)
|
||||
cmap <C-k> eval fm.ui.console.delete_rest(1)
|
||||
cmap <C-u> eval fm.ui.console.delete_rest(-1)
|
||||
cmap <C-y> eval fm.ui.console.paste()
|
||||
#+END_SRC
|
||||
|
||||
*** And of course the emacs way
|
||||
#+BEGIN_SRC conf
|
||||
copycmap <up> <C-p>
|
||||
copycmap <down> <C-n>
|
||||
copycmap <left> <C-b>
|
||||
copycmap <right> <C-f>
|
||||
copycmap <home> <C-a>
|
||||
copycmap <end> <C-e>
|
||||
copycmap <delete> <C-d>
|
||||
copycmap <backspace> <C-h>
|
||||
#+END_SRC
|
||||
|
||||
*** Others
|
||||
#+BEGIN_SRC conf
|
||||
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
|
||||
# and <backspace2> (code 127). To be sure, use both.
|
||||
copycmap <backspace> <backspace2>
|
||||
|
||||
# This special expression allows typing in numerals:
|
||||
cmap <allow_quantifiers> false
|
||||
#+END_SRC
|
||||
|
||||
** Pager Keybindings
|
||||
*** Movement
|
||||
#+BEGIN_SRC conf
|
||||
pmap <down> pager_move down=1
|
||||
pmap <up> pager_move up=1
|
||||
pmap <left> pager_move left=4
|
||||
pmap <right> pager_move right=4
|
||||
pmap <home> pager_move to=0
|
||||
pmap <end> pager_move to=-1
|
||||
pmap <pagedown> pager_move down=1.0 pages=True
|
||||
pmap <pageup> pager_move up=1.0 pages=True
|
||||
pmap <C-d> pager_move down=0.5 pages=True
|
||||
pmap <C-u> pager_move up=0.5 pages=True
|
||||
|
||||
copypmap <UP> k <C-p>
|
||||
copypmap <DOWN> j <C-n> <CR>
|
||||
copypmap <LEFT> h
|
||||
copypmap <RIGHT> l
|
||||
copypmap <HOME> g
|
||||
copypmap <END> G
|
||||
copypmap <C-d> d
|
||||
copypmap <C-u> u
|
||||
copypmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copypmap <PAGEUP> p b <C-B>
|
||||
#+END_SRC
|
||||
|
||||
*** Basic
|
||||
#+BEGIN_SRC conf
|
||||
pmap <C-l> redraw_window
|
||||
pmap <ESC> pager_close
|
||||
copypmap <ESC> q Q i <F3>
|
||||
pmap E edit_file
|
||||
#+END_SRC
|
||||
|
||||
** Taskview Keybindings
|
||||
*** Movement
|
||||
#+BEGIN_SRC conf
|
||||
tmap <up> taskview_move up=1
|
||||
tmap <down> taskview_move down=1
|
||||
tmap <home> taskview_move to=0
|
||||
tmap <end> taskview_move to=-1
|
||||
tmap <pagedown> taskview_move down=1.0 pages=True
|
||||
tmap <pageup> taskview_move up=1.0 pages=True
|
||||
tmap <C-d> taskview_move down=0.5 pages=True
|
||||
tmap <C-u> taskview_move up=0.5 pages=True
|
||||
|
||||
copytmap <UP> k <C-p>
|
||||
copytmap <DOWN> j <C-n> <CR>
|
||||
copytmap <HOME> g
|
||||
copytmap <END> G
|
||||
copytmap <C-u> u
|
||||
copytmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copytmap <PAGEUP> p b <C-B>
|
||||
#+END_SRC
|
||||
|
||||
*** Changing priority and deleting tasks
|
||||
#+BEGIN_SRC conf
|
||||
tmap J eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap K eval -q fm.ui.taskview.task_move(0)
|
||||
tmap dd eval -q fm.ui.taskview.task_remove()
|
||||
tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
|
||||
tmap <delete> eval -q fm.ui.taskview.task_remove()
|
||||
#+END_SRC
|
||||
|
||||
*** Basic
|
||||
#+BEGIN_SRC conf
|
||||
tmap <C-l> redraw_window
|
||||
tmap <ESC> taskview_close
|
||||
copytmap <ESC> q Q w <C-c>
|
||||
default_linemode devicons
|
||||
#+END_SRC
|
||||
|
||||
* Rifle
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/ranger/rifle.conf
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
# This is the configuration file of "rifle", ranger's file executor/opener.
|
||||
# Each line consists of conditions and a command. For each line the conditions
|
||||
# are checked and if they are met, the respective command is run.
|
||||
#
|
||||
# Syntax:
|
||||
# <condition1> , <condition2> , ... = command
|
||||
#
|
||||
# The command can contain these environment variables:
|
||||
# $1-$9 | The n-th selected file
|
||||
# $@ | All selected files
|
||||
#
|
||||
# If you use the special command "ask", rifle will ask you what program to run.
|
||||
#
|
||||
# Prefixing a condition with "!" will negate its result.
|
||||
# These conditions are currently supported:
|
||||
# match <regexp> | The regexp matches $1
|
||||
# ext <regexp> | The regexp matches the extension of $1
|
||||
# mime <regexp> | The regexp matches the mime type of $1
|
||||
# name <regexp> | The regexp matches the basename of $1
|
||||
# path <regexp> | The regexp matches the absolute path of $1
|
||||
# has <program> | The program is installed (i.e. located in $PATH)
|
||||
# env <variable> | The environment variable "variable" is non-empty
|
||||
# file | $1 is a file
|
||||
# directory | $1 is a directory
|
||||
# number <n> | change the number of this command to n
|
||||
# terminal | stdin, stderr and stdout are connected to a terminal
|
||||
# X | $DISPLAY is not empty (i.e. Xorg runs)
|
||||
#
|
||||
# There are also pseudo-conditions which have a "side effect":
|
||||
# flag <flags> | Change how the program is run. See below.
|
||||
# label <label> | Assign a label or name to the command so it can
|
||||
# | be started with :open_with <label> in ranger
|
||||
# | or `rifle -p <label>` in the standalone executable.
|
||||
# else | Always true.
|
||||
#
|
||||
# Flags are single characters which slightly transform the command:
|
||||
# f | Fork the program, make it run in the background.
|
||||
# | New command = setsid $command >& /dev/null &
|
||||
# r | Execute the command with root permissions
|
||||
# | New command = sudo $command
|
||||
# t | Run the program in a new terminal. If $TERMCMD is not defined,
|
||||
# | rifle will attempt to extract it from $TERM.
|
||||
# | New command = $TERMCMD -e $command
|
||||
# Note: The "New command" serves only as an illustration, the exact
|
||||
# implementation may differ.
|
||||
# Note: When using rifle in ranger, there is an additional flag "c" for
|
||||
# only running the current file even if you have marked multiple files.
|
||||
|
||||
#-------------------------------------------
|
||||
# Websites
|
||||
#-------------------------------------------
|
||||
# Rarely installed browsers get higher priority; It is assumed that if you
|
||||
# install a rare browser, you probably use it. Firefox/konqueror/w3m on the
|
||||
# other hand are often only installed as fallback browsers.
|
||||
|
||||
ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@"
|
||||
ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@"
|
||||
ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@"
|
||||
ext x?html?, has chromium, X, flag f = chromium -- "$@"
|
||||
ext x?html?, has firefox, X, flag f = firefox -- "$@"
|
||||
ext x?html?, has elinks, terminal = elinks "$@"
|
||||
ext x?html?, has links2, terminal = links2 "$@"
|
||||
ext x?html?, has links, terminal = links "$@"
|
||||
ext x?html?, has lynx, terminal = lynx -- "$@"
|
||||
ext x?html?, has w3m, terminal = w3m "$@"
|
||||
|
||||
#Spreadsheets for scim
|
||||
ext sc|csv|sxc|xlsx?|xlt|xlw|gnm|gnumeric, = sc-im -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Misc
|
||||
#-------------------------------------------
|
||||
# Define the "editor" for text files as first action
|
||||
mime ^text, label editor = $EDITOR -- "$@"
|
||||
mime ^text, label pager = "$PAGER" -- "$@"
|
||||
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = $EDITOR -- "$@"
|
||||
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
|
||||
|
||||
ext 1 = man "$1"
|
||||
ext s[wmf]c, has zsnes, X = zsnes "$1"
|
||||
ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1"
|
||||
ext nes, has fceux, X = fceux "$1"
|
||||
ext exe = wine "$1"
|
||||
name ^[mM]akefile$ = make
|
||||
|
||||
#--------------------------------------------
|
||||
# Code
|
||||
#-------------------------------------------
|
||||
ext py = python -- "$1"
|
||||
ext pl = perl -- "$1"
|
||||
ext rb = ruby -- "$1"
|
||||
ext js = node -- "$1"
|
||||
ext sh = sh -- "$1"
|
||||
ext php = php -- "$1"
|
||||
|
||||
#--------------------------------------------
|
||||
# Video/Audio with a GUI
|
||||
#-------------------------------------------
|
||||
mime ^video, has mpv, X, flag f = mpv -- "$@"
|
||||
mime ^video, has mpv, X, flag f = mpv --fs -- "$@"
|
||||
mime ^video, has mpv, X, flag f = mpv --loop -- "$@"
|
||||
|
||||
#--------------------------------------------
|
||||
# Audio without X
|
||||
#-------------------------------------------
|
||||
mime ^audio|ogg$, terminal, has mpv = mpv --no-audio-display -- "$@"
|
||||
mime ^audio|ogg$ = tag "$@"
|
||||
mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
|
||||
|
||||
#--------------------------------------------
|
||||
# Video without X:
|
||||
#-------------------------------------------
|
||||
mime ^video, terminal, !X, has mpv = mpv -- "$@"
|
||||
mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@"
|
||||
mime ^video, terminal, !X, has mplayer = mplayer -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Documents
|
||||
#-------------------------------------------
|
||||
ext pdf, has llpp, X, flag f = llpp "$@"
|
||||
ext pdf, has zathura, X, flag f = zathura -- "$@"
|
||||
ext pdf, has mupdf, X, flag f = mupdf "$@"
|
||||
ext pdf, has mupdf, X, flag f = mupdf -I "$@"
|
||||
ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@"
|
||||
ext pdf, has apvlv, X, flag f = apvlv -- "$@"
|
||||
ext pdf, has xpdf, X, flag f = xpdf -- "$@"
|
||||
ext pdf, has evince, X, flag f = evince -- "$@"
|
||||
ext pdf, has atril, X, flag f = atril -- "$@"
|
||||
ext pdf, has okular, X, flag f = okular -- "$@"
|
||||
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
|
||||
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
|
||||
|
||||
ext epub, has zathura, X, flag f = zathura -- "$@"
|
||||
ext epub, has mupdf, X, flag f = mupdf "$@"
|
||||
|
||||
|
||||
ext docx, has abiword, X, flag f = abiword "$@"
|
||||
|
||||
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
|
||||
|
||||
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@"
|
||||
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
|
||||
|
||||
ext djvu, has zathura,X, flag f = zathura -- "$@"
|
||||
ext djvu, has evince, X, flag f = evince -- "$@"
|
||||
ext djvu, has atril, X, flag f = atril -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Image Viewing:
|
||||
#-------------------------------------------
|
||||
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
||||
mime ^image/svg, has display, X, flag f = display -- "$@"
|
||||
mime ^image/gif, has mpv, X, flag f = mpv --loop -- "$@"
|
||||
mime ^image/gif, has viewnior, X, flag f = viewnior -- "$@"
|
||||
mime ^image/gif, has qutebrowser, X, flag f = qutebrowser -- "$@"
|
||||
|
||||
ext xcf, X, flag f = gimp -- "$@"
|
||||
mime ^image, has feh, X, flag f = feh --scale-down --auto-zoom --image-bg black -- "$@"
|
||||
mime ^image, has feh, X, flag f = feh --scale-down --auto-zoom -- "$@"
|
||||
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
|
||||
mime ^image, has mirage, X, flag f = mirage -- "$@"
|
||||
mime ^image, has ristretto, X, flag f = ristretto "$@"
|
||||
mime ^image, has eog, X, flag f = eog -- "$@"
|
||||
mime ^image, has eom, X, flag f = eom -- "$@"
|
||||
mime ^image, has gimp, X, flag f = gimp -- "$@"
|
||||
mime ^image, has pinta, X, flag f = pinta -- "$@"
|
||||
mime ^image, has mypaint, X, flag f = mypaint -- "$@"
|
||||
mime ^image, has kolourpaint, X, flag f = kolourpaint -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Archives
|
||||
#-------------------------------------------
|
||||
# This requires atool
|
||||
ext jar = java -jar "$@"
|
||||
|
||||
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has als = als -- "$@" | "$PAGER"
|
||||
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has als = als -- "$@" | "$PAGER"
|
||||
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has aunpack = aunpack -- "$@"
|
||||
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has aunpack = aunpack -- "$@"
|
||||
|
||||
# Fallback:
|
||||
ext tar|gz, has tar = tar vvtf "$@" | "$PAGER"
|
||||
ext tar|gz, has tar = tar vvxf "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Misc
|
||||
#-------------------------------------------
|
||||
label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1"
|
||||
label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
|
||||
label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
|
||||
label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
|
||||
|
||||
# Define the editor for non-text files + pager as last action
|
||||
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask
|
||||
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = $EDITOR -- "$@"
|
||||
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
|
||||
|
||||
ext blend, has blender, X, flag f = blender -- "$@"
|
||||
#+END_SRC
|
||||
* Ranger Commands
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/ranger/commands.py
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
** Import
|
||||
#+begin_src python
|
||||
from ranger.api.commands import *
|
||||
|
||||
import os
|
||||
#+end_src
|
||||
|
||||
** fzf_select
|
||||
#+begin_src python
|
||||
class fzf_select(Command):
|
||||
"""
|
||||
:fzf_select
|
||||
|
||||
Find a file using fzf.
|
||||
|
||||
With a prefix argument select only directories.
|
||||
|
||||
See: https://github.com/junegunn/fzf
|
||||
"""
|
||||
def execute(self):
|
||||
import subprocess
|
||||
import os.path
|
||||
if self.quantifier:
|
||||
# match only directories
|
||||
command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \
|
||||
-o -type d -print 2> /dev/null | sed 1d | cut -b3- | fzf +m"
|
||||
else:
|
||||
# match files and directories
|
||||
command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \
|
||||
-o -print 2> /dev/null | sed 1d | cut -b3- | fzf +m"
|
||||
fzf = self.fm.execute_command(command, universal_newlines=True, stdout=subprocess.PIPE)
|
||||
stdout, stderr = fzf.communicate()
|
||||
if fzf.returncode == 0:
|
||||
fzf_file = os.path.abspath(stdout.rstrip('\n'))
|
||||
if os.path.isdir(fzf_file):
|
||||
self.fm.cd(fzf_file)
|
||||
else:
|
||||
self.fm.select_file(fzf_file)
|
||||
#+end_src
|
476
dotfiles/rofi.org
Normal file
476
dotfiles/rofi.org
Normal file
@ -0,0 +1,476 @@
|
||||
#+TITLE: Rofi Configuration
|
||||
|
||||
* Rofi
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/rofi/config
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
! Base16 Solarized Light
|
||||
! Author: Ethan Schoonover (http://ethanschoonover.com/solarized)
|
||||
|
||||
! base00: #fdf6e3
|
||||
! base01: #eee8d5
|
||||
! base02: #93a1a1
|
||||
! base03: #839496
|
||||
! base04: #657b83
|
||||
! base05: #586e75
|
||||
! base06: #073642
|
||||
! base07: #002b36
|
||||
! base08: #dc322f
|
||||
! base09: #cb4b16
|
||||
! base0A: #b58900
|
||||
! base0B: #859900
|
||||
! base0C: #2aa198
|
||||
! base0D: #268bd2
|
||||
! base0E: #6c71c4
|
||||
! base0F: #d33682
|
||||
|
||||
! Enable the extended coloring options
|
||||
rofi.color-enabled: true
|
||||
|
||||
! Property Name BG Border Separator
|
||||
rofi.color-window: #eee8d5, #eee8d5, #fdf6e3
|
||||
|
||||
! Property Name BG FG BG-alt Head-BG Head-FG
|
||||
rofi.color-normal: #eee8d5, #586e75, #eee8d5, #eee8d5, #002b36
|
||||
rofi.color-active: #eee8d5, #268bd2, #eee8d5, #eee8d5, #268bd2
|
||||
rofi.color-urgent: #eee8d5, #dc322f, #eee8d5, #eee8d5, #dc322f
|
||||
|
||||
! Set the desired separator style
|
||||
rofi.separator-style: solid
|
||||
#+END_SRC
|
||||
|
||||
* Rofi Menu Config
|
||||
:PROPERTIES:
|
||||
:header-args: :tangle ~/.config/rofimenu/rofimenu.config
|
||||
:header-args+: :comments both :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
|
||||
:header-args+: :comments both :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
configuration {
|
||||
me-select-entry: "MouseSecondary";
|
||||
me-accept-entry: "MousePrimary";
|
||||
scroll-method: 1;
|
||||
show-icons: true;
|
||||
sidebar-mode: true;
|
||||
kb-custom-1: "";
|
||||
kb-custom-2: "";
|
||||
kb-custom-3: "";
|
||||
kb-custom-4: "";
|
||||
kb-custom-5: "";
|
||||
kb-custom-6: "";
|
||||
kb-custom-7: "";
|
||||
kb-custom-8: "";
|
||||
kb-custom-9: "";
|
||||
kb-custom-10: "";
|
||||
kb-select-1: "Alt+1";
|
||||
kb-select-2: "Alt+2";
|
||||
kb-select-3: "Alt+3";
|
||||
kb-select-4: "Alt+4";
|
||||
kb-select-5: "Alt+5";
|
||||
kb-select-6: "Alt+6";
|
||||
kb-select-7: "Alt+7";
|
||||
kb-select-8: "Alt+8";
|
||||
kb-select-9: "Alt+9";
|
||||
kb-select-10: "Alt+0";
|
||||
}
|
||||
|
||||
* {
|
||||
//// COLORS ////
|
||||
|
||||
//// uncomment to match bspwm edition theme
|
||||
background: #292f34FF;
|
||||
background-color: #292f3400;
|
||||
foreground: #F6F9FFFF;
|
||||
selected: #1ABB9BFF;
|
||||
selected-foreground: @foreground;
|
||||
|
||||
//// uncomment to match Adapta Nokto theme
|
||||
// background: #222D32E8;
|
||||
// background-color: #00000000;
|
||||
// foreground: #CFD8DCFF;
|
||||
// selected: #00BCD4FF;
|
||||
// selected-foreground: #FFFFFFFF;
|
||||
|
||||
//// common - active and urgent
|
||||
active-background: #3A464BFF;
|
||||
urgent-background: #800000FF;
|
||||
urgent-foreground: @foreground;
|
||||
selected-urgent-background: @urgent-foreground;
|
||||
selected-urgent-foreground: @urgent-background;
|
||||
|
||||
//// TEXT ////
|
||||
|
||||
font: "xos4 Terminus 18px";
|
||||
// font: "Knack Nerd Font 16px";
|
||||
text-color: @foreground;
|
||||
|
||||
//// PADDING ETC ////
|
||||
|
||||
margin: 0px;
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
spacing: 0px;
|
||||
elementpadding: 2px 0px;
|
||||
elementmargin: 0px 2px;
|
||||
listmargin: 0px 2px 0px 0px;
|
||||
|
||||
//// SIZE ////
|
||||
|
||||
windowwidth: 40ch;
|
||||
buttonwidth: 18ch;
|
||||
lines: 12;
|
||||
fixed-height: false;
|
||||
|
||||
//// POSITION ////
|
||||
|
||||
location: northwest;
|
||||
anchor: northwest;
|
||||
x-offset: 0px;
|
||||
y-offset: 24px;
|
||||
|
||||
//// LAYOUT ////
|
||||
|
||||
scrollbar: true;
|
||||
|
||||
//// uncomment to get submenu-like style
|
||||
menustyle: [ sb-mainbox ];
|
||||
buttonpadding: 2px 1ch;
|
||||
button-bg: @background;
|
||||
dynamic: true;
|
||||
|
||||
//// uncomment to get tabs-like style
|
||||
// menustyle: [ tb-mainbox ];
|
||||
// buttonpadding: 14px 1ch;
|
||||
// dynamic: false;
|
||||
}
|
||||
//////////////////////////////////////////
|
||||
window {
|
||||
width: @windowwidth;
|
||||
children: @menustyle;
|
||||
}
|
||||
//submenu-style
|
||||
sb-mainbox {
|
||||
orientation: horizontal;
|
||||
children: [ sidebar, vertibox ];
|
||||
}
|
||||
//tabs-style
|
||||
tb-mainbox {
|
||||
orientation: vertical;
|
||||
children: [ inputbar, horibox ];
|
||||
background-color: @background;
|
||||
}
|
||||
//desktop-submenu
|
||||
dt-mainbox {
|
||||
orientation: vertical;
|
||||
children: [ boxdummy, sb-mainbox ];
|
||||
}
|
||||
horibox {
|
||||
orientation: horizontal;
|
||||
children: [ listview, sidebar ];
|
||||
}
|
||||
sidebar {
|
||||
orientation: vertical;
|
||||
}
|
||||
button {
|
||||
horizontal-align: 0;
|
||||
padding: @buttonpadding;
|
||||
width: @buttonwidth;
|
||||
background-color: @button-bg;
|
||||
expand: false;
|
||||
}
|
||||
vertibox {
|
||||
orientation: vertical;
|
||||
children: [ inputbar, listview ];
|
||||
background-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: false;
|
||||
}
|
||||
listview {
|
||||
margin: @listmargin;
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 0.5ch;
|
||||
handle-color: @selected;
|
||||
}
|
||||
boxdummy {
|
||||
enabled: false;
|
||||
orientation: vertical;
|
||||
expand: false;
|
||||
children: [ textboxdummy ];
|
||||
}
|
||||
textboxdummy {
|
||||
str: " ";
|
||||
}
|
||||
element, inputbar, textboxdummy {
|
||||
padding: @elementpadding;
|
||||
margin: @elementmargin;
|
||||
width: @elementwidth;
|
||||
}
|
||||
element.normal.active,
|
||||
element.alternate.active {
|
||||
background-color: @active-background;
|
||||
text-color: @selected-foreground;
|
||||
}
|
||||
element.selected,
|
||||
button.selected {
|
||||
background-color: @selected;
|
||||
text-color: @selected-foreground;
|
||||
}
|
||||
element.normal.urgent,
|
||||
element.alternate.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
element.selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}
|
||||
#+END_SRC
|
103
dotfiles/termite.org
Normal file
103
dotfiles/termite.org
Normal file
@ -0,0 +1,103 @@
|
||||
#+TITLE: Termite Configuration
|
||||
#+PROPERTY: header-args+ :comments both
|
||||
#+PROPERTY: header-args+ :mkdirp yes
|
||||
#+PROPERTY: header-args+ :tangle ~/.config/termite/config
|
||||
|
||||
#+BEGIN_SRC conf
|
||||
[options]
|
||||
#allow_bold = true
|
||||
#audible_bell = false
|
||||
#bold_is_bright = true
|
||||
clickable_url = true
|
||||
#dynamic_title = true
|
||||
font = SauceCodePro Nerd Font Mono 10
|
||||
#fullscreen = true
|
||||
#icon_name = terminal
|
||||
mouse_autohide = true
|
||||
#scroll_on_output = false
|
||||
#scroll_on_keystroke = true
|
||||
# Length of the scrollback buffer, 0 disabled the scrollback buffer
|
||||
# and setting it to a negative value means "infinite scrollback"
|
||||
scrollback_lines = 10000
|
||||
#search_wrap = true
|
||||
#urgent_on_bell = true
|
||||
#hyperlinks = false
|
||||
|
||||
# $BROWSER is used by default if set, with xdg-open as a fallback
|
||||
#browser = xdg-open
|
||||
|
||||
# Hide links that are no longer valid in url select overlay mode
|
||||
#filter_unmatched_urls = true
|
||||
|
||||
# Emit escape sequences for extra modified keys
|
||||
#modify_other_keys = false
|
||||
|
||||
# set size hints for the window
|
||||
#size_hints = false
|
||||
|
||||
# "off", "left" or "right"
|
||||
#scrollbar = off
|
||||
|
||||
highlight = #2f2f2f
|
||||
|
||||
[hints]
|
||||
|
||||
#padding = 2
|
||||
#border = #3f3f3f
|
||||
#border_width = 0.5
|
||||
#roundness = 2.0
|
||||
|
||||
# Scheme: Chris Kempson (http://chriskempson.com)
|
||||
|
||||
### END COLORS
|
||||
|
||||
[colors]
|
||||
# Base16 Solarized Light
|
||||
# Author: Ethan Schoonover (modified by aramisgithub)
|
||||
|
||||
foreground = #586e75
|
||||
foreground_bold = #073642
|
||||
cursor = #073642
|
||||
cursor_foreground = #fdf6e3
|
||||
background = rgb(253, 246, 227)
|
||||
|
||||
# 16 color space
|
||||
|
||||
# Black, Gray, Silver, White
|
||||
color0 = #fdf6e3
|
||||
color8 = #839496
|
||||
color7 = #586e75
|
||||
color15 = #002b36
|
||||
|
||||
# Red
|
||||
color1 = #dc322f
|
||||
color9 = #dc322f
|
||||
|
||||
# Green
|
||||
color2 = #859900
|
||||
color10 = #859900
|
||||
|
||||
# Yellow
|
||||
color3 = #b58900
|
||||
color11 = #b58900
|
||||
|
||||
# Blue
|
||||
color4 = #268bd2
|
||||
color12 = #268bd2
|
||||
|
||||
# Purple
|
||||
color5 = #6c71c4
|
||||
color13 = #6c71c4
|
||||
|
||||
# Teal
|
||||
color6 = #2aa198
|
||||
color14 = #2aa198
|
||||
|
||||
# Extra colors
|
||||
color16 = #cb4b16
|
||||
color17 = #d33682
|
||||
color18 = #eee8d5
|
||||
color19 = #93a1a1
|
||||
color20 = #657b83
|
||||
color21 = #073642
|
||||
#+END_SRC
|
319
dotfiles/tmux.org
Normal file
319
dotfiles/tmux.org
Normal file
@ -0,0 +1,319 @@
|
||||
#+TITLE: Tmux Configuration
|
||||
#+PROPERTY: header-args :tangle ~/.tmux.conf
|
||||
#+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
|
||||
|
||||
t_blue="#579cde" # blue
|
||||
|
||||
t_orange="#de9a57"
|
||||
t_green="#57de9a"
|
||||
|
||||
t_grey_dark="#393939" # dark grey
|
||||
t_grey_light="#d9d9d9" # light grey
|
||||
t_grey="#ababab" # grey
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
t_line_bg="#18262f" # dark blue
|
||||
t_line_fg="#393939" # dark grey
|
||||
|
||||
t_win_bg="#18262f" # dark blue
|
||||
t_win_fg="#d9d9d9" # light grey
|
||||
|
||||
t_win_bg_active="#ef5253" # red
|
||||
t_win_fg_active="#393939" # dark grey
|
||||
|
||||
t_text_fg="#d9d9d9" # light grey
|
||||
t_text_bg="#393939" # dark grey
|
||||
#+END_SRC
|
||||
|
||||
** 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
|
||||
|
||||
set -g status-justify "centre" # center the list of windows
|
||||
|
||||
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
|
||||
|
||||
* Bindings
|
||||
#+BEGIN_SRC conf
|
||||
# Set prefix to 'C-Space'
|
||||
unbind C-b
|
||||
set -g prefix C-Space
|
||||
|
||||
# Reload the config using 'C-Space + r'
|
||||
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
|
||||
|
||||
# Simulate 'C-l' to clear the terminal
|
||||
bind C-l send-keys C-l \; clear-history
|
||||
|
||||
# Open new panes with the path of the current pane.
|
||||
unbind c
|
||||
bind c new-window -c '#{pane_current_path}'
|
||||
|
||||
# Vim-like key bindings for pane navigation (default uses cursor keys).
|
||||
unbind h
|
||||
bind h select-pane -L
|
||||
unbind j
|
||||
bind j select-pane -D
|
||||
unbind k
|
||||
bind k select-pane -U
|
||||
unbind l # normally used for last-window
|
||||
bind l select-pane -R
|
||||
|
||||
# Move Panes
|
||||
unbind L
|
||||
bind L swap-pane -D
|
||||
unbind H
|
||||
bind H swap-pane -U
|
||||
|
||||
# Resizing (mouse also works).
|
||||
unbind Left
|
||||
bind -r Left resize-pane -L 5
|
||||
unbind Right
|
||||
bind -r Right resize-pane -R 5
|
||||
unbind Down
|
||||
bind -r Down resize-pane -D 5
|
||||
unbind Up
|
||||
bind -r Up resize-pane -U 5
|
||||
|
||||
# Fast toggle (normally prefix-l).
|
||||
bind ^space last-window
|
||||
|
||||
# Intuitive window-splitting keys.
|
||||
bind / split-window -h -c '#{pane_current_path}' # normally prefix-%
|
||||
bind - split-window -v -c '#{pane_current_path}' # normally prefix-"
|
||||
|
||||
# Swap windows
|
||||
bind-key -r "<" swap-window -t -1
|
||||
bind-key -r ">" swap-window -t +1
|
||||
|
||||
# Smart pane switching with awareness of Vim splits
|
||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
||||
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
||||
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
||||
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
||||
|
||||
# Set 'C-Space + v' to enter copy-mode
|
||||
unbind [
|
||||
bind-key v copy-mode
|
||||
|
||||
# Set 'C-Space + C-v' to paste
|
||||
unbind ]
|
||||
bind-key C-v paste-buffer
|
||||
|
||||
# Setup 'v' to begin selection as in Vim and 'y' to yank
|
||||
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
|
||||
bind-key -T copy-mode-vi 'Escape' send -X cancel
|
||||
bind-key -T copy-mode-vi 'C-v' send-keys -X rectangle-toggle
|
||||
#+END_SRC
|
||||
|
||||
* Settings
|
||||
#+BEGIN_SRC conf
|
||||
# Activity monitoring
|
||||
set -g visual-activity off
|
||||
|
||||
# Automatically renumber window numbers on closing a pane (tmux >= 1.7).
|
||||
set -g renumber-windows on
|
||||
|
||||
# Mouse can be used to select panes, select windows (by clicking on the status bar), resize panes
|
||||
set -g mouse on
|
||||
|
||||
set -g default-terminal "screen-256color"
|
||||
set -ga terminal-overrides ',xterm-256color:Tc'
|
||||
|
||||
set -g history-limit 262144
|
||||
|
||||
# Start window and pane numbering at 1, (0 is too hard to reach)
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
|
||||
# Don't wait for an escape sequence after seeing C-a
|
||||
set -s escape-time 0
|
||||
|
||||
# Dynamically update iTerm tab and window titles
|
||||
set -g set-titles on
|
||||
|
||||
# Needed as on tmux 1.9 and up (defaults to off)
|
||||
set -g focus-events on
|
||||
|
||||
# But don't change tmux's own window titles
|
||||
set-option -g allow-rename off
|
||||
|
||||
# Don't wrap searches; it's super confusing given tmux's reverse-ordering of position info in copy mode
|
||||
set -w -g wrap-search off
|
||||
|
||||
# Restore pre-2.1 behavior of scrolling with the scrollwheel in Vim, less, copy mode etc, otherwise entering copy mode if not already in it.
|
||||
bind-key -T root WheelUpPane \
|
||||
if-shell -Ft= '#{?pane_in_mode,1,#{mouse_any_flag}}' \
|
||||
'send -Mt=' \
|
||||
'if-shell -Ft= "#{alternate_on}" "send -t= Up" "copy-mode -et="'
|
||||
bind-key -T root WheelDownPane \
|
||||
if-shell -Ft = '#{?pane_in_mode,1,#{mouse_any_flag}}' \
|
||||
'send -Mt=' \
|
||||
'if-shell -Ft= "#{alternate_on}" "send -t= Down" "send -Mt="'
|
||||
|
||||
# Stay in copy mode on drag end, but otherwise exit for mouse up.
|
||||
# Requires patch from https://github.com/tmux/tmux/issues/326
|
||||
# unbind-key -t vi-copy MouseDragEnd1Pane
|
||||
# bind-key -t vi-copy MouseUp1Pane cancel
|
||||
|
||||
bind-key -n MouseDrag1Status swap-window -t=
|
||||
# bind-key -n MouseDown3Status new-window -a -t=
|
||||
|
||||
bind-key -n MouseDrag1Status swap-window -t=
|
||||
# bind-key -n MouseDown3Status new-window -a -t=
|
||||
|
||||
|
||||
# #T = standard window title (last command, see ~/.bash_profile)
|
||||
# #h = short hostname
|
||||
# #S = session name
|
||||
# #W = tmux window name
|
||||
set -g set-titles-string "#T : #h > #S > #W"
|
||||
|
||||
# Show bells in window titles
|
||||
set -g window-status-bell-style fg=yellow,bold,underscore
|
||||
#+END_SRC
|
||||
|
||||
* Plugins
|
||||
** Install plugins
|
||||
#+BEGIN_SRC conf
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
# set -g @plugin 'tmux-plugins/tmux-sessionist'
|
||||
# set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
# set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
# set -g @plugin 'tmux-plugins/tmux-battery'
|
||||
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
|
||||
set -g @plugin 'seebi/tmux-colors-solarized'
|
||||
#+END_SRC
|
||||
|
||||
** Configuration
|
||||
#+BEGIN_SRC conf
|
||||
# =============================================================
|
||||
# tmux-resurrect
|
||||
# =============================================================
|
||||
# for vim
|
||||
set -g @resurrect-strategy-vim 'session'
|
||||
# for neovim
|
||||
set -g @resurrect-strategy-nvim 'session'
|
||||
|
||||
# Restoring pane contents
|
||||
set -g @resurrect-capture-pane-contents 'on'
|
||||
|
||||
run-shell ~/.tmux/plugins/tmux-resurrect/resurrect.tmux
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# tmux-continuum
|
||||
# =============================================================
|
||||
set -g @continuum-boot 'on'
|
||||
set -g @continuum-boot-options 'iterm,fullscreen'
|
||||
set -g @continuum-save-interval '15'
|
||||
|
||||
run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux
|
||||
# =============================================================
|
||||
|
||||
|
||||
# =============================================================
|
||||
# tmux-battery
|
||||
# =============================================================
|
||||
set -g @batt_charged_icon "="
|
||||
set -g @batt_charging_icon "+"
|
||||
set -g @batt_discharging_icon "-"
|
||||
set -g @batt_attached_icon "o"
|
||||
# =============================================================
|
||||
#+END_SRC
|
||||
|
||||
* Colors
|
||||
#+BEGIN_SRC conf
|
||||
set -g @colors-solarized 'light'
|
||||
#+END_SRC
|
||||
|
||||
* Initialize TMUX plugin manager
|
||||
#+BEGIN_SRC conf
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
#+END_SRC
|
1389
dotfiles/vim.org
Normal file
1389
dotfiles/vim.org
Normal file
File diff suppressed because it is too large
Load Diff
19
elisp/tangle.el
Normal file
19
elisp/tangle.el
Normal file
@ -0,0 +1,19 @@
|
||||
;;; tangle --- Tangle one or more org files
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file can be used to tangle one or more files to their output
|
||||
;; files.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'org)
|
||||
(require 'ob-tangle)
|
||||
|
||||
(defun literate-dotfiles-tangle (&rest files)
|
||||
"Tangle FILES or all files in the project."
|
||||
(when (null files)
|
||||
(setq files command-line-args-left))
|
||||
(dolist (file files)
|
||||
(with-current-buffer (find-file-noselect file)
|
||||
(org-babel-tangle))))
|
117
install.org
Normal file
117
install.org
Normal file
@ -0,0 +1,117 @@
|
||||
#+TITLE: Installation
|
||||
|
||||
* Tmux
|
||||
tmux - Terminal multiplexer
|
||||
reattach-to-user-namespace - Reattach process (e.g., tmux) to background
|
||||
|
||||
* Git
|
||||
bfg - Removes large or troublesome blobs like git-filter-branch does, but faster
|
||||
|
||||
* Text Editors
|
||||
aspell - Spell checker with better logic than ispell
|
||||
vim - Vi 'workalike' with many additional features
|
||||
neovim - Ambitious Vim-fork focused on extensibility and agility
|
||||
micro - Modern and intuitive terminal-based text editor
|
||||
|
||||
* LaTeX
|
||||
* Mutt
|
||||
neomutt - Teaching an Old Dog New Tricks
|
||||
notmuch - Thread-based email index, search, and tagging
|
||||
msmtp - SMTP client that can be used as an SMTP plugin for Mutt
|
||||
isync - Synchronize a maildir with an IMAP server
|
||||
vdirsyncer - Synchronize calendars and contacts
|
||||
urlview - URL extractor/launcher
|
||||
w3m - Pager/text based browser
|
||||
abook - Address book with mutt support
|
||||
elinks - Text mode web browser
|
||||
lbdb - Little brother's database for the mutt mail reader
|
||||
mu - Tool for searching e-mail messages stored in the maildir-format
|
||||
contacts - Command-line tool to access macOS's Contacts (formerly 'Address Book')
|
||||
ripmime - Extract attachments out of MIME encoded email packages
|
||||
shared-mime-info - Database of common MIME types
|
||||
|
||||
* Micro controllers
|
||||
avrdude - Atmel AVR MCU programmer
|
||||
bootloadhid - USB boot loader for AVR microcontrollers
|
||||
dfu-programmer - Device firmware update based USB programmer for Atmel chips
|
||||
platformio - Ecosystem for IoT development (Arduino and ARM mbed compatible)
|
||||
micropython - Python implementation for microcontrollers and constrained systems
|
||||
arduino-mk - Makefile for Arduino sketches
|
||||
|
||||
* File Management
|
||||
| =grep= | GNU grep, egrep and fgrep |
|
||||
| =pdfgrep= | Search PDFs for strings matching a regular expression |
|
||||
| =fzf= | Command-line fuzzy finder written in Go |
|
||||
| =the_platinum_searcher= | Multi-platform code-search similar to ack and ag |
|
||||
| =the_silver_searcher= | Code-search similar to ack |
|
||||
| =fdupes= | Identify or delete duplicate files |
|
||||
| =findutils= | Collection of GNU find, xargs, and locate |
|
||||
| =ranger= | File browser |
|
||||
| =vifm= | Ncurses based file manager with vi like keybindings |
|
||||
| =tree= | Display directories as trees (with optional color/HTML output) |
|
||||
| =launch= | Command-line launcher for macOS, in the spirit of 'open' |
|
||||
| =p7zip= | 7-Zip (high compression file archiver) implementation |
|
||||
| =unrar= | Extract, view, and test RAR archives |
|
||||
| =atool= | script for managing file archives of various types |
|
||||
|
||||
* File Downloader
|
||||
wget - Internet file retriever
|
||||
you-get - Dumb downloader that scrapes the web
|
||||
htop - Improved top (interactive process viewer)
|
||||
httpie - User-friendly cURL replacement (command-line HTTP client)
|
||||
curl - Get a file from an HTTP, HTTPS or FTP server
|
||||
httpstat - curl statistics made simple
|
||||
transmission - Lightweight BitTorrent client
|
||||
aria2 - lightweight download utility
|
||||
|
||||
* Utils
|
||||
binutils - GNU Binary Utilities
|
||||
coreutils - GNU File, Shell, and Text utilities
|
||||
gnome-doc-utils - Documentation utilities for the GNOME project
|
||||
moreutils - Collection of tools that nobody wrote when UNIX was young
|
||||
|
||||
* A trier
|
||||
| =asciinema= | Terminal session recorder |
|
||||
| =automake= | tool for automatically generating Makefile |
|
||||
| =cmake= | Cross-platform make |
|
||||
| =cowsay= | Configurable talking characters in ASCII art |
|
||||
| =cppcheck= | Static analysis of C and C++ code |
|
||||
| =cputhrottle= | Limit the CPU usage of a process |
|
||||
| =ctags= | Reimplementation of ctags |
|
||||
| =gdb= | GNU debugger |
|
||||
| =ghostscript= | Interpreter for PostScript and PDF |
|
||||
| =go= | Open source programming language to build simple/reliable/efficient software |
|
||||
| =hugo= | Configurable static site generator |
|
||||
| =markdown= | Text-to-HTML conversion tool |
|
||||
| =musikcube= | A cross-platform, terminal-based music player |
|
||||
| =ncurses= | Text-based UI library |
|
||||
| =openssl= | Cryptography and SSL/TLS Toolkit |
|
||||
| =openvpn= | SSL/TLS VPN implementing OSI layer 2 or 3 secure network extension |
|
||||
| =sdl= | Low-level access to audio, keyboard, mouse, joystick and graphics |
|
||||
| =ssh= | copy-id - Add a public key to a remote machine's authorized_keys file |
|
||||
| =terminal= | notifier - Send macOS User Notifications from the command-line |
|
||||
| =texinfo= | Official documentation format of the GNU project |
|
||||
| =weechat= | Extensible IRC client |
|
||||
| =wego= | Weather app for the terminal |
|
||||
| =wifi= | password - Show the current WiFi network password |
|
||||
| =imagemagick= | Tools and libraries to manipulate images in many formats |
|
||||
| =glances= | Alternative to top/htop |
|
||||
| =pandoc= | Swiss-army knife of markup format conversion |
|
||||
|
||||
* Applications
|
||||
| =airflow= | Watch local content on Apple TV and Chromecast |
|
||||
| =angry-ip-scanner= | Fast and friendly network scanner |
|
||||
| =arduino= | Arduino IDE |
|
||||
| =font-hack-nerd-font= | Iconic font aggregator |
|
||||
| =kap= | An open-source screen recorder built with web technology |
|
||||
| =karabiner-elements= | powerful utility for keyboard customization on macOS |
|
||||
| =launchcontrol= | Create, manage and debug launchd(8) services |
|
||||
| =mactex= | The MacTeX Distribution |
|
||||
| =nmap= | the Network Mapper - Free Security Scanner |
|
||||
| =numi= | Beautiful calculator app for Mac |
|
||||
| =virtualbox= | VirtualBox |
|
||||
| =vlc= | the best Open Source player |
|
||||
| =castnow= | Commandline chromecast player |
|
||||
| =fast-cli= | Test your download speed using fast.com |
|
||||
| =neovim= | Neovim client API and neovim remote plugin provider |
|
||||
| =wunderline= | Wunderlist for your command line |
|
33
makefiles/mf_latex
Normal file
33
makefiles/mf_latex
Normal file
@ -0,0 +1,33 @@
|
||||
# File adapted from this stackoverflow question: https://tex.stackexchange.com/questions/40738/how-to-properly-make-a-latex-project
|
||||
|
||||
# The first rule in a Makefile is the one executed by default ("make"). It
|
||||
# should always be the "all" rule, so that "make" and "make all" are identical.
|
||||
all: main.pdf
|
||||
|
||||
# MAIN LATEXMK RULE
|
||||
|
||||
# -pdf tells latexmk to generate a PDF instead of DVI.
|
||||
# -pdflatex="" tells latexmk to call a specific backend with specific options.
|
||||
# -use-make tells latexmk to call make for generating missing files.
|
||||
# -interaction=nonstopmode keeps the pdflatex backend from stopping at a
|
||||
# missing file reference and interactively asking you for an alternative.
|
||||
# -synctex=1 is required to jump between the source PDF and the text editor.
|
||||
# -pvc (preview continuously) watches the directory for changes.
|
||||
# -quiet suppresses most status messages (https://tex.stackexchange.com/questions/40783/can-i-make-latexmk-quieter).
|
||||
main.pdf: main.tex
|
||||
latexmk -quiet -bibtex $(PREVIEW_CONTINUOUSLY) -f -pdf -pdflatex="pdflatex -synctex=1 -interaction=nonstopmode" -use-make main.tex
|
||||
|
||||
# The .PHONY rule keeps make from processing a file named "watch" or "clean".
|
||||
.PHONY: watch
|
||||
# Set the PREVIEW_CONTINUOUSLY variable to -pvc to switch latexmk into the preview continuously mode
|
||||
watch: PREVIEW_CONTINUOUSLY=-pvc
|
||||
watch: main.pdf
|
||||
|
||||
.PHONY: clean
|
||||
# -bibtex also removes the .bbl files (http://tex.stackexchange.com/a/83384/79184).
|
||||
|
||||
clean:
|
||||
latexmk -CA -bibtex
|
||||
|
||||
open:
|
||||
open main.pdf
|
5782
readme.html
Normal file
5782
readme.html
Normal file
File diff suppressed because it is too large
Load Diff
1933
readme.org
Normal file
1933
readme.org
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user