Merge branch 'master' of git.jpatrick.io:james/dotfiles

This commit is contained in:
James Patrick 2020-03-09 12:00:32 -04:00
commit 5dd00665fb
10 changed files with 174 additions and 377 deletions

View File

@ -1,183 +1,194 @@
;;; init.el -*- lexical-binding: t; -*- ;;; init.el -*- lexical-binding: t; -*-
;; Copy this file to ~/.doom.d/init.el or ~/.config/doom/init.el ('doom install' ;; This file controls what Doom modules are enabled and what order they load in.
;; will do this for you). The `doom!' block below controls what modules are ;; Remember to run 'doom sync' after modifying it!
;; enabled and in what order they will be loaded. Remember to run 'doom refresh'
;; after modifying it. ;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find information about all of Doom's modules
;; and what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c g k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;; ;;
;; More information about these modules (and what flags they support) can be ;; Alternatively, press 'gd' (or 'C-c g d') on a module to browse its
;; found in modules/README.org. ;; directory (for easy access to its source code).
(doom! :input (doom! :input
;;chinese ;;chinese
;;japanese ;;japanese
:completion :completion
(company ; the ultimate code completion backend. (company ; the ultimate code completion backend.
+childframe) ; Use company-box. +childframe) ; Use company-box.
(helm ; because sometimes I prefer what I know. ;;(helm ; because sometimes I prefer what I know.
+fuzzy) ; woh typse aynthing write teh first time. ;; +fuzzy) ; woh typse aynthing write teh first time.
;;ido ; the other *other* search engine... ;;ido ; the other *other* search engine...
;;(ivy ; a search engine for love and life (ivy +fuzzy) ; a search engine for love and life
;; +fuzzy)
:ui :ui
deft ; notational velocity for Emacs deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs doom-dashboard ; a nifty splash screen for Emaclints
doom-quit ; DOOM quit-message prompts when you quit Emacs doom-quit ; DOOM quit-message prompts when you quit Emacs
fill-column ; a `fill-column' indicator fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE tags hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;indent-guides ; highlighted indent columns ;;hydra
modeline ; snazzy, Atom-inspired modeline, plus API ;;indent-guides ; highlighted indent columns
nav-flash ; blink the current line after jumping modeline ; snazzy, Atom-inspired modeline, plus API
;;neotree ; a project drawer, like NERDTree for vim nav-flash ; blink the current line after jumping
ophints ; highlight the region an operation acts on ;;neotree ; a project drawer, like NERDTree for vim
(popup ; tame sudden yet inevitable temporary windows ophints ; highlight the region an operation acts on
+all ; catch all popups that start with an asterix (popup ; tame sudden yet inevitable temporary windows
+defaults) ; default popup rules +all ; catch all popups that start with an asterix
(pretty-code ; replace bits of code with pretty symbols +defaults) ; default popup rules
+fira) ; I use firaCode or FiraCode derivatives everywhere, all the time. (pretty-code ; replace bits of code with pretty symbols
;;tabbar ; FIXME an (incomplete) tab bar for Emacs +fira)
treemacs ; a project drawer, like neotree but cooler ;;tabs ; an tab bar for Emacs
;;unicode ; extended unicode support for various languages treemacs ; a project drawer, like neotree but cooler
vc-gutter ; vcs diff in the fringe unicode ; extended unicode support for various languages
vi-tilde-fringe ; fringe tildes to mark beyond EOB vc-gutter ; vcs diff in the fringe
window-select ; visually switch windows vi-tilde-fringe ; fringe tildes to mark beyond EOB
workspaces ; tab emulation, persistence & separate workspaces window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor :editor
(evil +everywhere) ; come to the dark side, we have cookies (evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness (format +onsave) ; automated prettiness
;;lispy ; vim for lisp, for people who dont like vim ;;god ; run Emacs commands without modifier keys
multiple-cursors ; editing in many places at once ;;lispy ; vim for lisp, for people who don't like vim
;;objed ; text object editing for the innocent multiple-cursors ; editing in many places at once
;;parinfer ; turn lisp into python, sort of ;;objed ; text object editing for the innocent
rotate-text ; cycle region at point between text candidates ;;parinfer ; turn lisp into python, sort of
snippets ; my elves. They type so I don't have to rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
word-wrap ; soft wrapping with language-aware indent
:emacs :emacs
(dired ; making dired pretty [functional] (dired ; making dired pretty [functional]
+ranger ; bringing the goodness of ranger to dired +ranger ; bringing the goodness of ranger to dired
+icons) ; colorful icons for dired-mode +icons) ; colorful icons for dired-mode
electric ; smarter, keyword-based electric-indent electric ; smarter, keyword-based electric-indent
vc ; version-control and Emacs, sitting in a tree ibuffer ; interactive buffer management
vc ; version-control and Emacs, sitting in a tree
:term :term
;;eshell ; a consistent, cross-platform shell (WIP) ;;eshell ; a consistent, cross-platform shell (WIP)
;;shell ; a terminal REPL for Emacs ;;shell ; a terminal REPL for Emacs
;;term ; terminals in Emacs ;;term ; terminals in Emacs
vterm ; another terminals in Emacs vterm ; another terminals in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
spell ; tasing you for misspelling mispelling
grammar ; tasing grammar mistake every you make
:tools :tools
;;ansible ;;ansible
;;debugger ; FIXME stepping through code, to help you add bugs ;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv ;;direnv
;;docker ;;docker
editorconfig ; let someone else argue about tabs vs spaces editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs ;;ein ; tame Jupyter notebooks with emacs
eval ; run code, run (also, repls) (eval +overlay) ; run code, run (also, repls)
flycheck ; tasing you for every semicolon you forget ;;gist ; interacting with github gists
flyspell ; tasing you for misspelling mispelling (lookup ; helps you navigate your code and documentation
;;gist ; interacting with github gists +docsets) ; ...or in Dash docsets locally
(lookup ; helps you navigate your code and documentation
+docsets) ; ...or in Dash docsets locally
lsp lsp
;;macos ; MacOS-specific commands ;;macos ; MacOS-specific commands
magit ; a git porcelain for Emacs magit ; a git porcelain for Emacs
make ; run make tasks from Emacs make ; run make tasks from Emacs
;;pass ; password manager for nerds ;;pass ; password manager for nerds
;;pdf ; pdf enhancements ;;pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders ;;prodigy ; FIXME managing external services & code builders
;rgb ; creating color strings ;;rgb ; creating color strings
;;terraform ; infrastructure as code ;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux ;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp ;;upload ; map local to remote projects via ssh/ftp
;;wakatime
:lang :lang
;;agda ; types of types of types of types... ;;agda ; types of types of types of types...
;;assembly ; assembly for fun or debugging ;;assembly ; assembly for fun or debugging
;;cc ; C/C++/Obj-C madness ;;cc ; C/C++/Obj-C madness
;;clojure ; java with a lisp ;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all ;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs ;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c ;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans ;;csharp ; unity, .NET, and mono shenanigans
data ; config/data formats data ; config/data formats
;;erlang ; an elegant language for a more civilized age ;;elixir ; erlang done right
;;elixir ; erlang done right ;;elm ; care for a cup of TEA?
;;elm ; care for a cup of TEA? emacs-lisp ; drown in parentheses
emacs-lisp ; drown in parentheses ;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics ;;ess ; emacs speaks statistics
;;fsharp ; ML stands for Microsoft's Language ;;faust ; dsp, but you get to keep your soul
go ; the hipster dialect ;;fsharp ; ML stands for Microsoft's Language
;;(haskell +intero) ; a language that's lazier than I am go ; the hipster dialect
;;hy ; readability of scheme w/ speed of python ;;(haskell +dante) ; a language that's lazier than I am
;;idris ; ;;hy ; readability of scheme w/ speed of python
(java +lsp) ; the poster child for carpal tunnel syndrome ;;idris ;
javascript ; all(hope(abandon(ye(who(enter(here)))))) (java +lsp) ; the poster child for carpal tunnel syndrome
;;julia ; a better, faster MATLAB (javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
;;kotlin ; a better, slicker Java(Script) ;;julia ; a better, faster MATLAB
;;latex ; writing papers in Emacs has never been so fun ;;kotlin ; a better, slicker Java(Script)
;;ledger ; an accounting system in Emacs ;;latex ; writing papers in Emacs has never been so fun
;;lua ; one-based indices? one-based indices ;;lean
(markdown +grip) ; writing docs for people to ignore ;;factor
;;nim ; python + lisp at the speed of c ;;ledger ; an accounting system in Emacs
;;nix ; I hereby declare "nix geht mehr!" ;;lua ; one-based indices? one-based indices
;;ocaml ; an objective camel (markdown +grip) ; writing docs for people to ignore
(org ; organize your plain life in plain text ;;nim ; python + lisp at the speed of c
+dragndrop ; file drag & drop support ;;nix ; I hereby declare "nix geht mehr!"
+ipython ; ipython support for babel ;;ocaml ; an objective camel
+gnuplot ; plot suff (org ; organize your plain life in plain text
+pandoc ; pandoc integration into org's exporter +dragndrop ; drag & drop files/images into org buffers
+pomodoro) ; Because timers are helpful. ;;+hugo ; use Emacs for hugo blogging
;;perl ; write code no one else can comprehend ;;+jupyter ; ipython/jupyter support for babel
;;php ; perl's insecure younger brother +pandoc ; export-with-pandoc support
;;plantuml ; diagrams for confusing people more +pomodoro ; be fruitful with the tomato technique
;;purescript ; javascript, but functional +present) ; using org-mode for presentations
;;python ; beautiful is better than ugly ;;perl ; write code no one else can comprehend
;;qt ; the 'cutest' gui framework ever ;;php ; perl's insecure younger brother
;;racket ; a DSL for DSLs ;;plantuml ; diagrams for confusing people more
rest ; Emacs as a REST client ;;purescript ; javascript, but functional
ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} ;;python ; beautiful is better than ugly
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() ;;qt ; the 'cutest' gui framework ever
;;scala ; java, but good ;;racket ; a DSL for DSLs
(sh ; she sells {ba,z,fi}sh shells on the C xor ;;rest ; Emacs as a REST client
+lsp) ; this is somehow a thing? ;;rst ; ReST in peace
;;solidity ; do you need a blockchain? No. ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;swift ; who asked for emoji variables? ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;terra ; Earth and Moon in alignment for performance. ;;scala ; java, but good
(web +lsp) ; the tubes ;;scheme ; a fully conniving family of lisps
;;vala ; GObjective-C (sh +lsp) ; she sells {ba,z,fi}sh shells on the C xor
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
(web +lsp) ; the tubes
:email :email
;;(mu4e +gmail) ;;(mu4e +gmail)
;;notmuch ;;notmuch
;;(wanderlust +gmail) ;;(wanderlust +gmail)
;; Applications are complex and opinionated modules that transform Emacs
;; toward a specific purpose. They may have additional dependencies and
;; should be loaded late.
:app :app
calendar calendar
;;irc ; how neckbeards socialize ;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader ;;(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https ://twitter.com/vnought ;;twitter ; twitter client https://twitter.com/vnought
(write ; emacs as a word processor (latex + org + markdown)
+wordnut ; wordnet (wn) search
+langtool) ; a proofreader (grammar/style check) for Emacs
:collab :collab
;;floobits ; peer programming for a price ;;floobits ; peer programming for a price
;;impatient-mode ; show off code over HTTP ;;impatient-mode ; show off code over HTTP
:config :config
;; For literate config users. This will tangle+compile a config.org ;; For literate config users. This will tangle+compile a config.org
;; literate config in your `doom-private-dir' whenever it changes. ;; literate config in your `doom-private-dir' whenever it changes.
;;literate ;; literate
;; The default module sets reasonable defaults for Emacs. It also ;; The default module sets reasonable defaults for Emacs. It also
;; provides a Spacemacs-inspired keybinding scheme and a smartparens ;; provides a Spacemacs-inspired keybinding scheme and a smartparens

View File

@ -1 +0,0 @@
exec_always polybar example

View File

@ -1,6 +0,0 @@
### Start Nextcloud.
exec nextcloud
### Make things a little easier easier on the eyes.
exec redshift

View File

@ -1,2 +0,0 @@
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)

View File

@ -1,180 +0,0 @@
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term kitty
################################################################################
# Your preferred application launcher
# Note: it's recommended that you pass the final command to sway
set $menu bash ~/.config/sway/scripts/menu
set $gopass_menu bash ~/.config/sway/scripts/menu_gopass
set $clipman_menu bash ~/.config/sway/scripts/menu_clipman
set $printscreen bash ~/.config/sway/scripts/printscreen
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesnt scale on retina/hidpi displays.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec $term
# kill focused window
bindsym $mod+q kill
# start your launcher
bindsym $mod+space exec $menu
# gopass prompt
bindsym $mod+backslash exec $gopass_menu
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# _move_ the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+b split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+- floating toggle
# change focus between tiling / floating windows
bindsym $mod+d focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
# reload the configuration file
bindsym $mod+Shift+c exec "make -C ~/.config/i3/ update"
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"

View File

@ -1,3 +0,0 @@
# Map ctrl to caps.
exec setxkbmap -option ctrl:swapcaps

View File

@ -1,13 +0,0 @@
### Font
font pango:Fira Code 9
gaps inner 10
gaps outer 0
### Colors
# class border backgr text indicator child_border
client.focused #12e689 #12e689 #1f212e #12e689 #12e689
client.focused_inactive #1f212e #1f212e #aab5c6 #1f212e #1f212e
client.unfocused #161720 #161720 #aab5c6 #161720 #161720
client.urgent #ff4551 #ff4551 #1f212e #ff4551 #ff4551

View File

@ -1,30 +0,0 @@
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
include ../lib/shared.mk
TARGET := $(XDG_DIR)/i3
install: | init update
init:
ifeq ($(call cmd_exist,i3), true)
$(info => Setting up i3)
$(mk_link) $(SRC) $(TARGET)
else
$(report) warn "i3 not installed."
endif
update:
ifeq ($(call cmd_exist,i3-msg), true)
$(info => Reloading i3-msg)
$(MAKE) -C $(SRC) build_i3
i3-msg reload ; $(report) "i3 reload"
else
$(report) warn "i3 not installed."
endif
remove:
$(info => Remvoing sway)
$(rm_link) $(TARGET)
build_i3:
cat $(SRC)/config.d/* > $(SRC)/config

20
jrnl/makefile Normal file
View File

@ -0,0 +1,20 @@
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
include ../lib/shared.mk
CONFIG_DIR := $(XDG_DIR)/jrnl
install: | init update
init:
ifeq ($(call cmd_exist,jrnl), true)
$(info => Setting up jrnl)
mkdir $(CONFIG_DIR)
$(mk_link) $(SRC)/jrnl.yml $(CONFIG_DIR)/jrnl.yml
else
$(report) info "jrnl not installed. Skipping."
endif
remove:
rm -rf $(CONFIG_DIR)

View File

@ -0,0 +1 @@
source /usr/share/chruby/chruby.sh