This commit is contained in:
Daniel Ziltener 2023-12-13 03:02:44 +01:00
parent 1b8aca7d3f
commit 9c8e94145f
Signed by: zilti
GPG Key ID: B38976E82C9DAE42
6 changed files with 277 additions and 193 deletions

View File

@ -1,7 +1,9 @@
~/.config/guix/channels.scm:
mkdir -p ~/.config/guix
cp channels.scm ~/.config/guix/channels.scm
mkdir -p ~/.config/guix
cp channels.scm ~/.config/guix/channels.scm
install:
guix archive --authorize < signing-key.pub
guix system reconfigure ./config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
reconfigure:
guix archive --authorize < signing-key.pub
guix system reconfigure ./config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
make -C /home/zilti/.guix-home/profile/lib/browserpass make hosts-firefox-user
flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

View File

@ -10,13 +10,13 @@
* Makefile
#+begin_src makefile :tangle Makefile
~/.config/guix/channels.scm:
mkdir -p ~/.config/guix
cp channels.scm ~/.config/guix/channels.scm
install:
guix archive --authorize < signing-key.pub
guix system reconfigure ./config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
reconfigure:
mkdir -p ~/.config/guix
cp channels.scm ~/.config/guix/channels.scm
guix archive --authorize < signing-key.pub
guix system reconfigure ./config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
make -C /home/zilti/.guix-home/profile/lib/browserpass make hosts-firefox-user
flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
#+end_src
* System Installation Script
@ -57,6 +57,14 @@ This is to be run after setting up the partitions.
<<list-to-use(use-call="use-modules",entries=module-list,all-parens=1)>>
#+end_src
#+RESULTS:
: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
: Syntax error:
: unknown file:13:51: source expression failed to match any pattern in form or
:
: Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
: scheme@(guile-user) [1]>
** Service Modules
#+NAME: service-module-list

View File

