From 40704fda2e0013b60b1b48cad5fafb7c3f5039fd Mon Sep 17 00:00:00 2001 From: Ian Keane Date: Mon, 27 Nov 2023 08:58:26 -0500 Subject: [PATCH] More updates to emacs config and guix manifest --- guix/init.org | 127 ++++++++++++++++++++++++++++++++++++---------- guix/manifest.scm | 3 +- 2 files changed, 101 insertions(+), 29 deletions(-) diff --git a/guix/init.org b/guix/init.org index f9fb44b..d9cca8c 100644 --- a/guix/init.org +++ b/guix/init.org @@ -159,6 +159,23 @@ To get started, run =C-c C-v t= ;; Update files when changed on disk (global-auto-revert-mode 1) + (use-package solaire-mode + :config (solaire-global-mode +1)) + + (use-package doom-themes + :ensure t + :config + ;; Global settings (defaults) + (setq doom-themes-enable-bold t ; if nil, bold is universally disabled + doom-themes-enable-italic t) ; if nil, italics is universally disabled + ; (load-theme 'doom-one t) + + ;; Enable flashing mode-line on errors + (setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme + (doom-themes-treemacs-config) + ;; Corrects (and improves) org-mode's native fontification. + (doom-themes-org-config)) + (set-frame-font "DejaVu Sans Mono 14") (use-package simple-modeline :hook (after-init . simple-modeline-mode)) @@ -214,11 +231,11 @@ To get started, run =C-c C-v t= #+end_src ** Direct keymaps #+begin_src emacs-lisp - (global-set-key (kbd "s-c") 'delete-window) - (global-set-key (kbd "s-h") 'windmove-left) - (global-set-key (kbd "s-j") 'windmove-down) - (global-set-key (kbd "s-k") 'windmove-up) - (global-set-key (kbd "s-l") 'windmove-right) + ;; (global-set-key (kbd "s-c") 'delete-window) + ;; (global-set-key (kbd "s-h") 'windmove-left) + ;; (global-set-key (kbd "s-j") 'windmove-down) + ;; (global-set-key (kbd "s-k") 'windmove-up) + ;; (global-set-key (kbd "s-l") 'windmove-right) ; (define-key evil-normal-state-map (kbd "s-d") 'kill-this-buffer) ; (define-key evil-normal-state-map (kbd "s-n") 'projectile-next-project-buffer) ; (define-key evil-normal-state-map (kbd "s-p") 'projectile-previous-project-buffer) @@ -226,7 +243,7 @@ To get started, run =C-c C-v t= ; (define-key evil-normal-state-map (kbd "s-L") 'split-and-follow-vertically) ; (define-key evil-normal-state-map (kbd "s-b") 'buffer-menu) ; (define-key evil-normal-state-map (kbd "s-x") 'execute-extended-command) - (global-set-key (kbd "s-SPC") 'tab-next) + ;; (global-set-key (kbd "s-SPC") 'tab-next) (global-set-key (kbd "") 'keyboard-escape-quit) (use-package winner @@ -236,11 +253,31 @@ To get started, run =C-c C-v t= #+end_src -** Workspaces +** Windows and Workspaces #+begin_src emacs-lisp (use-package perspective) (unless (equal persp-mode t) (persp-mode)) + (use-package ace-window) + (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)) + (defvar aw-dispatch-alist + '((?x aw-delete-window "Delete Window") + (?m aw-swap-window "Swap Windows") + (?M aw-move-window "Move Window") + (?c aw-copy-window "Copy Window") + (?j aw-switch-buffer-in-window "Select Buffer") + (?n aw-flip-window) + ;;(?u aw-switch-buffer-other-window "Switch Buffer Other Window") + (?u aw-switch-buffer-other-window 'winner-undo) + (?U aw-switch-buffer-other-window 'winner-redo) + (?c aw-split-window-fair "Split Fair Window") + (?v aw-split-window-vert "Split Vert Window") + (?b aw-split-window-horz "Split Horz Window") + (?o delete-other-windows "Delete Other Windows") + (?? aw-show-dispatch-help)) + "List of actions for `aw-dispatch-default'.") + ;; TODO: maybe put workspace controls in aw-dispatch? + #+end_src ** Dired #+begin_src emacs-lisp @@ -280,6 +317,7 @@ To get started, run =C-c C-v t= #+end_src ** Treemacs #+begin_src emacs-lisp + (use-package all-the-icons) (use-package treemacs-all-the-icons) #+end_src ** Which-key @@ -291,6 +329,12 @@ To get started, run =C-c C-v t= (setq which-key-idle-delay 0.3)) #+end_src ** General +- map spc W for split and winner-undo / redo operations on 2 windows +- bind persp-mode +- bind lispy for colemak-dh +- bind lispy doc features and ide-like features +- bind embark +- bind commentary #+begin_src emacs-lisp (use-package general :ensure t @@ -316,6 +360,7 @@ To get started, run =C-c C-v t= "*" '(counsel-locate :which-key "Fuzzy find file") ;; find-file? consult-locate? "d" '(docker :which-key "Docker") "i" '(custom/conditional-imenu :which-key "Imenu") ;; consult-outline? + "w" '(ace-window :which-key "Window") ;; Agenda "a" '(:ignore t :which-key "Agenda") @@ -446,6 +491,39 @@ To get started, run =C-c C-v t= "hwm" '(which-key-show-major-mode :which-key "Show major mode") "hwt" '(which-key-show-top-level :which-key "Show top-level") + "m" '(:ignore t :which-key "media") + "my" '(empv-youtube :which-key "youtube") + "mt" '(empv-toggle :which-key "toggle") + "mT" '(empv-toggle-video :which-key "toggle-video") + "mq" '(empv-exit :which-key "quit") + "ms" '(empv-display-current :which-key "show currently playing") + + "mr" '(:ignore t :which-key "radio") + "mrr" '(empv-play-radio) + "mrR" '(empv-play-random-channel) + "mrl" '(empv-log-current-radio-song-name) + + "mp" '(:ignore t :which-key "playlist") + "mpP" '(empv-playlist :which-key "playlist") + "mps" '(empv-playlist-select :which-key "select") + "mpn" '(empv-playlist-next :which-key "next") + "mpp" '(empv-playlist-prev :which-key "prev") + "mpc" '(empv-playlist-clear :which-key "clear") + "mpS" '(empv-playlist-shuffle :which-key "shuffle") + + "mf" '(:ignore t :which-key "file") + "mff" '(empv-play-file :which-key "play file") + "mfd" '(empv-play-directory :which-key "play directory") + + "mv" '(:ignore t :which-key "volume") + "mvd" '(empv-volume-down :which-key "down") + "mvu" '(empv-volume-up :which-key "up") + + "mc" '(:ignore t :which-key "chapter") + "mcp" '(empv-chapter-prev :which-key "prev") + "mcn" '(empv-chapter-next :which-key "next") + "mcs" '(empv-chapter-select :which-key "select") + ;; Notes "nd" '(deft :which-key "Deft") "nt" '(org-todo-list :which-key "Todo list") @@ -519,7 +597,7 @@ To get started, run =C-c C-v t= "TAB R" '(+workspace/restore-last-session :which-key "Restore last session") "TAB s" '(+workspace/save :which-key "Save workspace") "TAB x" '(+workspace/kill-session :which-key "Delete session") - )) + )) #+end_src @@ -709,6 +787,15 @@ All lisp-family languages :config (lispyville-set-key-theme '(operators c-w additional))) #+end_src +* Markups +#+begin_src emacs-lisp + (use-package markdown-mode + :mode ("\\.md\\'" . markdown-mode)) + ;;(use-package evil-markdown + ;; :mode ("\\.md\\'" . evil-markdown-mode)) + (use-package json-mode) + (use-package yaml-mode) +#+end_src * Shells ** Enable fish completions Uses the external fish program to provide fish-style completions to eshell etc @@ -876,6 +963,8 @@ Uses the external fish program to provide fish-style completions to eshell etc * Todo ** General - Refactor to use use-package more effectively + - Use :mode and :config like [[https://ianyepan.github.io/posts/setting-up-use-package/][here]] + - Set things which should be set before package install in :init ** Terminals - More terminals @@ -921,10 +1010,6 @@ Uses the external fish program to provide fish-style completions to eshell etc ** Keybindings - put general bindings in separate keymaps in separate sections - map hyper bindings for buffer nav and jumping -- bind persp-mode -- bind lispy for colemak-dh -- bind lispy doc features and ide-like features -- bind embark - evil-org - map alignment functions in 'code'section - define global meow-left and vim-left, swich contextually @@ -934,20 +1019,6 @@ Uses the external fish program to provide fish-style completions to eshell etc - map default-text-scale operations - empv - map - - empv-play-radio - - empv-play-random-channel - - empv-log-current-radio-song-name - - empv-youtube - - empv-play - - empv-play-{file,audio,video,directory,radio,random-channel} - - empv-playlist-{select,next,prev,clear,shuffle} - - empv-display-current - - empv-toggle - - empv-toggle-video - - empv-youtube - - empv-volume-{down,up} - - empv-chapter-{prev,next,select} - - empv-exit - configure - empv-radio-log-file - empv-radio-log-format @@ -983,7 +1054,8 @@ variables and their documentations). ** Research - What does C-d do when in a minibuffer for vertico? - embark - +- ace-window / embark integration + ** System crafters videos - [[https://www.youtube.com/watch?v=CUkuyW6hr18][5 Hacks to improve org roam]] - [[https://www.youtube.com/watch?v=C1kwStlEick][Improving the IRC experience]] @@ -993,7 +1065,6 @@ variables and their documentations). - [[https://www.youtube.com/watch?v=za99DwdZEyg][Automated website publishing w/ org and sourcehut]] - [[https://www.youtube.com/watch?v=SCPoF1PTZpI][Emacs presentations]] - [[https://www.youtube.com/watch?v=0C16LLHGYzk&t=1882s][Converting a literate config to guix home]] -- [[https://www.youtube.com/watch?v=zWIByv8JOrg][Do we really need use-package]] - [[https://www.youtube.com/playlist?list=PLEoMzSkcN8oM-kA19xOQc8s0gr0PpFGJQ][Emacs mail playlist]] - [[https://www.youtube.com/watch?v=qk2Is_sC8Lk][Embark]] diff --git a/guix/manifest.scm b/guix/manifest.scm index a762552..6f8cf1d 100644 --- a/guix/manifest.scm +++ b/guix/manifest.scm @@ -24,4 +24,5 @@ "font-bitstream-vera" "acpi" "curl" - "mpv")) + "mpv" + "unzip"))