dotfiles

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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:
A.agenda_files | 3+++
A.bash_aliases | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.bashrc | 369+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.config/redshift.conf | 11+++++++++++
A.config/youtube-dl/config | 5+++++
A.emacs.d/init.el | 33+++++++++++++++++++++++++++++++++
A.emacs.d/myinit.el | 432+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.emacs.d/myinit.org | 756+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.gitconfig | 29+++++++++++++++++++++++++++++
A.gitignore_global | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.shortcuts/org-add-note | 1+
A.shortcuts/termux-url-opener | 10++++++++++
A.xmonad/xmonad.hs | 91+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abin/config | 3+++
Abin/e | 3+++
Abin/glock | 3+++
Abin/meditate | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abin/pip-user-upgrade | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Abin/pxsel | 3+++
Abin/upgrade-pip-packages | 19+++++++++++++++++++
Abin/xmonadstartup | 16++++++++++++++++
Abin/xpwgen | 12++++++++++++
Dinit.el | 32--------------------------------
Dmyinit.org | 756-------------------------------------------------------------------------------
Mrequirements.txt | 32++------------------------------
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