@ -95,12 +95,14 @@
(tab-always-indent 'complete)
(tool-bar-mode nil)
: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"))))
(default ((t (:weight regular :height 105 :width normal :family "MonaspiceXe Nerd Font Mono"))))
:hook
(minibuffer-setup . cursor-intangible-mode)
:config
(advice-add 'risky-local-variable-p :override #'ignore)
(global-display-fill-column-indicator-mode t))
(global-display-fill-column-indicator-mode t)
(pixel-scroll-precision-mode 1))
;;;; Org Mode
(use-package org
@ -165,21 +167,40 @@
;;(load-theme 'catppuccin)
)
(use-package unicode-fonts
:ensure t
:config
(unicode-fonts-setup))
(use-package ligature
:config
(ligature-set-ligatures
't
'( ;; SS01
"==" "===" "=/=" "!=" "!==" "/=" "/==" "~~" "=~" "!~"
;; SS02
">=" "<="
;; SS03
"->" "<-" "=>" "<!--" "-->" "<~" "<~~" "~>" "~~>" "<~>"
;; SS04
"</" "/>" "</>" "/\\" "\\/"
;; SS05
"|>" "<|"
;; SS06
"##" "###"
;; SS07
"***" "/*" "*/" "/*/" "(*" "*)" "(*)"
;; SS08
".=" ".-" "..<"
;; CALT
"//" "///" "&&" "!!" "??" "?." "?:" "||" "::" ":::" ";;" ".." "..." "=!=" "#=" ":=" "=:" "=:="
":>" ">:" "<:" ":<" "..=" "..-"
))
(global-ligature-mode t))
(set-frame-parameter nil 'alpha-background 80)
(add-to-list 'default-frame-alist '(alpha-background . 80))
;; (use-package powerline
;; :init
;; (require 'powerline)
;; :config
;; (powerline-default-theme))
;; (use-package airline-themes
;; :after powerline
;; :init (require 'airline-themes)
;; :config
;; (load-theme 'airline-badwolf t))
(use-package lambda-line
:straight (:type git :host github :repo "lambda-emacs/lambda-line")
:custom
@ -290,6 +311,11 @@
completion-category-defaults nil
completion-category-overrides '((file (styles basic partial-completion)))))
(use-package embark-consult
:after (embark consult)
:hook
(embark-collect-mode . consult-preview-at-point-mode))
(use-package consult
:config
(require 'consult-flymake)
@ -309,11 +335,6 @@
("C-<SPC>" . 'embark-act)
("C-M-<return>" . 'embark-bindings))
(use-package embark-consult
:after (embark consult)
:hook
(embark-collect-mode . consult-preview-at-point-mode))
(use-package wgrep
:config
(setq wgrep-auto-save-buffer t))
@ -347,21 +368,22 @@
;;;;; Code Completion
(use-package cape
:init
:preface
(defun my/capf ()
(interactive)
(setq-local completion-at-point-functions
(list (cape-capf-super
#'tempel-complete
#'cape-dabbrev
#'cape-file
#'cape-dict
#'cape-line
#'cape-emoji
#'cape-keyword))))
(setq completion-at-point-functions
(list (cape-capf-super
#'tempel-complete
#'cape-dabbrev
#'cape-file
#'cape-dict
#'cape-line
#'cape-emoji
#'cape-keyword))))
:config
(advice-add 'eglot-completion-at-point :around #'cape-wrap-buster)
(add-hook 'org-mode-hook #'my/capf)
(add-hook 'prog-mode-hook #'my/capf))
:hook
(org-mode . my/capf)
(prog-mode . my/capf))
(defun my/corfu-combined-sort (candidates)
"Sort CANDIDATES using both display-sort-function and corfu-sort-function."
@ -472,6 +494,8 @@ Point must be at the beginning of balanced expression (sexp)."
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)
@ -479,6 +503,10 @@ Point must be at the beginning of balanced expression (sexp)."
(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
#'sp-raise-sexp)
@ -488,6 +516,8 @@ Point must be at the beginning of balanced expression (sexp)."
#'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)
@ -529,17 +559,16 @@ Point must be at the beginning of balanced expression (sexp)."
(use-package eglot
:preface
(defun my/eglot-capf ()
(interactive)
(setq-local 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))))
(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)
@ -578,7 +607,7 @@ 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))
(eglot-managed-mode . my/eglot-capf))
(use-package consult-eglot
:after (consult eglot))
@ -628,10 +657,24 @@ Point must be at the beginning of balanced expression (sexp)."
;;;;; 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))
(defalias 'run-geiser 'geiser)
:hook
(geiser-mode . my/geiser-capf))
(use-package paren-face
:hook
@ -644,10 +687,8 @@ Point must be at the beginning of balanced expression (sexp)."
;;;;;; Chicken Scheme
(use-package scheme
:config
(eval-after-load 'eglot
'(add-to-list 'eglot-server-programs
'(scheme-mode
. ("chicken-lsp-server"))))
(setq prettify-symbols-alist
'(("lambda" . "λ")))
:hook
(scheme-mode . eglot-ensure))
@ -752,5 +793,10 @@ Point must be at the beginning of balanced expression (sexp)."
:encryption tls
:channels ()))))
;;;; Wrapping Up
(use-package envrc
:config
(envrc-global-mode))
(provide 'init)
;;; init.el ends here

View File

@ -15,6 +15,34 @@ prog-mode
scheme-mode
(crate-dependency
"(\"rust-" crate-name "\" ,rust-" (s crate-name) "-" p ")")
(define-guix-crate
"(define-public rust-" (s egg-name) "-" (s maj-version)
n> "(package"
n> "(name \"rust-" egg-name "\")"
n> "(version \"" maj-version "." (s egg-version) "\")"
n> "(source"
n> "(origin"
n> "(method url-fetch)"
n> "(uri (crate-uri \"" egg-name "\" version))"
n> "(sha256"
n> "(base32"
n> "\"0z05x7f154n9bgmainrsmncf5i6dil43r9ymr3rdgwbg4wnxmz4s\"))))"
n> "(build-system cargo-build-system)"
n> "(arguments"
n> "`(#:cargo-inputs"
n> "(" p ")"
n> "#:cargo-development-inputs"
n> "(" p ")"
n> "#:cargo-build-inputs"
n> "(" p ")))"
n> "(synopsis \"" (s synopsis) "\")"
n> "(home-page \"https://crates.io/crates/" egg-name "\")"
n> "(description \"" synopsis ".\")"
n> "(license license:" (s license) ")))")
(define-guix-egg
"(define-public chicken-" (s egg-name)
n> "(package"

View File

@ -30,6 +30,7 @@
(specifications->packages
(list "bsd-games"
"bolt"
"browserpass-native"
"chicken"
"chicken-apropos"
"chicken-chicken-doc"
@ -37,10 +38,11 @@
"curl"
"direnv"
"emacs"
"emacs-direnv"
"eternalterminal"
"diff-so-fancy"
"firefox"
"flatpak"
"font-nerdfont-monaspice"
"fuzzel"
"gammastep"
"grim"
@ -49,6 +51,9 @@
"icecat"
"icedove-wayland"
"kitty"
"ksshaskpass"
"make"
"nm-tray"
#;"nss-certs" ; This package is broken
"password-store"
"pass-otp"
@ -65,129 +70,131 @@
"swayfx"
"swayidle"
"swaylock-effects"
"unzip"
"waybar"
"wlogout"
"xdg-desktop-portal")))
;; Below is the list of Home services. To search for available
;; services, run 'guix home search KEYWORD' in a terminal.
(services
(list
(service home-shepherd-service-type)
(service home-msmtp-service-type
(home-msmtp-configuration
(default-account "LMail")
(accounts
(list
(msmtp-account
(name "LMail")
(configuration
(msmtp-configuration
(host "lyrion.ch")
(port 465)
(auth? #t)
(tls? #t)
(tls-starttls? #f)
(user "dziltener")
(from "dziltener@lyrion.ch")
(password-eval "pass Privat/Mailaccount | head -n 1"))))
(msmtp-account
(name "Red Sky")
(configuration
(msmtp-configuration
(host "gmail.com")
(port 587)
(auth? #t)
(tls? #t)
(tls-starttls? #f)
(user "dz@redsky.io")
(from "dziltener@lyrion.ch")
(password-eval "pass Privat/RedSkyGMail"))))))))
(simple-service 'ziltis-environment-variable-service
home-environment-variables-service-type
`(("PATH" . "$PATH:~/.local/bin")
("PASSWORD_STORE_DIR" . "$XDG_DATA_HOME/password-store")
("SSH_ASKPASS" . "ksshaskpass")
("ELM_DISPLAY" . "wl")
("SDL_VIDEODRIVER" . "wayland")
("MOZ_ENABLE_WAYLAND" . "1")
("SSL_CERT_FILE" . "$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt")
("CHICKEN_DOC_REPOSITORY" . "$XDG_DATA_HOME/chicken/doc")
;; ("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")
))
(simple-service 'ziltis-home-files-service
home-files-service-type
`(#;(".gnupg/gpg-agent.conf" ,(local-file "gnupg/gpg-agent.conf"))))
(simple-service 'ziltis-xdg-configuration-files-service
home-xdg-configuration-files-service-type
`(("sway/config" ,(local-file "./sway/sway"))
("waybar/config" ,(local-file "./waybar/config"))
("waybar/style.css" ,(local-file "./waybar/style.css"))
("fuzzel/fuzzel.ini" ,(local-file "./fuzzel/fuzzel.ini"))
("git/config" ,(local-file "./git/config"))
("emacs/init.el" ,(local-file "./emacs/init.el"))
("emacs/init.org" ,(local-file "./emacs/init.org"))
("emacs/templates" ,(local-file "./emacs/templates"))
("kitty/kitty.conf" ,(local-file "./kitty/kitty.conf"))
("senpai/senpai.scfg" ,(local-file "./senpai/senpai.scfg"))))
(service home-bash-service-type
(home-bash-configuration
(aliases
'(("hh" . "hstr")
("l" . "ls -alh")
("ll" . "ls -l")
("ls" . "ls --color=tty")
("create-guix-patch" . "git format-patch --minimal --to guix-patches@gnu.org --cc dziltener@lyrion.ch --inline --no-attach master; ls *.patch | xargs sed -i '1d'")
("send-guix-patch-series" . "for FILE in $(ls *.patch); do cat $FILE | msmtp -t; done")))
(bashrc
(list
(local-file
"./.bashrc"
"bashrc")))
(bash-profile
(list
(local-file
"./.bash_profile"
"bash_profile")))))
(service home-batsignal-service-type
(home-batsignal-configuration
(ignore-missing? #t)))
(service home-mcron-service-type
(home-mcron-configuration
(jobs
'())))
(simple-service 'ziltis-channels
home-channels-service-type
(list
(channel
(name 'ziltis-channel)
(url "https://gitea.lyrion.ch/zilti/guixchannel"))
(channel
(name 'nongnu-guix)
(url "https://gitlab.com/nonguix/nonguix"))))
(service home-openssh-service-type
(home-openssh-configuration
(hosts
(list
(openssh-host
(name "www.opencode.net")
(host-name "www.opencode.net")
(user "git")
(identity-file "~/.ssh/personal_ed"))
(openssh-host
(name "gitea.lyrion.ch")
(host-name "gitea.lyrion.ch")
(user "git")
(port 7920)
(identity-file "~/.ssh/personal_ed"))))))
(service home-gpg-agent-service-type
(home-gpg-agent-configuration
(pinentry-program
(file-append pinentry-qt "/bin/pinentry-qt"))
(ssh-support? #t)
(default-cache-ttl 7200)
(default-cache-ttl-ssh 7200)
(extra-content "grab\nallow-emacs-pinentry\nallow-loopback-pinentry")))
(service home-dbus-service-type)
)))
(list
(service home-shepherd-service-type)
(service home-msmtp-service-type
(home-msmtp-configuration
(default-account "LMail")
(accounts
(list
(msmtp-account
(name "LMail")
(configuration
(msmtp-configuration
(host "lyrion.ch")
(port 465)
(auth? #t)
(tls? #t)
(tls-starttls? #f)
(user "dziltener")
(from "dziltener@lyrion.ch")
(password-eval "pass Privat/Mailaccount | head -n 1"))))
(msmtp-account
(name "Red Sky")
(configuration
(msmtp-configuration
(host "gmail.com")
(port 587)
(auth? #t)
(tls? #t)
(tls-starttls? #f)
(user "dz@redsky.io")
(from "dziltener@lyrion.ch")
(password-eval "pass Privat/RedSkyGMail"))))))))
(simple-service 'ziltis-environment-variable-service
home-environment-variables-service-type
`(("PATH" . "$PATH:~/.local/bin")
("PASSWORD_STORE_DIR" . "$XDG_DATA_HOME/password-store")
("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$XDG_DATA_HOME/flatpak/exports/share")
("SSH_ASKPASS" . "ksshaskpass")
("ELM_DISPLAY" . "wl")
("SDL_VIDEODRIVER" . "wayland")
("MOZ_ENABLE_WAYLAND" . "1")
("SSL_CERT_FILE" . "$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt")
("CHICKEN_DOC_REPOSITORY" . "$XDG_DATA_HOME/chicken/doc")
;; ("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")
))
(simple-service 'ziltis-home-files-service
home-files-service-type
`(#;(".gnupg/gpg-agent.conf" ,(local-file "gnupg/gpg-agent.conf"))))
(simple-service 'ziltis-xdg-configuration-files-service
home-xdg-configuration-files-service-type
`(("sway/config" ,(local-file "./sway/sway"))
("waybar/config" ,(local-file "./waybar/config"))
("waybar/style.css" ,(local-file "./waybar/style.css"))
("fuzzel/fuzzel.ini" ,(local-file "./fuzzel/fuzzel.ini"))
("git/config" ,(local-file "./git/config"))
("emacs/init.el" ,(local-file "./emacs/init.el"))
("emacs/init.org" ,(local-file "./emacs/init.org"))
("emacs/templates" ,(local-file "./emacs/templates"))
("kitty/kitty.conf" ,(local-file "./kitty/kitty.conf"))
("senpai/senpai.scfg" ,(local-file "./senpai/senpai.scfg"))))
(service home-bash-service-type
(home-bash-configuration
(aliases
'(("hh" . "hstr")
("l" . "ls -alh")
("ll" . "ls -l")
("ls" . "ls --color=tty")
("create-guix-patch" . "git format-patch --minimal --to guix-patches@gnu.org --cc dziltener@lyrion.ch --inline --no-attach master; ls *.patch | xargs sed -i '1d'")
("send-guix-patch-series" . "for FILE in $(ls *.patch); do cat $FILE | msmtp -t; done")))
(bashrc
(list
(local-file
"./.bashrc"
"bashrc")))
(bash-profile
(list
(local-file
"./.bash_profile"
"bash_profile")))))
(service home-batsignal-service-type
(home-batsignal-configuration
(ignore-missing? #t)))
(service home-mcron-service-type
(home-mcron-configuration
(jobs
'())))
(simple-service 'ziltis-channels
home-channels-service-type
(list
(channel
(name 'ziltis-channel)
(url "https://gitea.lyrion.ch/zilti/guixchannel"))
(channel
(name 'nongnu-guix)
(url "https://gitlab.com/nonguix/nonguix"))))
(service home-openssh-service-type
(home-openssh-configuration
(hosts
(list
(openssh-host
(name "www.opencode.net")
(host-name "www.opencode.net")
(user "git")
(identity-file "~/.ssh/personal_ed"))
(openssh-host
(name "gitea.lyrion.ch")
(host-name "gitea.lyrion.ch")
(user "git")
(port 7920)
(identity-file "~/.ssh/personal_ed"))))))
(service home-gpg-agent-service-type
(home-gpg-agent-configuration
(pinentry-program
(file-append pinentry-qt "/bin/pinentry-qt"))
(ssh-support? #t)
(default-cache-ttl 7200)
(default-cache-ttl-ssh 7200)
(extra-content "grab\nallow-emacs-pinentry\nallow-loopback-pinentry")))
(service home-dbus-service-type)
)))

View File

@ -23,24 +23,17 @@ Converting org lists into guix ~use-~ calls.
Converting Org lists into Scheme symbol lists.
#+NAME: sym-list-sample
#+NAME: list-sample
- Entry 1
- Entry 2
#+NAME: org-to-scheme-sym-list
#+begin_src scheme :var input=sym-list-sample :results output
#+begin_src scheme :var data=list-sample
(pretty-print
`(list
,@(map (lambda (x) (string->symbol x)) input)))
(cons 'list
(map string->symbol input)))
#+end_src
#+RESULTS: org-to-scheme-sym-list
: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
: Wrong type to apply: "Entry 1"
:
: Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
: scheme@(guile-user) [1]>
* Converting Tables
#+NAME: service-converter