Skip to content

Instantly share code, notes, and snippets.

@dysinger
Created December 23, 2019 16:26
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save dysinger/e0210e2387575504f7c908064edc722c to your computer and use it in GitHub Desktop.
Save dysinger/e0210e2387575504f7c908064edc722c to your computer and use it in GitHub Desktop.
My important dotfiles as an org-mode document

Configuration

Setup

git clone \
    https://github.com/chriskempson/base16-shell.git \
    ~/.config/base16-shell
git clone \
    https://github.com/afq984/base16-xfce4-terminal.git \
    ~/.config/base16-xfce4-terminal

Autostart

I3

[Desktop Entry]
Name=I3
Comment=Window Manager
Type=Application
Exec=i3

Keybase


Awscli

Config

[default]
output = json
region = us-east-1

Credentials

—–BEGIN PGP MESSAGE—–

hQIAA9xFp9oryDhsAQ+g1blnBHT65MXrMRdxEjEgfaJ++7nDVv+HI44LKRVAWFn0 m8Hxvqav4okO6cH3JjyO/isBPyDrZPqbKl92IxZ0h7EobeksDwoacTDVnlc2aRno a8z4anC4118kgAYnIih56uHUfJjZJfWRQtNTIgJPKLJBjejjb2ZizSzfk5hHVmy1 zoflbanAIRZOPVGFzNdvizlO3c4zm7CSXetgPaR2OgyJ/fBfg0CD4KTzommibLzn CVgO8vnEeP/QS6+JuKGDUSHp2OiF/tW4T3FmbS8Mle5iZfI2xuVRtRpSld5kWicL GVA9l8lXLUeZ3LZoQkYCEFPcxoTYU0l22fQit3vgSq9SAGP7XbzT/tCUGSf5Ks29 wkY6coOwVFMOMWfVBZnukoQKO/u323dhSKFtUEnekOkWoYQmZauWkj8yu8fYK2u6 lQWvIBv31xR63+QbDSQJS+f+9zcDdCUYK3KaKUPBVQsGgVXmBfKzIxTVglmqaHCH kw4/jw5VGx0/B4uLhwCoCQRvMKFuedpnLwj3yklS2Y4KkNG3xrXv8yiDF4trCSeN evIwq3JGO6Sl6gyiuBJvGCZUSfsOcvLeRVlEDomGllSacOg2k6aS885hVxGIGy3G JNOvaFK4lFXW6C5AGrVF8Xz1OQgv0l0WfY7gxwIUcBtEW/HSwDMBZhZqdZtK7wrO LFw8CUQ+2NSkd28G6aj2ZS7sv1zDEExwyHbnW4BcyQMsD8hBQv18mxU4DOr4r3KI ER12dxy2OI9RBbUCR+u2YRYUTTPQGpdc5k2Ev+9plN1kGDyN0whBC3qZkLzbqFvZ kkPGdnu0ZyeDKj47c09oyzDxNlnx9rv1IGMJ11iadYMYUCoy3rmSENUoAIqFVIHZ 40PARK2hJhBoPftLpPny5svqwuX064A+kV1l8PAshikqXOI9ugklEXAsUg2UM/7P IVSSUJqGkJwdaUWvoLzyRjNGErbVHRk2fT0Y9TP7DwkkY067rQ74xEU= =gYyD —–END PGP MESSAGE—–

Emacs

My User Variables

(setq user-full-name "Tim Dysinger"
      user-login-name "tim"
      user-mail-address "tim@dysinger.net")

My Constants

(defconst my/pgp-public-key "0x3F1AB897B5072741")
(defconst my/org-directory (expand-file-name "~/org"))
(defconst my/org-agenda-file
  (expand-file-name "agenda.org" my/org-directory))
(defconst my/org-projectile-file
  (expand-file-name "projects.org" my/org-directory))

My Functions

Sort Words
(defun my/sort-words (reverse beg end)
  "Sort words from BEG to END alphabetically, in REVERSE if negative.
Prefixed with negative \\[universal-argument], sorts in reverse.
The variable `sort-fold-case' determines whether alphabetic case
affects the sort order.  See `sort-regexp-fields'."
  (interactive "*P\nr")
  (sort-regexp-fields reverse "\\w+" "\\&" beg end))

General

UTF-8
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)
No Frills
(setq inhibit-splash-screen t)
(menu-bar-mode -1)
(when (display-graphic-p)
  (scroll-bar-mode -1)
  (tool-bar-mode -1))
