added .config files

This commit is contained in:
opal
2021-12-20 07:53:59 -08:00
parent ced0cbdea4
commit 8427d4c768
5 changed files with 654 additions and 1 deletions

447
.config/emacs/init.el Normal file
View File

@@ -0,0 +1,447 @@
(setq package-enable-at-startup nil)
;; * Package Management with straight.el
(unless (featurep 'straight)
;; Bootstrap straight.el
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage)))
;; Use straight.el for use-package expressions
(straight-use-package 'use-package)
(scroll-bar-mode -1) ;; Disable scroll bar
(tool-bar-mode -1) ;; Disable tool bar menu
(tooltip-mode -1) ;; Disable tooltips
(set-fringe-mode 10) ;; Disable fringe mode
(menu-bar-mode -1) ;; Disable menu bar
(global-display-line-numbers-mode t) ;; Display line numbers
(set-default 'truncate-lines nil) ;; Wrap lines at end of screen
(setq visible-bell t) ;; Visible flash to represent a bell
(setq x-select-enable-clipboard t) ;; Enable clipboard
(global-tab-line-mode 1)
(setq inhibit-startup-message t)
;; Disable line mode for specific major/minor modes.
(dolist (mode '(org-mode-hook))
'term-mode-hook
'shell-mode-hook
'eshell-mode-hook
(add-hook mode (lambda () (display-line-numbers-mode 0))))
(use-package doom-modeline
:straight t
:init (doom-modeline-mode 1)
:custom ((doom-modeline-height 15)))
(use-package which-key
:straight t
:defer 0
:diminish which-key-mode
:config
(which-key-mode)
(setq which-key-idle-delay 0.3))
(use-package alert
:straight t
:config
(setq alert-default-style 'notification))
(setq large-file-warning-threshold nil) ;; Disables warnings for large files
(setq vc-follow-symlinks t) ;; Disables warnings for symlinks
(use-package helpful
:straight t
:commands (helpful-callable helpful-variable helpful-command helpful-key)
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key))
(use-package super-save
:straight t
:config
(super-save-mode +1))
;; Auto reverting Changed Files
(setq global-auto-revert-non-file-buffers nil)
(global-auto-revert-mode -1)
(use-package modus-themes
:straight t
:init
(setq modus-themes-italic-constructs t
modus-themes-bold-constructs nil
modus-themes-region '(accented bg-only no-extend)
modus-themes-org-blocks 'greyscale
modus-themes-paren-match 'intense
modus-themes-mixed-fonts t)
(modus-themes-load-themes)
:config
(modus-themes-load-vivendi)
:bind
("<f5>" . modus-themes-toggle))
(set-face-attribute 'default nil :font "Fira Code" :height 125 :weight 'medium)
(set-face-attribute 'variable-pitch nil :font "Fira Sans" :height 1.0 :weight 'regular)
(set-face-attribute 'fixed-pitch nil :font "Fira Code" :height 1.0 :weight 'medium)
(global-set-key (kbd "<escape>") 'keyboard-escape-quit) ;; Escape exits out of prompts
;; Define Leader Key
(use-package general
:straight t
:config
(general-evil-setup t)
(general-create-definer opal/leader-keys
:keymaps '(normal insert visual emacs)
:prefix "SPC"
:global-prefix "C-SPC")
;; Define Keybindings (potentially move into own file)
(opal/leader-keys
;; Leader-map
";" #'pp-eval-expression ;; Eval expression
":" #'execute-extended-command ;; Eq to M-x
"u" #'universal-argument ;; Universal argument
"w" #'evil-window-map ;; Window functions
"." #'find-file ;; Find file (opens in mini-buffer)
"," #'persp-switch-to-buffer ;; Switch to perspective.el minibuffer
"<" #'switch-to-buffer ;; Switch to non-perspective.el minibuffer
"s" #'swiper ;; Search in current buffer
;; Magit
"gg" #'magit-status
"gi" #'magit-init
"gc" #'magit-clone
;; Buffers
"bd" #'kill-buffer
;; Org
; Babel
"obt" #'org-babel-tangle
; Gen
"ol" #'org-insert-link
"or" #'org-reload
; Agenda
"oa" #'org-agenda
;; Eval
"eb" #'eval-buffer
"er" #'eval-region
"ef" #'eval-defun
"el" #'eval-last-sexp
;; Describe
"df" #'describe-function
"dv" #'describe-variable
"ds" #'describe-symbol
"dk" #'describe-key
"dp" #'describe-package))
(use-package evil
:straight t
:init
(setq evil-want-integration t)
(setq evil-want-keybinding nil)
(setq evil-want-C-u-scroll t)
(setq evil-want-C-i-jump nil)
(setq evil-respect-visual-line-mode t)
:config
(evil-mode 1)
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
(define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join)
;; Use visual line motions even outside of visual-line-mode buffers
(evil-global-set-key 'motion "j" 'evil-next-visual-line)
(evil-global-set-key 'motion "k" 'evil-previous-visual-line)
(evil-set-initial-state 'messages-buffer-mode 'normal)
(evil-set-initial-state 'dashboard-mode 'normal))
(use-package evil-collection
:straight t
:after evil
:config
(evil-collection-init))
(use-package ivy
:straight t
:diminish
:bind (("C-s" . 'swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-reverse-i-search-kill))
:config
(ivy-mode 1))
(use-package ivy-rich
:straight t
:after ivy
:init (ivy-rich-mode 1))
(use-package counsel
:straight t
:bind
(("C-M-j" . 'counsel-switch-buffer)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:config
(counsel-mode 1))
;; Set org agenda dir
(setq org-directory "~/Org/")
;; Tell Org to stop indenting inside of org source blocks.
(setq org-edit-src-content-indentation 0)
;; Open links in browser
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "firefox")
(defun opal/org-font-setup ()
;; Replace list hyphen with dot
(font-lock-add-keywords 'org-mode
'(("^ *\\([-]\\) "
(0 (prog1 () (compose-region (match-beginning 1) (match-end 1)
""))))))
;; Set faces for heading levels
(dolist (face '((org-level-1 . 1.2)
(org-level-2 . 1.1)
(org-level-3 . 1.05)
(org-level-4 . 1.0)
(org-level-5 . 1.1)
(org-level-6 . 1.1)
(org-level-7 . 1.1)
(org-level-8 . 1.1)))
(set-face-attribute (car face) nil :font "Cantarell" :weight 'regular :height (cdr face)))
;; Ensure that anything that should be fixed-pitch in Org files appears that way
(set-face-attribute 'org-block nil :foreground nil :inherit 'fixed-pitch)
(set-face-attribute 'org-table nil :inherit 'fixed-pitch)
(set-face-attribute 'org-formula nil :inherit 'fixed-pitch)
(set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-table nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch))
(set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch))
(set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)
(set-face-attribute 'line-number nil :inherit 'fixed-pitch)
(set-face-attribute 'line-number-current-line nil :inherit 'fixed-pitch))
(defun opal/org-mode-setup ()
(org-indent-mode)
(variable-pitch-mode 1)
(visual-line-mode 1)
(setq org-startup-folded t))
(use-package org
:straight t
:commands (org-capture org-agenda)
:hook (org-mode . opal/org-mode-setup)
:config
(setq org-ellipsis "")
(setq org-agenda-start-with-log-mode t)
(setq org-log-done 'time)
(setq org-log-into-drawer t)
(setq org-agenda-files
'("~/Org/projects/"
"~/Org/tasks/"))
(require 'org-habit)
(add-to-list 'org-modules 'org-habit)
(setq org-habit-graph-column 60)
(setq org-todo-keywords
'((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d!)")
(sequence "BACKLOG(b)" "PLAN(p)" "READY(r)" "ACTIVE(a)" "REVIEW(v)" "WAIT(w@/!)" "HOLD(h)" "|" "COMPLETED(c)" "CANC(k@)")))
(setq org-refile-targets
'(("archive.org" :maxlevel . 1)
("planner.org" :maxlevel . 1)))
;; Save Org buffers after refiling!
(advice-add 'org-refile :after 'org-save-all-org-buffers)
(setq org-tag-alist
'((:startgroup)
; Put mutually exclusive tags here
(:endgroup)
("@errand" . ?E)
("@home" . ?H)
("@work" . ?W)
("agenda" . ?a)
("planning" . ?p)
("publish" . ?P)
("batch" . ?b)
("note" . ?n)
("idea" . ?i)))
;; Configure custom agenda views
(setq org-agenda-custom-commands
'(("d" "Dashboard"
((agenda "" ((org-deadline-warning-days 7)))
(todo "NEXT"
((org-agenda-overriding-header "Next Tasks")))
(tags-todo "agenda/ACTIVE" ((org-agenda-overriding-header "Active Projects")))))
("n" "Next Tasks"
((todo "NEXT"
((org-agenda-overriding-header "Next Tasks")))))
;; Low-effort next actions
("e" tags-todo "+TODO=\"NEXT\"+Effort<15&+Effort>0"
((org-agenda-overriding-header "Low Effort Tasks")
(org-agenda-max-todos 20)
(org-agenda-files org-agenda-files)))))
;; Create capture templates
(setq org-capture-templates
`(("t" "Tasks")
("tt" "Task" entry (file+olp "~/org/planner/tasks.org" "Inbox")
"* TODO %?\n %U\n %a\n %i" :empty-lines 1)
("p" "Projects")
("pp" "Project File" entry (file+olp "~/org/projects/auto-infra-overview.org" "Inbox")
"* TODO %?\n %U\n %a\n %i" :empty-lines 1)))
;; Init org font setup
(opal/org-font-setup))
(use-package org-bullets
:straight t
:after org
:hook (org-mode . org-bullets-mode)
:custom
(org-bullets-bullet-list '("" "" "" "" "" "" "")))
(defun opal/org-mode-visual-fill ()
(setq visual-fill-column-width 100
visual-fill-column-center-text t)
(visual-fill-column-mode 1))
(use-package visual-fill-column
:straight t
:hook (org-mode . opal/org-mode-visual-fill))
;; Load languages for babel code blocks.
(with-eval-after-load 'org
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)))
(push '("conf-unix" . conf-unix) org-src-lang-modes))
;; Set geiser default language
(setq geiser-default-implementation '(guile))
(with-eval-after-load 'org
(require 'org-tempo)
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("py" . "src python"))
(add-to-list 'org-structure-template-alist '("yml" . "src yaml"))
(add-to-list 'org-structure-template-alist '("scm" . "src scheme"))
(add-to-list 'org-structure-template-alist '("js" . "src javascript"))
(add-to-list 'org-structure-template-alist '("html" . "src html"))
(add-to-list 'org-structure-template-alist '("css" . "src css"))
(add-to-list 'org-structure-template-alist '("cl" . "src lisp")))
(use-package flycheck :straight t)
(use-package rainbow-delimiters
:straight t
:init
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
(add-hook 'org-mode-hook #'rainbow-delimiters-mode))
(use-package rainbow-mode :straight t)
(use-package parinfer
:straight t
:init
(progn
(setq parinfer-extensions
'(defaults
pretty-parens
evil))
(add-hook 'prog-mode-hook #'parinfer-mode)))
(use-package magit
:straight t)
;; (use-package mu4e
;; :straight t
;; :config
;; ;; This is set to 't' to avoid mail syncing issues when using mbsync
;; (setq mu4e-change-filenames-when-moving t)
;; ;; Refresh mail using isync every 5 minutes
;; (setq mu4e-update-interval (* 5 60))
;; (setq mu4e-get-mail-command "mbsync -a -c ~/Dotfiles/.config/mbsync/mbsyncrc")
;; (setq mu4e-maildir "~/Mail")
;; (setq mu4e-contexts
;; (list
;; ;; Opal.sh
;; (make-mu4e-context
;; :name "Ry P."
;; :match-func
;; (lambda (msg)
;; (when msg
;; (string-prefix-p "/opal.sh" (mu4e-message-field msg :maildir))))
;; :vars '((user-mail-address . "ry@opal.sh")
;; (user-full-name . "Ry P.")
;; (mu4e-drafts-folder . "/opal.sh/Drafts")
;; (mu4e-sent-folder . "/opal.sh/Sent")
;; (mu4e-trash-folder . "/opal.sh/Trash")))))
;; (setq mu4e-maildir-shortcuts
;; '(("/opal.sh/Inbox" . ?i)
;; ("/opal.sh/Sent" . ?s)
;; ("/opal.sh/Trash" . ?t)
;; ("/opal.sh/Drafts" . ?d))))
;; (use-package erc
;; :straight t
;; (setq erc-server "irc.libera.chat" ;sets default server
;; erc-nick "opalvaults" ; Sets nick
;; erc-user-full-name "opalvaults"
;; erc-track-shorten-start 8
;; erc-kill-buffer-on-part t
;; erc-auto-query 'bury
;; erc-fill-column 90
;; erc-fill-function 'erc-fill-static
;; erc-fill-static-center 20
;; erc-track-visibility nil
;; erc-interpret-mirc-color t
;; erc-rename-buffers t
;; erc-track-exclude-server-buffer t))

16
.config/guix/channels.scm Normal file
View File

@@ -0,0 +1,16 @@
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
(channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))))

75
.config/guix/system.scm Normal file
View File

@@ -0,0 +1,75 @@
;; This is an operating system configuration generated
;; by the graphical installer.
(use-modules (gnu)
(nongnu packages linux))
(use-service-modules
cups
desktop
networking
ssh
xorg)
(operating-system
(kernel linux)
(firmware (list linux-firmware))
(locale "en_US.utf8")
(timezone "America/Los_Angeles")
(keyboard-layout (keyboard-layout "us"))
(host-name "borges")
(users (cons* (user-account
(name "opal")
(comment "opal")
(group "users")
(home-directory "/home/opal")
(supplementary-groups
'("wheel"
"netdev"
"audio"
"video")))
%base-user-accounts))
(packages
(append
(list (specification->package "awesome")
(specification->package "nss-certs")
(specification->package "xterm")
(specification->package "emacs")
(specification->package "git")
(specification->package "bluez")
(specification->package "bluez-alsa")
(specification->package "pulseaudio")
(specification->package "vim")
(specification->package "exfat-utils")
(specification->package "stow")
(specification->package "stumpwm"))
%base-packages))
(services
(append
(list (service gnome-desktop-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout))))
%desktop-services))
(bootloader
(bootloader-configuration
(bootloader grub-efi-bootloader)
(targets (list "/boot/efi"))
(keyboard-layout keyboard-layout)))
(mapped-devices
(list (mapped-device
(source
(uuid "40aa6387-e935-4f70-8e7d-1975678a5a32"))
(target "cryptroot")
(type luks-device-mapping))))
(file-systems
(cons* (file-system
(mount-point "/")
(device "/dev/mapper/cryptroot")
(type "btrfs")
(dependencies mapped-devices))
(file-system
(mount-point "/boot/efi")
(device (uuid "1C3B-10F5" 'fat32))
(type "vfat"))
%base-file-systems)))

115
.config/stumpwm/config Normal file
View File

@@ -0,0 +1,115 @@
(in-package :stumpwm)
;; (defvar *sbcl-path* "~/.guix-home/profile/share/common-lisp/sbcl/")
;; StumpWM Modules
;; (stumpwm:add-to-load-path "~/.guix-home/profile/share/common-lisp/sbcl/stumpwm-swm-gaps")
;; (stumpwm:add-to-load-path "~/.guix-home/profile/share/common-lisp/sbcl/stumpwm-ttf-fonts")
;; (stumpwm:add-to-load-path "~/.guix-home/profile/share/common-lisp/sbcl/stumpwm-stumptray")
;; (stumpwm:add-to-load-path "~/.guix-home/profile/share/common-lisp/sbcl/stumpwm-kbd-layouts")
(run-commands
"gnewbg I"
"gnew II"
"gnewbg III"
"gnewbg IV"
"gnewbg V"
"gnewbg-float F")
;; (set-prefix-key (kbd "s-d"))
;; (setf *mouse-focus-policy* :click)
;; (setq *message-window-gravity* :top)
;; (setq *message-window-padding* 10)
;; (setq *message-window-y-padding 10)
;; (setq *input-window-gravity* :center)
;; (load-module "kbd-layouts")
;; (run-shell-command "xmodmap ~/Dotfiles/.config/Xmodmap")
;; Set some super key bindings
(define-key *top-map* (kbd "s-h") "move-focus left")
(define-key *top-map* (kbd "s-l") "move-focus right")
(define-key *top-map* (kbd "s-j") "move-focus down")
(define-key *top-map* (kbd "s-k") "move-focus up")
(define-key *top-map* (kbd "s-H") "move-window left")
(define-key *top-map* (kbd "s-L") "move-window right")
(define-key *top-map* (kbd "s-J") "move-window down")
(define-key *top-map* (kbd "s-K") "move-window up")
(define-key *top-map* (kbd "s-f") "fullscreen")
(define-key *top-map* (kbd "s-r") "iresize")
(define-key *top-map* (kbd "s-Q") "delete")
(define-key *top-map* (kbd "s-SPC") "run-shell-command emacsclient -e \"(call-interactively #'app-launcher-run-app)\"")
(define-key *top-map* (kbd "s-L") "run-shell-command slock")
(define-key *top-map* (kbd "s-RET") "run-shell-command alacritty")
(define-key *top-map* (kbd "s-E") "run-shell-command emacs")
(define-key *top-map* (kbd "s-W") "run-shell-command firefox")
(define-key *top-map* (kbd "s-TAB") "next-in-frame")
(define-key *top-map* (kbd "s-S-TAB") "prev-in-frame")
(define-key *top-map* (kbd "s-1") "gselect I")
(define-key *top-map* (kbd "s-2") "gselect II")
(define-key *top-map* (kbd "s-3") "gselect III")
(define-key *top-map* (kbd "s-4") "gselect IV")
(define-key *top-map* (kbd "s-5") "gselect V")
(define-key *top-map* (kbd "s-!") "gmove I")
(define-key *top-map* (kbd "s-@") "gmove II")
(define-key *top-map* (kbd "s-#") "gmove III")
(define-key *top-map* (kbd "s-$") "gmove IV")
(define-key *top-map* (kbd "s-%") "gmove V")
;; Brightness and volume
;; (define-key *top-map* (kbd "XF86MonBrightnessDown") "run-shell-command brightnessctl set 5%-")
;; (define-key *top-map* (kbd "XF86MonBrightnessUp") "run-shell-command brightnessctl set +5%")
;; (define-key *top-map* (kbd "XF86AudioLowerVolume") "run-shell-command amixer set Master 3%- unmute")
;; (define-key *top-map* (kbd "XF86AudioRaiseVolume") "run-shell-command amixer set Master 3%+ unmute")
;; (define-key *top-map* (kbd "XF86AudioMute") "run-shell-command amixer set Master toggle")
;; Set UI colors
(set-border-color "#c792ea")
(set-bg-color "#232635")
(set-fg-color "#A6Accd")
;; (set-msg-border-width 2)
;; (load-module "swm-gaps")
;; (setf swm-gaps:*inner-gaps-size* 3)
;; (run-commands "toggle-gaps-on")
;; Enable TTF fonts
;; (load-module "ttf-fonts")
;; (setf xft:*font-dirs* '("/home/opal/.guix-home/profile/share/fonts/"))
;; (setf clx-truetype:+font-cache-filename+ "/home/daviwil/.local/share/fonts/font-cache.sexp")
;; (xft:cache-fonts)
;; (set-font (make-instance 'xft:font :family "Fira Mono" :subfamily "Regular" :size 16))
;; ;; Set mode line colors
;; (setf *mode-line-background-color* "#232635")
;; (setf *mode-line-foreground-color* "#A6Accd")
;; ;; Set the mode line format
;; (setf *screen-mode-line-format* "[^B%n^b] %W ^>%d")
;; (run-commands "mode-line" "mode-line")
;; ;; Start the mode line
;; (run-commands "mode-line")
;; ;; Add the system tray module
;; (load-module "stumptray")
;; (stumptray:stumptray)
;; (run-shell-command "feh --bg-scale ~/.dotfiles/backgrounds/samuel-ferrara-uOi3lg8fGl4-unsplash.jpg")
;; (run-shell-command "dunst")
;; (run-shell-command "nm-applet")
;; (run-shell-command "syncthing-gtk --minimized")
;; (run-shell-command "redshift -l 37.983810:23.727539 -t 6500:3500")
;; (run-shell-command "emacs")
(require :slynk)
(slynk:create-server :dont-close t)

2
.gitignore vendored
View File

@@ -1,4 +1,4 @@
.* ./*
!Emacs.org !Emacs.org
!StumpWM.org !StumpWM.org
!Guix.org !Guix.org