Fleshed out new emacs config, added Guix.org, added Stump

This commit is contained in:
opal
2021-12-19 18:44:35 -08:00
parent bca10bd035
commit f94954578b
6 changed files with 286 additions and 138 deletions

Binary file not shown.

View File

@@ -2,17 +2,17 @@ IMAPAccount opal.sh
Host imap.opal.sh
Port 993
User ry@opal.sh
PassCmd "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/dotfiles/.config/mbsync/.mu4e.gpg"
PassCmd "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/Dotfiles/.config/mbsync/.mu4e.gpg"
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-bundle.crt
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore opal-remote
Account opal.sh
MaildirStore opal-local
Path ~/mail/opal.sh/
Inbox ~/mail/opal.sh/Inbox
Trash ~/mail/opal.sh/Trash
Path ~/Mail/opal.sh/
Inbox ~/Mail/opal.sh/Inbox
Trash ~/Mail/opal.sh/Trash
SubFolders Verbatim
Channel opal.sh

View File

@@ -1,15 +0,0 @@
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

80
Guix.org Normal file
View File

@@ -0,0 +1,80 @@
#+TITLE: Guix Configuration
Disclaimer: I use the nonguix channel only for the use of Firefox (which I hope to replace with Nyxt Browser in the future). I do not use non-free software or non-free drivers/firmware on any machine I own, nor do I advocate for the use of the nonguix channel.
I use GNU Guix as my operating system. I'm able to declare the state of the operating system in a series of configuration files in a similar way to Puppet. Eventually I would like to integrate Guix Home into this configuration.
#+begin_src scheme
(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)))
#+end_src

View File