No Locks
(setq create-lockfiles nil)
Tabs! OMG NO TABS FFS!
(setq-default indent-tabs-mode nil)
(setq-default tabs-always-indent 'complete)
80 Columns
(setq-default fill-column 80)
Indent After [RETURN]
(add-hook
 'prog-mode-hook
 '(lambda ()
    (bind-key "\C-m" 'newline-and-indent)))
Column/Line Numbers
(setq column-number-mode t)
Don’t Nag RE: Symlinks
(setq-default vc-follow-symlinks t)
Backup Files
(setq backup-directory-alist `(("." . "~/.emacs.d/backup")))

Packages

Bootstrap
Require Libraries
(require 'package)
(require 'use-package)
(require 'bind-key)
(require 'delight)
  
Use Package Chords
(use-package use-package-chords
  :config (key-chord-mode +1))
Base16
(use-package base16-theme
  :config
  (setq base16-theme-256-color-source
        (if (display-graphic-p) "colors" "base16-shell"))
  (load-theme 'base16-phd t))
Whitespace
(use-package whitespace
  :custom
  ((whitespace-line-column 80)
   (whitespace-style '(face empty indentation tabs trailing lines)))
  :config (global-whitespace-mode +1)
  :hook (before-save . whitespace-cleanup))
Direnv
(use-package direnv
  :hook (after-init . direnv-mode))
Fish Shell
(use-package fish-mode)
(use-package fish-completion)
Flycheck
;; (use-package flycheck
;;   :hook (prog-mode . flycheck-mode))
;; (use-package flycheck-rust
;;   :hook (rust-mode . #'flycheck-rust-setup))
;; (use-package flycheck-haskell
;;     :hook (haskell-mode . #'flycheck-haskell-setup))
;; (use-package flycheck-ocaml
;;     :hook (flycheck-mode . flycheck-ocaml-setup))
;; (use-package flycheck-ledger)
Ido
(use-package ido
  :custom
  ((ido-enable-flex-matching t)
   (ido-use-filename-at-point 'guess))
  :hook (after-init . ido-mode))
(use-package ido-yes-or-no
  :hook (after-init . ido-yes-or-no-mode))
Auto Revert
(use-package autorevert
  :delight auto-revert-mode
  :hook (after-init . global-auto-revert-mode))
Rainbows
(use-package rainbow-identifiers
  :hook (prog-mode . rainbow-identifiers-mode))
(use-package rainbow-delimiters
  :hook (prog-mode . rainbow-delimiters-mode))
Org Mode
(use-package org
  :custom
  ((org-agenda-dim-blocked-tasks 'dim)
   (org-agenda-files (list my/org-agenda-file my/org-projectile-file))
   (org-agenda-hide-tags-regexp "^:$")
   (org-agenda-skip-deadline-if-done t)
;; (org-agenda-skip-deadline-prewarning-if-scheduled t)
   (org-agenda-skip-scheduled-if-deadline-is-shown t)
   (org-agenda-skip-scheduled-if-done t)
   (org-agenda-span 'day)
   (org-agenda-tags-column -120)
;; (org-agenda-tags-todo-honor-ignore-options t)
;; (org-agenda-todo-ignore-deadlines 3)
;; (org-agenda-todo-ignore-scheduled 3)
   (org-agenda-custom-commands
    ;; https://orgmode.org/manual/Custom-Agenda-Views.html
    ;; https://github.com/alphapapa/org-super-agenda
    '(("--" "Agenda (By Tag)"
       ((agenda
         ""
         ((org-super-agenda-groups
           '((:name "Overdue"    :and (:deadline past  :not (:tag "DONE")))
             (:name "Reschedule" :and (:scheduled past :not (:tag "DONE")))
             (:time-grid t :log t)
             (:auto-tags t)))))))
      ("-_" "Agenda (By Category)"
       ((agenda
         ""
         ((org-super-agenda-groups
           '((:name "Overdue"    :and (:deadline past  :not (:tag "DONE")))
             (:name "Reschedule" :and (:scheduled past :not (:tag "DONE")))
             (:time-grid t :log t)
             (:auto-category t)))))))
      ("-p" "Projects (Top-Level)"
       ((todo
         ""
         ((org-super-agenda-groups
           '((:name none :children todo)
             (:discard (:anything t))))))))
      ("-e" "Tasks @ERRAND"
       ((tags-todo "@ERRAND"   ((org-agenda-dim-blocked-tasks 'invisible)))))
      ("-h" "Tasks @HOME"
       ((tags-todo "@HOME"     ((org-agenda-dim-blocked-tasks 'invisible)))))
      ("-c" "Tasks @COMPUTER"
       ((tags-todo "@COMPUTER" ((org-agenda-dim-blocked-tasks 'invisible)))))
      ("-s" "Tasks @SARA"
       ((tags-todo "@SARA"     ((org-agenda-dim-blocked-tasks 'invisible)))))
      ("-j" "Tasks @JACOB"
       ((tags-todo "@JACOB"    ((org-agenda-dim-blocked-tasks 'invisible)))))
      ("-a" "Tasks @ABI"
       ((tags-todo "@ABI"      ((org-agenda-dim-blocked-tasks 'invisible)))))))
   (org-archive-location ".%s.bak::")
   (org-babel-load-languages '((ditaa . t) (dot . t) (emacs-lisp . t) (gnuplot . t) (ledger . t) (shell . t) (shen . t)))
   (org-capture-templates '(("t" "TODO" entry (file+headline my/org-agenda-file "Inbox") "* TODO %?\n")))
   (org-completion-use-ido t)
   (org-crypt-key my/pgp-public-key)
   (org-crypt-tag-matcher "SECRET")
   (org-default-notes-file my/org-agenda-file)
   (org-directory my/org-directory)
   (org-ditaa-jar-path "/run/current-system/sw/lib/ditaa.jar")
   (org-enforce-todo-checkbox-dependencies t)
   (org-enforce-todo-dependencies t)
   (org-global-properties '(("Effort_ALL". "0 0:15 0:30 1:00 2:00 3:00 4:00")))
   (org-habit-graph-column 60)
   (org-hide-block-startup t)
   (org-hide-leading-stars t)
   (org-modules '(org-habit))
   (org-startup-folded 'content)
   (org-tag-alist '(("@ERRAND" . ?e)
                    ("@HOME" . ?h)
                    ("@COMPUTER" . ?c)
                    ("@SARA" . ?s)
                    ("@JACOB" . ?j)
                    ("@ABI" . ?a)))
   (org-odd-levels-only t)
   (org-outline-path-complete-in-steps nil)
   (org-refile-allow-creating-parent-nodes 'confirm)
   (org-refile-targets '((nil :maxlevel . 6) (org-agenda-files :maxlevel . 6)))
   (org-refile-use-outline-path 'file)
   (org-return-follows-link t)
   (org-tags-column 0)
   (org-tags-exclude-from-inheritance '("SECRET"))
;; (org-track-ordered-property-with-tag t)
;; (org-use-property-inheritance t)
   )
  :config
  (org-babel-do-load-languages 'org-babel-load-languages nil)
  (require 'org-crypt)
  (org-crypt-use-before-save-magic)
  :bind
  (("C-c a" . org-agenda)
   ("C-c c" . org-capture)
   ("C-c t" . (lambda () (interactive) (org-capture nil "t")))
   ("C-c s" . org-sort))
  :hook
  (kill-emacs-query-functions . 'my/org-clock-query-out))
(use-package org-ql)
(use-package org-caldav
  :disabled t
  :config
  (progn
    (setq org-caldav-url "https://www.google.com/calendar/dav"
          org-caldav-inbox my/org-agenda-file
          org-caldav-files (list my/org-calendar-file)
          org-icalendar-timezone "America/Los_Angeles")))
(use-package org-pomodoro)
(use-package org-super-agenda
  :hook (org-agenda-mode . org-super-agenda-mode))
(use-package ox-reveal
  :commands org-reveal
  :config
  (setq org-reveal-root
    (expand-file-name "~/.nix-profile/lib/node_modules/reveal")))
(use-package org-projectile
  :requires (:all org projectile)
  :custom
  ((org-projectile-projects-file my/org-projectile-file))
  :config
  (push (org-projectile-project-todo-entry) org-capture-templates)
  :bind
  (("C-c n p" . org-projectile-project-todo-completing-read)))
Deft
(use-package deft
  :custom
  ((deft-directory my/org-directory)
   (deft-default-extension "org")
   (deft-use-filename-as-title t))
  :bind
  (("C-x d" . deft)
   ("C-x D" . deft-new-file)))
Yasnippet
(use-package yasnippet)
Magit
(use-package magit :bind (("C-x g" . magit-status)))
Markdown
(use-package markdown-mode)
Nix
(use-package nix-mode
  :mode "\\.nix\\'")
Config/Data Files
(use-package dhall-mode)
(use-package json-mode)
(use-package toml-mode)
(use-package yaml-mode)
Web
(use-package web-mode)
(use-package js2-mode :custom ((js-indent-level 2)))
(use-package rjsx-mode :mode "\\.js\\'")
Helm
(use-package helm
  :defer t
  :bind (("M-x" . helm-M-x)
         ("C-x b" . helm-mini)
       ;;("C-x C-f" . helm-find-file)
         ("C-x C-b" . helm-buffers-list)
         ("C-h f" . helm-apropos))
  :hook (after-init . (lambda () (helm-mode +1))))
(use-package helm-dash)
(use-package helm-lsp
  :commands helm-lsp-workspace-symbol)
(use-package helm-projectile)
Company
(use-package company
  :hook (prog-mode . company-mode))
(use-package company-lsp
  :commands company-lsp)
(use-package company-ngram)
(use-package company-shell)
(use-package company-statistics)
(use-package company-web)
LSP
(use-package lsp-mode
  :config
  (require 'lsp-clients)
  ;; REGISTER A HIGHER PRIORITY REASONML LSP CLIENT MERLIN CONFIGURATION (UNLIKE
  ;; THE DEFAULT LSP CLIENT MERLIN CONFIGURATION THAT ONLY HAS SUPPORT FOR
  ;; OCAML)
  (lsp-register-client
   (make-lsp-client
    :new-connection (lsp-stdio-connection
                     '("esy" "exec-command" "ocamlmerlin-lsp"))
    :major-modes '(caml-mode reason-mode tuareg-mode)
    :server-id 'esy-ocamlmerlin-lsp))
  ;; DON'T USE FLYMAKE
  :custom ((lsp-prefer-flymake nil))
  :commands (lsp lsp-deferred))
(use-package lsp-origami)
(use-package lsp-treemacs)
(use-package lsp-ui :commands lsp-ui-mode)
Projectile
(use-package projectile
  :delight '(:eval (concat " " (projectile-project-name)))
  :bind-keymap ("C-c p" . projectile-command-map)
  :config (projectile-mode))
(use-package projectile-direnv)
(use-package projectile-git-autofetch)
Treemacs
(use-package treemacs
  :custom ((lsp-treemacs-sync-mode 1)))
Origami
(use-package origami
  :hook (origami-mode . lsp-origami-mode))
DAP
(use-package dap-mode)
OCaml / ReasonML
;; OCAML
(use-package utop)
(use-package ocp-indent
  :config (ocp-setup-indent))
(use-package tuareg
  ;; :requires (ocp-indent utop)
  :hook
  ((tuareg-mode . lsp-deferred)
   (tuareg-mode . utop-minor-mode)
   (tuareg-mode . (lambda ()
                    (add-hook 'before-save-hook
                              'ocp-indent-buffer nil t)))))
;; REASONML
(use-package reason-mode
  ;; :requires (utop)
  :hook
  ((reason-mode . lsp-deferred)
   (reason-mode . utop-minor-mode)
   (reason-mode . (lambda ()
                    (add-hook 'before-save-hook
                              'refmt-before-save))))
  :custom
  ((utop-command '("esy rtop -emacs"))))
;; DUNE (OCAML/REASONML) FILES ARE WRITTEN IN LISP
(let ((mode-alist (list '("dune-project\\'" . lisp-mode)
                        '("dune\\'" . lisp-mode)
                        '("jbuild\\'" . lisp-mode))))
  (dolist (mode mode-alist)
    (add-to-list 'auto-mode-alist mode)))
Rust
(use-package cargo)
(use-package rust-mode
  ;; :require (cargo)
  :custom (rust-format-on-save t)
  :hook
  ((rust-mode . lsp-deferred)
   (rust-mode . cargo-minor-mode)))
Haskell
;; (use-package haskell-mode)
;; (use-package ghcid :disabled t :load-path "lisp")
;; (use-package intero
;;   :config
;;   (flycheck-add-next-checker 'intero '(warning . haskell-hlint))
;;   :hook (haskell-mode . inter-mode))
;; (use-package dante
;;   :disabled t ; USE INTERO FOR NOW
;;   :hook (haskell-mode . dante-mode)
;;   :config
;;   (flycheck-add-next-checker 'haskell-dante '(warning . haskell-hlint)))
;; (use-package hindent :hook haskell-mode)
Idris
(use-package idris-mode)
Paredit
(use-package paredit
  :hook
  ((emacs-lisp-mode    . paredit-mode)
   (ielm-mode          . paredit-mode)
   (inferor-lisp-mode  . paredit-mode)
   (inferor-shen-mode  . paredit-mode)
   (lisp-mode          . paredit-mode)
   (plisp-mode         . paredit-mode)
   (plisp-repl-mode    . paredit-mode)
   (racket-mode        . paredit-mode)
   (scheme-mode        . paredit-mode)
   (shen-mode          . paredit-mode)))
Racket
(use-package racket-mode)
Shen
;; (use-package shen-elisp :defer t)
(use-package shen-mode
  :mode "\\.shen\\'")
PicoLisp
(use-package plisp-mode
  :config
  (setq plisp-picolisp-executable "picolisp"
        plisp-pil-executable "pil"
        plisp-pilindent-executable "pilIndent"))
Docker
(use-package dockerfile-mode)
Ledger
(use-package ledger-mode)
(use-package ledger-import)

Fish

Base16

if status --is-interactive
    if string match -q  "xfce4-terminal" $COLORTERM
        set -x TERM xterm-256color
    end
    if string match -r -q  '^.*color$' $TERM
        set BASE16_SHELL "$HOME/.config/base16-shell/"
        source "$BASE16_SHELL/profile_helper.fish"
        base16-phd
    end
end

Nix

set    NIX_LINK             $HOME/.nix-profile
set -x NIX_USER_PROFILE_DIR /nix/var/nix/profiles/per-user/$USER
set -x NIX_PROFILES         /nix/var/nix/profiles/default:$NIX_USER_PROFILE_DIR:$NIX_LINK
set -x NIXPKGS              $HOME/src/nixpkgs
set -x NIX_PATH             nixpkgs=$NIXPKGS:$HOME/.nix-defexpr/channels
set -x MANPATH              $NIX_LINK/share/man $MANPATH
set -x PATH                 $NIX_LINK/bin $PATH
if test -e /etc/ssl/certs/ca-certificates.crt
    set -g NIX_SSL_CERT_FILE /etc/ssl/certs/ca-certificates.crt
else if test -e $NIX_LINK/etc/ssl/certs/ca-bundle.crt
    set -g NIX_SSL_CERT_FILE $NIX_LINK/etc/ssl/certs/ca-bundle.crt
end
alias n  'nix'
alias nb 'nix-build  "<nixpkgs>"'
alias ne 'nix-env -f "<nixpkgs>"'
alias nr 'nix-run -f "<nixpkgs>"'
alias ns 'nix-shell  "<nixpkgs>"'

Direnv

direnv hook fish | source

Emacs

set -x EDITOR 'emacs -nw'
set -x ALTERNATE_EDITOR 'nano'
set -x GIT_EDITOR "$EDITOR"
alias e "$EDITOR"

Fishery

fisherman/getopts
fisherman/gitignore
fisherman/spin
jethrokuan/fzf
jethrokuan/z
rafaelrinaldi/pure

Git

alias g 'git'

Rust

set -g PATH "$HOME/.cargo/bin" $PATH

Tmux

alias t 'tmux -2 attach'

UUID

alias uuid 'cat /proc/sys/kernel/random/uuid'

FNM

set PATH /home/tim/.fnm $PATH
fnm env --multi | source

Opam

source $HOME/.opam/opam-init/init.fish > /dev/null 2> /dev/null; or true

Git

Alias

[alias]
        headless = !sh env git symbolic-ref HEAD refs/heads/headless && rm .git/index
        serve = !git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose
        hub = !git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose

User

[user]
        useconfigonly = true
        name = Tim Dysinger
        signingkey = 50FC AD52 7631 8A8E 0E8D  48EF 3F1A B897 B507 2741

Apply

[apply]
        whitespace = strip

Color

[color]
        branch = auto
        diff = auto
        interactive = auto
        status = auto

Core

[core]
        quotepath = false
        whitespace = trailing-space

Diff

[diff]
        rename = copy
        tool = meld

Help

[help]
        autocorrect = 10

Help

[merge]
        summary = true
        tool = meld

Push

[push]
        default = tracking

Pull

[pull]
        rebase = true

Rerere

[rerere]
        enabled = true

Rebase

[rebase]
        autosquash = true

GnuPG

GPG

keyserver hkps://hkps.pool.sks-keyservers.net
keyserver-options include-revoked no-honor-keyserver-url auto-key-retrieve

use-agent
no-comments
no-emit-version
keyid-format 0xlong
list-options show-uid-validity
verify-options show-uid-validity
with-fingerprint

default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
personal-cipher-preferences AES256 AES192 AES CAST5
personal-digest-preferences SHA512 SHA384 SHA256 SHA224
cert-digest-algo SHA512
default-key 50FCAD5276318A8E0E8D48EF3F1AB897B5072741

GPG Agent

default-cache-ttl 300
max-cache-ttl 3600

I3

Autolaunch

exec --no-startup-id xss-lock -- i3lock-fancy
exec --no-startup-id nitrogen --restore
exec --no-startup-id env KEYBASE_AUTOSTART=1 KEYBASE_START_UI=hideWindow keybase-gui
exec --no-startup-id syncthing-gtk

Mod Key

set $mod Mod4

WSAD

This is a right-handed WSAD (up/down/left/right) on Dvorak keyboards (CTHN).

set $w c
set $s t
set $a h
set $d n

Appearance

Base16 PHD

https://github.com/khamer/base16-i3

## Base16 PhD
# Author: Hennig Hasemann (http://leetless.de/vim.html)
#
# You can use these variables anywhere in the i3 configuration file.

set $base00 #061229
set $base01 #2a3448
set $base02 #4d5666
set $base03 #717885
set $base04 #9a99a3
set $base05 #b8bbc2
set $base06 #dbdde0
set $base07 #ffffff
set $base08 #d07346
set $base09 #f0a000
set $base0A #fbd461
set $base0B #99bf52
set $base0C #72b9bf
set $base0D #5299bf
set $base0E #9989cc
set $base0F #b08060

# Basic color configuration using the Base16 variables for windows and borders.
# Property Name         Border  BG      Text    Indicator Child Border
client.focused          $base05 $base0D $base00 $base0D $base0C
client.focused_inactive $base01 $base01 $base05 $base03 $base01
client.unfocused        $base01 $base00 $base05 $base01 $base01
client.urgent           $base08 $base08 $base00 $base08 $base08
client.placeholder      $base00 $base00 $base05 $base00 $base00
client.background       $base07
Fonts
font pango:Fira Mono
Status Bar
bar {
    status_command i3status-rs ~/.config/i3/status-rs.toml
    position top
    font pango:Fira Mono, FontAwesome 12
    colors {
        background $base00
        separator  $base01
        statusline $base04
        # State             Border  BG      Text
        focused_workspace  $base05 $base0D $base00
        active_workspace   $base05 $base03 $base00
        inactive_workspace $base03 $base01 $base05
        urgent_workspace   $base08 $base08 $base00
        binding_mode       $base00 $base0A $base00
    }
}
Windows
smart_gaps on
gaps inner 8
gaps outer 0
new_window pixel 1

Workspaces

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"
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
bindsym $mod+Left  workspace prev
bindsym $mod+Right workspace next
bindsym $mod+b                         workspace back_and_forth
bindsym $mod+Shift+b move container to workspace back_and_forth

Fullscreen

bindsym $mod+f fullscreen toggle

Keys

Media
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5%
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5%
bindsym XF86AudioMute        exec --no-startup-id pactl set-sink-mute   0 toggle
BACKLIGHT
bindsym XF86MonBrightnessUp   exec --no-start-up-id xbacklight -inc 10
bindsym XF86MonBrightnessDown exec --no-start-up-id xbacklight -dec 10

Floating

bindsym $mod+Shift+f   floating toggle
bindsym $mod+Control+f focus    mode_toggle
bindsym $mod+comma     focus    parent
bindsym $mod+o         focus    child

Focus

bindsym $mod+$w focus up
bindsym $mod+$s focus down
bindsym $mod+$a focus left
bindsym $mod+$d focus right

Move

bindsym $mod+Shift+$w move up
bindsym $mod+Shift+$s move down
bindsym $mod+Shift+$a move left
bindsym $mod+Shift+$d move right
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

Rofi

bindsym $mod+space exec rofi -show run

Terminal

bindsym $mod+Return exec xfce4-terminal

Screenshot

bindsym Print exec xfce4-screenshooter

Kill

bindsym $mod+Delete kill

Layout

bindsym $mod+s split toggle
bindsym $mod+l layout toggle all

Resize

set $resize "Resize Mode"
mode $resize {
  bindsym h       resize grow   height 10 px or 10 ppt
  bindsym w       resize grow   width  10 px or 10 ppt
  bindsym Shift+h resize shrink height 10 px or 10 ppt
  bindsym Shift+w resize shrink width  10 px or 10 ppt
  bindsym Return mode "default"
  bindsym Escape mode "default"
  bindsym $mod+r mode "default"
}
bindsym $mod+r mode $resize

Lock

bindsym XF86ScreenSaver exec --no-startup-id i3lock-fancy

I3

set $i3 "I3 Mode"
mode $i3 {
  bindsym l reload
  bindsym r restart
  bindsym q exec --no-startup-id xfce4-session-logout
  bindsym Return mode "default"
  bindsym Escape mode "default"
  bindsym $mod+i mode $i3
}
bindsym $mod+i mode $i3
focus_follows_mouse no

I3 Statusbar (Rust)

Icons
icons = "awesome"
Theme
[theme]
name = "plain"
Base16 PHD
i3status-rs variablebase16 variable
critical_bgbase00
critical_fgbase08
good_bgbase00
good_fgbase0B
idle_bgbase00
idle_fgbase06
info_bgbase00
info_fgbase07
separator_bgbase00
separator_fgbase05
warning_bgbase00
warning_fgbase09
[theme.overrides]
critical_bg  = "#061229"
critical_fg  = "#d07346"
good_bg      = "#061229"
good_fg      = "#99bf52"
idle_bg      = "#061229"
idle_fg      = "#dbdde0"
info_bg      = "#061229"
info_fg      = "#ffffff"
separator_bg = "#061229"
separator_fg = "#b8bbc2"
warning_bg   = "#061229"
warning_fg   = "#f0a000"
Disk Block
[[block]]
block = "disk_space"
# path = "/"
info_type = "available"
# unit = "GB"
interval = 5
# warning = 10.0
# alert = 5.0
Speedtest Block
[[block]]
block = "speedtest"
bytes = true
interval = 3600
Ethernet Block
[[block]]
block = "net"
device = "enp0s25"
ip = true
speed_up = false
graph_up = true
speed_down = false
graph_down = true
interval = 5
Wifi Block
[[block]]
block = "net"
device = "wlp3s0"
interval = 5
Load Block
[[block]]
block = "load"
interval = 5
format = "{1m}"
CPU Block
[[block]]
block = "cpu"
interval = 5
Memory Block
[[block]]
block = "memory"
format_mem = "{Mup}%"
format_swap = "{SUp}%"
display_type = "memory"
icons = true
clickable = true
interval = 5
warning_mem = 80
warning_swap = 80
critical_mem = 95
critical_swap = 95
Temperature Block
[[block]]
block = "temperature"
collapsed = false
interval = 5
format = "{min}° min, {max}° max, {average}° avg"
Battery Block
[[block]]
block = "battery"
interval = 5
Sound Block
[[block]]
block = "sound"
Time Block
[[block]]
block = "time"
interval = 60
format = "%R"

Nitrogen

[nitrogen]
recurse=true
dirs=~/Pictures;

Nix

Nix

substituters = https://cache.nixos.org https://cache.nixos.org/ https://unikernel.cachix.org https://dysinger.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= unikernel.cachix.org-1:Hv1qexIHDk8JBD7lj4B29orgBCM3Bcg4QbsvwKTEMo0= dysinger.cachix.org-1:1C/zX64wRsgCtmC+pjeAAiBPN8NtdE8AleZ/p+fX7K8=

Nixpkgs

{
  allowBroken = true;
  allowUnfree = true;
  packageOverrides = pkgs: {};
}

Cachix

—–BEGIN PGP MESSAGE—–

hQIAA9xFp9oryDhsAQ+gw5TG5NxVNbmnk+PLqcnocHI61EE/d5doOCnnB8+LyNPY z/D+iOvqloxJEW/zB+73xhDH3jAQXHhNTaRlIXwLUrVIKj25M5FpDa7L+nJez4PK VlIO+OrKIEcYXBWgEGlkHz9QmtVaDPj7+l6yM6X2CwAwCDjA1godO5E6y688IM2+ PYX+p7N+nI0i243uzLM982wcw5Hbjtx/E4h80IAyEMpGL3ShJ+cVSOyyRq3O+/av yaySWUVoDzSm6/n5JhTHBl5qx5nAIqLwuZu0kmMJzpW0quQembu8mHxZaeb+V/S+ ayu/GWw/E8FdloZ/jpAL4oMMx1GB5HcZSuiLjOY0ljW5lmnSAjT+BXQTaxHnDdQV xEzIP38NKwnZ+I2gCeamXMVVAgkzYU58wXLiVSSZfMtK7O20ZnxmQcgW4/FPjUDR tY6UbrQ4zboFsg8oNfpiOGe93om82cRlormyj2dMYf/GjWA0pldl6fhc3vTS6C3t D3bUA5z0QaNoj/DGyYmzrD+GODBkF1dU5C2LWaVwgNF5IQSVTXcNz1KpQBgMgMNt Dqb7s04eVAltF3dizXOmhDuAy6WelQiS3V2Qbjn8IgX34XLTeeja2HyjU9HjQiJF ix37XPxyZtg5qVdpXA3tGCgGxTB7RshessHKEpAyYreCQC3S6QHWAGc/vQ47dTVS uoHjHJLzWQBpN5vvkSAQAyVB51qnBA+9+qlizi0OtDu5LkQjbHgIqumOG13wX2Ka jrM/w0/F0yAr44CDvX+FkrcX4IucvL/5kd2MXArxFC1ZZZGochnobHmX5qBqF92a X4FXyQHRuoiEZN6kwBUjpmFnT6ddiO+RxdJPk3ZYUOSCFq/mYe4NX0i4fKuxFNrK 8e3X5Ylp7HvSx6xYY20sfnmq7hQhM2WeK1pMIHM7vDPh8N8PyigyEYyAmz80Ivv+ 7Nscc4EFilSshqJWNnGgq9dywFONH7hFEBKEr+TSH6kFHLNaOCuWrC3vpilc8uQA TOV1VNkUYzxTPNM2bz3Wxo7kkxeghR4cKnlcifPs7MeHmvMdJnwtR+Ygfjpg6kKt ksR5Wo4/+t7Ryjf1UgPLuKvJ+2GX6uzUwBZGYcAwou7zca37vxiaeBw6WhUASRKu tBRPDpUml9o6Jlo1atQCvAIJH2Aw5ncYM3pV7yiZfQUwCd0N92Sj28nCb7qIkSeK Awf7/oEwmc5fBZXxOw7X6DGxR6mgv6H3Z6ub4Nqep6IauVNdkaK9bBsZNQbl51xI 63FzXd3ZHZqQlm+aNi3bs3/79BtvAOT7bDFR0WnsJHz5WcA0g4K+c13/oZf1MzTe iInL11pDq+2OJmCENN/W55hRR86pOaEmMiefV4BhoBCHNZ40IuosXs8y4BEY/GbM PvxMqEpjdo8AxgB+/3qnbk8vG1VLFBw0tEd921VOLA== =zc3n —–END PGP MESSAGE—–

OpenSSH

Public Key

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAB9QC5c5Bgc7+U21djp3ilxNGlFG3CBD7O8Ky2qckq+Ub+NGIeYrVOoMaY4ys85yspoKivkykAvuhx/ty3UtAe/fDE3ySZmMlxQZ028WxL2IyN9+hOJTCTlZRckQ/hOLh5je7FdHJZvWaIIygJhhMxjW3pV9nqErQes5ne//yuj7YkSoRZEKqVhB93DW85sj5KsR/jbUD4oSkENK0vfsebkKzYp0Uv+widlzsKOTizvFTz1k0gsm8NWXHFimgmbZnCJbGoP4zE66DDQU7SEbhHfJUD99vzAVS7sLmQrU14MIqvFaAEfv9owdNjhmcg8f0Fpxdo/SqhBmxToZiGshf3aSc7EOCB7TfIkaTJDF+WupVeeAFU2g0Z/oZfrGkGuFD2qm8vwcS0OyN+s1HSl72sTtyGABEXeAEJCbjmDkTBGB5Mt9CF4Atq8oSuVnZnXzQ+NyAlHsLMycPn0cMp2U+rH5MoylpXB845AD+gGvots7GsE3a9NJkwfQ4kfKeBlF+fsv5RXCDxvq6P01J6tufqhA3uvJ+i5IG0C9G2ZJTfY0iFei2+EqPbi6T29wwpGTYZFITHZXG27hSI2/W7hICNPSYDc4X21NMZVzd4nXompNYzcarSf0W+ZwfmYIcsDHl8AI48DSklyzuL+4eTXoLT8AM5Li5wRw== tim

Private Key

—–BEGIN PGP MESSAGE—–

hQIAA9xFp9oryDhsAQ+go9AEPlUPOuc8sSeuz7E7ZLp3P+GUuq7wp3dSJ649A6iw vVBa1kmpRZaQaKk9LAB32rXoE1Xv1T71bRqVRxoDLGPG4moToX0EzoWvzi3LbCI3 jFNcVioXwG25rkR6Ot1ui6VKQmpJqA6PxcFYQAEk4XmVrFuzIpBbyZKVYrG670dZ 3AkiGHQWIKfEbHJXcOX5zzBktoIUp7AnRDPxWJZyjnNaQ4HDEjlwuyDORztn/00L bzXx3uJC7jV+p90cgkH4+Q2hjrXaXoE0EknaieRWhWz8pXa4f5ODYl7eqVMQoV1T zmZ8AmIVFuO1OO9n34j6shWnsaYiHBIVOu3mMKnrU6cBC2FrIO/8KVqvLmupjZlP 3R3WyEV5I7NdYrtAUok4izNrVy4VI5XSwnAvAviAF90tESWfFk6K8vP6Sc6FdVS1 kN+C2FwnwuNUj7qixn+zzsKpuwOnQl+Z6GUA0mBT5bx74eHaEstBdAYrG09lhSP0 X/ghW/Yx7oQBlUBJ0lohQmU6NpVIDVqzW1CpYTSCASlCkXBdNRXCVPEim2310iz+ bC/7V6/oPbjac76W04BRfD6yV94SETDRbTaZc+jTMDttDvHso73SVKpRisbgOkRO GQiFgUuzYYzTqwGKzgbdPZQCUIrFUkYz9oxL0u2V23a7BjTS6wGOtNsoQhwhpYGZ ueLcjPM0BEZHanVWTvsRuC//ADGup4EjoEOVTUrSWzAvB5Qdxi4nXBkcToXcrRW/ g348nBorF9l7M2n0fK40zLJzJhwt3eI2NULbV4YS6x+CLrbb4XOQiWpxrgv6DEQo ts+ef59q/gVGA4iXj+Yqd65ErHYfQDhxUmDT+BA0aKffUkS/aoY9WsdnfgLNgiUE pMTHWMjX2GSY+C6LErfnPQojiuu7ikhSZXbYnoai4d9YnfxB7yThi9CSA2zjB5Da hCydHRJJJBFDS1e1yH2wqF8xVmYguSX2/R4Xy3CFLHc5h1OphkHS58iqWKv8vHmE to0quI95TsScqtJQNAe1jtva63ZJf+ey03+uxfLcFSb1dB9ybUKY8Fk469+QMJZY RpRdXf1YxUR+WHJv6D/W8So/8akbC5SJQ84bC4pMf2M0J05aimuV4DqNSrBl7DLn yibdhp/u3JhqoUT00voHk58Mi4/oclVtpbItuChM823Lkf5qAZCyzFvTsKkfczYV Gq1uQ5Za/VB6RuFszkvGVEtcOCyvaVnfBMppAVX8nxRxWvwFYBt5DxRVRK7OUIlg u+F8cjyB1zHN8p4oaIdtAduGocK9vY4DXDwIfRCCEKZfmL46ogYIr/NY8au7nVbz wasnyx2CCIaOZem2bH0+GiJXsLUE6DcWm8MjCohku+vlzOOISuRBqBElph09pJom 8wCRcuvdhbRqqtclkpzW8LV3txz1Z1cMDEcZZ5Di2oVLDA4gJhjmxHMhV1V0nHtY 4SGt8argmK+W8M3mHkGfLnXKf70L66I370nIF1tdOrzChPDP1Tdb/4WCo56PMc4f UFV8a8X0GBXCp3brM0jJNf4RmZToIEbzXfTJWSNYHl+/ibRzsAtHECcpueCKvNJl J20te0Ujh+AzsC/zKMUzeQ94ZLCrB64vHa3vA3n+6JKXmz2JMlGWbqDR2VE9mRkY qRKlFpFF2rdKZXTj9K9MUA1vJlCO1x3zkmjaYJUkNmnh4n8uFwSKHWXEDH8bKjcx XG8ldxtuOrzy9ZpBjigmX+zpau7nzFJzbytIfQiLuh97x0XZJKu4ZvElwWfbkzwd o2jsS7HW27camanMB1ToAUDo9dtwaL+rvMxKCtt/BEfIfJiV4LDkRrXtSnqLqyiw GYzhI3lILMREJXbA+JpHrRbmmFbnI8QooCp1V6AkSDXVg5Ly+hO82kVhbW2ClBfA rV6dv0mnSBZLsbCprQTjg94hw3tOCunei1fZexjHlDWRW6nJRqEAYj3wej4684jS 5r16j5Klm6Bih2ZrUDsaRG1guWXz8teDNghZTnAoW6sc/9P3ijZQKVwUEdel14mO QcvWxX9fqP8Y4/3fhsiDl/oV83ViBxHKxECNiOfaBhGv5zttmGwCiAxPlITCwC4D djVgcx8hvhsM22W4O5xKBaJoAlWFdFl1fe0om9OuTVB79hV9nOxiYZDUL+r4tIog +6S7Mgrhwy9mVMdB7LFOqoVm9raLwRg4wGynlb8WV3KMVts1LOnGPLBm8k1PnzOx 5vngq34wX/9P0cGO4QIsqSgm+XtHz8+rd75RkPFLptZ558FPb6wA3tt5i4asDSCu NnGW4M1+b7Ln32cU1QNTSUXwBRdzWlN/VZzq4wiVTne7K7mO4J3x7oJLoq4mBZiZ kURnCLs/SE/BluvJhId53ylR2jHwcUvSQpggciebnYwLXXRCl0a4AwVcJcNnvus2 DyWty491qB5f6vRg5tMU0n4ipGBT1Y9Hrrv49bxL5jyQk4n6yaHZ+qsXCRUf9RAx Qr5BV0U6eyFsAAwxL99OwHzVroDMzj4eMURuoInDz3RU+qgH0fM2AHwlHXVV2eO9 UCEuKgUx6h42wrCopv8ozgxPXo8frUlIxRmZcfGpon+W+vDVaBcHXoz/RJFE5L2G VXC861QvK2Cq1xUpMEZkc3STnUYyuil1dqoW0KMs+9ooyzx1fAuylnOray1HUkOS mkI28UwN6/lNAyj10eDe+9Ot+tsnYD4kk5Pai5Y+BmYoj7s4PTFD86N0pVaiY3YK IGr6jtAzhoBqnrXlQHE40ukpXvtZH06MEMiRFl1r/ZKJKcR+l9CJ4b2lqUcoFzlP FrNz8/xIcd+v7VattjqFASIVGKnz7DWzKJ/3oygyqwPuh8o4qFiYTt2DmWXkKt72 VPiwV8WRuiNbsj8NXYSRzebmw5i1du656FtsbQtT27yYZHXbKDh/EWMKRKQAkzkT dZw+1ytPTe/MfM8DYIpSmlbis+/diolAXSh1mEtIIkArUdLu631bhECytq8KVTAV MOrjzLGCY3GKnIHeFZRHZSWCtACEg+b/33IKeDpsFGI63BpfQA6jLBAqnuTYbq5H AiGNSfQ8hlPM4p4fLHLUGm96t1g9TQYmU2mGjMxW/jJJT/ucB391hwlHphkUa66y 3N9UgKXmxpsGsZAHdZCommiryY5EQiBBxzTLwvnAvo7b0l7zc1h8vRWPeATY/gGU bPw+4UQJih4rcGEXJU9JorcAMhue8tdXdM9UhikIGLi0zg4TnSq+CvspPPZaUNVe PhujMKJ+ljY78D6OXgLKxZNM/p6d5iJQ9+v42TdsXWBh2JVR43JNP1aidetqsKxs CIXNjyXw7G4SDOpcHOE0uhPAphhmEyfJfB4ZNRkC4z2ZoDd6LyW+1heu8W3HRZZf dr7TyMhbIwE6P3/Ruz6j8vb8UQdb6WdG9bf4OOR5acBhEepQ1zF/Zn5bYCITqxPB TBkDNxhvfzqakCaektXPAQGNY5wZa/wlGHsu8tR6MZxpvuY9Ryup4RUCrWMbwSIn 6oFOErl+3TWTYx8yQtoLXiij0Nri8U9WCffFeAoYPn4P9Eob7snjbTX7RS5R/P9R uCoWAcELU23pwOzhUcXc2Kv+Ge329wo5L7YHj8fesBi6IX6Pcjut8zUk6XmTDzWM 3ZhqJ4cxKScEBN5UPjt3zBR260Prw6Tl/qhoMXG+9wofIBb8qoeLTKrxy/ciZzwm ei80Ljtf+ojTvNRbDuRUEadqPp+dbesLCFUWEs2dZ6w3qXmu7uq3Of/41J/uuaYh 0A3NRF5A3GWZheLFuT0Lpbx64VOGaeiXkdhVR6Wo9ln2jWUaMTYyv0fL9x5X7glk Ztujup3Rw0lDt0OBuRmO8k49h98VYrvN0CBwSXUDj2/YgMnBLCbRwYHHWjK4Yzrf 9au/Bvm9aI9OC0QkHztBZSNWBWuVeJ1ZuV9/3fFM2nvu74HJWB2mjRyl238q4G7x OFvnSfl+l8K0LnMfYLwavIKnwwigb+Fsp8hdSdHPHkZzMH90+1qmkA0WnjyTihZE 8pBxX2p0HSsRe4NJbJRueMRK0MQ3enSBS4aBynInnC8mEqa6ss+CwL2JeI3Y3Zxj RCW2X5UQkH3h7OYglIYDxg0UYGIytbC4RwUIHdUfe5GjU7DHK0vbaS9QYTMFt1RO VDUg4DRtpFGbNpiKgql5/Y9s6AlorYKqO48C5LJU/xm542DoZsMO9UubV9YXv0et +CYlII5qhmfbbexTo08xu1Py/V8wFS3baxxfdPfbsJrf7Pl/FHjYrjKGAJtYBZQl x//K1sMCvQ== =IMqG —–END PGP MESSAGE—–

Authorized Keys

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAB9QC5c5Bgc7+U21djp3ilxNGlFG3CBD7O8Ky2qckq+Ub+NGIeYrVOoMaY4ys85yspoKivkykAvuhx/ty3UtAe/fDE3ySZmMlxQZ028WxL2IyN9+hOJTCTlZRckQ/hOLh5je7FdHJZvWaIIygJhhMxjW3pV9nqErQes5ne//yuj7YkSoRZEKqVhB93DW85sj5KsR/jbUD4oSkENK0vfsebkKzYp0Uv+widlzsKOTizvFTz1k0gsm8NWXHFimgmbZnCJbGoP4zE66DDQU7SEbhHfJUD99vzAVS7sLmQrU14MIqvFaAEfv9owdNjhmcg8f0Fpxdo/SqhBmxToZiGshf3aSc7EOCB7TfIkaTJDF+WupVeeAFU2g0Z/oZfrGkGuFD2qm8vwcS0OyN+s1HSl72sTtyGABEXeAEJCbjmDkTBGB5Mt9CF4Atq8oSuVnZnXzQ+NyAlHsLMycPn0cMp2U+rH5MoylpXB845AD+gGvots7GsE3a9NJkwfQ4kfKeBlF+fsv5RXCDxvq6P01J6tufqhA3uvJ+i5IG0C9G2ZJTfY0iFei2+EqPbi6T29wwpGTYZFITHZXG27hSI2/W7hICNPSYDc4X21NMZVzd4nXompNYzcarSf0W+ZwfmYIcsDHl8AI48DSklyzuL+4eTXoLT8AM5Li5wRw== tim

Stack

Config

templates:
  params:
    author-name: Tim Dysinger
    author-email: tim@dysinger.net
    copyright: Tim Dysinger
    github-username: dysinger

Global Project

require-stack-version: '>=1.9'
resolver: ghc-8.6.5
system-ghc: true
packages: []
nix:
  enable: true
  pure: true
  packages: [ glpk pcre texinfo zlib ]

Tmux

Full 256 color support

set -g default-terminal "screen-256color"

Don’t use a login shell

set -g default-command "${SHELL}"

Always start a session (if needed)

new-session

Swap ctrl-b prefix key with ctrl-z

set -g prefix C-z
bind C-z send-prefix

Sessions

bind C new-session
bind R command-prompt "rename-session %%"
bind K command-prompt "kill-session"

Windows

bind c new-window -c "#{pane_current_path}"
bind r command-prompt "rename-window %%"
bind k command-prompt "kill-window ~"
bind | split-window -c "#{pane_current_path}" -h
bind - split-window -c "#{pane_current_path}"
bind z last-window
bind P swap-window -t -1
bind N swap-window -t +1

Panes

bind , select-pane -D
bind o select-pane -U
bind a select-pane -L
bind e select-pane -R
bind < resize-pane -D 5
bind O resize-pane -U 5
bind A resize-pane -L 5
bind E resize-pane -R 5

Applications

bind C-h new-window -n monitor "exec htop"
bind C-c new-window -n commander "exec mc"

Global settings

set -g aggressive-resize on
set -g automatic-rename off
set -g monitor-activity off
set -g visual-activity off

Unbind

unbind C-b
unbind S-Up
unbind S-Down
unbind S-Left
unbind S-Right

TPM

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
run -b '~/.tmux/plugins/tpm/tpm'
set -g status-right '%a %h-%d %H:%M'

XDB

Dirs

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_VIDEOS_DIR="$HOME/Videos"

Locale

en_US

XFCE4

Terminal

[Configuration]
BackgroundDarkness=0.950000
ColorBackground=#061229
ColorCursor=x
ColorForeground=#b8bbc2
ColorPalette=#061229;#d07346;#99bf52;#fbd461;#5299bf;#9989cc;#72b9bf;#b8bbc2;#717885;#d07346;#99bf52;#fbd461;#5299bf;#9989cc;#72b9bf;#ffffff
FontName=Fira Mono 12
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBordersDefault=FALSE
MiscConfirmClose=TRUE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscCycleTabs=TRUE
MiscDefaultGeometry=80x24
MiscHighlightUrls=TRUE
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMouseAutohide=FALSE
MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscToolbarDefault=FALSE
ScrollingBar=TERMINAL_SCROLLBAR_NONE

Xmodmap

clear lock
clear control
keycode 66 = Control_L
add control = Control_L Control_R

Xresources

Xft

Xft.antialias: 1
Xft.autohint: 0
Xft.dpi: 96
Xft.hinting: 1
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
Xft.rgba: rgb

XTerm

XTerm*faceName: Fira Code
XTerm*faceSize: 12

URxvt

URxvt.font: xft:Fira Code:size=12,style=medium
URxvt.*Font: xft:Fira Code:size=12,style=bold
URxvt.letterSpace: -1
URxvt*background: rgba:0000/0000/0200/c800
URxvt*depth: 32
URxvt*fading: 30
URxvt*jumpScroll: false
URxvt*loginShell: true
URxvt*scrollTtyKeypress: false
URxvt*scrollTtyOutput: false
URxvt*skipScroll: false
URxvt*termName: xterm-256color
URxvt*visualBell: true
URxvt.saveLines: 0
URxvt.scrollBar: false

Base16

! Base16 PhD
! Scheme: Hennig Hasemann (http://leetless.de/vim.html)

#define base00 #061229
#define base01 #2a3448
#define base02 #4d5666
#define base03 #717885
#define base04 #9a99a3
#define base05 #b8bbc2
#define base06 #dbdde0
#define base07 #ffffff
#define base08 #d07346
#define base09 #f0a000
#define base0A #fbd461
#define base0B #99bf52
#define base0C #72b9bf
#define base0D #5299bf
#define base0E #9989cc
#define base0F #b08060

*foreground:   base05
#ifdef background_opacity
*background:   [background_opacity]base00
#else
*background:   base00
#endif
*cursorColor:  base05

*color0:       base00
*color1:       base08
*color2:       base0B
*color3:       base0A
*color4:       base0D
*color5:       base0E
*color6:       base0C
*color7:       base05

*color8:       base03
*color9:       base08
*color10:      base0B
*color11:      base0A
*color12:      base0D
*color13:      base0E
*color14:      base0C
*color15:      base07

! Note: colors beyond 15 might not be loaded (e.g., xterm, urxvt),
! use 'shell' template to set these if necessary
*color16:      base09
*color17:      base0F
*color18:      base01
*color19:      base02
*color20:      base04
*color21:      base06

Xsession

Environment

export XKB_DEFAULT_LAYOUT=dvorak

X DPMS

xset dpms 180 240 300
xset s 180
xset s blank

Keyboard

setxkbmap -layout us -variant dvorak
xmodmap ~/.Xmodmap

Session

exec xfce4-session

Zeal

[docsets]
path=/home/tim/.docsets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment