This commit is contained in:
Daniel Ziltener 2023-12-14 20:57:10 +01:00
parent 9c8e94145f
commit 7cfc00fd43
Signed by: zilti
GPG key ID: B38976E82C9DAE42
4 changed files with 203 additions and 121 deletions

View file

@ -18,20 +18,11 @@
;; [[file:config.org::*Modules][Modules:1]] ;; [[file:config.org::*Modules][Modules:1]]
(use-modules (gnu) ice-9/boot-9.scm:1685:16: In procedure raise-exception:
(gnu image) Wrong type to apply: "gnu"
(gnu services authentication)
(gnu services base) Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
(gnu services dbus) scheme@(guile-user) [1]>
(gnu services desktop)
(gnu services linux)
(gnu services networking)
(gnu services pm)
(gnu services virtualization)
(gnu services xorg)
(gnu system nss)
(nongnu packages linux)
(nongnu system linux-initrd))
;; Modules:1 ends here ;; Modules:1 ends here
;; Service Modules ;; Service Modules
@ -42,7 +33,11 @@
;; [[file:config.org::*Service Modules][Service Modules:1]] ;; [[file:config.org::*Service Modules][Service Modules:1]]
(use-service-modules desktop xorg) ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Wrong type to apply: "desktop"
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>
;; Service Modules:1 ends here ;; Service Modules:1 ends here
;; Package Modules ;; Package Modules
@ -62,17 +57,11 @@
;; [[file:config.org::*Package Modules][Package Modules:1]] ;; [[file:config.org::*Package Modules][Package Modules:1]]
(use-package-modules bootloaders ice-9/boot-9.scm:1685:16: In procedure raise-exception:
certs Wrong type to apply: "bootloaders"
emacs
emacs-xyz Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
fonts scheme@(guile-user) [1]>
pciutils
readline
terminals
version-control
wm
xorg)
;; Package Modules:1 ends here ;; Package Modules:1 ends here
;; File System ;; File System
@ -146,13 +135,11 @@
%base-user-accounts)) %base-user-accounts))
(packages (packages
(append (append
(list emacs ice-9/boot-9.scm:1685:16: In procedure raise-exception:
emacs-desktop-environment Wrong type to apply: "emacs"
font-terminus
git Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
hwdata scheme@(guile-user) [1]>
nss-certs
readline)
%base-packages)) %base-packages))
(services (services
(append (append
@ -169,22 +156,7 @@
(authorized-keys (authorized-keys
(append (list (plain-file "non-guix.pub" (append (list (plain-file "non-guix.pub"
"<<nonguix-pubkey>>"))))))) "<<nonguix-pubkey>>")))))))
(list nil
(service tlp-service-type)
(service thermald-service-type
(thermald-configuration
(adaptive? #t)))
(service bluetooth-service-type)
(service earlyoom-service-type
(earlyoom-configuration
(minimum-available-memory 5)
(minimum-free-swap 5)))
(service inputattach-service-type)
(service libvirt-service-type
(libvirt-configuration
(unix-sock-group "libvirt")))
(service fstrim-service-type)
(service fprintd-service-type))
(list (list
(service greetd-service-type (service greetd-service-type
(greetd-configuration (greetd-configuration

1
home/emacs/early-init.el Normal file
View file

@ -0,0 +1 @@
(setq package-enable-at-startup nil)

View file

@ -12,8 +12,8 @@
;; hypermedia i18n internal languages lisp local maint mail matching ;; hypermedia i18n internal languages lisp local maint mail matching
;; mouse multimedia news outlines processes terminals tex tools unix ;; mouse multimedia news outlines processes terminals tex tools unix
;; vc wp ;; vc wp
;; Homepage: https://github.com/dziltener@lyrion.ch/init ;; Homepage: https://gitea.lyrion.ch/zilti/guixconfig
;; Package-Requires: ((emacs "24.3")) ;; Package-Requires: ((emacs "29.1"))
;; ;;
;; This file is not part of GNU Emacs. ;; This file is not part of GNU Emacs.
;; ;;
@ -32,6 +32,8 @@
(when (file-exists-p custom-file) (when (file-exists-p custom-file)
(load custom-file)) (load custom-file))
(defvar init-dir (file-name-directory (or load-file-name (buffer-file-name))))
;;;; Personal Information Setup ;;;; Personal Information Setup
(setq user-full-name "Daniel Ziltener" (setq user-full-name "Daniel Ziltener"
user-mail-address "dziltener@lyrion.ch") user-mail-address "dziltener@lyrion.ch")
@ -41,19 +43,67 @@
;;;; Straight.el ;;;; Straight.el
(defvar bootstrap-version) ;; (defvar bootstrap-version)
(let ((bootstrap-file ;; (let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) ;; (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 6)) ;; (bootstrap-version 6))
(unless (file-exists-p bootstrap-file) ;; (unless (file-exists-p bootstrap-file)
(with-current-buffer ;; (with-current-buffer
(url-retrieve-synchronously ;; (url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" ;; "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies) ;; 'silent 'inhibit-cookies)
(goto-char (point-max)) ;; (goto-char (point-max))
(eval-print-last-sexp))) ;; (eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage)) ;; (load bootstrap-file nil 'nomessage))
(setq straight-use-package-by-default t) ;; (setq straight-use-package-by-default t)
;;;; Elpaca
;;;;; Installation
(defvar elpaca-installer-version 0.6)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
:ref nil
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
:build (:not elpaca--activate-package)))
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
(build (expand-file-name "elpaca/" elpaca-builds-directory))
(order (cdr elpaca-order))
(default-directory repo))
(add-to-list 'load-path (if (file-exists-p build) build repo))
(unless (file-exists-p repo)
(make-directory repo t)
(when (< emacs-major-version 28) (require 'subr-x))
(condition-case-unless-debug err
(if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (call-process "git" nil buffer t "clone"
(plist-get order :repo) repo)))
((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo)))
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
(error "%s" (with-current-buffer buffer (buffer-string))))
((error) (warn "%s" err) (delete-directory repo 'recursive))))
(unless (require 'elpaca-autoloads nil t)
(require 'elpaca)
(elpaca-generate-autoloads "elpaca" repo)
(load "./elpaca-autoloads")))
(add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca `(,@elpaca-order))
;;;;; use-package integration
(elpaca elpaca-use-package
(elpaca-use-package-mode)
(setq elpaca-use-package-by-default t))
(elpaca-wait)
;;;; Package Management Configuration ;;;; Package Management Configuration
;; See: https://github.com/radian-software/el-patch ;; See: https://github.com/radian-software/el-patch
@ -78,6 +128,7 @@
;;;; Emacs ;;;; Emacs
(use-package emacs (use-package emacs
:elpaca nil
:delight (eldoc-mode " 󰙎") :delight (eldoc-mode " 󰙎")
:custom :custom
(completion-cycle-threshold 10) (completion-cycle-threshold 10)
@ -106,6 +157,7 @@
;;;; Org Mode ;;;; Org Mode
(use-package org (use-package org
:elpaca (:repo "https://git.savannah.gnu.org/git/emacs/org-mode.git" :branch "emacs-sync")
:ensure t :ensure t
:custom :custom
(org-babel-load-languages '((emacs-lisp . t) (org-babel-load-languages '((emacs-lisp . t)
@ -202,7 +254,8 @@
(add-to-list 'default-frame-alist '(alpha-background . 80)) (add-to-list 'default-frame-alist '(alpha-background . 80))
(use-package lambda-line (use-package lambda-line
:straight (:type git :host github :repo "lambda-emacs/lambda-line") ;;:straight (:type git :host github :repo "lambda-emacs/lambda-line")
:elpaca (:host github :repo "lambda-emacs/lambda-line")
:custom :custom
(lambda-line-icon-time t) ;; requires ClockFace font (see below) (lambda-line-icon-time t) ;; requires ClockFace font (see below)
(lambda-line-clockface-update-fontset "ClockFaceRect") ;; set clock icon (lambda-line-clockface-update-fontset "ClockFaceRect") ;; set clock icon
@ -238,7 +291,8 @@
(setq mode-line-format (list "%_")))) (setq mode-line-format (list "%_"))))
(use-package lambda-themes (use-package lambda-themes
:straight (:type git :host github :repo "lambda-emacs/lambda-themes") ;;:straight (:type git :host github :repo "lambda-emacs/lambda-themes")
:elpaca (:host github :repo "lambda-emacs/lambda-themes")
:custom :custom
(lambda-themes-set-italic-comments t) (lambda-themes-set-italic-comments t)
(lambda-themes-set-italic-keywords t) (lambda-themes-set-italic-keywords t)
@ -299,6 +353,7 @@
;;;; Search, Completion, Execution ;;;; Search, Completion, Execution
;;;;; Preliminary Packages ;;;;; Preliminary Packages
(use-package savehist (use-package savehist
:elpaca nil
:init :init
(savehist-mode)) (savehist-mode))
@ -312,11 +367,8 @@
completion-category-overrides '((file (styles basic partial-completion))))) completion-category-overrides '((file (styles basic partial-completion)))))
(use-package embark-consult (use-package embark-consult
:after (embark consult)
:hook :hook
(embark-collect-mode . consult-preview-at-point-mode)) (embark-collect-mode . consult-preview-at-point-mode)
(use-package consult
:config :config
(require 'consult-flymake) (require 'consult-flymake)
(require 'consult-xref) (require 'consult-xref)
@ -328,12 +380,9 @@
("<leader>gb" . 'consult-project-buffer) ("<leader>gb" . 'consult-project-buffer)
("<leader>g/" . 'consult-git-grep) ("<leader>g/" . 'consult-git-grep)
("<leader>/" . 'consult-grep) ("<leader>/" . 'consult-grep)
("/" . 'consult-line))) ("/" . 'consult-line))
("C-<SPC>" . 'embark-act)
(use-package embark ("C-M-<return>" . 'embark-bindings))
:bind
("C-<SPC>" . 'embark-act)
("C-M-<return>" . 'embark-bindings))
(use-package wgrep (use-package wgrep
:config :config
@ -449,6 +498,7 @@
:hook :hook
evil-mode evil-mode
(evil-mode . evil-snipe-override-mode) (evil-mode . evil-snipe-override-mode)
(evil-mode . evil-snipe-mode)
(magit-mode . turn-off-evil-snipe-override-mode) (magit-mode . turn-off-evil-snipe-override-mode)
;; See https://github.com/hlissner/evil-snipe/issues/95 ;; See https://github.com/hlissner/evil-snipe/issues/95
;; :config ;; :config
@ -479,6 +529,29 @@ Point must be at the beginning of balanced expression (sexp)."
(transpose-sexps 1) (transpose-sexps 1)
(forward-sexp -1)) (forward-sexp -1))
(defvar last-sexp nil)
(defun cc/clone-sexp ()
"Clone the sexp right after the cursor."
(interactive)
(call-interactively #'mark-sexp)
(call-interactively #'kill-ring-save)
(call-interactively #'evil-paste-before)
(call-interactively #'forward-char)
(call-interactively #'paredit-newline))
(defun cc/slurp-forward ()
"Slurps forward when the key is after the closing paren."
(interactive)
(call-interactively #'backward-char)
(call-interactively #'paredit-forward-slurp-sexp))
(defun cc/barf-forward ()
"Barfs forward even when the key is after the closing paren."
(interactive)
(call-interactively #'backward-char)
(call-interactively #'paredit-forward-barf-sexp))
(defun looking-at-opening-paren () (defun looking-at-opening-paren ()
(looking-at (rx (or "(" "{" "[")))) (looking-at (rx (or "(" "{" "["))))
@ -486,58 +559,90 @@ Point must be at the beginning of balanced expression (sexp)."
(looking-back (rx (or ")" "}" "]")))) (looking-back (rx (or ")" "}" "]"))))
;;;;; Basic ;;;;; Basic
(use-package smartparens (use-package symex
:delight (smartparens-mode " 󰅲 ") :custom
(symex-modal-backend 'evil)
:config
(symex-initialize)
:bind
(:map evil-insert-state-map
("C-ß" . #'symex-mode-interface)))
(use-package paredit
:hook :hook
(smartparens-mode . show-smartparens-mode) clojure-mode
(smartparens-mode . smartparens-strict-mode)
clojure-ts-mode
emacs-lisp-mode emacs-lisp-mode
scheme-mode scheme-mode
:custom
(sp-undo-pairs-separately t)
:config :config
(add-to-list 'sp-clojure-modes 'clojure-ts-mode) (evil-define-key 'insert paredit-mode-map
(add-to-list 'sp-clojure-modes 'clojurec-ts-mode)
(add-to-list 'sp-clojure-modes 'clojurescript-ts-mode)
(add-to-list 'sp-lisp-modes 'clojure-ts-mode)
(add-to-list 'sp-lisp-modes 'clojurec-ts-mode)
(add-to-list 'sp-lisp-modes 'clojurescript-ts-mode)
(sp-local-pair '(emacs-lisp-mode scheme-mode clojure-ts-mode)
"'" nil)
(sp-local-pair '(emacs-lisp-mode scheme-mode clojure-ts-mode)
"`" nil)
(evil-define-key 'insert smartparens-mode-map
(kbd "r") (conditional-keybind #'looking-at-opening-paren (kbd "r") (conditional-keybind #'looking-at-opening-paren
#'sp-raise-sexp) #'paredit-raise-sexp)
(kbd "w") (conditional-keybind #'looking-at-opening-paren (kbd "w") (conditional-keybind #'looking-at-opening-paren
#'cc/move-sexp-backward) #'cc/move-sexp-backward)
(kbd "s") (conditional-keybind #'looking-at-opening-paren (kbd "s") (conditional-keybind #'looking-at-opening-paren
#'cc/move-sexp-forward) #'cc/move-sexp-forward)
(kbd "c") (conditional-keybind #'looking-at-opening-paren (kbd "c") (conditional-keybind #'looking-at-opening-paren
#'sp-clone-sexp) #'cc/clone-sexp)
(kbd "m") (conditional-keybind #'looking-at-opening-paren
#'sp-mark-sexp)
(kbd "DEL") (conditional-keybind #'being-past-closing-paren
#'sp-backward-delete-sexp
#'evil-delete-backward-char-and-join)
(kbd ">") (conditional-keybind #'being-past-closing-paren (kbd ">") (conditional-keybind #'being-past-closing-paren
(lambda (prefix) #'cc/slurp-forward)
(interactive "P")
(call-interactively #'backward-char)
(call-interactively #'sp-forward-slurp-sexp)
(call-interactively #'sp-forward-sexp)
(call-interactively #'forward-char)))
(kbd "<") (conditional-keybind #'being-past-closing-paren (kbd "<") (conditional-keybind #'being-past-closing-paren
(lambda (prefix) #'cc/barf-forward)))
(interactive "P")
(call-interactively #'backward-char)
(call-interactively #'sp-forward-barf-sexp)
(call-interactively #'forward-char)))))
(use-package evil-cleverparens ;; (use-package smartparens
:after smartparens ;; :delight (smartparens-mode " 󰅲 ")
:hook smartparens) ;; :hook
;; (smartparens-mode . show-smartparens-mode)
;; (smartparens-mode . smartparens-strict-mode)
;; clojure-ts-mode
;; emacs-lisp-mode
;; scheme-mode
;; :custom
;; (sp-undo-pairs-separately t)
;; :config
;; (add-to-list 'sp-clojure-modes 'clojure-ts-mode)
;; (add-to-list 'sp-clojure-modes 'clojurec-ts-mode)
;; (add-to-list 'sp-clojure-modes 'clojurescript-ts-mode)
;; (add-to-list 'sp-lisp-modes 'clojure-ts-mode)
;; (add-to-list 'sp-lisp-modes 'clojurec-ts-mode)
;; (add-to-list 'sp-lisp-modes 'clojurescript-ts-mode)
;; ;; TODO: Remove the following three lines once merge request got accepted
;; (load-file (concat init-dir "lib/smartparens-clojure.el"))
;; (load-file (concat init-dir "lib/smartparens-emacs-lisp.el"))
;; (load-file (concat init-dir "lib/smartparens-scheme.el"))
;; (require 'smartparens-clojure)
;; (require 'smartparens-emacs-lisp)
;; (require 'smartparens-scheme)
;; (evil-define-key 'insert smartparens-mode-map
;; (kbd "r") (conditional-keybind #'looking-at-opening-paren
;; #'sp-raise-sexp)
;; (kbd "w") (conditional-keybind #'looking-at-opening-paren
;; #'cc/move-sexp-backward)
;; (kbd "s") (conditional-keybind #'looking-at-opening-paren
;; #'cc/move-sexp-forward)
;; (kbd "c") (conditional-keybind #'looking-at-opening-paren
;; #'sp-clone-sexp)
;; (kbd "m") (conditional-keybind #'looking-at-opening-paren
;; #'sp-mark-sexp)
;; (kbd "DEL") (conditional-keybind #'being-past-closing-paren
;; #'sp-backward-delete-sexp
;; #'evil-delete-backward-char-and-join)
;; (kbd ">") (conditional-keybind #'being-past-closing-paren
;; (lambda (prefix)
;; (interactive "P")
;; (call-interactively #'backward-char)
;; (call-interactively #'sp-forward-slurp-sexp)
;; (call-interactively #'sp-forward-sexp)
;; (call-interactively #'forward-char)))
;; (kbd "<") (conditional-keybind #'being-past-closing-paren
;; (lambda (prefix)
;; (interactive "P")
;; (call-interactively #'backward-char)
;; (call-interactively #'sp-forward-barf-sexp)
;; (call-interactively #'forward-char)))))
;; (use-package evil-cleverparens
;; :after smartparens
;; :hook smartparens)
;;;;; Visual Aid ;;;;; Visual Aid
;; (use-package rainbow-delimiters ;; (use-package rainbow-delimiters
@ -580,7 +685,7 @@ Point must be at the beginning of balanced expression (sexp)."
(setq-default eglot-workspace-configuration (setq-default eglot-workspace-configuration
'((clojure-lsp (maxCompletions . 300)))) '((clojure-lsp (maxCompletions . 300))))
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'((clojure-ts-mode clojurec-ts-mode clojurescript-ts-mode) '((clojure-mode clojurec-mode clojurescript-mode)
"clojure-lsp" "clojure-lsp"
:initializationOptions :initializationOptions
(:preferences (:preferences
@ -645,9 +750,8 @@ Point must be at the beginning of balanced expression (sexp)."
'(clojurescript-ts-mode . clojure))) '(clojurescript-ts-mode . clojure)))
(use-package cider (use-package cider
:elpaca (:host github :repo "clojure-emacs/cider" :tag "v1.12.0")
:delight (cider-mode '(:eval (concat "  [" (cider--modeline-info) "]"))) :delight (cider-mode '(:eval (concat "  [" (cider--modeline-info) "]")))
:hook
(clojure-ts-mode . cider-mode)
:config :config
(evil-define-key 'insert 'cider-mode-map (evil-define-key 'insert 'cider-mode-map
"C-x C-e" #'cider-eval-last-sexp) "C-x C-e" #'cider-eval-last-sexp)
@ -679,13 +783,15 @@ Point must be at the beginning of balanced expression (sexp)."
(use-package paren-face (use-package paren-face
:hook :hook
scheme-mode scheme-mode
emacs-lisp-mode) emacs-lisp-mode
clojure-ts-mode)
(use-package highlight-parentheses (use-package highlight-parentheses
:hook prog-mode) :hook prog-mode)
;;;;;; Chicken Scheme ;;;;;; Chicken Scheme
(use-package scheme (use-package scheme
:elpaca nil
:config :config
(setq prettify-symbols-alist (setq prettify-symbols-alist
'(("lambda" . "λ"))) '(("lambda" . "λ")))
@ -771,7 +877,9 @@ Point must be at the beginning of balanced expression (sexp)."
;;;; Communication ;;;; Communication
;;;;; IRC ;;;;; IRC
(use-package rcirc (use-package rcirc
:elpaca nil
:ensure t :ensure t
:after password-store
:custom :custom
(rcirc-server-alist (rcirc-server-alist
`(("liberachat.irc.lyrion.ch" `(("liberachat.irc.lyrion.ch"

View file

@ -134,6 +134,7 @@
("fuzzel/fuzzel.ini" ,(local-file "./fuzzel/fuzzel.ini")) ("fuzzel/fuzzel.ini" ,(local-file "./fuzzel/fuzzel.ini"))
("git/config" ,(local-file "./git/config")) ("git/config" ,(local-file "./git/config"))
("emacs/init.el" ,(local-file "./emacs/init.el")) ("emacs/init.el" ,(local-file "./emacs/init.el"))
("emacs/early-init.el" ,(local-file "./emacs/early-init.el"))
("emacs/init.org" ,(local-file "./emacs/init.org")) ("emacs/init.org" ,(local-file "./emacs/init.org"))
("emacs/templates" ,(local-file "./emacs/templates")) ("emacs/templates" ,(local-file "./emacs/templates"))
("kitty/kitty.conf" ,(local-file "./kitty/kitty.conf")) ("kitty/kitty.conf" ,(local-file "./kitty/kitty.conf"))