@@ -1,5 +1,5 @@
#+PROPERTY: header-args:emacs-lisp :tangle ~/Dotfiles/.config/emacs/init.el :mkdirp yes :lexical yes
#+TITLE: Emacs Configuration
#+PROPERTY: header-args:emacs-lisp :tangle ~/Dotfiles/config/emacs/init.el :mkdirp yes :lexical yes
Todo:
- Yassnippet
@@ -49,12 +49,14 @@ I use [[https://github.com/raxod502/straight.el][straight.el]] for managing pack
(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))
(dolist (mode '(org-mode-hook))
'term-mode-hook
'shell-mode-hook
'eshell-mode-hook
(add-hook mode (lambda () (display-line-numbers-mode 0))))
#+end_src
@@ -116,12 +118,11 @@ Helpful.el is a package that reformats the describe-X functions to be much more
(use-package super-save
:straight t
:config
(super-save-mode +1)
(super-save-auto-save-when-idle t))
(super-save-mode +1))
;; Auto reverting Changed Files
(setq global-auto-revert-non-file-buffers t)
(global-auto-revert-mode 1)
(setq global-auto-revert-non-file-buffers nil)
(global-auto-revert-mode -1)
#+end_src
* Theme
I really enjoy [[https://protesilaos.com/emacs/modus-themes][Modus Themes]] by Protesilaos Stavrou. They are minimal, high contrast, and easy on the eyes.
@@ -177,11 +178,41 @@ I really enjoy having a leader key and eschewing the Control and Alt keys entire
":" #'execute-extended-command ;; Eq to M-x
"u" #'universal-argument ;; Universal argument
"w" #'evil-window-map ;; Window functions
"h" #'help-map ;; Helper 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
"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))
#+end_src
** Evil
@@ -220,8 +251,7 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
(use-package ivy
:straight t
:diminish
:bind
(("C-s" . swiper)
:bind (("C-s" . 'swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-l" . ivy-alt-done)
@@ -237,7 +267,7 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
(use-package ivy-rich
:straight t
:after ivy
:init (icy-rich-mode 1)))
:init (ivy-rich-mode 1))
#+end_src
** Counsel
@@ -256,8 +286,17 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
#+end_src
* Org
#+begin_src emacs-lisp
;; 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
@@ -289,11 +328,6 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
(set-face-attribute 'line-number nil :inherit 'fixed-pitch)
(set-face-attribute 'line-number-current-line nil :inherit 'fixed-pitch))
;; 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)
(defun opal/org-mode-setup ()
(org-indent-mode)
@@ -313,8 +347,8 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
(setq org-agenda-files
'("~/Org/projects/"
"~/Org/tasks/"
))
"~/Org/tasks/"))
(require 'org-habit)
(add-to-list 'org-modules 'org-habit)
@@ -372,18 +406,26 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
("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))
#+end_src
;; Change default pretty bullets to circles
** Pretty Bullets
Creates nicer (-) bullets.
#+begin_src emacs-lisp
(use-package org-bullets
:straight t
:after org
:hook (org-mode . org-bullets-mode)
:custom
(org-bullets-bullet-list '("" "" "" "" "" "" "")))
#+end_src
** Visual Fill Mode
Creates margins in Org mode to make it more pleasant to look at.
#+begin_src emacs-lisp
; Creates margins, and centerrs content in org mode.
(defun opal/org-mode-visual-fill ()
(setq visual-fill-column-width 100
visual-fill-column-center-text t)
@@ -393,7 +435,10 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
:straight t
:hook (org-mode . opal/org-mode-visual-fill))
;; Org Babel
#+end_src
** Org Babel
#+begin_src emacs-lisp
;; Load languages for babel code blocks.
(with-eval-after-load 'org
(org-babel-do-load-languages
@@ -418,12 +463,45 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
(add-to-list 'org-structure-template-alist '("css" . "src css"))
(add-to-list 'org-structure-template-alist '("cl" . "src lisp")))
#+end_src
* Programming/Editor
** General
*** Syntax (Flycheck)
#+begin_src emacs-lisp
(use-package flycheck :straight t)
#+end_src
*** Rainbow Delimiters
#+begin_src emacs-lisp
(use-package rainbow-delimiters
:straight t
:init
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
(add-hook 'org-mode-hook #'rainbow-delimiters-mode))
#+end_src
*** Rainbow Mode
Sets HTML strings to have the background of the color they represent.
#+begin_src emacs-lisp
(use-package rainbow-mode :straight t)
#+end_src
** Lisp
#+begin_src emacs-lisp
(use-package parinfer
:straight t
:init
(progn
(setq parinfer-extensions
'(defaults
pretty-parens
evil))
(add-hook 'prog-mode-hook #'parinfer-mode)))
#+end_src
* Magit
#+begin_src emacs-lisp
(use-package magit
:straight t)
#+end_src
* E-Mail
I've been using IceDove/Thunderbird for e-mail until I get around to making this a comparable solutions.
#+begin_src emacs-lisp
;; (use-package mu4e
;; :straight t
@@ -459,6 +537,8 @@ At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it
;; ("/opal.sh/Drafts" . ?d))))
#+end_src
* IRC
Right now I'm pretty happy with Matrix bridging into IRC rooms so this will stay commented out for now. I might try out the Emacs Matrix client at some point soon.
#+begin_src emacs-lisp
;; (use-package erc
;; :straight t

View File

@@ -1,5 +1,5 @@
#+TITLE: StumpWM Configuration
#+PROPERTY: header-args:emacs-lisp :tangle ~/Dotfiles/config/stumpwm/init.el :mkdirp yes
#+PROPERTY: header-args:lisp :tangle ~/Dotfiles/.config/stumpwm/config :mkdirp yes
In my quest to make my computer a Lisp machine in its own right, I am using StumpWM as my window manager.
@@ -9,10 +9,10 @@ In my quest to make my computer a Lisp machine in its own right, I am using Stum
;; (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")
;; (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")
#+end_src
* Environment
@@ -29,24 +29,24 @@ In my quest to make my computer a Lisp machine in its own right, I am using Stum
** Set Prefix
#+begin_src lisp
(set-prefix-key (kbd "s-d"))
;; (set-prefix-key (kbd "s-d"))
#+end_src
** Focus window with mouth
#+begin_src lisp
setf *mouse-focus-policy* :click)
;; (setf *mouse-focus-policy* :click)
#+end_src
** Messages
#+begin_src lisp
(setq *message-window-gravity* :top)
(setq *message-window-padding* 10)
(setq *message-window-y-padding 10)
: (setq *message-window-y-padding 10)
#+end_src
** Command Window
#+begin_src lisp
(setq *input-window-gravity* :center)
;; (setq *input-window-gravity* :center)
#+end_src
* Keyboard
** Load Keyboard Layout Module
@@ -54,8 +54,8 @@ setf *mouse-focus-policy* :click)
;; (load-module "kbd-layouts")
#+end_src
** Remap Caps Lock
#+begin_src lisp
setf kbd-layouts:*caps-lock-behavior* :esc)
#+begin_src lisp :tangle yes
;; (setf kbd-layouts:*caps-lock-behavior* :esc)
#+end_src
** Xmodmap
#+begin_src lisp
@@ -70,16 +70,19 @@ setf kbd-layouts:*caps-lock-behavior* :esc)
(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-S-h") "move-window left")
(define-key *top-map* (kbd "s-S-l") "move-window right")
(define-key *top-map* (kbd "s-S-j") "move-window down")
(define-key *top-map* (kbd "s-S-k") "move-window 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-S-q") "delete")
(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 "C-s-l") "run-shell-command slock")
(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")
@@ -90,11 +93,11 @@ setf kbd-layouts:*caps-lock-behavior* :esc)
(define-key *top-map* (kbd "s-4") "gselect IV")
(define-key *top-map* (kbd "s-5") "gselect V")
(define-key *top-map* (kbd "s-S-1") "gmove I")
(define-key *top-map* (kbd "s-S-2") "gmove II")
(define-key *top-map* (kbd "s-S-3") "gmove III")
(define-key *top-map* (kbd "s-S-4") "gmove IV")
(define-key *top-map* (kbd "s-S-5") "gmove 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%-")
@@ -111,13 +114,13 @@ setf kbd-layouts:*caps-lock-behavior* :esc)
(set-border-color "#c792ea")
(set-bg-color "#232635")
(set-fg-color "#A6Accd")
(set-msg-border-width 2)
;; (set-msg-border-width 2)
#+end_src
** Gaps
#+begin_src lisp
(load-module "swm-gaps")
(setf swm-gaps:*inner-gaps-size* 3)
(run-commands "toggle-gaps-on")
;; (load-module "swm-gaps")
;; (setf swm-gaps:*inner-gaps-size* 3)
;; (run-commands "toggle-gaps-on")
#+end_src
** Fonts
#+begin_src lisp
@@ -132,28 +135,28 @@ setf kbd-layouts:*caps-lock-behavior* :esc)
#+end_src
** Mode-Line
#+begin_src lisp
;; Set mode line colors
(setf *mode-line-background-color* "#232635")
(setf *mode-line-foreground-color* "#A6Accd")
;; ;; 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")
;; ;; 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")
;; ;; Start the mode line
;; (run-commands "mode-line")
#+end_src
** System tray
#+begin_src lisp
;; Add the system tray module
(load-module "stumptray")
(stumptray:stumptray)
;; ;; Add the system tray module
;; (load-module "stumptray")
;; (stumptray:stumptray)
#+end_src
* Applications
#+begin_src lisp
;; (run-shell-command "feh --bg-scale ~/.dotfiles/backgrounds/samuel-ferrara-uOi3lg8fGl4-unsplash.jpg")
(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")