commit 88dbe9c8a978b2fcecde8a43e890ea26c374ee86
parent b6963d0f4e4dda058521b2628a3c4cfe6c26ebcd
Author: Yuval Langer <yuval.langer@gmail.com>
Date: Mon, 19 Mar 2018 14:21:58 +0200
Moving out of org-mode
Diffstat:
25 files changed, 2099 insertions(+), 818 deletions(-)
diff --git a/.agenda_files b/.agenda_files
@@ -0,0 +1,3 @@
+~/foo/orgmode/main.org
+~/foo/orgmode/notes.org
+~/mine/orgmode/personal.org
diff --git a/.bash_aliases b/.bash_aliases
@@ -0,0 +1,77 @@
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+ test -r ~/.dircolors
+ if [[ $? == 0 ]]; then
+ eval "$(dircolors -b ~/.dircolors)";
+ else
+ eval "$(dircolors -b)"
+ fi
+ alias ls='ls --color=auto'
+ #alias dir='dir --color=auto'
+ #alias vdir='vdir --color=auto'
+
+ alias grep='grep --color=auto'
+ alias fgrep='fgrep --color=auto'
+ alias egrep='egrep --color=auto'
+fi
+
+# some more ls aliases
+alias ll='ls -alF'
+alias la='ls -A'
+alias l='ls -CF'
+
+# Add an "alert" alias for long running commands. Use like so:
+# sleep 10; alert
+alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+alias g=git
+alias gl='g l'
+alias gs='g s'
+alias gc='g c'
+alias gd='g d'
+
+alias e="emacsclient -a= -c"
+
+alias hebdate="hdate --hebrew|cut -f 3 -d ','|grep -v '^$'"
+alias emptify="truncate -c -s 0"
+
+function pip3fr () { pip3 freeze --user; }
+function pip3i () { pip3 install --user --upgrade $@; }
+function pip3up () { pip3i "$( pip3fr | sed 's#==.*##' )"; }
+function pip3un () { pip3 uninstall "$*"; }
+
+# http://cs-syd.eu/posts/2015-06-21-gtd-with-taskwarrior-part-2-collection.html
+function inn () { task add +in $@; }
+function tickle () {
+ deadline="$1"
+ shift
+ inn +tickle wait:"$deadline" "$*"
+}
+alias tick=tickle
+alias think='tickle +1d'
+
+alias tracli="transmission-remote-cli"
+alias trarem="transmission-remote"
+
+function ppgrep ()
+{
+ if [[ $1 == "" ]];
+ then
+ PERCOL=percol
+ else
+ PERCOL="percol --query $1"
+ fi
+ ps aux | eval "$PERCOL" | awk '{ print $2 }'
+}
+
+function ppkill ()
+{
+ if [[ $1 =~ ^- ]];
+ then
+ QUERY=""
+ else
+ QUERY=$1
+ [[ $# -gt 0 ]] && shift
+ fi
+ ppgrep $QUERY | xargs kill $*
+}
diff --git a/.bashrc b/.bashrc
@@ -0,0 +1,369 @@
+#!/bin/bash
+
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+
+if [ -d "$HOME/.local/bin" ] ; then
+ export PATH="$HOME/.local/bin:$PATH"
+fi
+
+if [ -d "$HOME/bin" ] ; then
+ export PATH="$HOME/bin:$PATH"
+fi
+
+# If not running interactively, don't do anything
+case $- in
+ ,*i*) ;;
+ ,*) return;;
+esac
+
+# don't put duplicate lines or lines starting with space in the history.
+# See bash(1) for more options
+HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+[ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ] && debian_chroot="$(cat /etc/debian_chroot)"
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+ xterm-color|*-256color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+force_color_prompt=""
+
+if [ -n "${force_color_prompt}" ]; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+ # We have color support; assume it's compliant with Ecma-48
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+ # a case would tend to support setf rather than setaf.)
+ color_prompt=yes
+ else
+ color_prompt=
+ fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+ ;;
+,*)
+ ;;
+esac
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+ if [ -r ~/.dircolors ];
+ then
+ eval "$(dircolors -b ~/.dircolors)"
+ else
+ eval "$(dircolors -b)"
+ fi
+ alias ls='ls --color=auto'
+ #alias dir='dir --color=auto'
+ #alias vdir='vdir --color=auto'
+
+ alias grep='grep --color=auto'
+ alias fgrep='fgrep --color=auto'
+ alias egrep='egrep --color=auto'
+fi
+
+# colored GCC warnings and errors
+#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+# some more ls aliases
+alias ll='ls -alF'
+alias la='ls -A'
+alias l='ls -CF'
+
+# Add an "alert" alias for long running commands. Use like so:
+# sleep 10; alert
+alias alert='notify-send --urgency=low -i "$( [ $? = 0 ] && echo terminal || echo error ; )" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ];
+then
+ # shellcheck source=.bash_aliases
+ source "$HOME/.bash_aliases"
+fi
+
+export PYTHONPATH="$HOME/.local/lib/python3.6:$PYTHONPATH"
+
+if [ -d "$HOME/gopath" ] ; then
+ export GOPATH="$HOME/gopath"
+ export PATH="$GOPATH/bin:$PATH"
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if ! shopt -oq posix; then
+ if [ -f /usr/share/bash-completion/bash_completion ]; then
+ source /usr/share/bash-completion/bash_completion
+ elif [ -f /etc/bash_completion ]; then
+ source /etc/bash_completion
+ fi
+fi
+if [ -r ~/.byobu/prompt ];
+then
+ # shellcheck source=.byobu/prompt
+ source "$HOME/.byobu/prompt" #byobu-prompt#
+fi
+
+# For pipenv and virtualenvwrapper
+if [ -d "$HOME/.virtualenvs" ]; then
+ export WORKON_HOME="$HOME/.virtualenvs"
+fi
+#export VIRTUALENVWRAPPER_PYTHON="/usr/bin/python3.6"
+if [ -f "$HOME/.local/binvirtualenvwrapper_lazy.sh" ]; then
+ # shellcheck source=.local/bin/virtualenvwrapper_lazy.sh
+ source "$HOME/.local/bin/virtualenvwrapper_lazy.sh"
+fi
+
+if [ -f "$HOME/.local/bin/find_pycompletion.sh" ]; then
+ # shellcheck source=.local/bin/find_pycompletion.sh
+ source "$(find_pycompletion.sh)"
+fi
+
+# https://unix.stackexchange.com/questions/72086/ctrl-s-hang-terminal-emulator
+stty -ixon
+
+printf "And now for something completely different:\n\n"
+fortune -c -a | sed 's/^/ /'
+printf "\n"
+
+# [[file:~/foo/dotfiles/dotfiles.org::*bashrc][bashrc:1]]
+#!/bin/bash
+
+export LC_ALL=C.UTF-8
+export LANG=C.UTF-8
+export LANGUAGE=C.UTF-8
+
+export ALTERNATE_EDITOR=""
+
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+if [ -d "$HOME/.local/bin" ] ; then
+ export PATH="$HOME/.local/bin:$PATH"
+fi
+
+if [ -d "$HOME/bin" ] ; then
+ export PATH="$HOME/bin:$PATH"
+fi
+
+# If not running interactively, don't do anything
+case $- in
+ *i*) ;;
+ *) return;;
+esac
+
+# don't put duplicate lines or lines starting with space in the history.
+# See bash(1) for more options
+HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+[ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ] && debian_chroot="$(cat /etc/debian_chroot)"
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+ xterm-color|*-256color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+force_color_prompt=""
+
+if [ -n "${force_color_prompt}" ]; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+ # We have color support; assume it's compliant with Ecma-48
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+ # a case would tend to support setf rather than setaf.)
+ color_prompt=yes
+ else
+ color_prompt=
+ fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+ ;;
+*)
+ ;;
+esac
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+ if [ -r ~/.dircolors ];
+ then
+ eval "$(dircolors -b ~/.dircolors)"
+ else
+ eval "$(dircolors -b)"
+ fi
+ alias ls='ls --color=auto'
+ #alias dir='dir --color=auto'
+ #alias vdir='vdir --color=auto'
+
+ alias grep='grep --color=auto'
+ alias fgrep='fgrep --color=auto'
+ alias egrep='egrep --color=auto'
+fi
+
+# colored GCC warnings and errors
+#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+# some more ls aliases
+alias ll='ls -alF'
+alias la='ls -A'
+alias l='ls -CF'
+
+# Add an "alert" alias for long running commands. Use like so:
+# sleep 10; alert
+alias alert='notify-send --urgency=low -i "$( [ $? = 0 ] && echo terminal || echo error ; )" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ];
+then
+ # shellcheck source=.bash_aliases
+ source "$HOME/.bash_aliases"
+fi
+
+export PYTHONPATH="$HOME/.local/lib/python3.6:$PYTHONPATH"
+
+if [ -d "$HOME/gopath" ] ; then
+ export GOPATH="$HOME/gopath"
+ export PATH="$GOPATH/bin:$PATH"
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if ! shopt -oq posix; then
+ if [ -f /usr/share/bash-completion/bash_completion ]; then
+ source /usr/share/bash-completion/bash_completion
+ elif [ -f /etc/bash_completion ]; then
+ source /etc/bash_completion
+ fi
+fi
+if [ -r ~/.byobu/prompt ];
+then
+ # shellcheck source=.byobu/prompt
+ source "$HOME/.byobu/prompt" #byobu-prompt#
+fi
+
+# For pipenv and virtualenvwrapper
+if [ -d "$HOME/.virtualenvs" ]; then
+ export WORKON_HOME="$HOME/.virtualenvs"
+fi
+
+#export VIRTUALENVWRAPPER_PYTHON="/usr/bin/python3.6"
+if [ -f "$HOME/.local/binvirtualenvwrapper_lazy.sh" ]; then
+ # shellcheck source=.local/bin/virtualenvwrapper_lazy.sh
+ source "$HOME/.local/bin/virtualenvwrapper_lazy.sh"
+fi
+
+_pipenv_completion() {
+ local IFS=$'\t'
+ COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" \
+ COMP_CWORD=$COMP_CWORD \
+ _PIPENV_COMPLETE=complete-bash "$1" ) )
+ return 0
+}
+
+complete -F _pipenv_completion -o default pipenv
+
+if [ -f "$HOME/.local/bin/find_pycompletion.sh" ]; then
+ # shellcheck source=.local/bin/find_pycompletion.sh
+ source "$(find_pycompletion.sh)"
+fi
+
+# https://unix.stackexchange.com/questions/72086/ctrl-s-hang-terminal-emulator
+stty -ixon
+
+printf "And now for something completely different:\n\n"
+
+fortune -c -a
+
+printf "\n"
+# bashrc:1 ends here
+
+# pip bash completion start
+_pip_completion()
+{
+ COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \
+ COMP_CWORD=$COMP_CWORD \
+ PIP_AUTO_COMPLETE=1 $1 ) )
+}
+
+
+complete -o default -F _pip_completion pip
+# pip bash completion end
+
+if [ "$TILIX_ID" ] || [ "$VTE_VERSION" ] ; then source /etc/profile.d/vte.sh; fi # Ubuntu Budgie END
diff --git a/.config/redshift.conf b/.config/redshift.conf
@@ -0,0 +1,11 @@
+[redshift]
+temp-day=5700
+temp-night=1500
+gamma=0.8
+adjustment-method=randr
+location-provider=manual
+
+[manual]
+
+lat=32.07
+lon=34.76
diff --git a/.config/youtube-dl/config b/.config/youtube-dl/config
@@ -0,0 +1,5 @@
+-c
+-i
+--output "~/Downloads/youtube-dl/%(extractor)s/%(uploader_id)s/%(upload_date)s--%(title)s--%(id)s.%(ext)s"
+--external-downloader aria2c
+--external-downloader-args "--max-connection-per-server=16 --split=16"
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
@@ -0,0 +1,33 @@
+
+;; start emacs server
+;; (from https://github.com/edvorg/emacs-configs/blob/master/init-real.el)
+
+(require 'server)
+(unless (server-running-p)
+ (server-start))
+
+;; setup elpa addresses
+
+(require 'package)
+
+(setq package-enable-at-startup nil)
+
+;; (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/"))
+(add-to-list 'package-archives '("melpa-bleeding-edge" . "https://melpa.org/packages/"))
+;; (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
+
+(package-initialize)
+
+;; Bootstrap `use-package'
+
+(unless (package-installed-p 'use-package)
+ (package-refresh-contents)
+ (package-install 'use-package))
+
+
+(require 'use-package)
+
+(setq use-package-always-ensure t)
+
+;(org-babel-load-file (expand-file-name "~/.emacs.d/myinit.org"))
+(load "~/.emacs.d/myinit.el")
diff --git a/.emacs.d/myinit.el b/.emacs.d/myinit.el
@@ -0,0 +1,432 @@
+
+(add-to-list 'auto-mode-alist '("\\.ipy\\'" . python-mode))
+
+(use-package better-shell
+ :bind
+ (
+ ("C-'" . better-shell-shell)
+ ("C-;" . better-shell-remote-open)
+ )
+ )
+
+(use-package bash-completion)
+
+(setq column-number-mode t)
+(setq display-battery-mode t)
+(setq electric-indent-mode nil)
+(setq indent-tabs-mode nil)
+(setq semantic-mode t)
+(setq show-paren-mode t)
+(setq word-wrap t)
+(setq inhibit-startup-message t)
+
+(custom-set-faces
+ '(default ((t (:inherit nil :stipple
+ nil :background "white" :foreground "black" :inverse-video
+ nil :box nil :strike-through nil :overline nil :underline
+ nil :slant normal :weight normal :height 200 :width
+ normal :foundry "PfEd" :family "Inconsolata" ))))
+ '(aw-leading-char-face ((t (:inherit
+ ace-jump-face-foreground :height 3.0))))
+ )
+
+(global-set-key (kbd "<f5>") 'revert-buffer)
+
+(defalias 'list-buffers 'ibuffer-other-window
+ )
+
+(setq gnus-group-update-tool-bar t)
+(setq menu-bar-mode nil)
+(setq tool-bar-mode nil)
+
+(setq word-wrap t)
+(setq truncate-lines t)
+
+(use-package semantic
+ :config
+ (semantic-mode 1)
+ )
+
+(use-package multiple-cursors
+ :bind
+ (
+ ("C-S-c C-S-c" . mc/edit-lines)
+ ("C->" . mc/mark-next-like-this)
+ ("C-<" . mc/mark-previous-like-this)
+ ("C-c C-<" . mc/mark-all-like-this)
+ ))
+
+(use-package undo-tree
+ :config
+ (global-undo-tree-mode)
+ )
+
+(setq global-ede-mode t)
+
+(setq ido-enable-flex-matching t)
+(setq ido-everywhere t)
+
+(ido-mode 1)
+
+(use-package projectile
+ )
+
+(winner-mode 1)
+(windmove-default-keybindings)
+
+(use-package counsel
+ )
+
+(use-package swiper-helm
+ :config
+ (ivy-mode 1)
+ (setq ivy-use-virtual-buffers t)
+
+ :bind
+ (
+ ("<f1> f" . counsel-describe-function)
+ ("<f1> l" . counsel-find-library)
+ ("<f1> v" . counsel-describe-variable)
+ ("<f2> i" . counsel-info-lookup-symbol)
+ ("<f2> u" . counsel-unicode-char)
+ ("<f6>" . ivy-resume)
+ ("C-S-o" . counsel-rhythmbox)
+ ("C-c C-r" . ivy-resume)
+ ("C-c g" . counsel-git)
+ ("C-c j" . counsel-git-grep)
+ ("C-c k" . counsel-ag)
+ ("C-r" . counsel-expression-history)
+ ("C-x C-f" . counsel-find-file)
+ ("C-x l" . counsel-locate)
+ ("C-s" . swiper)
+ )
+ )
+
+(use-package ace-window
+ :init
+ (global-set-key [remap other-window] 'ace-window)
+ )
+
+(use-package tabbar
+ :config
+ (tabbar-mode 1)
+ )
+
+'(use-package evil
+ :config
+ (evil-mode 1)
+ (add-to-list 'evil-emacs-state-modes 'elfeed-show-mode)
+ (add-to-list 'evil-emacs-state-modes 'elfeed-search-mode)
+ )
+
+'(use-package evil-goggles
+ :config
+ (evil-goggles-mode)
+ )
+
+(use-package try
+ )
+
+(use-package which-key
+ :config (which-key-mode)
+ )
+
+(use-package helm
+ :bind
+ (
+ ("C-x c f" . helm-multi-files)
+ ("M-x" . helm-M-x)
+ )
+ )
+
+(use-package org
+ :requires ob-ditaa ob-ipython htmlize
+
+ :config
+ ;; Don't prompt me to confirm every time I want to evaluate a block.
+ (setq org-confirm-babel-evaluate nil)
+
+ (setq org-directory "~/foo/my-org-mode-notes")
+ (setq org-default-notes-file (concat org-directory "/main.org"))
+ (setq org-export-html-postamble nil)
+ (setq org-hide-leading-stars t)
+ (setq org-startup-folded 'overview)
+ (setq org-startup-indented t)
+
+ (add-to-list 'org-agenda-files "~/foo/my-org-mode-notes/")
+ (add-to-list 'org-agenda-files "~/mine/orgmode/")
+ (add-to-list 'org-agenda-files "~/mine/syncthing/sg3/shared/orgmode/")
+ (add-to-list 'org-agenda-files "~/mine/syncthing/sg3/shared/orgzly/")
+
+ (setq org-habit-following-days 30)
+ (setq org-habit-show-all-today t)
+ (setq org-habit-show-habits-only-for-today nil)
+
+ (add-to-list 'org-modules 'org-bbdb)
+ (add-to-list 'org-modules 'org-bibtex)
+ (add-to-list 'org-modules 'org-docview)
+ (add-to-list 'org-modules 'org-gnus)
+ (add-to-list 'org-modules 'org-habit)
+ (add-to-list 'org-modules 'org-info)
+ (add-to-list 'org-modules 'org-irc)
+ (add-to-list 'org-modules 'org-mhe)
+ (add-to-list 'org-modules 'org-rmail)
+ (add-to-list 'org-modules 'org-w3m)
+
+ (add-to-list 'org-babel-load-languages '(emacs-lisp . t))
+ (add-to-list 'org-babel-load-languages '(ipython . t))
+ (add-to-list 'org-babel-load-languages '(python . t))
+ (add-to-list 'org-babel-load-languages '(ditaa . t))
+
+ (setq org-ditaa-jar-path "/usr/share/ditaa/ditaa.jar")
+
+
+ (add-to-list 'org-babel-tangle-lang-exts '("haskell" . "hs"))
+ (add-to-list 'org-babel-tangle-lang-exts '("ipython" . "ipy"))
+
+
+ (defun org-babel-tangle-block ()
+ (interactive)
+ (let ((current-prefix-arg '(4)))
+ (call-interactively 'org-babel-tangle))
+ )
+
+ (setq org-use-property-inheritance (list "STYLE"))
+
+ (defun yuvallanger-org-find-main-file ()
+ (interactive)
+ (find-file "~/foo/my-org-mode-notes/main.org")
+ )
+
+ :bind
+ (
+ ("C-c a" . org-agenda)
+ ;; ("C-c b" . org-babel-tangle-block)
+ ("C-c b" . org-iswitchb)
+ ("C-c c" . org-capture)
+ ("C-c l" . org-store-link)
+ ("C-c o" . yuvallanger-org-find-main-file)
+ )
+ )
+
+(use-package org-ref
+ :config
+ ;; The following is from the README.org
+ ;; https://github.com/jkitchin/org-ref/blob/master/README.org
+ (setq reftex-default-bibliography '("~/ownCloud/bibliography/references.bib"))
+ (setq org-ref-bibliography-notes "~/ownCloud/bibliography/notes.org")
+ (setq org-ref-default-bibliography '("~/ownCloud/bibliography/references.bib"))
+ (setq org-ref-pdf-directory "~/ownCloud/bibliography/bibtex-pdfs/")
+ (setq bibtex-completion-bibliography "~/ownCloud/bibliography/references.bib")
+ (setq bibtex-completion-library-path "~/ownCloud/bibliography/bibtex-pdfs")
+ (setq bibtex-completion-notes-path "~/ownCloud/bibliography/helm-bibtex-notes")
+ )
+
+(use-package org-bullets
+ :config
+ (add-hook 'org-mode-hook
+ (lambda () (org-bullets-mode 1)))
+ )
+
+'(use-package org-caldav
+ :config
+ (setq org-caldav-url "https://owncloud.kaka.farm/remote.php/caldav/calendars/yuvallanger")
+ (setq org-caldav-calendar-id "org-mode")
+ (setq org-caldav-calendars '((:url "https://owncloud.kaka.farm/remote.php/caldav/calendars/yuvallanger"
+ :calendar-id "org-mode"
+ :files ("~/mine/orgmode/calendar.org")
+ :inbox "~/mine/orgmode/caldav-sync-calendar-inbox.org")
+
+ (:url "https://owncloud.kaka.farm/remote.php/dav/calendars/yuvallanger"
+ :calendar-id "org-mode"
+ :files ("~/mine/orgmode/tasks.org")
+ :inbox "~/mine/orgmode/caldav-sync-tasks-inbox.org"))))
+
+(use-package orgnav
+ )
+
+(use-package flymake
+ :config
+ (setq flymake-start-syntax-check-on-find-file nil)
+ )
+
+(use-package geiser
+ )
+
+'(use-package racket-mode
+ )
+
+'(use-package arduino-mode
+ )
+
+(use-package lispy
+ :config
+ (add-hook 'lisp-mode-hook (lambda () (lispy-mode 1)))
+ (add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1)))
+ )
+
+(use-package smartparens
+ :config
+ (add-hook 'hy-mode-hook #'smartparens-strict-mode)
+ )
+
+(use-package rainbow-delimiters
+ :config
+ (add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
+ )
+
+(use-package kivy-mode
+ )
+
+(use-package yasnippet
+ :config
+ (setq yas-snippet-dirs "~/foo/myasnippets")
+ (yas-reload-all)
+ (yas-global-mode 1)
+ )
+
+(use-package paredit
+ )
+
+(use-package python-x
+ :config
+ (python-x-setup))
+
+(use-package pyvenv
+ :config
+ (pyvenv-mode)
+ (pyvenv-tracking-mode)
+ ;; Let's try commenting this out.
+ ;; (setq pyvenv-virtualenvwrapper-python "/usr/bin/env python")
+ )
+
+(use-package live-py-mode
+ )
+
+(use-package elpy
+ :config
+ (elpy-enable)
+
+ (setq python-shell-interpreter "jupyter"
+ python-shell-interpreter-args "console --simple-prompt")
+
+ (setq elpy-rpc-python-command "python3.6")
+ (setq elpy-syntax-check-command "flake8")
+
+ ;; XXX TODO
+ ;; (setq elpy-disable-backend-error-display nil)
+ )
+
+(use-package ob-ipython
+ :config
+ ;; display/update images in the buffer after I evaluate.
+ (add-hook 'org-babel-after-execute-hook
+ 'org-display-inline-images 'append
+ )
+ )
+
+(use-package ein
+ :requires markdown-mode
+ )
+
+(use-package hy-mode
+ :config
+ (add-hook 'hy-mode-hook (lambda () (lispy-mode 1)))
+ (add-hook 'hy-mode-hook #'rainbow-delimiters-mode)
+ )
+
+(setq python-check-command "flake8")
+(setq python-indent-offset 4)
+
+(use-package haskell-mode
+ :config
+ (setq haskell-hoogle-url "https://www.fpcomplete.com/hoogle?q=%s")
+ (setq haskell-stylish-on-save t)
+ (setq haskell-tags-on-save t)
+ )
+
+'(use-package proof
+ :config
+ (setq proof-autosend-enable t)
+ (setq proof-electric-terminator-enable t)
+ (setq proof-shell-quiet-errors nil)
+ )
+
+(use-package magit
+ :config
+ (setq magit-log-section-arguments (quote ("--graph" "--color" "--decorate" "-n256")))
+
+ :bind
+ (
+ ("C-x g" . magit-status)
+ ("C-x M-g" . magit-dispatch-popup)
+ )
+ )
+
+(use-package vc-fossil
+ )
+
+'(use-package flycheck
+ :init (global-flycheck-mode)
+ )
+
+(use-package company
+ :config
+ (global-company-mode)
+ )
+
+(use-package erc
+ :config
+ (setq log-mode t)
+ (setq erc-log-write-after-insert t)
+ (setq erc-log-write-after-send t)
+ )
+
+(use-package circe
+ :config
+ (setq log-mode t)
+ (setq erc-log-write-after-insert t)
+ (setq erc-log-write-after-send t)
+ )
+
+(use-package helm-circe
+ )
+
+'(use-package matrix-client)
+
+(use-package thumb-through
+ )
+
+(use-package eloud
+ :config
+ (setq eloud-mode t)
+ (setq eloud-speech-rate 200)
+ )
+
+'(use-package ereader
+ )
+
+(use-package spray
+ :config
+ (setq spray-save-point t)
+ )
+
+'(use-package emacspeak)
+
+'(use-package elfeed-org
+ :config
+ (setq elfeed-curl-max-connections 10)
+ (setq rmh-elfeed-org-files '("~/foo/my-org-mode-notes/elfeed.org" "~/mine/elfeed/private.org"))
+ (elfeed-org)
+
+ :bind
+ (
+ ("C-x w" . elfeed)
+ )
+ )
+
+'(use-package elfeed-goodies
+ )
+
+(use-package uptimes
+ )
diff --git a/.emacs.d/myinit.org b/.emacs.d/myinit.org
@@ -0,0 +1,756 @@
+#+STARTUP: overview
+
+* myinit
+** globals
+
+#+BEGIN_SRC emacs-lisp
+ (add-to-list 'auto-mode-alist '("\\.ipy\\'" . python-mode))
+#+END_SRC
+
+** shell
+*** better-shell
+#+BEGIN_SRC emacs-lisp
+ (use-package better-shell
+ :bind
+ (
+ ("C-'" . better-shell-shell)
+ ("C-;" . better-shell-remote-open)
+ )
+ )
+#+END_SRC
+*** bash-completion
+#+BEGIN_SRC emacs-lisp
+ (use-package bash-completion)
+#+END_SRC
+** User Interface tweaks
+
+#+BEGIN_SRC emacs-lisp
+ (setq column-number-mode t)
+ (setq display-battery-mode t)
+ (setq electric-indent-mode nil)
+ (setq indent-tabs-mode nil)
+ (setq semantic-mode t)
+ (setq show-paren-mode t)
+ (setq word-wrap t)
+ (setq inhibit-startup-message t)
+#+END_SRC
+
+*** Custom face
+
+#+BEGIN_SRC emacs-lisp
+ (custom-set-faces
+ '(default ((t (:inherit nil :stipple
+ nil :background "white" :foreground "black" :inverse-video
+ nil :box nil :strike-through nil :overline nil :underline
+ nil :slant normal :weight normal :height 200 :width
+ normal :foundry "PfEd" :family "Inconsolata" ))))
+ '(aw-leading-char-face ((t (:inherit
+ ace-jump-face-foreground :height 3.0))))
+ )
+#+END_SRC
+
+*** Customize keys
+**** A quick way to reload the file contents into the buffer
+
+- [X] What is revert-buffer?
+ - Reload file into its buffer.
+
+#+BEGIN_SRC emacs-lisp
+ (global-set-key (kbd "<f5>") 'revert-buffer)
+#+END_SRC
+
+*** Customize buffer list
+
+#+BEGIN_SRC emacs-lisp
+ (defalias 'list-buffers 'ibuffer-other-window
+ )
+#+END_SRC
+
+*** Customize menu
+
+#+BEGIN_SRC emacs-lisp
+ (setq gnus-group-update-tool-bar t)
+ (setq menu-bar-mode nil)
+ (setq tool-bar-mode nil)
+#+END_SRC
+
+*** Wrap and truncation
+
+#+BEGIN_SRC emacs-lisp
+ (setq word-wrap t)
+ (setq truncate-lines t)
+#+END_SRC
+
+** semantic-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package semantic
+ :config
+ (semantic-mode 1)
+ )
+#+END_SRC
+
+** multiple-curses.el
+
+#+BEGIN_SRC emacs-lisp
+ (use-package multiple-cursors
+ :bind
+ (
+ ("C-S-c C-S-c" . mc/edit-lines)
+ ("C->" . mc/mark-next-like-this)
+ ("C-<" . mc/mark-previous-like-this)
+ ("C-c C-<" . mc/mark-all-like-this)
+ ))
+#+END_SRC
+
+** undo-tree-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package undo-tree
+ :config
+ (global-undo-tree-mode)
+ )
+#+END_SRC
+
+** ede-mode
+
+#+BEGIN_SRC emacs-lisp
+ (setq global-ede-mode t)
+#+END_SRC
+
+** Ido-mode
+
+#+BEGIN_SRC emacs-lisp
+ (setq ido-enable-flex-matching t)
+ (setq ido-everywhere t)
+
+ (ido-mode 1)
+#+END_SRC
+
+** COMMENT projectile
+
+#+BEGIN_SRC emacs-lisp
+ (use-package projectile
+ )
+#+END_SRC
+
+** winner-mode
+
+#+BEGIN_SRC emacs-lisp
+ (winner-mode 1)
+ (windmove-default-keybindings)
+#+END_SRC
+
+** swiper-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package counsel
+ )
+
+ (use-package swiper-helm
+ :config
+ (ivy-mode 1)
+ (setq ivy-use-virtual-buffers t)
+
+ :bind
+ (
+ ("<f1> f" . counsel-describe-function)
+ ("<f1> l" . counsel-find-library)
+ ("<f1> v" . counsel-describe-variable)
+ ("<f2> i" . counsel-info-lookup-symbol)
+ ("<f2> u" . counsel-unicode-char)
+ ("<f6>" . ivy-resume)
+ ("C-S-o" . counsel-rhythmbox)
+ ("C-c C-r" . ivy-resume)
+ ("C-c g" . counsel-git)
+ ("C-c j" . counsel-git-grep)
+ ("C-c k" . counsel-ag)
+ ("C-r" . counsel-expression-history)
+ ("C-x C-f" . counsel-find-file)
+ ("C-x l" . counsel-locate)
+ ("C-s" . swiper)
+ )
+ )
+#+END_SRC
+
+** ace-window-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package ace-window
+ :init
+ (global-set-key [remap other-window] 'ace-window)
+ )
+#+END_SRC
+
+** tabber-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package tabbar
+ :config
+ (tabbar-mode 1)
+ )
+#+END_SRC
+
+** Evil-mode
+
+Turn Emacs into a VIM clone.
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package evil
+ :config
+ (evil-mode 1)
+ (add-to-list 'evil-emacs-state-modes 'elfeed-show-mode)
+ (add-to-list 'evil-emacs-state-modes 'elfeed-search-mode)
+ )
+#+END_SRC
+*** COMMENT evil-goggles
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package evil-goggles
+ :config
+ (evil-goggles-mode)
+ )
+#+END_SRC
+** try-mode
+
+Try packages by temporarily installing them.
+
+#+BEGIN_SRC emacs-lisp
+ (use-package try
+ )
+#+END_SRC
+
+** which key
+
+Brings up some help in the middle of a key sequence.
+
+#+BEGIN_SRC emacs-lisp
+ (use-package which-key
+ :config (which-key-mode)
+ )
+#+END_SRC
+
+** Helm-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package helm
+ :bind
+ (
+ ("C-x c f" . helm-multi-files)
+ ("M-x" . helm-M-x)
+ )
+ )
+#+END_SRC
+
+** org-mode
+
+- What is [0/4]:
+ - [ ] org-export-html-postamble
+ - [ ] org-hide-leading-stars
+ - [ ] org-startup-folded and (quote overview)
+ - [ ] org-startup-indented
+
+#+BEGIN_SRC emacs-lisp
+ (use-package org
+ :requires ob-ditaa ob-ipython htmlize
+
+ :config
+ ;; Don't prompt me to confirm every time I want to evaluate a block.
+ (setq org-confirm-babel-evaluate nil)
+
+ (setq org-directory "~/foo/my-org-mode-notes")
+ (setq org-default-notes-file (concat org-directory "/main.org"))
+ (setq org-export-html-postamble nil)
+ (setq org-hide-leading-stars t)
+ (setq org-startup-folded 'overview)
+ (setq org-startup-indented t)
+
+ (add-to-list 'org-agenda-files "~/foo/my-org-mode-notes/")
+ (add-to-list 'org-agenda-files "~/mine/orgmode/")
+ (add-to-list 'org-agenda-files "~/mine/syncthing/sg3/shared/orgmode/")
+ (add-to-list 'org-agenda-files "~/mine/syncthing/sg3/shared/orgzly/")
+
+ (setq org-habit-following-days 30)
+ (setq org-habit-show-all-today t)
+ (setq org-habit-show-habits-only-for-today nil)
+
+ (add-to-list 'org-modules 'org-bbdb)
+ (add-to-list 'org-modules 'org-bibtex)
+ (add-to-list 'org-modules 'org-docview)
+ (add-to-list 'org-modules 'org-gnus)
+ (add-to-list 'org-modules 'org-habit)
+ (add-to-list 'org-modules 'org-info)
+ (add-to-list 'org-modules 'org-irc)
+ (add-to-list 'org-modules 'org-mhe)
+ (add-to-list 'org-modules 'org-rmail)
+ (add-to-list 'org-modules 'org-w3m)
+
+ (add-to-list 'org-babel-load-languages '(emacs-lisp . t))
+ (add-to-list 'org-babel-load-languages '(ipython . t))
+ (add-to-list 'org-babel-load-languages '(python . t))
+ (add-to-list 'org-babel-load-languages '(ditaa . t))
+
+ (setq org-ditaa-jar-path "/usr/share/ditaa/ditaa.jar")
+
+
+ (add-to-list 'org-babel-tangle-lang-exts '("haskell" . "hs"))
+ (add-to-list 'org-babel-tangle-lang-exts '("ipython" . "ipy"))
+
+
+ (defun org-babel-tangle-block ()
+ (interactive)
+ (let ((current-prefix-arg '(4)))
+ (call-interactively 'org-babel-tangle))
+ )
+
+ (setq org-use-property-inheritance (list "STYLE"))
+
+ (defun yuvallanger-org-find-main-file ()
+ (interactive)
+ (find-file "~/foo/my-org-mode-notes/main.org")
+ )
+
+ :bind
+ (
+ ("C-c a" . org-agenda)
+ ;; ("C-c b" . org-babel-tangle-block)
+ ("C-c b" . org-iswitchb)
+ ("C-c c" . org-capture)
+ ("C-c l" . org-store-link)
+ ("C-c o" . yuvallanger-org-find-main-file)
+ )
+ )
+#+END_SRC
+
+*** org-ref
+
+#+BEGIN_SRC emacs-lisp
+ (use-package org-ref
+ :config
+ ;; The following is from the README.org
+ ;; https://github.com/jkitchin/org-ref/blob/master/README.org
+ (setq reftex-default-bibliography '("~/ownCloud/bibliography/references.bib"))
+ (setq org-ref-bibliography-notes "~/ownCloud/bibliography/notes.org")
+ (setq org-ref-default-bibliography '("~/ownCloud/bibliography/references.bib"))
+ (setq org-ref-pdf-directory "~/ownCloud/bibliography/bibtex-pdfs/")
+ (setq bibtex-completion-bibliography "~/ownCloud/bibliography/references.bib")
+ (setq bibtex-completion-library-path "~/ownCloud/bibliography/bibtex-pdfs")
+ (setq bibtex-completion-notes-path "~/ownCloud/bibliography/helm-bibtex-notes")
+ )
+#+END_SRC
+
+*** org-bullets
+
+Org bullets makes things look pretty.
+
+#+BEGIN_SRC emacs-lisp
+ (use-package org-bullets
+ :config
+ (add-hook 'org-mode-hook
+ (lambda () (org-bullets-mode 1)))
+ )
+#+END_SRC
+
+*** org-caldav
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package org-caldav
+ :config
+ (setq org-caldav-url "https://owncloud.kaka.farm/remote.php/caldav/calendars/yuvallanger")
+ (setq org-caldav-calendar-id "org-mode")
+ (setq org-caldav-calendars '((:url "https://owncloud.kaka.farm/remote.php/caldav/calendars/yuvallanger"
+ :calendar-id "org-mode"
+ :files ("~/mine/orgmode/calendar.org")
+ :inbox "~/mine/orgmode/caldav-sync-calendar-inbox.org")
+
+ (:url "https://owncloud.kaka.farm/remote.php/dav/calendars/yuvallanger"
+ :calendar-id "org-mode"
+ :files ("~/mine/orgmode/tasks.org")
+ :inbox "~/mine/orgmode/caldav-sync-tasks-inbox.org"))))
+#+END_SRC
+
+*** orgnav
+
+#+BEGIN_SRC emacs-lisp
+ (use-package orgnav
+ )
+#+END_SRC
+
+** Programming modes
+*** flymake
+
+#+BEGIN_SRC emacs-lisp
+ (use-package flymake
+ :config
+ (setq flymake-start-syntax-check-on-find-file nil)
+ )
+#+END_SRC
+
+*** COMMENT geiser
+#+BEGIN_SRC emacs-lisp
+ (use-package geiser
+ )
+#+END_SRC
+*** COMMENT racket-mode
+#+BEGIN_SRC emacs-lisp
+ '(use-package racket-mode
+ )
+#+END_SRC
+*** COMMENT arduino-mode
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package arduino-mode
+ )
+#+END_SRC
+
+*** lispy
+
+#+BEGIN_SRC emacs-lisp
+ (use-package lispy
+ :config
+ (add-hook 'lisp-mode-hook (lambda () (lispy-mode 1)))
+ (add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1)))
+ )
+#+END_SRC
+
+*** COMMENT smartparens
+
+#+BEGIN_SRC emacs-lisp
+ (use-package smartparens
+ :config
+ (add-hook 'hy-mode-hook #'smartparens-strict-mode)
+ )
+#+END_SRC
+
+*** rainbow-delimiters
+
+#+BEGIN_SRC emacs-lisp
+ (use-package rainbow-delimiters
+ :config
+ (add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
+ )
+#+END_SRC
+
+*** COMMENT kivy-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package kivy-mode
+ )
+#+END_SRC
+
+*** yasnippet
+
+#+BEGIN_SRC emacs-lisp
+ (use-package yasnippet
+ :config
+ (setq yas-snippet-dirs "~/foo/myasnippets")
+ (yas-reload-all)
+ (yas-global-mode 1)
+ )
+#+END_SRC
+
+*** elisp
+
+**** COMMENT paredit
+
+#+begin_src emacs-lisp
+ (use-package paredit
+ )
+#+end_src
+
+*** Python
+
+**** python mode
+
+#+BEGIN_SRC elisp
+ (use-package python
+ :config
+ (setq python-shell-interpreter "ipython")
+ (setq python-shell-interpreter-args "-i --simple-prompt")
+ (setq python-shell-interpreter-interactive-arg "-i --simple-prompt")
+ )
+#+END_SRC
+
+**** COMMENT python-x
+
+#+BEGIN_SRC emacs-lisp
+ (use-package python-x
+ :config
+ (python-x-setup))
+#+END_SRC
+
+**** pyvenv
+
+
+- pyvenv-mode
+ - Responsible of entering and using virtualenvs.
+- pyvenv-tracking-mode
+ - Responsible of entering a virtualenv as requested in an
+ add-dir-local-variable or an add-file-local-variable.
+
+#+BEGIN_SRC emacs-lisp
+ (use-package pyvenv
+ :config
+ (pyvenv-mode)
+ (pyvenv-tracking-mode)
+ ;; Let's try commenting this out.
+ ;; (setq pyvenv-virtualenvwrapper-python "/usr/bin/env python")
+ )
+#+END_SRC
+
+**** COMMENT live-py-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package live-py-mode
+ )
+#+END_SRC
+
+**** elpy
+
+#+BEGIN_SRC emacs-lisp
+ (use-package elpy
+ :config
+ (elpy-enable)
+
+ (setq python-shell-interpreter "jupyter"
+ python-shell-interpreter-args "console --simple-prompt")
+
+ (setq elpy-rpc-python-command "python3.6")
+ (setq elpy-syntax-check-command "flake8")
+
+ ;; XXX TODO
+ ;; (setq elpy-disable-backend-error-display nil)
+ )
+#+END_SRC
+
+**** ob-ipython
+
+org-babel for Jupyter.
+
+#+BEGIN_SRC emacs-lisp
+ (use-package ob-ipython
+ :config
+ ;; display/update images in the buffer after I evaluate.
+ (add-hook 'org-babel-after-execute-hook
+ 'org-display-inline-images 'append
+ )
+ )
+#+END_SRC
+
+**** EIN
+
+#+BEGIN_SRC emacs-lisp
+ (use-package ein
+ :requires markdown-mode
+ )
+#+END_SRC
+
+**** hylang
+
+#+BEGIN_SRC emacs-lisp
+ (use-package hy-mode
+ :config
+ (add-hook 'hy-mode-hook (lambda () (lispy-mode 1)))
+ (add-hook 'hy-mode-hook #'rainbow-delimiters-mode)
+ )
+#+END_SRC
+
+**** Customize
+
+#+BEGIN_SRC emacs-lisp
+ (setq python-check-command "flake8")
+ (setq python-indent-offset 4)
+#+END_SRC
+
+*** Haskell
+
+#+BEGIN_SRC emacs-lisp
+ (use-package haskell-mode
+ :config
+ (setq haskell-hoogle-url "https://www.fpcomplete.com/hoogle?q=%s")
+ (setq haskell-stylish-on-save t)
+ (setq haskell-tags-on-save t)
+ )
+#+END_SRC
+
+*** Coq (hehehe… it says "coq"…)
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package proof
+ :config
+ (setq proof-autosend-enable t)
+ (setq proof-electric-terminator-enable t)
+ (setq proof-shell-quiet-errors nil)
+ )
+#+END_SRC
+
+**** Customize
+
+*** Magit
+
+A git mode recommended on the [[https://www.emacswiki.org/emacs/Git][Emacs wiki]].
+
+#+BEGIN_QUOTE
+Magit is the most popular front end for Git. If you are new to Git and
+do not need support for other vcs this is likely the package you
+should try first.
+#+END_QUOTE
+
+#+BEGIN_SRC emacs-lisp
+ (use-package magit
+ :config
+ (setq magit-log-section-arguments (quote ("--graph" "--color" "--decorate" "-n256")))
+
+ :bind
+ (
+ ("C-x g" . magit-status)
+ ("C-x M-g" . magit-dispatch-popup)
+ )
+ )
+#+END_SRC
+
+*** COMMENT vc-fossil
+
+#+BEGIN_SRC emacs-lisp
+ (use-package vc-fossil
+ )
+#+END_SRC
+
+*** flycheck
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package flycheck
+ :init (global-flycheck-mode)
+ )
+#+END_SRC
+
+*** company-mode
+
+#+BEGIN_SRC emacs-lisp
+ (use-package company
+ :config
+ (global-company-mode)
+ )
+#+END_SRC
+
+** Communication
+*** COMMENT IRC
+**** ERC
+***** Customize
+
+#+BEGIN_SRC emacs-lisp
+ (use-package erc
+ :config
+ (setq log-mode t)
+ (setq erc-log-write-after-insert t)
+ (setq erc-log-write-after-send t)
+ )
+#+END_SRC
+**** COMMENT circe
+
+#+BEGIN_SRC emacs-lisp
+ (use-package circe
+ :config
+ (setq log-mode t)
+ (setq erc-log-write-after-insert t)
+ (setq erc-log-write-after-send t)
+ )
+#+END_SRC
+
+***** helm-circe
+
+#+BEGIN_SRC emacs-lisp
+ (use-package helm-circe
+ )
+#+END_SRC
+*** Matrix
+**** matrix-client
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package matrix-client)
+#+END_SRC
+
+** Accessability
+
+*** TODO COMMENT thumb-through
+
+Skim web pages? XXX
+
+#+begin_src emacs-lisp
+ (use-package thumb-through
+ )
+#+end_src
+
+*** COMMENT eloud
+
+Reads bits off the buffer.
+
+#+begin_src emacs-lisp
+ (use-package eloud
+ :config
+ (setq eloud-mode t)
+ (setq eloud-speech-rate 200)
+ )
+#+end_src
+
+*** TODO COMMENT ereader
+
+XXX
+
+#+begin_src emacs-lisp
+ '(use-package ereader
+ )
+#+end_src
+
+*** COMMENT spray
+
+A speed reader.
+
+#+begin_src emacs-lisp
+ (use-package spray
+ :config
+ (setq spray-save-point t)
+ )
+#+end_src
+
+*** emacspeak
+
+How do we make this work? XXX
+
+#+begin_src emacs-lisp
+ '(use-package emacspeak)
+#+end_src
+
+** RSS
+
+*** elfeed-org
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package elfeed-org
+ :config
+ (setq elfeed-curl-max-connections 10)
+ (setq rmh-elfeed-org-files '("~/foo/my-org-mode-notes/elfeed.org" "~/mine/elfeed/private.org"))
+ (elfeed-org)
+
+ :bind
+ (
+ ("C-x w" . elfeed)
+ )
+ )
+#+END_SRC
+
+*** elfeed-goodies
+
+#+BEGIN_SRC emacs-lisp
+ '(use-package elfeed-goodies
+ )
+#+END_SRC
+
+** uptimes
+
+#+BEGIN_SRC emacs-lisp
+ (use-package uptimes
+ )
+#+END_SRC
+
+
diff --git a/.gitconfig b/.gitconfig
@@ -0,0 +1,29 @@
+[user]
+ name = Yuval Langer
+ email = yuval.langer@gmail.com
+[gui]
+ fontdiff = -family Inconsolata -size 16 -weight normal -slant roman -underline 0 -overstrike 0
+[core]
+ editor = vim
+ excludesfile = ~/.gitignore_global
+ whitespace = tab-in-indent, trailing-space
+[diff]
+ tool = diff
+[difftool]
+ tool = meld
+[alias]
+ s = status
+ lg = log --all --graph --decorate --color
+ c = checkout
+ d = diff
+ df = diff --word-diff
+ l = log --all --graph --decorate --oneline
+ hash = rev-parse HEAD
+[mergetool]
+ cmd = meld "$LOCAL" "$MERGED" "$REMOTE"
+[push]
+ default = simple
+[merge]
+ tool = meld
+[color]
+ ui = true
diff --git a/.gitignore_global b/.gitignore_global
@@ -0,0 +1,90 @@
+# Compiled source #
+###################
+,*.com
+,*.class
+,*.dll
+,*.exe
+,*.o
+,*.so
+
+# Packages #
+############
+# it's better to unpack these files and commit the raw source
+# git has its own built in compression methods
+,*.7z
+,*.dmg
+,*.gz
+,*.iso
+,*.jar
+,*.rar
+,*.tar
+,*.zip
+
+# Logs and databases #
+######################
+,*.log
+,*.sql
+,*.sqlite
+
+# OS generated files #
+######################
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+ehthumbs.db
+Thumbs.db
+
+# Byte-compiled / optimized / DLL files
+__pycache__/
+,*.py[cod]
+
+# C extensions
+,*.so
+
+# Distribution / packaging
+bin/
+build/
+develop-eggs/
+dist/
+eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+,*.egg-info/
+.installed.cfg
+,*.egg
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+.tox/
+.coverage
+.cache
+nosetests.xml
+coverage.xml
+
+# Translations
+,*.mo
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+
+# Rope
+.ropeproject
+
+# Django stuff:
+,*.log
+,*.pot
+
+# Sphinx documentation
+docs/_build/
+
+local_settings.py
diff --git a/.shortcuts/org-add-note b/.shortcuts/org-add-note
@@ -0,0 +1 @@
+emacsclient -a= ~/mine/orgmode/notes.org
diff --git a/.shortcuts/termux-url-opener b/.shortcuts/termux-url-opener
@@ -0,0 +1,10 @@
+fbreader_save_dir="$HOME/storage/shared/Books/web2fbreader"
+url="$1"
+printf "book, img, vid, msc? "
+cmd="$(python3 -c 'print(input())')"
+case "$cmd" in
+ book) curl -o "${fbreader_save_dir}/$(date --rfc-3=sec).html" "$url";;
+ img) cd "${img_save_dir}" && wget -m -np -l 1 "$url";;
+ vid) cd "${vid_save_dir}" && wget -m -np -l 1 "$url";;
+ msc) cd "${music_save_dir}" && wget -m -np -l 1 "$url";;
+esac
diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs
@@ -0,0 +1,91 @@
+module Main where
+
+import Data.Monoid (All)
+import qualified DBus as D
+import qualified DBus.Client as D
+import Graphics.X11.Xlib.Extras (Event)
+import XMonad
+ ( Choose
+ , Full
+ , KeyMask (..)
+ , KeySym (..)
+ , Mirror
+ , Modifier (..)
+ , MonadIO (..)
+ , Tall
+ , Window
+ , controlMask
+ , defaultConfig
+ , handleEventHook
+ , layoutHook
+ , mod1Mask
+ , mod2Mask
+ , mod3Mask
+ , mod4Mask
+ , modMask
+ , shiftMask
+ , spawn
+ , startupHook
+ , xK_Print
+ , xK_p
+ , xK_Return
+ , xK_i
+ , xK_z
+ , xmonad
+ , (.|.)
+ , (<+>)
+ )
+import XMonad.Core (X, logHook)
+import XMonad.Hooks.DynamicLog
+ ( defaultPP
+ , dynamicLogString
+ , xmonadPropLog
+ )
+import XMonad.Hooks.EwmhDesktops (ewmh, fullscreenEventHook)
+import XMonad.Hooks.ManageDocks (AvoidStruts, avoidStruts)
+import XMonad.Layout.LayoutModifier (ModifiedLayout)
+import XMonad.Util.EZConfig (additionalKeys)
+
+myTerminal :: String
+myTerminal = "gnome-terminal"
+
+myBorderWidth :: Int
+myBorderWidth = 2
+
+myStartupHook :: MonadIO m => m ()
+myStartupHook = do
+ spawn "~/bin/xmonadstartup"
+
+myLayoutHook :: ModifiedLayout AvoidStruts (Choose Tall (Choose (Mirror Tall) Full)) Window
+myLayoutHook = avoidStruts $ layoutHook defaultConfig
+
+myAdditionalKeys ::
+ MonadIO m =>
+ [((KeyMask, KeySym), m ())]
+myAdditionalKeys =
+ [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
+ , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
+ , ((mod4Mask, xK_p), spawn "dmenu_run")
+ , ((0, xK_Print), spawn "scrot")
+ -- , ((mod1Mask, xK_Escape), spawn "setxkbmap -option grp:alts_toggle us,il")
+ -- , ((controlMask .|. shiftMask, xK_Return), spawn "xsel -b | festival --tts")
+ , ((mod4Mask .|. shiftMask, xK_Return), spawn myTerminal)
+ ]
+
+myHandleEventHook :: Graphics.X11.Xlib.Extras.Event -> XMonad.Core.X Data.Monoid.All
+myHandleEventHook = handleEventHook defaultConfig <+> fullscreenEventHook
+
+myLogHook :: X ()
+myLogHook = dynamicLogString defaultPP >>= xmonadPropLog
+
+main :: IO ()
+main = do
+ dbus <- D.connectSession
+ -- getWellKnownName dbus
+ xmonad $ ewmh defaultConfig
+ { handleEventHook = myHandleEventHook
+ , layoutHook = myLayoutHook
+ , logHook = myLogHook
+ , modMask = mod4Mask
+ , startupHook = myStartupHook
+ } `additionalKeys` myAdditionalKeys
diff --git a/bin/config b/bin/config
@@ -0,0 +1,3 @@
+#!/usr/bin/bash
+
+/usr/bin/git --git-dir="$HOME/.cfg" --work-tree="$HOME" $@
diff --git a/bin/e b/bin/e
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+emacsclient -a= -c
diff --git a/bin/glock b/bin/glock
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+gnome-screensaver-command --lock
diff --git a/bin/meditate b/bin/meditate
@@ -0,0 +1,79 @@
+#!/usr/bin/env python3
+
+"""Meditate.
+
+Usage:
+ meditate [options]
+ <--bell=PATH>
+ [--session-time=TIME]
+ [--interval-time=TIME]
+
+Options:
+ -h --help
+ --usage
+ -v --verbose
+ --session-time=TIME Total meditation session time. [default: 1200]
+ --interval-time=TIME Length of each interval in seconds. [default: 300]
+"""
+
+
+import logging
+import multiprocessing
+import os
+import pathlib
+import subprocess
+
+import attr
+
+import docopt
+
+
+logger = logging.getLogger(__name__)
+
+
+@attr.s
+class Session:
+ demarcation_sound_path: os.PathLike
+ interval_sound_path: os.PathLike
+ interval_time: float = attr.ib(default=20. * 60)
+ session_time: float = attr.ib(default=60. * 60)
+
+ @staticmethod
+ def play_sound(sound_path):
+ subprocess.Popen(["mpv", sound_path])
+
+ def play_demarcation_sound(self):
+ self.play_sound(self.demarcation_sound_path)
+
+ def play_interval_sound(self):
+ self.play_sound(self.interval_sound_path)
+
+ def meditate(self) -> None:
+ self.play_demarcation_sound()
+
+
+def main():
+ print("Start meditating.")
+
+ arguments = docopt.docopt(__doc__)
+
+ interval_time = float(arguments.get("--interval"))
+ session_time = float(arguments.get("--session-time"))
+ interval_sound_path = pathlib.Path(
+ arguments["<--interval-sound>"],
+ ).expanduser().absolute()
+ demarcation_sound_path = pathlib.Path(
+ arguments["<--demarcation-sound>"],
+ ).expanduser().absolute()
+
+ session = Session(
+ interval_time=interval_time,
+ session_time=session_time,
+ interval_sound_path=interval_sound_path,
+ demarcation_sound_path=demarcation_sound_path,
+ )
+ session.meditate()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/bin/pip-user-upgrade b/bin/pip-user-upgrade
@@ -0,0 +1,52 @@
+#!/usr/bin/env python3
+
+import json
+import pathlib
+import subprocess
+import sys
+import logging
+
+logging.basicConfig(level='DEBUG')
+logger = logging.getLogger(__name__)
+
+REQUIREMENTS_FILE = pathlib.Path("~/foo/dotfiles/requirements.txt").expanduser()
+
+UPGRADE_PIP_COMMAND = "python3 -m pip install --user --upgrade pip".split(" ")
+LIST_OUTDATED_PACKAGES_IN_JSON_COMMAND = "python3 -m pip list --format=json -o --user".split(" ")
+UPGRADE_PACKAGES_COMMAND = "python3 -m pip install -U --user -r /dev/stdin".split(" ")
+INSTALL_WANTED_PACKAGES_COMMAND = (
+ "python3 -m pip install -U --user -r {REQUIREMENTS_FILE}"
+ .format(REQUIREMENTS_FILE=REQUIREMENTS_FILE)
+ .split(" ")
+)
+
+def main():
+ subprocess.Popen(UPGRADE_PIP_COMMAND).wait()
+
+ pip_list_json = subprocess.Popen(
+ LIST_OUTDATED_PACKAGES_IN_JSON_COMMAND,
+ stdout=subprocess.PIPE,
+ ).stdout.read()
+
+ package_names = [n["name"] for n in json.loads(pip_list_json.decode("UTF-8"))]
+
+ logger.debug("Outdated package list: %s", package_names)
+
+ upgrade_packages_process = subprocess.Popen(
+ UPGRADE_PACKAGES_COMMAND,
+ stdin=subprocess.PIPE,
+ )
+
+ upgrade_packages_process.stdin.writelines(package_names)
+
+ upgrade_packages_process.stdin.close()
+ upgrade_packages_process.wait()
+
+
+ install_wanted_packages_process = subprocess.Popen(
+ INSTALL_WANTED_PACKAGES_COMMAND,
+ ).wait()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/bin/pxsel b/bin/pxsel
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+pee 'xsel -b' xsel
diff --git a/bin/upgrade-pip-packages b/bin/upgrade-pip-packages
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+userpip="$HOME/.local/bin/pip"
+
+pip3 install -U --user pip
+pip install -U --user pip
+"$userpip" install -U --user pipsi
+"$userpip" install -U --user pip-tools
+
+#pip-compile --generate-hashes -v -U --annotate "$HOME/requirements.in"
+pip-compile -v "$HOME/requirements.in"
+"$userpip" install --user --upgrade -r "$HOME/requirements.txt"
+
+while read -r a_line
+do
+ declare -A row="$a_line"
+ pipsi install --python "${row[python]}" "${row[package]}" || pipsi install "${row[package]}"
+ pipsi upgrade "${row[package]}"
+done < "$HOME/pipsi-list"
diff --git a/bin/xmonadstartup b/bin/xmonadstartup
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+keynav &
+setxkbmap -option -option terminate:ctrl_alt_bksp -option grp:caps_toggle us,il &
+redshift &
+nm-applet &
+xfce4-power-manager &
+xfce4-volumed &
+trayer &
+xmobar &
+if [ -f "$HOME/.local/bin/arbtt-capture" ];
+then
+ "$HOME/.local/bin/arbtt-capture" &
+else
+ arbtt-capture &
+fi
diff --git a/bin/xpwgen b/bin/xpwgen
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+function make_stripped_password(){
+ python3 -c """
+import sys
+print(sys.stdin.read().strip(), end='')
+""" <<EOF
+$( pwgen -B1 16 )
+EOF
+}
+
+make_password | pee 'xsel' 'xsel -b'
diff --git a/init.el b/init.el
@@ -1,32 +0,0 @@
-
-;; start emacs server
-;; (from https://github.com/edvorg/emacs-configs/blob/master/init-real.el)
-
-(require 'server)
-(unless (server-running-p)
- (server-start))
-
-;; setup elpa addresses
-
-(require 'package)
-
-(setq package-enable-at-startup nil)
-
-;; (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/"))
-(add-to-list 'package-archives '("melpa-bleeding-edge" . "https://melpa.org/packages/"))
-;; (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
-
-(package-initialize)
-
-;; Bootstrap `use-package'
-
-(unless (package-installed-p 'use-package)
- (package-refresh-contents)
- (package-install 'use-package))
-
-
-(require 'use-package)
-
-(setq use-package-always-ensure t)
-
-(org-babel-load-file (expand-file-name "~/.emacs.d/myinit.org"))
diff --git a/myinit.org b/myinit.org
@@ -1,756 +0,0 @@
-#+STARTUP: overview
-
-* myinit
-** globals
-
-#+BEGIN_SRC emacs-lisp
- (add-to-list 'auto-mode-alist '("\\.ipy\\'" . python-mode))
-#+END_SRC
-
-** shell
-*** better-shell
-#+BEGIN_SRC emacs-lisp
- (use-package better-shell
- :bind
- (
- ("C-'" . better-shell-shell)
- ("C-;" . better-shell-remote-open)
- )
- )
-#+END_SRC
-*** bash-completion
-#+BEGIN_SRC emacs-lisp
- (use-package bash-completion)
-#+END_SRC
-** User Interface tweaks
-
-#+BEGIN_SRC emacs-lisp
- (setq column-number-mode t)
- (setq display-battery-mode t)
- (setq electric-indent-mode nil)
- (setq indent-tabs-mode nil)
- (setq semantic-mode t)
- (setq show-paren-mode t)
- (setq word-wrap t)
- (setq inhibit-startup-message t)
-#+END_SRC
-
-*** Custom face
-
-#+BEGIN_SRC emacs-lisp
- (custom-set-faces
- '(default ((t (:inherit nil :stipple
- nil :background "white" :foreground "black" :inverse-video
- nil :box nil :strike-through nil :overline nil :underline
- nil :slant normal :weight normal :height 200 :width
- normal :foundry "PfEd" :family "Inconsolata" ))))
- '(aw-leading-char-face ((t (:inherit
- ace-jump-face-foreground :height 3.0))))
- )
-#+END_SRC
-
-*** Customize keys
-**** A quick way to reload the file contents into the buffer
-
-- [X] What is revert-buffer?
- - Reload file into its buffer.
-
-#+BEGIN_SRC emacs-lisp
- (global-set-key (kbd "<f5>") 'revert-buffer)
-#+END_SRC
-
-*** Customize buffer list
-
-#+BEGIN_SRC emacs-lisp
- (defalias 'list-buffers 'ibuffer-other-window
- )
-#+END_SRC
-
-*** Customize menu
-
-#+BEGIN_SRC emacs-lisp
- (setq gnus-group-update-tool-bar t)
- (setq menu-bar-mode nil)
- (setq tool-bar-mode nil)
-#+END_SRC
-
-*** Wrap and truncation
-
-#+BEGIN_SRC emacs-lisp
- (setq word-wrap t)
- (setq truncate-lines t)
-#+END_SRC
-
-** semantic-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package semantic
- :config
- (semantic-mode 1)
- )
-#+END_SRC
-
-** multiple-curses.el
-
-#+BEGIN_SRC emacs-lisp
- (use-package multiple-cursors
- :bind
- (
- ("C-S-c C-S-c" . mc/edit-lines)
- ("C->" . mc/mark-next-like-this)
- ("C-<" . mc/mark-previous-like-this)
- ("C-c C-<" . mc/mark-all-like-this)
- ))
-#+END_SRC
-
-** undo-tree-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package undo-tree
- :config
- (global-undo-tree-mode)
- )
-#+END_SRC
-
-** ede-mode
-
-#+BEGIN_SRC emacs-lisp
- (setq global-ede-mode t)
-#+END_SRC
-
-** Ido-mode
-
-#+BEGIN_SRC emacs-lisp
- (setq ido-enable-flex-matching t)
- (setq ido-everywhere t)
-
- (ido-mode 1)
-#+END_SRC
-
-** COMMENT projectile
-
-#+BEGIN_SRC emacs-lisp
- (use-package projectile
- )
-#+END_SRC
-
-** winner-mode
-
-#+BEGIN_SRC emacs-lisp
- (winner-mode 1)
- (windmove-default-keybindings)
-#+END_SRC
-
-** swiper-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package counsel
- )
-
- (use-package swiper-helm
- :config
- (ivy-mode 1)
- (setq ivy-use-virtual-buffers t)
-
- :bind
- (
- ("<f1> f" . counsel-describe-function)
- ("<f1> l" . counsel-find-library)
- ("<f1> v" . counsel-describe-variable)
- ("<f2> i" . counsel-info-lookup-symbol)
- ("<f2> u" . counsel-unicode-char)
- ("<f6>" . ivy-resume)
- ("C-S-o" . counsel-rhythmbox)
- ("C-c C-r" . ivy-resume)
- ("C-c g" . counsel-git)
- ("C-c j" . counsel-git-grep)
- ("C-c k" . counsel-ag)
- ("C-r" . counsel-expression-history)
- ("C-x C-f" . counsel-find-file)
- ("C-x l" . counsel-locate)
- ("C-s" . swiper)
- )
- )
-#+END_SRC
-
-** ace-window-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package ace-window
- :init
- (global-set-key [remap other-window] 'ace-window)
- )
-#+END_SRC
-
-** tabber-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package tabbar
- :config
- (tabbar-mode 1)
- )
-#+END_SRC
-
-** Evil-mode
-
-Turn Emacs into a VIM clone.
-
-#+BEGIN_SRC emacs-lisp
- '(use-package evil
- :config
- (evil-mode 1)
- (add-to-list 'evil-emacs-state-modes 'elfeed-show-mode)
- (add-to-list 'evil-emacs-state-modes 'elfeed-search-mode)
- )
-#+END_SRC
-*** COMMENT evil-goggles
-
-#+BEGIN_SRC emacs-lisp
- '(use-package evil-goggles
- :config
- (evil-goggles-mode)
- )
-#+END_SRC
-** try-mode
-
-Try packages by temporarily installing them.
-
-#+BEGIN_SRC emacs-lisp
- (use-package try
- )
-#+END_SRC
-
-** which key
-
-Brings up some help in the middle of a key sequence.
-
-#+BEGIN_SRC emacs-lisp
- (use-package which-key
- :config (which-key-mode)
- )
-#+END_SRC
-
-** Helm-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package helm
- :bind
- (
- ("C-x c f" . helm-multi-files)
- ("M-x" . helm-M-x)
- )
- )
-#+END_SRC
-
-** org-mode
-
-- What is [0/4]:
- - [ ] org-export-html-postamble
- - [ ] org-hide-leading-stars
- - [ ] org-startup-folded and (quote overview)
- - [ ] org-startup-indented
-
-#+BEGIN_SRC emacs-lisp
- (use-package org
- :requires ob-ditaa ob-ipython htmlize
-
- :config
- ;; Don't prompt me to confirm every time I want to evaluate a block.
- (setq org-confirm-babel-evaluate nil)
-
- (setq org-directory "~/foo/my-org-mode-notes")
- (setq org-default-notes-file (concat org-directory "/main.org"))
- (setq org-export-html-postamble nil)
- (setq org-hide-leading-stars t)
- (setq org-startup-folded 'overview)
- (setq org-startup-indented t)
-
- (add-to-list 'org-agenda-files "~/foo/my-org-mode-notes/")
- (add-to-list 'org-agenda-files "~/mine/orgmode/")
- (add-to-list 'org-agenda-files "~/mine/syncthing/sg3/shared/orgmode/")
- (add-to-list 'org-agenda-files "~/mine/syncthing/sg3/shared/orgzly/")
-
- (setq org-habit-following-days 30)
- (setq org-habit-show-all-today t)
- (setq org-habit-show-habits-only-for-today nil)
-
- (add-to-list 'org-modules 'org-bbdb)
- (add-to-list 'org-modules 'org-bibtex)
- (add-to-list 'org-modules 'org-docview)
- (add-to-list 'org-modules 'org-gnus)
- (add-to-list 'org-modules 'org-habit)
- (add-to-list 'org-modules 'org-info)
- (add-to-list 'org-modules 'org-irc)
- (add-to-list 'org-modules 'org-mhe)
- (add-to-list 'org-modules 'org-rmail)
- (add-to-list 'org-modules 'org-w3m)
-
- (add-to-list 'org-babel-load-languages '(emacs-lisp . t))
- (add-to-list 'org-babel-load-languages '(ipython . t))
- (add-to-list 'org-babel-load-languages '(python . t))
- (add-to-list 'org-babel-load-languages '(ditaa . t))
-
- (setq org-ditaa-jar-path "/usr/share/ditaa/ditaa.jar")
-
-
- (add-to-list 'org-babel-tangle-lang-exts '("haskell" . "hs"))
- (add-to-list 'org-babel-tangle-lang-exts '("ipython" . "ipy"))
-
-
- (defun org-babel-tangle-block ()
- (interactive)
- (let ((current-prefix-arg '(4)))
- (call-interactively 'org-babel-tangle))
- )
-
- (setq org-use-property-inheritance (list "STYLE"))
-
- (defun yuvallanger-org-find-main-file ()
- (interactive)
- (find-file "~/foo/my-org-mode-notes/main.org")
- )
-
- :bind
- (
- ("C-c a" . org-agenda)
- ;; ("C-c b" . org-babel-tangle-block)
- ("C-c b" . org-iswitchb)
- ("C-c c" . org-capture)
- ("C-c l" . org-store-link)
- ("C-c o" . yuvallanger-org-find-main-file)
- )
- )
-#+END_SRC
-
-*** org-ref
-
-#+BEGIN_SRC emacs-lisp
- (use-package org-ref
- :config
- ;; The following is from the README.org
- ;; https://github.com/jkitchin/org-ref/blob/master/README.org
- (setq reftex-default-bibliography '("~/ownCloud/bibliography/references.bib"))
- (setq org-ref-bibliography-notes "~/ownCloud/bibliography/notes.org")
- (setq org-ref-default-bibliography '("~/ownCloud/bibliography/references.bib"))
- (setq org-ref-pdf-directory "~/ownCloud/bibliography/bibtex-pdfs/")
- (setq bibtex-completion-bibliography "~/ownCloud/bibliography/references.bib")
- (setq bibtex-completion-library-path "~/ownCloud/bibliography/bibtex-pdfs")
- (setq bibtex-completion-notes-path "~/ownCloud/bibliography/helm-bibtex-notes")
- )
-#+END_SRC
-
-*** org-bullets
-
-Org bullets makes things look pretty.
-
-#+BEGIN_SRC emacs-lisp
- (use-package org-bullets
- :config
- (add-hook 'org-mode-hook
- (lambda () (org-bullets-mode 1)))
- )
-#+END_SRC
-
-*** org-caldav
-
-#+BEGIN_SRC emacs-lisp
- '(use-package org-caldav
- :config
- (setq org-caldav-url "https://owncloud.kaka.farm/remote.php/caldav/calendars/yuvallanger")
- (setq org-caldav-calendar-id "org-mode")
- (setq org-caldav-calendars '((:url "https://owncloud.kaka.farm/remote.php/caldav/calendars/yuvallanger"
- :calendar-id "org-mode"
- :files ("~/mine/orgmode/calendar.org")
- :inbox "~/mine/orgmode/caldav-sync-calendar-inbox.org")
-
- (:url "https://owncloud.kaka.farm/remote.php/dav/calendars/yuvallanger"
- :calendar-id "org-mode"
- :files ("~/mine/orgmode/tasks.org")
- :inbox "~/mine/orgmode/caldav-sync-tasks-inbox.org"))))
-#+END_SRC
-
-*** orgnav
-
-#+BEGIN_SRC emacs-lisp
- (use-package orgnav
- )
-#+END_SRC
-
-** Programming modes
-*** flymake
-
-#+BEGIN_SRC emacs-lisp
- (use-package flymake
- :config
- (setq flymake-start-syntax-check-on-find-file nil)
- )
-#+END_SRC
-
-*** COMMENT geiser
-#+BEGIN_SRC emacs-lisp
- (use-package geiser
- )
-#+END_SRC
-*** COMMENT racket-mode
-#+BEGIN_SRC emacs-lisp
- (use-package racket-mode
- )
-#+END_SRC
-*** COMMENT arduino-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package arduino-mode
- )
-#+END_SRC
-
-*** lispy
-
-#+BEGIN_SRC emacs-lisp
- (use-package lispy
- :config
- (add-hook 'lisp-mode-hook (lambda () (lispy-mode 1)))
- (add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1)))
- )
-#+END_SRC
-
-*** COMMENT smartparens
-
-#+BEGIN_SRC emacs-lisp
- (use-package smartparens
- :config
- (add-hook 'hy-mode-hook #'smartparens-strict-mode)
- )
-#+END_SRC
-
-*** rainbow-delimiters
-
-#+BEGIN_SRC emacs-lisp
- (use-package rainbow-delimiters
- :config
- (add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
- )
-#+END_SRC
-
-*** COMMENT kivy-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package kivy-mode
- )
-#+END_SRC
-
-*** yasnippet
-
-#+BEGIN_SRC emacs-lisp
- (use-package yasnippet
- :config
- (setq yas-snippet-dirs "~/foo/myasnippets")
- (yas-reload-all)
- (yas-global-mode 1)
- )
-#+END_SRC
-
-*** elisp
-
-**** COMMENT paredit
-
-#+begin_src emacs-lisp
- (use-package paredit
- )
-#+end_src
-
-*** Python
-
-**** python mode
-
-#+BEGIN_SRC elisp
- (use-package python
- :config
- (setq python-shell-interpreter "ipython")
- (setq python-shell-interpreter-args "-i --simple-prompt")
- (setq python-shell-interpreter-interactive-arg "-i --simple-prompt")
- )
-#+END_SRC
-
-**** COMMENT python-x
-
-#+BEGIN_SRC emacs-lisp
- (use-package python-x
- :config
- (python-x-setup))
-#+END_SRC
-
-**** pyvenv
-
-
-- pyvenv-mode
- - Responsible of entering and using virtualenvs.
-- pyvenv-tracking-mode
- - Responsible of entering a virtualenv as requested in an
- add-dir-local-variable or an add-file-local-variable.
-
-#+BEGIN_SRC emacs-lisp
- (use-package pyvenv
- :config
- (pyvenv-mode)
- (pyvenv-tracking-mode)
- ;; Let's try commenting this out.
- ;; (setq pyvenv-virtualenvwrapper-python "/usr/bin/env python")
- )
-#+END_SRC
-
-**** COMMENT live-py-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package live-py-mode
- )
-#+END_SRC
-
-**** elpy
-
-#+BEGIN_SRC emacs-lisp
- (use-package elpy
- :config
- (elpy-enable)
-
- (setq python-shell-interpreter "jupyter"
- python-shell-interpreter-args "console --simple-prompt")
-
- (setq elpy-rpc-python-command "python3.6")
- (setq elpy-syntax-check-command "flake8")
-
- ;; XXX TODO
- ;; (setq elpy-disable-backend-error-display nil)
- )
-#+END_SRC
-
-**** ob-ipython
-
-org-babel for Jupyter.
-
-#+BEGIN_SRC emacs-lisp
- (use-package ob-ipython
- :config
- ;; display/update images in the buffer after I evaluate.
- (add-hook 'org-babel-after-execute-hook
- 'org-display-inline-images 'append
- )
- )
-#+END_SRC
-
-**** EIN
-
-#+BEGIN_SRC emacs-lisp
- (use-package ein
- :requires markdown-mode
- )
-#+END_SRC
-
-**** hylang
-
-#+BEGIN_SRC emacs-lisp
- (use-package hy-mode
- :config
- (add-hook 'hy-mode-hook (lambda () (lispy-mode 1)))
- (add-hook 'hy-mode-hook #'rainbow-delimiters-mode)
- )
-#+END_SRC
-
-**** Customize
-
-#+BEGIN_SRC emacs-lisp
- (setq python-check-command "flake8")
- (setq python-indent-offset 4)
-#+END_SRC
-
-*** Haskell
-
-#+BEGIN_SRC emacs-lisp
- (use-package haskell-mode
- :config
- (setq haskell-hoogle-url "https://www.fpcomplete.com/hoogle?q=%s")
- (setq haskell-stylish-on-save t)
- (setq haskell-tags-on-save t)
- )
-#+END_SRC
-
-*** Coq (hehehe… it says "coq"…)
-
-#+BEGIN_SRC emacs-lisp
- '(use-package proof
- :config
- (setq proof-autosend-enable t)
- (setq proof-electric-terminator-enable t)
- (setq proof-shell-quiet-errors nil)
- )
-#+END_SRC
-
-**** Customize
-
-*** Magit
-
-A git mode recommended on the [[https://www.emacswiki.org/emacs/Git][Emacs wiki]].
-
-#+BEGIN_QUOTE
-Magit is the most popular front end for Git. If you are new to Git and
-do not need support for other vcs this is likely the package you
-should try first.
-#+END_QUOTE
-
-#+BEGIN_SRC emacs-lisp
- (use-package magit
- :config
- (setq magit-log-section-arguments (quote ("--graph" "--color" "--decorate" "-n256")))
-
- :bind
- (
- ("C-x g" . magit-status)
- ("C-x M-g" . magit-dispatch-popup)
- )
- )
-#+END_SRC
-
-*** COMMENT vc-fossil
-
-#+BEGIN_SRC emacs-lisp
- (use-package vc-fossil
- )
-#+END_SRC
-
-*** flycheck
-
-#+BEGIN_SRC emacs-lisp
- '(use-package flycheck
- :init (global-flycheck-mode)
- )
-#+END_SRC
-
-*** company-mode
-
-#+BEGIN_SRC emacs-lisp
- (use-package company
- :config
- (global-company-mode)
- )
-#+END_SRC
-
-** Communication
-*** COMMENT IRC
-**** ERC
-***** Customize
-
-#+BEGIN_SRC emacs-lisp
- (use-package erc
- :config
- (setq log-mode t)
- (setq erc-log-write-after-insert t)
- (setq erc-log-write-after-send t)
- )
-#+END_SRC
-**** COMMENT circe
-
-#+BEGIN_SRC emacs-lisp
- (use-package circe
- :config
- (setq log-mode t)
- (setq erc-log-write-after-insert t)
- (setq erc-log-write-after-send t)
- )
-#+END_SRC
-
-***** helm-circe
-
-#+BEGIN_SRC emacs-lisp
- (use-package helm-circe
- )
-#+END_SRC
-*** Matrix
-**** matrix-client
-
-#+BEGIN_SRC emacs-lisp
- '(use-package matrix-client)
-#+END_SRC
-
-** Accessability
-
-*** TODO COMMENT thumb-through
-
-Skim web pages? XXX
-
-#+begin_src emacs-lisp
- (use-package thumb-through
- )
-#+end_src
-
-*** COMMENT eloud
-
-Reads bits off the buffer.
-
-#+begin_src emacs-lisp
- (use-package eloud
- :config
- (setq eloud-mode t)
- (setq eloud-speech-rate 200)
- )
-#+end_src
-
-*** TODO COMMENT ereader
-
-XXX
-
-#+begin_src emacs-lisp
- (use-package ereader
- )
-#+end_src
-
-*** COMMENT spray
-
-A speed reader.
-
-#+begin_src emacs-lisp
- (use-package spray
- :config
- (setq spray-save-point t)
- )
-#+end_src
-
-*** emacspeak
-
-How do we make this work? XXX
-
-#+begin_src emacs-lisp
- '(use-package emacspeak)
-#+end_src
-
-** RSS
-
-*** elfeed-org
-
-#+BEGIN_SRC emacs-lisp
- '(use-package elfeed-org
- :config
- (setq elfeed-curl-max-connections 10)
- (setq rmh-elfeed-org-files '("~/foo/my-org-mode-notes/elfeed.org" "~/mine/elfeed/private.org"))
- (elfeed-org)
-
- :bind
- (
- ("C-x w" . elfeed)
- )
- )
-#+END_SRC
-
-*** elfeed-goodies
-
-#+BEGIN_SRC emacs-lisp
- '(use-package elfeed-goodies
- )
-#+END_SRC
-
-** uptimes
-
-#+BEGIN_SRC emacs-lisp
- (use-package uptimes
- )
-#+END_SRC
-
-
diff --git a/requirements.txt b/requirements.txt
@@ -1,30 +1,2 @@
-autopep8
-dataclasses
-elpy
-flake8
-flake8-bugbear
-flake8-commas
-flake8-docstrings
-flake8-import-order
-flake8-mypy
-h5py
-importmagic
-ipython
-jedi
-jupyter-console
-jupyterlab
-monkeytype
-mypy
-networkx
-numba
-odo
-pandas
-pep8-naming
-pew
-pipenv
-pylint
-pythonpy
-rope
-sqlalchemy
-yapf
-youtube-dl
+pythonpy
+pipsi