From 4ccd1e5ec05660daaa1b4975aeee9cb272427536 Mon Sep 17 00:00:00 2001 From: Liam Malone Date: Fri, 22 Aug 2025 11:54:03 -0400 Subject: [PATCH] system updates --- configs/emacs/config.org | 645 ++++++++++++++++------------------ configs/hypr/hyprland.conf | 2 +- configs/river/init | 14 +- configs/waybar/modules.jsonc | 2 + flake.lock | 84 ++--- hosts/darp8/configuration.nix | 1 + hosts/darp8/file.nix | 12 +- hosts/darp8/home.nix | 8 +- hosts/darp8/pkgs.nix | 1 + 9 files changed, 364 insertions(+), 405 deletions(-) diff --git a/configs/emacs/config.org b/configs/emacs/config.org index e7ef4f3..cb70d2a 100644 --- a/configs/emacs/config.org +++ b/configs/emacs/config.org @@ -18,7 +18,7 @@ - [[#flycheck][FLYCHECK]] - [[#fonts][FONTS]] - [[#setting-the-font-face][Setting The Font Face]] - - [[#zoom-inout][Zoom In/Out]] + - [[#zoom-inout][ZOOM IN/OUT]] - [[#gnuplot][GNUPLOT]] - [[#image-dir-ed][IMAGE DIR-ED]] - [[#indentingtabs][INDENTING/TABS]] @@ -31,19 +31,19 @@ - [[#rainbow-mode][RAINBOW MODE]] - [[#reload-emacs][RELOAD EMACS]] - [[#shells-and-terminals][SHELLS AND TERMINALS]] - - [[#eshell][Eshell]] + - [[#eshell][ESHELL]] - [[#sudo-edit][SUDO EDIT]] - [[#theme][THEME]] - [[#transparency][TRANSPARENCY]] - [[#gui-tweaks][GUI TWEAKS]] - - [[#disable-menubar-toolbars-and-scrollbars][Disable Menubar, Toolbars and Scrollbars]] - - [[#display-line-numbers-and-truncated-lines][Display Line Numbers and Truncated Lines]] + - [[#disable-menubar-toolbars-and-scrollbars][DISABLE MENUBAR, TOOLBARS AND SCROLLBARS]] + - [[#display-line-numbers-and-truncated-lines][DISPLAY LINE NUMBERS AND TRUNCATED LINES]] - [[#ivy-counsel][IVY (COUNSEL)]] - [[#language-support][LANGUAGE SUPPORT]] - [[#org-mode][ORG MODE]] - - [[#enabling-table-of-contents][Enabling Table of Contents]] - - [[#enabling-org-bullets][Enabling Org Bullets]] - - [[#source-code-block-tag-expansion][Source Code Block Tag Expansion]] + - [[#enabling-table-of-contents][ENABLING TABLE OF CONTENTS]] + - [[#enabling-org-bullets][ENABLING ORG BULLETS]] + - [[#source-code-block-tag-expansion][SOURCE CODE BLOCK TAG EXPANSION]] - [[#which-key][WHICH-KEY]] * IMPORTANT PROGRAMS TO LOAD FIRST @@ -170,7 +170,7 @@ (lm/leader-keys "SPC" '(counsel-M-x :wk "Counsel M-x") "." '(find-file :wk "Find file") - "f c" '((lambda () (interactive) (find-file "~/nixos/modules/old_configs/emacs/config.org")) :wk "Edit emacs config") + "f c" '((lambda () (interactive) (find-file "~/personal/nixos/configs/emacs/config.org")) :wk "Edit emacs config") "f r" '(counsel-recentf :wk "Find recent files") "TAB TAB" '(comment-line :wk "Comment lines")) @@ -181,9 +181,9 @@ "h r r" '(reload-init-file :wk "Reload emacs config")) ;; "h r r" '((lambda () (interactive) (load-file user-init-file)) :wk "Reload emacs config")) - (lm/leader-keys - "i" '(:ignore t :wk "Insert") - "i p" '(org-download-screenshot :wk "Insert screenshot (org)")) + ;; (lm/leader-keys + ;; "i" '(:ignore t :wk "Insert") + ;; "i p" '(org-download-screenshot :wk "Insert screenshot (org)")) (lm/leader-keys "t" '(:ignore t :wk "Toggle") @@ -342,9 +342,7 @@ Defining the various fonts emacs will use ** Setting The Font Face #+begin_src emacs-lisp - - (set-face-attribute 'default nil - ;; try switch to Source Code Pro +(set-face-attribute 'default nil :font "FiraCodeNerdFontMono" :height 110 :weight 'medium) @@ -354,8 +352,9 @@ Defining the various fonts emacs will use :weight 'medium) (set-face-attribute 'fixed-pitch nil :font "FiraCodeNerdFontMono" - :height 110 + :height 130 :weight 'medium) + ;; Makes commented text and keywords italics. ;; This is working in emacsclient but not emacs. ;; Your font must have an italic face available. @@ -363,419 +362,369 @@ Defining the various fonts emacs will use :slant 'italic) (set-face-attribute 'font-lock-keyword-face nil :slant 'italic) - ;; This sets the default font on all graphical frames created after restarting Emacs. ;; Does the same thing as 'set-face-attribute default' above, but emacsclient fonts ;; are not right unless I also add this method of setting the default font. - (add-to-list 'default-frame-alist '(font . "FiraCodeNerdFontMono-14")) + (add-to-list 'default-frame-alist '(font . "FiraCodeNerdFontMono-15")) - ;; Uncomment the following line if line spacing needs adjusting. - ;; (setq-default line-spacing 0.12) + ;; UNCOMMENT THE FOLLOWING LINE IF LINE SPACING NEEDS ADJUSTING. + ;; (SETQ-DEFAULT LINE-SPACING 0.12) -#+end_src +#+END_SRC -** Zoom In/Out -Enable zoom in/out with C-=/- and also for C-scrl-up/down -#+begin_src emacs-lisp -(global-set-key (kbd "C-=") 'text-scale-increase) -(global-set-key (kbd "C--") 'text-scale-decrease) -(global-set-key (kbd "") 'text-scale-increase) -(global-set-key (kbd "") 'text-scale-decrease) -#+end_src +** ZOOM IN/OUT +ENABLE ZOOM IN/OUT WITH C-=/- AND ALSO FOR C-SCRL-UP/DOWN +#+BEGIN_SRC EMACS-LISP +(GLOBAL-SET-KEY (KBD "C-=") 'TEXT-SCALE-INCREASE) +(GLOBAL-SET-KEY (KBD "C--") 'TEXT-SCALE-DECREASE) +(GLOBAL-SET-KEY (KBD "") 'TEXT-SCALE-INCREASE) +(GLOBAL-SET-KEY (KBD "") 'TEXT-SCALE-DECREASE) +#+END_SRC * GNUPLOT -#+begin_src emacs-lisp - (use-package gnuplot-mode) - ;; automatically open files ending with .gp or .gnuplot in gnuplot mode - ;; (setq auto-mode-alist - ;; (append '(("\\.\\(gp\\|gnuplot\\)$" . gnuplot-mode)) auto-mode-alist))) +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE GNUPLOT-MODE) + ;; AUTOMATICALLY OPEN FILES ENDING WITH .GP OR .GNUPLOT IN GNUPLOT MODE + ;; (SETQ AUTO-MODE-ALIST + ;; (APPEND '(("\\.\\(GP\\|GNUPLOT\\)$" . GNUPLOT-MODE)) AUTO-MODE-ALIST))) -#+end_src +#+END_SRC * IMAGE DIR-ED -#+begin_src emacs-lisp - (use-package image-dired+) -#+end_src +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE IMAGE-DIRED+) +#+END_SRC * INDENTING/TABS -#+begin_src emacs-lisp - (setq-default indent-tabs-mode nil) - (setq-default tab-width 4) - (setq-default indent-line-function 'insert-tab) - (setq-default c-default-style "linux" - c-basic-offset 4) - ;; if indent-tabs-mode is off, untabify before saving - ;;(add-hook 'write-file-hooks - ;; (lambda () (if (not indent-tabs-mode) - ;; (untabify (point-min) (point-max))))) -#+end_src +#+BEGIN_SRC EMACS-LISP + (SETQ-DEFAULT INDENT-TABS-MODE NIL) + (SETQ-DEFAULT TAB-WIDTH 2) + (SETQ-DEFAULT INDENT-LINE-FUNCTION 'INSERT-TAB) + (SETQ-DEFAULT C-DEFAULT-STYLE "LINUX" + C-BASIC-OFFSET 2) + ;; IF INDENT-TABS-MODE IS OFF, UNTABIFY BEFORE SAVING + ;;(ADD-HOOK 'WRITE-FILE-HOOKS + ;; (LAMBDA () (IF (NOT INDENT-TABS-MODE) + ;; (UNTABIFY (POINT-MIN) (POINT-MAX))))) +#+END_SRC * LIGATURES -#+begin_src emacs-lisp - ;; This assumes you've installed the package via MELPA. - (use-package ligature - :config - ;; Enable the "www" ligature in every possible major mode - (ligature-set-ligatures 't '("www")) - ;; Enable traditional ligature support in eww-mode, if the - ;; `variable-pitch' face supports it - (ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi")) - ;; Enable all FiraMonoNerdFont and Fira Code ligatures in programming modes - - (ligature-set-ligatures 'prog-mode - '(;; == === ==== => =| =>>=>=|=>==>> ==< =/=//=// =~ - ;; =:= =!= - ("=" (rx (+ (or ">" "<" "|" "/" "~" ":" "!" "=")))) - ;; ;; ;;; - (";" (rx (+ ";"))) - ;; && &&& - ("&" (rx (+ "&"))) - ;; !! !!! !. !: !!. != !== !~ - ("!" (rx (+ (or "=" "!" "\." ":" "~")))) - ;; ?? ??? ?: ?= ?. - ("?" (rx (or ":" "=" "\." (+ "?")))) - ;; %% %%% - ("%" (rx (+ "%"))) - ;; |> ||> |||> ||||> |] |} || ||| |-> ||-|| - ;; |->>-||-<<-| |- |== ||=|| - ;; |==>>==<<==<=>==//==/=!==:===> - ("|" (rx (+ (or ">" "<" "|" "/" ":" "!" "}" "\]" - "-" "=" )))) - ;; \\ \\\ \/ - ("\\" (rx (or "/" (+ "\\")))) - ;; ++ +++ ++++ +> - ("+" (rx (or ">" (+ "+")))) - ;; :: ::: :::: :> :< := :// ::= - (":" (rx (or ">" "<" "=" "//" ":=" (+ ":")))) - ;; // /// //// /\ /* /> /===:===!=//===>>==>==/ - ("/" (rx (+ (or ">" "<" "|" "/" "\\" "\*" ":" "!" - "=")))) - ;; .. ... .... .= .- .? ..= ..< - ("\." (rx (or "=" "-" "\?" "\.=" "\.<" (+ "\.")))) - ;; -- --- ---- -~ -> ->> -| -|->-->>->--<<-| - ("-" (rx (+ (or ">" "<" "|" "~" "-")))) - ;; *> */ *) ** *** **** - ("*" (rx (or ">" "/" ")" (+ "*")))) - ;; www wwww - ("w" (rx (+ "w"))) - ;; <> " "---" "-<<" + "<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" + "<--" "<-<" "<<=" "<<-" "<<<" "<+>" "" "###" "#_(" "..<" + "..." "+++" "/==" "///" "_|_" "WWW" "&&" "^=" "~~" "~@" "~=" + "~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|" + "[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:" + ">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" + "<$" "<=" "<>" "<-" "<<" "<+" "" "++" "?:" + "?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)" + "\\\\" "://")) + ;; ENABLES LIGATURE CHECKS GLOBALLY IN ALL BUFFERS. YOU CAN ALSO DO IT + ;; PER MODE WITH `LIGATURE-MODE'. + (GLOBAL-LIGATURE-MODE T)) +#+END_SRC * MARKDOWN MODE -#+begin_src emacs-lisp -(use-package markdown-mode - :ensure t - :mode ("README\\.md\\'" . gfm-mode) - :init (setq markdown-command "multimarkdown")) +#+BEGIN_SRC EMACS-LISP +(USE-PACKAGE MARKDOWN-MODE + :ENSURE T + :MODE ("README\\.MD\\'" . GFM-MODE) + :INIT (SETQ MARKDOWN-COMMAND "MULTIMARKDOWN")) -#+end_src +#+END_SRC * ORG DOWNLOAD -#+begin_src emacs-lisp - - (use-package org-download - :after org - :defer nil - :custom - (org-download-method 'directory) - (org-download-image-dir "~/emacs/images/") - (org-download-heading-lvl 0) - (org-download-timestamp "org_%Y%m%d-%H%M%S_") - (org-image-actual-width 400) - (org-download-screenshot-method "WAYLAND_DISPLAY=wayland-1 wl-paste -t image/png > '%s'.png") - :bind - ("C-M-y" . org-download-screenshot file) - :config - (require 'org-download)) -#+end_src +#+BEGIN_SRC EMACS-LISP +(USE-PACKAGE ORG-DOWNLOAD + :AFTER ORG + :DEFER NIL + :CUSTOM + (ORG-DOWNLOAD-METHOD 'DIRECTORY) + (ORG-DOWNLOAD-IMAGE-DIR "~/EMACS/IMAGES/") + (ORG-DOWNLOAD-HEADING-LVL 0) + (ORG-DOWNLOAD-TIMESTAMP "ORG_%Y%M%D-%H%M%S_") + (ORG-IMAGE-ACTUAL-WIDTH 400) + (ORG-DOWNLOAD-SCREENSHOT-METHOD "WAYLAND_DISPLAY=WAYLAND-1 WL-PASTE -T IMAGE/PNG > '%S'.PNG") + :BIND + ("C-M-Y" . ORG-DOWNLOAD-SCREENSHOT) + :CONFIG + (REQUIRE 'ORG-DOWNLOAD)) +#+END_SRC * PULSE -Pulse highlight a line on certain actions +PULSE HIGHLIGHT A LINE ON CERTAIN ACTIONS -# #+begin_src emacs-lisp -# (use-package pulse -# :ensure nil -# :defer -# :init -# (defun pulse-line (&rest _) -# "Pulse the current line" -# (pulse-momentary-highlight-one-line (point))) +# #+BEGIN_SRC EMACS-LISP +# (USE-PACKAGE PULSE +# :ENSURE NIL +# :DEFER +# :INIT +# (DEFUN PULSE-LINE (&REST _) +# "PULSE THE CURRENT LINE" +# (PULSE-MOMENTARY-HIGHLIGHT-ONE-LINE (POINT))) -# (dolist (command '(scroll-up-command -# scroll-down-command -# windmove-left -# windmove-right -# windmove-up -# windmove-down -# move-to-window-line-top-bottom -# recenter-top-bottom -# other-window)) -# (advice-add command :after #'pulse-line))) -# #+end_src +# (DOLIST (COMMAND '(SCROLL-UP-COMMAND +# SCROLL-DOWN-COMMAND +# WINDMOVE-LEFT +# WINDMOVE-RIGHT +# WINDMOVE-UP +# WINDMOVE-DOWN +# MOVE-TO-WINDOW-LINE-TOP-BOTTOM +# RECENTER-TOP-BOTTOM +# OTHER-WINDOW)) +# (ADVICE-ADD COMMAND :AFTER #'PULSE-LINE))) +# #+END_SRC * PDF TOOLS -#+begin_src emacs-lisp - (use-package pdf-tools) -#+end_src +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE PDF-TOOLS) +#+END_SRC * PROJECTILE -[[https://github.com/bbatsov/projectile][Projectile]] is a project interaction library for Emacs. +[[HTTPS://GITHUB.COM/BBATSOV/PROJECTILE][PROJECTILE]] IS A PROJECT INTERACTION LIBRARY FOR EMACS. -#+begin_src emacs-lisp - (use-package projectile - :diminish - :config - (projectile-mode 1)) -#+end_src +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE PROJECTILE + :DIMINISH + :CONFIG + (PROJECTILE-MODE 1)) +#+END_SRC * RAINBOW MODE -Display the actual color as a background for any hex color value (ex. #ffffff). The code block below enables rainbow-mode in all programming modes (prog-mode) as well as org-mode, which is why rainbow works in this document. +DISPLAY THE ACTUAL COLOR AS A BACKGROUND FOR ANY HEX COLOR VALUE (EX. #FFFFFF). THE CODE BLOCK BELOW ENABLES RAINBOW-MODE IN ALL PROGRAMMING MODES (PROG-MODE) AS WELL AS ORG-MODE, WHICH IS WHY RAINBOW WORKS IN THIS DOCUMENT. -#+begin_src emacs-lisp - (use-package rainbow-mode - :diminish - :hook - ((org-mode prog-mode) . rainbow-mode)) -#+end_src +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE RAINBOW-MODE + :DIMINISH + :HOOK + ((ORG-MODE PROG-MODE) . RAINBOW-MODE)) +#+END_SRC * RELOAD EMACS -This is just an example of how to create a simple function in Emacs. Use this function to reload Emacs after adding changes to the config. Yes, I am loading the user-init-file twice in this function, which is a hack because for some reason, just loading the user-init-file once does not work properly. +THIS IS JUST AN EXAMPLE OF HOW TO CREATE A SIMPLE FUNCTION IN EMACS. USE THIS FUNCTION TO RELOAD EMACS AFTER ADDING CHANGES TO THE CONFIG. YES, I AM LOADING THE USER-INIT-FILE TWICE IN THIS FUNCTION, WHICH IS A HACK BECAUSE FOR SOME REASON, JUST LOADING THE USER-INIT-FILE ONCE DOES NOT WORK PROPERLY. -#+begin_src emacs-lisp - (defun reload-init-file () - (interactive) - (load-file user-init-file) - (load-file user-init-file)) -#+end_src +#+BEGIN_SRC EMACS-LISP + (DEFUN RELOAD-INIT-FILE () + (INTERACTIVE) + (LOAD-FILE USER-INIT-FILE) + (LOAD-FILE USER-INIT-FILE)) +#+END_SRC * SHELLS AND TERMINALS -** Eshell +** ESHELL -#+begin_src emacs-lisp - (use-package eshell-syntax-highlighting - :after esh-mode - :config - (eshell-syntax-highlighting-global-mode +1)) +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE ESHELL-SYNTAX-HIGHLIGHTING + :AFTER ESH-MODE + :CONFIG + (ESHELL-SYNTAX-HIGHLIGHTING-GLOBAL-MODE +1)) - (setq eshell-rc-script (concat user-emacs-directory "eshell/profile") - eshell-aliases-file (concat user-emacs-directory "eshell/aliases") - eshell-history-size 5000 - eshell-buffer-maximum-lines 5000 - eshell-hist-ignoredups t - eshell-scroll-to-bottom-on-input t - eshell-destroy-buffer-when-process-dies t - eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh")) -#+end_src + (SETQ ESHELL-RC-SCRIPT (CONCAT USER-EMACS-DIRECTORY "ESHELL/PROFILE") + ESHELL-ALIASES-FILE (CONCAT USER-EMACS-DIRECTORY "ESHELL/ALIASES") + ESHELL-HISTORY-SIZE 5000 + ESHELL-BUFFER-MAXIMUM-LINES 5000 + ESHELL-HIST-IGNOREDUPS T + ESHELL-SCROLL-TO-BOTTOM-ON-INPUT T + ESHELL-DESTROY-BUFFER-WHEN-PROCESS-DIES T + ESHELL-VISUAL-COMMANDS'("BASH" "FISH" "HTOP" "SSH" "TOP" "ZSH")) +#+END_SRC * SUDO EDIT -Enable editing of privileged files +ENABLE EDITING OF PRIVILEGED FILES -#+begin_src emacs-lisp -(use-package sudo-edit - :config - (lm/leader-keys - "fu" '(sudo-edit-find-file :wk "Sudo find file") - "fU" '(sudo-edit :wk "Sudo edit file"))) +#+BEGIN_SRC EMACS-LISP +(USE-PACKAGE SUDO-EDIT + :CONFIG + (LM/LEADER-KEYS + "FU" '(SUDO-EDIT-FIND-FILE :WK "SUDO FIND FILE") + "FU" '(SUDO-EDIT :WK "SUDO EDIT FILE"))) -#+end_src +#+END_SRC * THEME -Set themes dir, load chosen theme - theme made with [[https://emacsfodder.github.io/emacs-theme-editor/][Emacs Theme Editor]]. -#+begin_src emacs-lisp - ;;(add-to-list 'custom-theme-load-path "~/.config/emacs/themes") - ;;(load-theme 'soft-charcoal t) +SET THEMES DIR, LOAD CHOSEN THEME - THEME MADE WITH [[HTTPS://EMACSFODDER.GITHUB.IO/EMACS-THEME-EDITOR/][EMACS THEME EDITOR]]. +#+BEGIN_SRC EMACS-LISP + ;;(ADD-TO-LIST 'CUSTOM-THEME-LOAD-PATH "~/.CONFIG/EMACS/THEMES") + ;;(LOAD-THEME 'SOFT-CHARCOAL T) - (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-monokai-spectrum t) - ;; (load-theme 'doom-monokai-machine t) + (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-MONOKAI-SPECTRUM T) + ;; (LOAD-THEME 'DOOM-MONOKAI-MACHINE T) - ;; Enable flashing mode-line on errors - (doom-themes-visual-bell-config) - ;; Enable custom neotree theme (all-the-icons must be installed!) - (doom-themes-neotree-config) - ;; or for treemacs users - (setq doom-themes-treemacs-theme "doom-colors") ; use "doom-colors" for less minimal icon theme - (doom-themes-treemacs-config) - ;; Corrects (and improves) org-mode's native fontification. - (doom-themes-org-config)) -#+end_src + ;; ENABLE FLASHING MODE-LINE ON ERRORS + (DOOM-THEMES-VISUAL-BELL-CONFIG) + ;; ENABLE CUSTOM NEOTREE THEME (ALL-THE-ICONS MUST BE INSTALLED!) + (DOOM-THEMES-NEOTREE-CONFIG) + ;; OR FOR TREEMACS USERS + (SETQ DOOM-THEMES-TREEMACS-THEME "DOOM-COLORS") ; USE "DOOM-COLORS" FOR LESS MINIMAL ICON THEME + (DOOM-THEMES-TREEMACS-CONFIG) + ;; CORRECTS (AND IMPROVES) ORG-MODE'S NATIVE FONTIFICATION. + (DOOM-THEMES-ORG-CONFIG)) +#+END_SRC * TRANSPARENCY -True transparency support as of emacs 29 -#+begin_src emacs-lisp - (add-to-list 'default-frame-alist '(alpha-background . 90)) ;; for all new frames -#+end_src +TRUE TRANSPARENCY SUPPORT AS OF EMACS 29 +#+BEGIN_SRC EMACS-LISP + (ADD-TO-LIST 'DEFAULT-FRAME-ALIST '(ALPHA-BACKGROUND . 90)) ;; FOR ALL NEW FRAMES +#+END_SRC * GUI TWEAKS -Making the UI look nicer +MAKING THE UI LOOK NICER -** Disable Menubar, Toolbars and Scrollbars +** DISABLE MENUBAR, TOOLBARS AND SCROLLBARS -#+begin_src emacs-lisp - (menu-bar-mode -1) - (tool-bar-mode -1) - (scroll-bar-mode -1) -#+end_src +#+BEGIN_SRC EMACS-LISP + (MENU-BAR-MODE -1) + (TOOL-BAR-MODE -1) + (SCROLL-BAR-MODE -1) +#+END_SRC -** Display Line Numbers and Truncated Lines +** DISPLAY LINE NUMBERS AND TRUNCATED LINES -#+begin_src emacs-lisp - (global-display-line-numbers-mode 0) - (menu-bar--display-line-numbers-mode-relative) - ;; (setq display-line-numbers-mode-relative 't) +#+BEGIN_SRC EMACS-LISP + (GLOBAL-DISPLAY-LINE-NUMBERS-MODE 0) + (MENU-BAR--DISPLAY-LINE-NUMBERS-MODE-RELATIVE) + ;; (SETQ DISPLAY-LINE-NUMBERS-MODE-RELATIVE 'T) - (global-visual-line-mode t) -#+end_src + (GLOBAL-VISUAL-LINE-MODE T) +#+END_SRC * IVY (COUNSEL) -+ Ivy, a generic completion mechanism for Emacs. -+ Counsel, a collection of Ivy-enhanced versions of common Emacs commands. -+ Ivy-rich allows us to add descriptions alongside the commands in M-x. ++ IVY, A GENERIC COMPLETION MECHANISM FOR EMACS. ++ COUNSEL, A COLLECTION OF IVY-ENHANCED VERSIONS OF COMMON EMACS COMMANDS. ++ IVY-RICH ALLOWS US TO ADD DESCRIPTIONS ALONGSIDE THE COMMANDS IN M-X. -#+begin_src emacs-lisp - (use-package counsel - :after ivy - :diminish - :config (counsel-mode)) +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE COUNSEL + :AFTER IVY + :DIMINISH + :CONFIG (COUNSEL-MODE)) - (use-package ivy - :bind - ;; ivy-resume resumes the last Ivy-based completion. - (("C-c C-r" . ivy-resume) - ("C-x B" . ivy-switch-buffer-other-window)) - :diminish - :custom - (setq ivy-use-virtual-buffers t) - (setq ivy-count-format "(%d/%d) ") - (setq enable-recursive-minibuffers t) - :config - (ivy-mode)) + (USE-PACKAGE IVY + :BIND + ;; IVY-RESUME RESUMES THE LAST IVY-BASED COMPLETION. + (("C-C C-R" . IVY-RESUME) + ("C-X B" . IVY-SWITCH-BUFFER-OTHER-WINDOW)) + :DIMINISH + :CUSTOM + (SETQ IVY-USE-VIRTUAL-BUFFERS T) + (SETQ IVY-COUNT-FORMAT "(%D/%D) ") + (SETQ ENABLE-RECURSIVE-MINIBUFFERS T) + :CONFIG + (IVY-MODE)) - (use-package all-the-icons-ivy-rich - :ensure t - :diminish - :init (all-the-icons-ivy-rich-mode 1)) + (USE-PACKAGE ALL-THE-ICONS-IVY-RICH + :ENSURE T + :DIMINISH + :INIT (ALL-THE-ICONS-IVY-RICH-MODE 1)) - (use-package ivy-rich - :after ivy - :diminish - :ensure t - :init (ivy-rich-mode 1) ;; this gets us descriptions in M-x. - :custom - (ivy-virtual-abbreviate 'full - ivy-rich-switch-buffer-align-virtual-buffer t - ivy-rich-path-style 'abbrev) - :config - (ivy-set-display-transformer 'ivy-switch-buffer - 'ivy-rich-switch-buffer-transformer)) + (USE-PACKAGE IVY-RICH + :AFTER IVY + :DIMINISH + :ENSURE T + :INIT (IVY-RICH-MODE 1) ;; THIS GETS US DESCRIPTIONS IN M-X. + :CUSTOM + (IVY-VIRTUAL-ABBREVIATE 'FULL + IVY-RICH-SWITCH-BUFFER-ALIGN-VIRTUAL-BUFFER T + IVY-RICH-PATH-STYLE 'ABBREV) + :CONFIG + (IVY-SET-DISPLAY-TRANSFORMER 'IVY-SWITCH-BUFFER + 'IVY-RICH-SWITCH-BUFFER-TRANSFORMER)) -#+end_src +#+END_SRC * LANGUAGE SUPPORT -Emacs has built-in programming language modes for Lisp, Scheme, DSSSL, Ada, ASM, AWK, C, C++, Fortran, Icon, IDL (CORBA), IDLWAVE, Java, Javascript, M4, Makefiles, Metafont, Modula2, Object Pascal, Objective-C, Octave, Pascal, Perl, Pike, PostScript, Prolog, Python, Ruby, Simula, SQL, Tcl, Verilog, and VHDL. Other languages will require you to install additional modes. +EMACS HAS BUILT-IN PROGRAMMING LANGUAGE MODES FOR LISP, SCHEME, DSSSL, ADA, ASM, AWK, C, C++, FORTRAN, ICON, IDL (CORBA), IDLWAVE, JAVA, JAVASCRIPT, M4, MAKEFILES, METAFONT, MODULA2, OBJECT PASCAL, OBJECTIVE-C, OCTAVE, PASCAL, PERL, PIKE, POSTSCRIPT, PROLOG, PYTHON, RUBY, SIMULA, SQL, TCL, VERILOG, AND VHDL. OTHER LANGUAGES WILL REQUIRE YOU TO INSTALL ADDITIONAL MODES. -#+begin_src emacs-lisp - (use-package zig-mode) - (use-package nix-mode) - ;; (use-package jai-mode) - (use-package rust-mode) - (use-package cargo-mode) - (use-package lua-mode) - (add-to-list 'load-path "~/.config/emacs/manual-packages") - (require 'odin-mode) -#+end_src +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE ZIG-MODE) + (USE-PACKAGE NIX-MODE) + ;; (USE-PACKAGE JAI-MODE) + (USE-PACKAGE RUST-MODE) + (USE-PACKAGE CARGO-MODE) + (USE-PACKAGE LUA-MODE) + (ADD-TO-LIST 'LOAD-PATH "~/.CONFIG/EMACS/MANUAL-PACKAGES") + (REQUIRE 'ODIN-MODE) +#+END_SRC * ORG MODE -** Enabling Table of Contents +** ENABLING TABLE OF CONTENTS -#+begin_src emacs-lisp - (use-package toc-org - :commands toc-org-enable - :init (add-hook 'org-mode-hook 'toc-org-enable)) -#+end_src +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE TOC-ORG + :COMMANDS TOC-ORG-ENABLE + :INIT (ADD-HOOK 'ORG-MODE-HOOK 'TOC-ORG-ENABLE)) +#+END_SRC -** Enabling Org Bullets -Org-bullets give bullet points instead of asterisks +** ENABLING ORG BULLETS +ORG-BULLETS GIVE BULLET POINTS INSTEAD OF ASTERISKS -#+begin_src emacs-lisp - (add-hook 'org-mode-hook 'org-indent-mode) - ;;(setq (setq org-return-follows-link t) - (use-package org-bullets) - (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) -#+end_src +#+BEGIN_SRC EMACS-LISP + (ADD-HOOK 'ORG-MODE-HOOK 'ORG-INDENT-MODE) + ;;(SETQ (SETQ ORG-RETURN-FOLLOWS-LINK T) + (USE-PACKAGE ORG-BULLETS) + (ADD-HOOK 'ORG-MODE-HOOK (LAMBDA () (ORG-BULLETS-MODE 1))) +#+END_SRC -** Source Code Block Tag Expansion -Org-tempo is not a separate package but a module within org that can be enabled. Org-tempo allows for ' " )) -#+end_src +#+BEGIN_SRC EMACS-LISP + (USE-PACKAGE WHICH-KEY + :INIT + (WHICH-KEY-MODE 1) + :DIMINISH + :CONFIG + (SETQ WHICH-KEY-SIDE-WINDOW-LOCATION 'BOTTOM + WHICH-KEY-SORT-ORDER #'WHICH-KEY-KEY-ORDER-ALPHA + WHICH-KEY-SORT-UPPERCASE-FIRST NIL + WHICH-KEY-ADD-COLUMN-PADDING 1 + WHICH-KEY-MAX-DISPLAY-COLUMNS NIL + WHICH-KEY-MIN-DISPLAY-LINES 6 + WHICH-KEY-SIDE-WINDOW-SLOT -10 + WHICH-KEY-SIDE-WINDOW-MAX-HEIGHT 0.25 + WHICH-KEY-IDE-DELAY 0.8 + WHICH-KEY-MAX-DESCRIPTION-LENGTH 25 + WHICH-KEY-ALLOW-IMPRECISE-WINDOW-FIT NIL + WHICH-KEY-SEPARATOR " -> " )) +#+END_SRC diff --git a/configs/hypr/hyprland.conf b/configs/hypr/hyprland.conf index 29c1af9..6bf604e 100644 --- a/configs/hypr/hyprland.conf +++ b/configs/hypr/hyprland.conf @@ -200,7 +200,7 @@ bind=$altMod SHIFT, Return, exec, alacritty bind=$mainMod SHIFT, D, exec, discord --enable-blink-features=MiddleClickAutoscroll bind=$mainMod SHIFT, E, exec, emacsclient -c -a 'emacs' bind=$mainMode SHIFT, F, exec, focus-linux -bind=$mainMod, SPACE, exec, pkill wofi || wofi +bind=$mainMod, SPACE, exec, pkill fuzzel || fuzzel bind=$mainMod, E, exec, nautilus bind=$mainMod, S, exec, spotify bind=$mainMod, P, exec, hyprpicker -a -f hex diff --git a/configs/river/init b/configs/river/init index 417cd83..cdaa7a4 100755 --- a/configs/river/init +++ b/configs/river/init @@ -10,7 +10,10 @@ function execs() { rivertile -view-padding 1 -outer-padding 2 & swww-daemon & swaync & - quickshell & + # quickshell & + waybar & + hypridle & + emacs --daemon & wl-clipboard-history -t & wl-paste -p --watch wl-copy -p '' & wlsunset -l $longitude -L $latitude & @@ -82,11 +85,13 @@ function binds() { # Binds :: Progams discord="discord --enable-blink-features=MiddleClickAutoscroll" + emacs="emacsclient -c -a 'emacs'" hyprpicker="hyprpicker -a" screenshot="grim - | wl-copy" screenshotarea="grim -g \"\$(slurp)\" - | wl-copy" riverctl map normal Alt Return spawn ghostty riverctl map normal $mod+Shift D spawn "$discord" + riverctl map normal $mod+Shift E spawn "$emacs" riverctl map normal $mod Space spawn fuzzel riverctl map normal $mod P spawn "$hyprpicker" riverctl map normal None Print spawn "$screenshotarea" @@ -144,8 +149,11 @@ function binds() { for i in $(seq 1 9) do tags=$((1 << ($i - 1))) - riverctl map normal $mod $i set-focused-tags $tags # Focus tag - riverctl map normal $mod+Shift $i set-view-tags $tags # Assign tag to window + # Focus tag + riverctl map normal $mod $i set-focused-tags $tags + + # Assign tag to window and focus + riverctl map normal $mod+Shift $i spawn "sh -c 'riverctl set-view-tags $tags && riverctl set-focused-tags $tags'" done } diff --git a/configs/waybar/modules.jsonc b/configs/waybar/modules.jsonc index 12d3ee8..52e8828 100644 --- a/configs/waybar/modules.jsonc +++ b/configs/waybar/modules.jsonc @@ -52,6 +52,8 @@ "10": "", }, }, + "river/tags": { + }, "group/control-center": { "orientation": "inherit", "modules": ["hyprland/language", "group/audio", "group/connection"], diff --git a/flake.lock b/flake.lock index 4a28bc2..7fe0b78 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1752743471, - "narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=", + "lastModified": 1753216019, + "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506", + "rev": "be166e11d86ba4186db93e10c54a141058bdce49", "type": "github" }, "original": { @@ -36,11 +36,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -78,11 +78,11 @@ ] }, "locked": { - "lastModified": 1753943136, - "narHash": "sha256-eiEE5SabVcIlGSTRcRyBjmJMaYAV95SJnjy8YSsVeW4=", + "lastModified": 1755121891, + "narHash": "sha256-UtYkukiGnPRJ5rpd4W/wFVrLMh8fqtNkqHTPgHEtrqU=", "owner": "nix-community", "repo": "home-manager", - "rev": "bd82507edd860c453471c46957cbbe3c9fd01b5c", + "rev": "279ca5addcdcfa31ac852b3ecb39fc372684f426", "type": "github" }, "original": { @@ -107,11 +107,11 @@ ] }, "locked": { - "lastModified": 1749155331, - "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", "type": "github" }, "original": { @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "lastModified": 1754305013, + "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d", "type": "github" }, "original": { @@ -165,11 +165,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1753971789, - "narHash": "sha256-V0yPyFMBdOt0c3QIUlO18bHDI7vXKqOixtLuBZZjrBI=", + "lastModified": 1755184403, + "narHash": "sha256-VI+ZPD/uIFjzYW8IcyvBgvwyDIvUe4/xh/kOHTbITX8=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "a907ecd4ff736a3a09410532b405a437eb48033c", + "rev": "60d769a89908c29e19100059985db15a7b6bab6a", "type": "github" }, "original": { @@ -195,11 +195,11 @@ ] }, "locked": { - "lastModified": 1753894287, - "narHash": "sha256-yPeP6mY5Mdozji7xZBWYy6K166RcCuJgnOXxQt7vl3s=", + "lastModified": 1755183521, + "narHash": "sha256-wrP8TM2lb2x0+PyTc7Uc3yfVBeIlYW7+hFeG14N9Cr8=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "bf310cda4a09b79725c2919688881959ebf3229e", + "rev": "c1ddebb423acc7c88653c04de5ddafee64dac89a", "type": "github" }, "original": { @@ -288,11 +288,11 @@ ] }, "locked": { - "lastModified": 1750371812, - "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", + "lastModified": 1753819801, + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", "type": "github" }, "original": { @@ -317,11 +317,11 @@ ] }, "locked": { - "lastModified": 1750371198, - "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", + "lastModified": 1753622892, + "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", + "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", "type": "github" }, "original": { @@ -342,11 +342,11 @@ ] }, "locked": { - "lastModified": 1753800567, - "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", + "lastModified": 1754481650, + "narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", + "rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd", "type": "github" }, "original": { @@ -382,11 +382,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1752687322, - "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -398,11 +398,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1753694789, - "narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=", + "lastModified": 1755027561, + "narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dc9637876d0dcc8c9e5e22986b857632effeb727", + "rev": "005433b926e16227259a1843015b5b2b7f7d1fc3", "type": "github" }, "original": { @@ -422,11 +422,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1754416808, + "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", "type": "github" }, "original": { @@ -507,11 +507,11 @@ ] }, "locked": { - "lastModified": 1751300244, - "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", + "lastModified": 1753633878, + "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", + "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", "type": "github" }, "original": { diff --git a/hosts/darp8/configuration.nix b/hosts/darp8/configuration.nix index 81543e4..769024b 100644 --- a/hosts/darp8/configuration.nix +++ b/hosts/darp8/configuration.nix @@ -50,6 +50,7 @@ in }; time.timeZone = "Europe/Dublin"; + # time.timeZone = "America/New_York"; i18n= { defaultLocale = "en_US.UTF-8"; diff --git a/hosts/darp8/file.nix b/hosts/darp8/file.nix index f697d25..f40a5f0 100644 --- a/hosts/darp8/file.nix +++ b/hosts/darp8/file.nix @@ -61,12 +61,10 @@ in outOfStoreSymlink = true; recursive = true; }; - - # I have no idea why this is an issue... - # ".config/emacs" = { - # source = ../../configs/emacs; - # outOfStoreSymlink = true; - # recursive = true; - # }; + ".config/emacs" = { + source = ../../configs/emacs; + outOfStoreSymlink = true; + recursive = true; + }; }; } diff --git a/hosts/darp8/home.nix b/hosts/darp8/home.nix index 077cc9b..9f939c5 100644 --- a/hosts/darp8/home.nix +++ b/hosts/darp8/home.nix @@ -70,10 +70,10 @@ # ENV SETTINGS xdg.enable = true; xdg.configFile = { - "emacs" = { - source = ../../configs/emacs; - recursive = true; - }; + # "emacs" = { + # source = ../../configs/emacs; + # recursive = true; + # }; "user-dirs.dirs".source = ../../configs/user-dirs.dirs; "user-dirs.locale".source = ../../configs/user-dirs.locale; diff --git a/hosts/darp8/pkgs.nix b/hosts/darp8/pkgs.nix index 0e2a044..431a3b1 100644 --- a/hosts/darp8/pkgs.nix +++ b/hosts/darp8/pkgs.nix @@ -53,6 +53,7 @@ slurp swaynotificationcenter swww + teams-for-linux texliveFull xfce.thunar xfce.thunar-volman