This commit is contained in:
Daniel Ziltener 2023-12-22 14:59:57 +01:00
parent 6e3fd648cf
commit 925301ae9a
Signed by: zilti
GPG key ID: B38976E82C9DAE42
6 changed files with 262 additions and 122 deletions

View file

@ -7,6 +7,14 @@
"897c1a470da759236cc11798f4e0a5f7d4d59fbc" "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint (openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
(channel
(name 'emacs-melpa)
(url "https://github.com/babariviere/guix-emacs")
(introduction
(make-channel-introduction
"72ca4ef5b572fea10a4589c37264fa35d4564783"
(openpgp-fingerprint
"261C A284 3452 FB01 F6DF 6CF4 F9B7 864F 2AB4 6F18"))))
(channel (channel
(name 'ziltis-channel) (name 'ziltis-channel)
(url "https://gitea.lyrion.ch/zilti/guixchannel")) (url "https://gitea.lyrion.ch/zilti/guixchannel"))

View file

@ -134,6 +134,14 @@ This adds the Nonguix channel.
"897c1a470da759236cc11798f4e0a5f7d4d59fbc" "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint (openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
(channel
(name 'emacs-melpa)
(url "https://github.com/babariviere/guix-emacs")
(introduction
(make-channel-introduction
"72ca4ef5b572fea10a4589c37264fa35d4564783"
(openpgp-fingerprint
"261C A284 3452 FB01 F6DF 6CF4 F9B7 864F 2AB4 6F18"))))
(channel (channel
(name 'ziltis-channel) (name 'ziltis-channel)
(url "https://gitea.lyrion.ch/zilti/guixchannel")) (url "https://gitea.lyrion.ch/zilti/guixchannel"))
@ -152,6 +160,7 @@ This adds the Nonguix channel.
- network-manager - network-manager
- podman - podman
- readline - readline
- xf86-video-amdgpu
#+NAME: root-package-block #+NAME: root-package-block
#+begin_src scheme :noweb no-export #+begin_src scheme :noweb no-export
@ -342,7 +351,7 @@ This is the full operating system specification.
(name "zilti") (name "zilti")
(group "users") (group "users")
(supplementary-groups (supplementary-groups
'("users" "wheel" "netdev" "audio" "video" "libvirt" "seat"))) '("avahi" "users" "wheel" "netdev" "audio" "cdrom" "video" "libvirt" "seat")))
%base-user-accounts)) %base-user-accounts))
<<root-package-block>> <<root-package-block>>
<<root-services-block>> <<root-services-block>>

View file

