From 925301ae9ad8ad8cde493be59da048a55a370745 Mon Sep 17 00:00:00 2001 From: Daniel Ziltener Date: Fri, 22 Dec 2023 14:59:57 +0100 Subject: [PATCH] . --- channels.scm | 8 ++ config.org | 11 +- config.scm | 13 +- home/emacs/init.el | 269 +++++++++++++++++++++--------------- home/home-configuration.scm | 81 ++++++++++- home/sway/sway | 2 +- 6 files changed, 262 insertions(+), 122 deletions(-) diff --git a/channels.scm b/channels.scm index 589f3b4..24d49e0 100644 --- a/channels.scm +++ b/channels.scm @@ -7,6 +7,14 @@ "897c1a470da759236cc11798f4e0a5f7d4d59fbc" (openpgp-fingerprint "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 (name 'ziltis-channel) (url "https://gitea.lyrion.ch/zilti/guixchannel")) diff --git a/config.org b/config.org index b58f3c7..fec9258 100644 --- a/config.org +++ b/config.org @@ -134,6 +134,14 @@ This adds the Nonguix channel. "897c1a470da759236cc11798f4e0a5f7d4d59fbc" (openpgp-fingerprint "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 (name 'ziltis-channel) (url "https://gitea.lyrion.ch/zilti/guixchannel")) @@ -152,6 +160,7 @@ This adds the Nonguix channel. - network-manager - podman - readline +- xf86-video-amdgpu #+NAME: root-package-block #+begin_src scheme :noweb no-export @@ -342,7 +351,7 @@ This is the full operating system specification. (name "zilti") (group "users") (supplementary-groups - '("users" "wheel" "netdev" "audio" "video" "libvirt" "seat"))) + '("avahi" "users" "wheel" "netdev" "audio" "cdrom" "video" "libvirt" "seat"))) %base-user-accounts)) <> <> diff --git a/config.scm b/config.scm index 72b108c..de53e14 100644 --- a/config.scm +++ b/config.scm @@ -69,7 +69,7 @@ (name "zilti") (group "users") (supplementary-groups - '("users" "wheel" "netdev" "audio" "video" "libvirt" "seat"))) + '("avahi" "users" "wheel" "netdev" "audio" "cdrom" "video" "libvirt" "seat"))) %base-user-accounts)) (packages (append @@ -81,7 +81,8 @@ nss-certs network-manager podman - readline) + readline + xf86-video-amdgpu) %base-packages)) (services @@ -178,6 +179,14 @@ "897c1a470da759236cc11798f4e0a5f7d4d59fbc" (openpgp-fingerprint "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 (name 'ziltis-channel) (url "https://gitea.lyrion.ch/zilti/guixchannel")) diff --git a/home/emacs/init.el b/home/emacs/init.el index 3eb597a..ff246a4 100644 --- a/home/emacs/init.el +++ b/home/emacs/init.el @@ -82,11 +82,11 @@ (add-hook 'after-init-hook #'elpaca-process-queues) (elpaca `(,@elpaca-order)) -;;;;; use-package integration +;; Use-Package Integration (elpaca elpaca-use-package (elpaca-use-package-mode) - (setq elpaca-use-package-by-default t)) + (setq elpaca-use-package-by-default nil)) (elpaca-wait) ;;;; Package Management Configuration @@ -113,6 +113,7 @@ ;;;; Emacs (use-package emacs :elpaca nil + :after org :custom (completion-cycle-threshold 10) (display-time-mode t) @@ -120,6 +121,7 @@ (enable-remote-dir-locals t) (fill-column 100) (global-hl-line-mode t) + (global-prettify-symbols-mode t) (indent-tabs-mode nil) (menu-bar-mode nil) (minibuffer-prompt-properties (read-only t cursor-intangible t face minibuffer-prompt)) @@ -131,7 +133,8 @@ :custom-face ;;(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")))) - (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 (minibuffer-setup . cursor-intangible-mode) :config @@ -139,11 +142,23 @@ (global-display-fill-column-indicator-mode t) (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 (use-package org + :elpaca nil :preface (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") :after visual-fill-column :ensure t @@ -155,12 +170,12 @@ (org-mode . org-indent-mode) (org-src-mode . hack-local-variables) (org-mode . visual-line-mode) + (org-mode . set-buffer-variable-pitch) :config (setq org-directory "~/org") (add-to-list 'org-modules 'collector)) (use-package org-roam - :ensure t :custom (org-roam-directory "~/org/roam") :config @@ -171,11 +186,9 @@ (consult-notes-org-roam-mode t)) (use-package websocket - :ensure t :after org-roam) (use-package org-roam-ui - :ensure t :after org-roam :custom (org-roam-ui-sync-theme t) @@ -184,10 +197,9 @@ (org-roam-ui-open-on-start t)) (use-package org-modern - :ensure t :hook - ((org-mode . org-modern-mode) - (org-agenda-finalize . org-modern-agenda))) + (org-mode . org-modern-mode) + (org-agenda-finalize . org-modern-agenda)) (use-package org-rainbow-tags :hook @@ -217,7 +229,7 @@ :config (ligature-set-ligatures 't - '( ;; SS01 + '(;; SS01 "==" "===" "=/=" "!=" "!==" "/=" "/==" "~~" "=~" "!~" ;; SS02 ">=" "<=" @@ -243,7 +255,6 @@ (add-to-list 'default-frame-alist '(alpha-background . 90)) (use-package lambda-line - ;;:straight (:type git :host github :repo "lambda-emacs/lambda-line") :elpaca (:host github :repo "lambda-emacs/lambda-line") :custom (lambda-line-icon-time t) ;; requires ClockFace font (see below) @@ -280,7 +291,6 @@ (setq mode-line-format (list "%_")))) (use-package lambda-themes - ;;:straight (:type git :host github :repo "lambda-emacs/lambda-themes") :elpaca (:host github :repo "lambda-emacs/lambda-themes") :custom (lambda-themes-set-italic-comments t) @@ -297,11 +307,16 @@ (visual-fill-column-enable-sensible-window-split t) :hook (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 :config (setq-default adaptive-wrap-extra-indent 4) + ;;(add-hook 'visual-line-mode-hook #'adaptive-wrap-prefix-mode) :hook (visual-line-mode . adaptive-wrap-prefix-mode)) @@ -311,12 +326,9 @@ (keychain-refresh-environment)) (use-package pass) -(use-package password-store) -(use-package password-store-otp) ;;;; Evil Mode (use-package evil - ;; :after evil-leader :ensure t :init (setq evil-want-keybinding nil @@ -408,11 +420,13 @@ :commands which-key-setup-minibuffer :init - (which-key-setup-minibuffer)) + (which-key-setup-minibuffer) + :config + (which-key-mode t)) ;;;;; Code Completion (use-package cape - :preface + :config (defun my/capf () (setq completion-at-point-functions (list (cape-capf-super @@ -423,11 +437,34 @@ #'cape-line #'cape-emoji #'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) :hook (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) "Sort CANDIDATES using both display-sort-function and corfu-sort-function." @@ -473,6 +510,7 @@ (use-package tempel) (use-package xref-union + :elpaca t :hook cider-connected) @@ -484,15 +522,17 @@ ("g;" . 'goto-last-change-reverse))) (use-package evil-snipe - :delight (evil-snipe-local-mode " 󰓾 ") + :after evil-easymotion :custom (evil-snipe-scope 'whole-visible) (evil-snipe-repeat-scope 'whole-buffer) (evil-snipe-spillover-scope 'whole-buffer) (evil-snipe-tab-increment t) + :commands + evil-snipe-override-mode + :init + (evil-snipe-override-mode 1) :hook - evil-mode - (evil-mode . evil-snipe-override-mode) (magit-mode . turn-off-evil-snipe-override-mode) ;; See https://github.com/hlissner/evil-snipe/issues/95 ;; :config @@ -503,6 +543,7 @@ ) (use-package evil-easymotion + :after evil :config (evilem-default-keybindings "")) @@ -553,21 +594,20 @@ Point must be at the beginning of balanced expression (sexp)." (looking-back (rx (or ")" "}" "]")))) ;;;;; Basic -(use-package symex - :custom - (symex-modal-backend 'evil) - :config - (symex-initialize) - :bind - (:map evil-insert-state-map - ("C-ß" . #'symex-mode-interface))) +;; (use-package symex +;; :custom +;; (symex-modal-backend 'evil) +;; :config +;; (symex-initialize) +;; :bind +;; (:map evil-insert-state-map +;; ("C-ß" . #'symex-mode-interface))) (use-package paredit - :hook - clojure-ts-mode - emacs-lisp-mode - scheme-mode :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 (kbd "r") (conditional-keybind #'looking-at-opening-paren #'paredit-raise-sexp) @@ -580,10 +620,13 @@ Point must be at the beginning of balanced expression (sexp)." (kbd ">") (conditional-keybind #'being-past-closing-paren #'cc/slurp-forward) (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 -;; :delight (smartparens-mode " 󰅲 ") ;; :hook ;; (smartparens-mode . show-smartparens-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)))) (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 (eglot-connect-timeout 90) (eglot-autoshutdown t) (eglot-report-progress t) :config - (defun eglot-mode () - (eglot-inlay-hints-mode +1) - (my/eglot-capf)) (setq-default eglot-workspace-configuration '((clojure-lsp (maxCompletions . 300)))) (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)) nil 'local))) (eglot-managed-mode . eglot-inlay-hints-mode) - (eglot-managed-mode . my/eglot-capf)) + (clojure-mode . eglot-ensure)) (use-package consult-eglot :after (consult eglot)) -(use-package tree-sitter - :ensure t) - ;;;;; 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 (defun embark-eglot-rename (from to) "Renames the symbol at point." - (interactive "sRename: \nsRename %s to: ") + (interactive "sRename: \nRename %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) + :after (embark cider) :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))) + (clojure-mode . (lambda () + (setq-local prettify-symbols-alist + '(("(fn " . "(λ ") + ("(comp " . "(∘ ") + ("(and " . "(∧ ") + ("(or " . "(∨ ") + ("(not " . "(¬ ")))))) (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) "]"))) :config - (evil-define-key 'insert 'cider-mode-map - "C-x C-e" #'cider-eval-last-sexp) (evil-define-key 'normal 'cider-mode-map (kbd "ce") #'cider-eval-sexp-at-point)) ;;;;; Scheme (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 (geiser-chicken-match-limit 200) :config - (defalias 'run-geiser 'geiser) - :hook - (geiser-mode . my/geiser-capf)) + (defalias 'run-geiser 'geiser)) (use-package paren-face :hook scheme-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 - :hook prog-mode) + :hook + prog-mode + ;; :config + ;; (add-hook 'prog-mode-hook #'highlight-parentheses-mode) + ) ;;;;;; Chicken Scheme (use-package scheme :elpaca nil :hook - (scheme-mode . eglot-ensure) - (scheme-mode . prettify-symbols-mode) (scheme-mode . (lambda () (setq-local prettify-symbols-alist - '(("lambda" . "λ")))))) + '(("(lambda " . "(λ ") + ("(compose " . "(∘ ") + ("(and " . "(∧ ") + ("(or " . "(∨ ") + ("(not " . "(¬ ")))))) (defun flymake-chicken-init () - (add-hook 'flymake-diagnostic-functions - #'flymake-chicken-backend nil t) + (add-hook flymake-diagnostic-functions + flymake-chicken-backend nil t) (flymake-mode)) (use-package geiser-chicken) @@ -884,8 +926,11 @@ Point must be at the beginning of balanced expression (sexp)." (code-review-auth-login-marker 'forge)) (use-package git-gutter - :delight git-gutter-mode - :hook prog-mode) + :hook + prog-mode + ;; :config + ;; (add-hook 'prog-mode-hook #'git-gutter-mode) + ) ;;;; LaTeX ;; https://github.com/politza/pdf-tools/#known-problems diff --git a/home/home-configuration.scm b/home/home-configuration.scm index 332b394..e5baa94 100644 --- a/home/home-configuration.scm +++ b/home/home-configuration.scm @@ -69,10 +69,6 @@ ("MOZ_ENABLE_WAYLAND" . "1") ("SSL_CERT_FILE" . "$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt") ("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_REPOSITORY_PATH" . "$HOME/.guix-home/profile/var/lib/chicken/11/:$XDG_DATA_HOME/chicken/eggs") ;; ("CHICKEN_INSTALL_PREFIX" . "$HOME/.local") @@ -120,6 +116,14 @@ (channel (name 'ziltis-channel) (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 (name 'nongnu-guix) (url "https://gitlab.com/nonguix/nonguix")))) @@ -146,6 +150,7 @@ "fuzzel" "fzf" "gammastep" + "gash" "grim" "guile" "glibc-locales" @@ -154,12 +159,12 @@ "icedove-wayland" "kitty" "ksshaskpass" + ;; "liquidprompt" https://issues.guix.gnu.org/67942 "make" "nm-tray" "nnn" "nss-certs" "nwg-displays" - #;"nss-certs" ; This package is broken "openssh" "password-store" "pass-otp" @@ -169,6 +174,8 @@ "pipewire" "pv" "rsync" + "rust" + "rust-cargo" "senpai" "sideload" "slurp" @@ -177,12 +184,74 @@ "swayfx" "swayidle" "swaylock-effects" + "telegram-desktop" "tig" + "tree-sitter" "unzip" "visidata" "waybar" + "wireplumber-minimal" "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 (home-openssh-configuration (hosts diff --git a/home/sway/sway b/home/sway/sway index f39d586..9aac88e 100644 --- a/home/sway/sway +++ b/home/sway/sway @@ -121,7 +121,7 @@ bindsym $mod+Shift+r exec swaymsg "focus parent; split v; exec fuzzel" bindsym $mod+ctrl+l exec swaylock # 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. # Resize them with right mouse button + $mod.