@ -69,7 +69,7 @@
(name "zilti") (name "zilti")
(group "users") (group "users")
(supplementary-groups (supplementary-groups
'("users" "wheel" "netdev" "audio" "video" "libvirt" "seat"))) '("avahi" "users" "wheel" "netdev" "audio" "cdrom" "video" "libvirt" "seat")))
%base-user-accounts)) %base-user-accounts))
(packages (packages
(append (append
@ -81,7 +81,8 @@
nss-certs nss-certs
network-manager network-manager
podman podman
readline) readline
xf86-video-amdgpu)
%base-packages)) %base-packages))
(services (services
@ -178,6 +179,14 @@
"897c1a470da759236cc11798f4e0a5f7d4d59fbc" "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint (openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
(channel
(name 'emacs-melpa)
(url "https://github.com/babariviere/guix-emacs")
(introduction
(make-channel-introduction
"72ca4ef5b572fea10a4589c37264fa35d4564783"
(openpgp-fingerprint
"261C A284 3452 FB01 F6DF 6CF4 F9B7 864F 2AB4 6F18"))))
(channel (channel
(name 'ziltis-channel) (name 'ziltis-channel)
(url "https://gitea.lyrion.ch/zilti/guixchannel")) (url "https://gitea.lyrion.ch/zilti/guixchannel"))

View file

@ -82,11 +82,11 @@
(add-hook 'after-init-hook #'elpaca-process-queues) (add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca `(,@elpaca-order)) (elpaca `(,@elpaca-order))
;;;;; use-package integration ;; Use-Package Integration
(elpaca elpaca-use-package (elpaca elpaca-use-package
(elpaca-use-package-mode) (elpaca-use-package-mode)
(setq elpaca-use-package-by-default t)) (setq elpaca-use-package-by-default nil))
(elpaca-wait) (elpaca-wait)
;;;; Package Management Configuration ;;;; Package Management Configuration
@ -113,6 +113,7 @@
;;;; Emacs ;;;; Emacs
(use-package emacs (use-package emacs
:elpaca nil :elpaca nil
:after org
:custom :custom
(completion-cycle-threshold 10) (completion-cycle-threshold 10)
(display-time-mode t) (display-time-mode t)
@ -120,6 +121,7 @@
(enable-remote-dir-locals t) (enable-remote-dir-locals t)
(fill-column 100) (fill-column 100)
(global-hl-line-mode t) (global-hl-line-mode t)
(global-prettify-symbols-mode t)
(indent-tabs-mode nil) (indent-tabs-mode nil)
(menu-bar-mode nil) (menu-bar-mode nil)
(minibuffer-prompt-properties (read-only t cursor-intangible t face minibuffer-prompt)) (minibuffer-prompt-properties (read-only t cursor-intangible t face minibuffer-prompt))
@ -131,7 +133,8 @@
:custom-face :custom-face
;;(default ((t (:weight bold :height 113 :width normal :family "VictorMono Nerd Font")))) ;;(default ((t (:weight bold :height 113 :width normal :family "VictorMono Nerd Font"))))
(fixed-pitch ((t (:weight normal :height 105 :width narrow :family "MonaspiceXe Nerd Font Mono")))) (fixed-pitch ((t (:weight normal :height 105 :width narrow :family "MonaspiceXe Nerd Font Mono"))))
(variable-pitch ((t (:weight normal :height 105 :width narrow :family "MonaspiceXe Nerd Font Propo")))) (variable-pitch ((t (:weight normal :height 130 :family "LibertinusSerif Nerd Font Propo"))))
;(variable-pitch ((t (:weight normal :height 105 :width narrow :family "MonaspiceXe Nerd Font Propo"))))
:hook :hook
(minibuffer-setup . cursor-intangible-mode) (minibuffer-setup . cursor-intangible-mode)
:config :config
@ -139,11 +142,23 @@
(global-display-fill-column-indicator-mode t) (global-display-fill-column-indicator-mode t)
(pixel-scroll-precision-mode 1)) (pixel-scroll-precision-mode 1))
(defun set-buffer-variable-pitch ()
(interactive)
(variable-pitch-mode t)
(setq line-spacing 3)
(set-face-attribute 'org-table nil :inherit 'fixed-pitch)
(set-face-attribute 'org-code nil :inherit 'fixed-pitch)
(set-face-attribute 'org-block nil :inherit 'fixed-pitch)
;; investigate: this face does not exist
;;(set-face-attribute 'org-block-background nil :inherit 'fixed-pitch)
)
;;;; Org Mode ;;;; Org Mode
(use-package org (use-package org
:elpaca nil
:preface :preface
(defun cc/org-local-stuff () (defun cc/org-local-stuff ()
(setq-local visual-fill-column-center-text t)) (setq-local visual-fill-column-center-text t))
:elpaca (:repo "https://git.savannah.gnu.org/git/emacs/org-mode.git" :branch "emacs-sync") :elpaca (:repo "https://git.savannah.gnu.org/git/emacs/org-mode.git" :branch "emacs-sync")
:after visual-fill-column :after visual-fill-column
:ensure t :ensure t
@ -155,12 +170,12 @@
(org-mode . org-indent-mode) (org-mode . org-indent-mode)
(org-src-mode . hack-local-variables) (org-src-mode . hack-local-variables)
(org-mode . visual-line-mode) (org-mode . visual-line-mode)
(org-mode . set-buffer-variable-pitch)
:config :config
(setq org-directory "~/org") (setq org-directory "~/org")
(add-to-list 'org-modules 'collector)) (add-to-list 'org-modules 'collector))
(use-package org-roam (use-package org-roam
:ensure t
:custom :custom
(org-roam-directory "~/org/roam") (org-roam-directory "~/org/roam")
:config :config
@ -171,11 +186,9 @@
(consult-notes-org-roam-mode t)) (consult-notes-org-roam-mode t))
(use-package websocket (use-package websocket
:ensure t
:after org-roam) :after org-roam)
(use-package org-roam-ui (use-package org-roam-ui
:ensure t
:after org-roam :after org-roam
:custom :custom
(org-roam-ui-sync-theme t) (org-roam-ui-sync-theme t)
@ -184,10 +197,9 @@
(org-roam-ui-open-on-start t)) (org-roam-ui-open-on-start t))
(use-package org-modern (use-package org-modern
:ensure t
:hook :hook
((org-mode . org-modern-mode) (org-mode . org-modern-mode)
(org-agenda-finalize . org-modern-agenda))) (org-agenda-finalize . org-modern-agenda))
(use-package org-rainbow-tags (use-package org-rainbow-tags
:hook :hook
@ -217,7 +229,7 @@
:config :config
(ligature-set-ligatures (ligature-set-ligatures
't 't
'( ;; SS01 '(;; SS01
"==" "===" "=/=" "!=" "!==" "/=" "/==" "~~" "=~" "!~" "==" "===" "=/=" "!=" "!==" "/=" "/==" "~~" "=~" "!~"
;; SS02 ;; SS02
">=" "<=" ">=" "<="
@ -243,7 +255,6 @@
(add-to-list 'default-frame-alist '(alpha-background . 90)) (add-to-list 'default-frame-alist '(alpha-background . 90))
(use-package lambda-line (use-package lambda-line
;;:straight (:type git :host github :repo "lambda-emacs/lambda-line")
:elpaca (: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)
@ -280,7 +291,6 @@
(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")
:elpaca (: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)
@ -297,11 +307,16 @@
(visual-fill-column-enable-sensible-window-split t) (visual-fill-column-enable-sensible-window-split t)
:hook :hook
(prog-mode . visual-line-mode) (prog-mode . visual-line-mode)
visual-line-mode) visual-line-mode
;; :config
;; (add-hook 'prog-mode-hook #'visual-line-mode)
;; (add-hook 'visual-line-mode-hook #'visual-fill-column-mode)
)
(use-package adaptive-wrap (use-package adaptive-wrap
:config :config
(setq-default adaptive-wrap-extra-indent 4) (setq-default adaptive-wrap-extra-indent 4)
;;(add-hook 'visual-line-mode-hook #'adaptive-wrap-prefix-mode)
:hook :hook
(visual-line-mode . adaptive-wrap-prefix-mode)) (visual-line-mode . adaptive-wrap-prefix-mode))
@ -311,12 +326,9 @@
(keychain-refresh-environment)) (keychain-refresh-environment))
(use-package pass) (use-package pass)
(use-package password-store)
(use-package password-store-otp)
;;;; Evil Mode ;;;; Evil Mode
(use-package evil (use-package evil
;; :after evil-leader
:ensure t :ensure t
:init :init
(setq evil-want-keybinding nil (setq evil-want-keybinding nil
@ -408,11 +420,13 @@
:commands :commands
which-key-setup-minibuffer which-key-setup-minibuffer
:init :init
(which-key-setup-minibuffer)) (which-key-setup-minibuffer)
:config
(which-key-mode t))
;;;;; Code Completion ;;;;; Code Completion
(use-package cape (use-package cape
:preface :config
(defun my/capf () (defun my/capf ()
(setq completion-at-point-functions (setq completion-at-point-functions
(list (cape-capf-super (list (cape-capf-super
@ -423,11 +437,34 @@
#'cape-line #'cape-line
#'cape-emoji #'cape-emoji
#'cape-keyword)))) #'cape-keyword))))
:config (defun my/eglot-capf ()
(setq completion-at-point-functions
(list (cape-capf-super
#'eglot-completion-at-point
#'tempel-complete
#'cape-dabbrev
#'cape-file
#'cape-dict
#'cape-line
#'cape-emoji
#'cape-keyword))))
(defun my/geiser-capf ()
(setq completion-at-point-functions
(append geiser-capf--capfs
(list (cape-capf-super
#'tempel-complete
#'cape-dabbrev
#'cape-file
#'cape-dict
#'cape-line
#'cape-emoji
#'cape-keyword)))))
(advice-add 'eglot-completion-at-point :around #'cape-wrap-buster) (advice-add 'eglot-completion-at-point :around #'cape-wrap-buster)
:hook :hook
(org-mode . my/capf) (org-mode . my/capf)
(prog-mode . my/capf)) (prog-mode . my/capf)
(eglot-managed-mode . my/eglot-capf)
(geiser-mode . my/geiser-capf))
(defun my/corfu-combined-sort (candidates) (defun my/corfu-combined-sort (candidates)
"Sort CANDIDATES using both display-sort-function and corfu-sort-function." "Sort CANDIDATES using both display-sort-function and corfu-sort-function."
@ -473,6 +510,7 @@
(use-package tempel) (use-package tempel)
(use-package xref-union (use-package xref-union
:elpaca t
:hook :hook
cider-connected) cider-connected)
@ -484,15 +522,17 @@
("g;" . 'goto-last-change-reverse))) ("g;" . 'goto-last-change-reverse)))
(use-package evil-snipe (use-package evil-snipe
:delight (evil-snipe-local-mode " 󰓾 ") :after evil-easymotion
:custom :custom
(evil-snipe-scope 'whole-visible) (evil-snipe-scope 'whole-visible)
(evil-snipe-repeat-scope 'whole-buffer) (evil-snipe-repeat-scope 'whole-buffer)
(evil-snipe-spillover-scope 'whole-buffer) (evil-snipe-spillover-scope 'whole-buffer)
(evil-snipe-tab-increment t) (evil-snipe-tab-increment t)
:commands
evil-snipe-override-mode
:init
(evil-snipe-override-mode 1)
:hook :hook
evil-mode
(evil-mode . evil-snipe-override-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
@ -503,6 +543,7 @@
) )
(use-package evil-easymotion (use-package evil-easymotion
:after evil
:config :config
(evilem-default-keybindings "<leader>")) (evilem-default-keybindings "<leader>"))
@ -553,21 +594,20 @@ Point must be at the beginning of balanced expression (sexp)."
(looking-back (rx (or ")" "}" "]")))) (looking-back (rx (or ")" "}" "]"))))
;;;;; Basic ;;;;; Basic
(use-package symex ;; (use-package symex
:custom ;; :custom
(symex-modal-backend 'evil) ;; (symex-modal-backend 'evil)
:config ;; :config
(symex-initialize) ;; (symex-initialize)
:bind ;; :bind
(:map evil-insert-state-map ;; (:map evil-insert-state-map
("C-ß" . #'symex-mode-interface))) ;; ("C-ß" . #'symex-mode-interface)))
(use-package paredit (use-package paredit
:hook
clojure-ts-mode
emacs-lisp-mode
scheme-mode
:config :config
;; (add-hook 'clojure-ts-mode-hook #'paredit-mode)
;; (add-hook 'emacs-lisp-mode-hook #'paredit-mode)
;; (add-hook 'scheme-mode-hook #'paredit-mode)
(evil-define-key 'insert paredit-mode-map (evil-define-key 'insert paredit-mode-map
(kbd "r") (conditional-keybind #'looking-at-opening-paren (kbd "r") (conditional-keybind #'looking-at-opening-paren
#'paredit-raise-sexp) #'paredit-raise-sexp)
@ -580,10 +620,13 @@ Point must be at the beginning of balanced expression (sexp)."
(kbd ">") (conditional-keybind #'being-past-closing-paren (kbd ">") (conditional-keybind #'being-past-closing-paren
#'cc/slurp-forward) #'cc/slurp-forward)
(kbd "<") (conditional-keybind #'being-past-closing-paren (kbd "<") (conditional-keybind #'being-past-closing-paren
#'cc/barf-forward))) #'cc/barf-forward))
:hook
clojure-ts-mode
emacs-lisp-mode
scheme-mode)
;; (use-package smartparens ;; (use-package smartparens
;; :delight (smartparens-mode " 󰅲 ")
;; :hook ;; :hook
;; (smartparens-mode . show-smartparens-mode) ;; (smartparens-mode . show-smartparens-mode)
;; (smartparens-mode . smartparens-strict-mode) ;; (smartparens-mode . smartparens-strict-mode)
@ -656,26 +699,11 @@ Point must be at the beginning of balanced expression (sexp)."
:delight '(:eval (cons "" (flymake--mode-line-counters)))) :delight '(:eval (cons "" (flymake--mode-line-counters))))
(use-package eglot (use-package eglot
:preface
(defun my/eglot-capf ()
(setq completion-at-point-functions
(list (cape-capf-super
#'eglot-completion-at-point
#'tempel-complete
#'cape-dabbrev
#'cape-file
#'cape-dict
#'cape-line
#'cape-emoji
#'cape-keyword))))
:custom :custom
(eglot-connect-timeout 90) (eglot-connect-timeout 90)
(eglot-autoshutdown t) (eglot-autoshutdown t)
(eglot-report-progress t) (eglot-report-progress t)
:config :config
(defun eglot-mode ()
(eglot-inlay-hints-mode +1)
(my/eglot-capf))
(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
@ -706,108 +734,122 @@ Point must be at the beginning of balanced expression (sexp)."
(call-interactively #'eglot-format-buffer)) (call-interactively #'eglot-format-buffer))
nil 'local))) nil 'local)))
(eglot-managed-mode . eglot-inlay-hints-mode) (eglot-managed-mode . eglot-inlay-hints-mode)
(eglot-managed-mode . my/eglot-capf)) (clojure-mode . eglot-ensure))
(use-package consult-eglot (use-package consult-eglot
:after (consult eglot)) :after (consult eglot))
(use-package tree-sitter
:ensure t)
;;;;; Clojure ;;;;; Clojure
(use-package clojure-ts-mode ;; (use-package clojure-ts-mode
;; :preface
;; (defun embark-eglot-rename (from to)
;; "Renames the symbol at point."
;; (interactive "sRename: \nsRename %s to: ")
;; (funcall-interactively #'eglot-rename to))
;; (defun cc/clojure-local-stuff ()
;; (setq-local sesman-system 'CIDER)
;; (setq-local prettify-symbols-alist '(("fn" . "λ"))))
;; :delight ""
;; :after (tree-sitter embark cider clojure-mode)
;; :config
;; (require 'sesman)
;; (sesman-install-menu clojure-ts-mode-map)
;; (defvar-keymap embark-clj-identifier-map
;; :parent embark-identifier-map
;; "c" #'embark-eglot-rename)
;; (add-to-list 'embark-keymap-alist '(identifier . embark-clj-identifier-map))
;; :hook
;; ((clojure-ts-mode . eglot-ensure)
;; (clojure-ts-mode . prettify-symbols-mode)
;; (clojure-ts-mode . #'cc/clojure-local-stuff)
;; (clojure-ts-mode . (lambda ()
;; (sesman-install-menu clojure-mode-map)))
;; (clojurec-ts-mode . (lambda ()
;; (sesman-install-menu clojurec-mode-map)))
;; (clojurescript-ts-mode . (lambda ()
;; (sesman-install-menu clojurescript-mode-map))))
;; :mode
;; ("\\.clj\\'" . clojure-ts-mode)
;; ("\\.cljc\\'" . clojurec-ts-mode)
;; ("\\.cljs\\'" . clojurescript-ts-mode)
;; :init
;; (add-to-list 'tree-sitter-major-mode-language-alist
;; '(clojure-ts-mode . clojure))
;; (add-to-list 'tree-sitter-major-mode-language-alist
;; '(clojurec-ts-mode . clojure))
;; (add-to-list 'tree-sitter-major-mode-language-alist
;; '(clojurescript-ts-mode . clojure)))
(use-package clojure-mode
:preface :preface
(defun embark-eglot-rename (from to) (defun embark-eglot-rename (from to)
"Renames the symbol at point." "Renames the symbol at point."
(interactive "sRename: \nsRename %s to: ") (interactive "sRename: \nRename %s to: ")
(funcall-interactively #'eglot-rename to)) (funcall-interactively #'eglot-rename to))
(defun cc/clojure-local-stuff ()
(setq-local sesman-system 'CIDER)
(setq-local prettify-symbols-alist '(("fn" . "λ"))))
:delight "" :delight ""
:after (tree-sitter embark cider) :after (embark cider)
:config :config
(require 'sesman)
(sesman-install-menu clojure-ts-mode-map)
(defvar-keymap embark-clj-identifier-map (defvar-keymap embark-clj-identifier-map
:parent embark-identifier-map :parent embark-identifier-map
"c" #'embark-eglot-rename) "c" #'embark-eglot-rename)
(add-to-list 'embark-keymap-alist '(identifier . embark-clj-identifier-map)) (add-to-list 'embark-keymap-alist '(identifier . embark-clj-identifier-map))
:hook :hook
((clojure-ts-mode . eglot-ensure) (clojure-mode . (lambda ()
(clojure-ts-mode . prettify-symbols-mode) (setq-local prettify-symbols-alist
(clojure-ts-mode . #'cc/clojure-local-stuff) '(("(fn " . "")
(clojure-ts-mode . (lambda () ("(comp " . "(∘ ")
(sesman-install-menu clojure-mode-map))) ("(and " . "(∧ ")
(clojurec-ts-mode . (lambda () ("(or " . "( ")
(sesman-install-menu clojurec-mode-map))) ("(not " . ""))))))
(clojurescript-ts-mode . (lambda ()
(sesman-install-menu clojurescript-mode-map))))
:mode
("\\.clj\\'" . #'clojure-ts-mode)
("\\.cljc\\'" . #'clojurec-ts-mode)
("\\.cljs\\'" . #'clojurescript-ts-mode)
:init
(add-to-list 'tree-sitter-major-mode-language-alist
'(clojure-ts-mode . clojure))
(add-to-list 'tree-sitter-major-mode-language-alist
'(clojurec-ts-mode . clojure))
(add-to-list 'tree-sitter-major-mode-language-alist
'(clojurescript-ts-mode . clojure)))
(use-package cider (use-package cider
:elpaca (:host github :repo "clojure-emacs/cider" :tag "v1.12.0") ;; :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) "]")))
:config :config
(evil-define-key 'insert 'cider-mode-map
"C-x C-e" #'cider-eval-last-sexp)
(evil-define-key 'normal 'cider-mode-map (evil-define-key 'normal 'cider-mode-map
(kbd "<localleader>ce") #'cider-eval-sexp-at-point)) (kbd "<localleader>ce") #'cider-eval-sexp-at-point))
;;;;; Scheme ;;;;; Scheme
(use-package geiser (use-package geiser
:preface
(defun my/geiser-capf ()
(setq completion-at-point-functions
(append geiser-capf--capfs
(list (cape-capf-super
#'tempel-complete
#'cape-dabbrev
#'cape-file
#'cape-dict
#'cape-line
#'cape-emoji
#'cape-keyword)))))
:custom :custom
(geiser-chicken-match-limit 200) (geiser-chicken-match-limit 200)
:config :config
(defalias 'run-geiser 'geiser) (defalias 'run-geiser 'geiser))
:hook
(geiser-mode . my/geiser-capf))
(use-package paren-face (use-package paren-face
:hook :hook
scheme-mode scheme-mode
emacs-lisp-mode emacs-lisp-mode
clojure-ts-mode) clojure-ts-mode
;; :config
;; (add-hook 'scheme-mode-hook #'paren-face-mode)
;; (add-hook 'emacs-lisp-mode-hook #'paren-face-mode)
;; (add-hook 'clojure-ts-mode-hook #'paren-face-mode)
)
(use-package highlight-parentheses (use-package highlight-parentheses
:hook prog-mode) :hook
prog-mode
;; :config
;; (add-hook 'prog-mode-hook #'highlight-parentheses-mode)
)
;;;;;; Chicken Scheme ;;;;;; Chicken Scheme
(use-package scheme (use-package scheme
:elpaca nil :elpaca nil
:hook :hook
(scheme-mode . eglot-ensure)
(scheme-mode . prettify-symbols-mode)
(scheme-mode . (lambda () (scheme-mode . (lambda ()
(setq-local prettify-symbols-alist (setq-local prettify-symbols-alist
'(("lambda" . "λ")))))) '(("(lambda " . "")
("(compose " . "(∘ ")
("(and " . "(∧ ")
("(or " . "( ")
("(not " . ""))))))
(defun flymake-chicken-init () (defun flymake-chicken-init ()
(add-hook 'flymake-diagnostic-functions (add-hook flymake-diagnostic-functions
#'flymake-chicken-backend nil t) flymake-chicken-backend nil t)
(flymake-mode)) (flymake-mode))
(use-package geiser-chicken) (use-package geiser-chicken)
@ -884,8 +926,11 @@ Point must be at the beginning of balanced expression (sexp)."
(code-review-auth-login-marker 'forge)) (code-review-auth-login-marker 'forge))
(use-package git-gutter (use-package git-gutter
:delight git-gutter-mode :hook
:hook prog-mode) prog-mode
;; :config
;; (add-hook 'prog-mode-hook #'git-gutter-mode)
)
;;;; LaTeX ;;;; LaTeX
;; https://github.com/politza/pdf-tools/#known-problems ;; https://github.com/politza/pdf-tools/#known-problems

View file

@ -69,10 +69,6 @@
("MOZ_ENABLE_WAYLAND" . "1") ("MOZ_ENABLE_WAYLAND" . "1")
("SSL_CERT_FILE" . "$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt") ("SSL_CERT_FILE" . "$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt")
("CHICKEN_DOC_REPOSITORY" . "$XDG_DATA_HOME/chicken/doc") ("CHICKEN_DOC_REPOSITORY" . "$XDG_DATA_HOME/chicken/doc")
;; To be removed once the nss-certs thing has been figured out
("SSL_CERT_DIR" . "$HOME/.guix-profile/etc/ssl/certs")
("SSL_CERT_FILE" . "$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt")
("GIT_SSL_CAINFO" . "$SSL_CERT_FILE")
;; ("CHICKEN_INSTALL_REPOSITORY" . "$XDG_DATA_HOME/chicken/eggs") ;; ("CHICKEN_INSTALL_REPOSITORY" . "$XDG_DATA_HOME/chicken/eggs")
;; ("CHICKEN_REPOSITORY_PATH" . "$HOME/.guix-home/profile/var/lib/chicken/11/:$XDG_DATA_HOME/chicken/eggs") ;; ("CHICKEN_REPOSITORY_PATH" . "$HOME/.guix-home/profile/var/lib/chicken/11/:$XDG_DATA_HOME/chicken/eggs")
;; ("CHICKEN_INSTALL_PREFIX" . "$HOME/.local") ;; ("CHICKEN_INSTALL_PREFIX" . "$HOME/.local")
@ -120,6 +116,14 @@
(channel (channel
(name 'ziltis-channel) (name 'ziltis-channel)
(url "https://gitea.lyrion.ch/zilti/guixchannel")) (url "https://gitea.lyrion.ch/zilti/guixchannel"))
(channel
(name 'emacs-melpa)
(url "https://github.com/babariviere/guix-emacs")
(introduction
(make-channel-introduction
"72ca4ef5b572fea10a4589c37264fa35d4564783"
(openpgp-fingerprint
"261C A284 3452 FB01 F6DF 6CF4 F9B7 864F 2AB4 6F18"))))
(channel (channel
(name 'nongnu-guix) (name 'nongnu-guix)
(url "https://gitlab.com/nonguix/nonguix")))) (url "https://gitlab.com/nonguix/nonguix"))))
@ -146,6 +150,7 @@
"fuzzel" "fuzzel"
"fzf" "fzf"
"gammastep" "gammastep"
"gash"
"grim" "grim"
"guile" "guile"
"glibc-locales" "glibc-locales"
@ -154,12 +159,12 @@
"icedove-wayland" "icedove-wayland"
"kitty" "kitty"
"ksshaskpass" "ksshaskpass"
;; "liquidprompt" https://issues.guix.gnu.org/67942
"make" "make"
"nm-tray" "nm-tray"
"nnn" "nnn"
"nss-certs" "nss-certs"
"nwg-displays" "nwg-displays"
#;"nss-certs" ; This package is broken
"openssh" "openssh"
"password-store" "password-store"
"pass-otp" "pass-otp"
@ -169,6 +174,8 @@
"pipewire" "pipewire"
"pv" "pv"
"rsync" "rsync"
"rust"
"rust-cargo"
"senpai" "senpai"
"sideload" "sideload"
"slurp" "slurp"
@ -177,12 +184,74 @@
"swayfx" "swayfx"
"swayidle" "swayidle"
"swaylock-effects" "swaylock-effects"
"telegram-desktop"
"tig" "tig"
"tree-sitter"
"unzip" "unzip"
"visidata" "visidata"
"waybar" "waybar"
"wireplumber-minimal"
"wlogout" "wlogout"
"xdg-desktop-portal"))) "xdg-desktop-portal"
"emacs-el-patch"
"emacs-guix"
"emacs-org"
"emacs-org-roam"
"emacs-consult-notes"
"emacs-websocket"
"emacs-org-roam-ui"
"emacs-org-modern"
"emacs-org-rainbow-tags"
"emacs-color-theme-modern"
"emacs-moe-theme"
"emacs-catppuccin-theme"
"emacs-unicode-fonts"
"emacs-ligature"
"emacs-visual-fill-column"
"emacs-adaptive-wrap"
"emacs-keychain-environment"
"emacs-pass"
"emacs-evil"
"emacs-evil-collection"
"emacs-orderless"
"emacs-embark-consult"
"emacs-wgrep"
"emacs-vertico"
"emacs-marginalia"
"emacs-nerd-icons-completion"
"emacs-which-key"
"emacs-cape"
"emacs-corfu"
"emacs-nerd-icons-corfu"
;; "emacs-corfu-terminal"
"emacs-tempel"
"emacs-xref-union"
"emacs-goto-chg"
"emacs-evil-easymotion"
"emacs-evil-snipe"
"emacs-paredit"
"emacs-editorconfig"
"emacs-eglot"
"emacs-consult-eglot"
"emacs-tree-sitter"
"emacs-clojure-mode"
"emacs-cider"
"emacs-geiser"
"emacs-paren-face"
"emacs-highlight-parentheses"
"emacs-geiser-chicken"
"emacs-geiser-guile"
"emacs-zig-mode"
"emacs-dhall-mode"
"emacs-transient"
"emacs-magit"
"emacs-magit-todos"
"emacs-forge"
"emacs-code-review"
"emacs-git-gutter"
"emacs-envrc"
)))
(service home-openssh-service-type (service home-openssh-service-type
(home-openssh-configuration (home-openssh-configuration
(hosts (hosts

View file

@ -121,7 +121,7 @@ bindsym $mod+Shift+r exec swaymsg "focus parent; split v; exec fuzzel"
bindsym $mod+ctrl+l exec swaylock bindsym $mod+ctrl+l exec swaylock
# Screenshots # Screenshots
bindsym $mod+Print exec grim -g slurp - | swappy -f - bindsym $mod+Print exec grim -l 9 -g "`slurp`" - | swappy -f -
# Drag floating windows by holding down $mod and left mouse button. # Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod. # Resize them with right mouse button + $mod.