diff options
Diffstat (limited to 'src/jd/user.scm')
| -rw-r--r-- | src/jd/user.scm | 567 |
1 files changed, 567 insertions, 0 deletions
diff --git a/src/jd/user.scm b/src/jd/user.scm new file mode 100644 index 0000000..2224712 --- /dev/null +++ b/src/jd/user.scm | |||
| @@ -0,0 +1,567 @@ | |||
| 1 | (define-module (jd user) | ||
| 2 | #:use-module (gnu home services) | ||
| 3 | #:use-module (gnu home services shepherd) | ||
| 4 | #:use-module (gnu home-services ssh) | ||
| 5 | #:use-module (gnu home services xdg) | ||
| 6 | #:use-module (gnu packages) | ||
| 7 | #:use-module (gnu packages cups) | ||
| 8 | #:use-module (gnu packages emacs-xyz) | ||
| 9 | #:use-module (gnu packages gnome) | ||
| 10 | #:use-module (gnu packages gnupg) | ||
| 11 | #:use-module (gnu packages guile-xyz) | ||
| 12 | #:use-module (gnu services) | ||
| 13 | #:use-module (gnu services base) | ||
| 14 | #:use-module (gnu services cups) | ||
| 15 | #:use-module (gnu services desktop) | ||
| 16 | #:use-module (gnu services nix) | ||
| 17 | #:use-module (gnu system pam) | ||
| 18 | |||
| 19 | #:use-module (guix channels) | ||
| 20 | #:use-module (guix download) | ||
| 21 | #:use-module (guix gexp) | ||
| 22 | #:use-module (guix inferior) | ||
| 23 | #:use-module (guix packages) | ||
| 24 | |||
| 25 | #:use-module (jd features emacs-xyz) | ||
| 26 | #:use-module (jd features mail) | ||
| 27 | #:use-module (jd features networking) | ||
| 28 | #:use-module (jd features nextcloud) | ||
| 29 | #:use-module (jd features shepherd) | ||
| 30 | #:use-module (jd features state) | ||
| 31 | #:use-module (jd packages supernote) | ||
| 32 | |||
| 33 | #:use-module (nongnu packages linux) | ||
| 34 | #:use-module (nongnu system linux-initrd) | ||
| 35 | |||
| 36 | #:use-module (rde features) | ||
| 37 | #:use-module (rde packages) | ||
| 38 | #:use-module (rde packages aspell) | ||
| 39 | |||
| 40 | #:use-module (srfi srfi-1)) | ||
| 41 | |||
| 42 | |||
| 43 | (define-syntax-rule (use-rde-features-modules module ...) | ||
| 44 | (use-modules (rde features module) ...)) | ||
| 45 | |||
| 46 | (define-syntax-rule (use-rde-home-services-modules module ...) | ||
| 47 | (use-modules (rde home services module) ...)) | ||
| 48 | |||
| 49 | (use-rde-features-modules | ||
| 50 | android base bittorrent clojure containers | ||
| 51 | documentation emacs emacs-xyz finance fontutils | ||
| 52 | gnupg gtk guile image-viewers irc keyboard | ||
| 53 | libreoffice linux llm mail markup networking ocaml | ||
| 54 | password-utils presets security-token shells | ||
| 55 | shellutils sourcehut ssh system terminals tmux uml | ||
| 56 | version-control video virtualization web-browsers wm xdg python) | ||
| 57 | |||
| 58 | (use-rde-home-services-modules i2p) | ||
| 59 | |||
| 60 | (define* (mail-acc id user #:optional (type 'migadu)) | ||
| 61 | "Make a simple mail-account with gmail type by default." | ||
| 62 | (mail-account | ||
| 63 | (id id) | ||
| 64 | (fqda user) | ||
| 65 | (type type))) | ||
| 66 | |||
| 67 | (define* (mail-lst id fqda urls) | ||
| 68 | "Make a simple mailing-list." | ||
| 69 | (mailing-list | ||
| 70 | (id id) | ||
| 71 | (fqda fqda) | ||
| 72 | (config (l2md-repo | ||
| 73 | (name (symbol->string id)) | ||
| 74 | (urls urls))))) | ||
| 75 | |||
| 76 | (define-public %base-features | ||
| 77 | (list | ||
| 78 | (feature-backlight #:step 10) | ||
| 79 | (feature-networking* #:network-manager-vpn-plugins (list network-manager-openvpn) | ||
| 80 | #:mdns? #t) | ||
| 81 | (feature-base-services) | ||
| 82 | (feature-base-packages) | ||
| 83 | (feature-desktop-services) | ||
| 84 | (feature-shepherd-repl) | ||
| 85 | (feature-tex) | ||
| 86 | (feature-xdg | ||
| 87 | #:xdg-user-directories-configuration | ||
| 88 | (home-xdg-user-directories-configuration | ||
| 89 | (desktop "$HOME") | ||
| 90 | (templates "$HOME") | ||
| 91 | (download "$HOME/dl") | ||
| 92 | (publicshare "$HOME/sync") | ||
| 93 | (music "/data/jakub/music") | ||
| 94 | (videos "/data/jakub/videos") | ||
| 95 | (pictures "/data/jakub/pics") | ||
| 96 | (documents "/data/jakub/docs") | ||
| 97 | )) | ||
| 98 | (feature-pipewire) | ||
| 99 | (feature-shepherd))) | ||
| 100 | |||
| 101 | (define-public %desktop-features | ||
| 102 | (list | ||
| 103 | (feature-sway-run-on-tty #:sway-tty-number 2) | ||
| 104 | (feature-gtk3 #:gtk-theme (make-theme "Adwaita-dark" gnome-themes-extra)) | ||
| 105 | (feature-fonts #:default-font-size 14) | ||
| 106 | (feature-transmission #:auto-start? #f) | ||
| 107 | (feature-sway | ||
| 108 | #:extra-config | ||
| 109 | '((input type:touchpad | ||
| 110 | ((tap enabled) | ||
| 111 | (middle_emulation enabled))) | ||
| 112 | (workspace_layout tabbed) | ||
| 113 | (bindsym $mod+q layout tabbed) | ||
| 114 | (bindsym $mod+a layout stacking) | ||
| 115 | (bindsym $mod+z layout toggle split) | ||
| 116 | (default_border none) | ||
| 117 | (default_floating_border pixel 3) | ||
| 118 | ;; (default_border normal 3) | ||
| 119 | ;; (default_floating_border normal 3) | ||
| 120 | ;; (gaps inner 0) | ||
| 121 | (output * bg "#181818" solid_color) | ||
| 122 | (client.focused "#181818" "#383838" "#d8d8d8" "#7cafc2") | ||
| 123 | (client.focused_inactive "#181818" "#282828" "#b8b8b8" "#7cafc2") | ||
| 124 | (client.unfocused "#181818" "#282828" "#b8b8b8" "#7cafc2") | ||
| 125 | (client.urgent "#181818" "#ab4642" "#f8f8f8" "#181818") | ||
| 126 | (bindsym $mod+h focus left) | ||
| 127 | (bindsym $mod+j focus down) | ||
| 128 | (bindsym $mod+k focus up) | ||
| 129 | (bindsym $mod+l focus right) | ||
| 130 | |||
| 131 | (unbindsym --to-code $mod+Shift+l) | ||
| 132 | (bindsym --to-code $mod+Escape exec $lock) | ||
| 133 | |||
| 134 | (bindsym $mod+Shift+h move left) | ||
| 135 | (bindsym $mod+Shift+j move down) | ||
| 136 | (bindsym $mod+Shift+k move up) | ||
| 137 | (bindsym $mod+Shift+l move right))) | ||
| 138 | (feature-waybar | ||
| 139 | ;; #:base16-css base16-solarized-dark | ||
| 140 | #:waybar-modules | ||
| 141 | (list | ||
| 142 | (waybar-sway-workspaces | ||
| 143 | #:format-icons | ||
| 144 | `(,@(map | ||
| 145 | (lambda (x) (cons | ||
| 146 | (number->string x) | ||
| 147 | (number->string x))) | ||
| 148 | (iota 10 1)) | ||
| 149 | ("urgent" . ) | ||
| 150 | ("default" . ))) | ||
| 151 | (waybar-idle-inhibitor) | ||
| 152 | (waybar-temperature) | ||
| 153 | (waybar-cpu) | ||
| 154 | (waybar-battery #:intense? #f) | ||
| 155 | (waybar-tray) | ||
| 156 | (waybar-clock))) | ||
| 157 | ;; (feature-nextcloud) | ||
| 158 | (feature-foot) | ||
| 159 | (feature-yt-dlp) | ||
| 160 | (feature-libreoffice) | ||
| 161 | (feature-emacs-power-menu) | ||
| 162 | (feature-sway-screenshot) | ||
| 163 | (feature-swaynotificationcenter) | ||
| 164 | (feature-swayidle) | ||
| 165 | (feature-swaylock) | ||
| 166 | (feature-batsignal) | ||
| 167 | (feature-imv) | ||
| 168 | (feature-librewolf) | ||
| 169 | (feature-librewolf | ||
| 170 | #:browser (@ (gnu packages gnuzilla) icecat) | ||
| 171 | #:default-browser? #f) | ||
| 172 | (feature-librewolf | ||
| 173 | #:browser (@ (nongnu packages mozilla) firefox) | ||
| 174 | #:default-browser? #f) | ||
| 175 | ;; (feature-ungoogled-chromium) | ||
| 176 | (feature-ledger) | ||
| 177 | (feature-mpv))) | ||
| 178 | |||
| 179 | (define-public %mail-features | ||
| 180 | (list | ||
| 181 | (feature-isync #:isync-verbose #t) | ||
| 182 | (feature-mail-mcron) | ||
| 183 | (feature-l2md*) | ||
| 184 | (feature-msmtp))) | ||
| 185 | |||
| 186 | (define-public %cli-features | ||
| 187 | (list | ||
| 188 | (feature-zsh #:enable-zsh-autosuggestions? #t) | ||
| 189 | (feature-git #:extra-config '((gpg ((program . "gpg"))))) | ||
| 190 | (feature-manpages) | ||
| 191 | (feature-vterm) | ||
| 192 | (feature-bash) | ||
| 193 | (feature-direnv) | ||
| 194 | (feature-guile) | ||
| 195 | (feature-ssh))) | ||
| 196 | |||
| 197 | (define* (feature-emacs-personal-config) | ||
| 198 | (define f-name 'personal-emacs-config) | ||
| 199 | |||
| 200 | (define (get-home-services config) | ||
| 201 | (list | ||
| 202 | (rde-elisp-configuration-service | ||
| 203 | f-name | ||
| 204 | config | ||
| 205 | `((with-eval-after-load 'notmuch | ||
| 206 | (setq-default notmuch-search-oldest-first nil)) | ||
| 207 | |||
| 208 | (with-eval-after-load 'paredit | ||
| 209 | (defun jd/paredit-RET () | ||
| 210 | "Wraps `paredit-RET' to provide a sensible minibuffer experience" | ||
| 211 | (interactive) | ||
| 212 | (cond | ||
| 213 | ((minibufferp) | ||
| 214 | (read--expression-try-read)) | ||
| 215 | ((and (eq major-mode 'inferior-emacs-lisp-mode) | ||
| 216 | (string-prefix-p "*ielm*" (buffer-name))) | ||
| 217 | (ielm-return)) | ||
| 218 | (t | ||
| 219 | (paredit-RET)))) | ||
| 220 | (bind-key "<return>" 'jd/paredit-RET paredit-mode-map) | ||
| 221 | |||
| 222 | (dolist (hook '(emacs-lisp-mode-hook | ||
| 223 | eval-expression-minibuffer-setup-hook | ||
| 224 | ielm-mode-hook | ||
| 225 | lisp-mode-hook | ||
| 226 | lisp-interaction-mode-hook | ||
| 227 | scheme-mode-hook | ||
| 228 | clojure-mode-hook)) | ||
| 229 | (add-hook hook 'paredit-mode))) | ||
| 230 | |||
| 231 | (with-eval-after-load 'rainbow-delimiters | ||
| 232 | (dolist (hook '(emacs-lisp-mode-hook | ||
| 233 | eval-expression-minibuffer-setup-hook | ||
| 234 | ielm-mode-hook | ||
| 235 | lisp-mode-hook | ||
| 236 | lisp-interaction-mode-hook | ||
| 237 | scheme-mode-hook | ||
| 238 | clojure-mode-hook)) | ||
| 239 | (add-hook hook 'rainbow-delimiters-mode))) | ||
| 240 | |||
| 241 | (with-eval-after-load 'undo-tree | ||
| 242 | (setq-default undo-tree-auto-save-history nil) | ||
| 243 | (global-undo-tree-mode 1)) | ||
| 244 | |||
| 245 | (with-eval-after-load 'multiple-cursors | ||
| 246 | (setq-default mc/always-run-for-all t) | ||
| 247 | (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) | ||
| 248 | (global-set-key (kbd "C->") 'mc/mark-next-like-this) | ||
| 249 | (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) | ||
| 250 | (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)) | ||
| 251 | |||
| 252 | (with-eval-after-load 'page-break-lines | ||
| 253 | (global-page-break-lines-mode 1)) | ||
| 254 | |||
| 255 | (with-eval-after-load 'gptel | ||
| 256 | (setq gptel-model 'gpt-4o | ||
| 257 | gptel-backend (gptel-make-gh-copilot "Copilot"))) | ||
| 258 | |||
| 259 | (with-eval-after-load 'geiser-mode | ||
| 260 | (setq geiser-mode-auto-p nil)) | ||
| 261 | |||
| 262 | (with-eval-after-load 'simple | ||
| 263 | (add-hook | ||
| 264 | 'after-init-hook | ||
| 265 | (lambda () | ||
| 266 | (delete-selection-mode 1) | ||
| 267 | (pixel-scroll-precision-mode 0) | ||
| 268 | (electric-pair-mode 1) | ||
| 269 | (setq-default truncate-lines t) | ||
| 270 | (setq-default cursor-in-non-selected-windows 'hollow) | ||
| 271 | (setq-default cursor-type 'box) | ||
| 272 | (require 'multiple-cursors) | ||
| 273 | (require 'undo-tree) | ||
| 274 | (require 'rainbow-delimiters) | ||
| 275 | (require 'paredit) | ||
| 276 | (require 'url) | ||
| 277 | (require 'json) | ||
| 278 | (require 'org) | ||
| 279 | (require 'org-pdftools) | ||
| 280 | (defalias 'getf 'cl-getf) | ||
| 281 | (defalias 'find-if 'cl-find-if) | ||
| 282 | (add-hook 'org-mode-hook 'org-pdftools-setup-link))) | ||
| 283 | (set-default 'display-fill-column-indicator-column 100) | ||
| 284 | (add-hook 'prog-mode-hook 'display-fill-column-indicator-mode) | ||
| 285 | (setq display-line-numbers-type 'relative) | ||
| 286 | (add-hook 'prog-mode-hook 'display-line-numbers-mode))) | ||
| 287 | #:elisp-packages | ||
| 288 | (strings->packages | ||
| 289 | "emacs-rainbow-mode" | ||
| 290 | "emacs-rainbow-delimiters" | ||
| 291 | "emacs-paredit" | ||
| 292 | "emacs-hl-todo" | ||
| 293 | "emacs-undo-tree" | ||
| 294 | "emacs-multiple-cursors" | ||
| 295 | "emacs-nginx-mode" | ||
| 296 | "emacs-yaml-mode" | ||
| 297 | "emacs-org-present" | ||
| 298 | "emacs-org-pdftools" | ||
| 299 | "emacs-org-pomodoro")))) | ||
| 300 | (feature | ||
| 301 | (name f-name) | ||
| 302 | (values `((,f-name . #t))) | ||
| 303 | (home-services-getter get-home-services))) | ||
| 304 | |||
| 305 | (define-public %emacs-features | ||
| 306 | (list | ||
| 307 | (feature-emacs-modus-themes #:deuteranopia? #f) | ||
| 308 | (feature-emacs-citation #:global-bibliography (list "/data/jakub/notes/references/master.bib")) | ||
| 309 | (feature-emacs-completion #:mini-frame? #f ;; Dziwne kurwa bledy | ||
| 310 | #:marginalia-align 'right) | ||
| 311 | (feature-emacs-corfu #:corfu-doc-auto #f) | ||
| 312 | (feature-emacs #:default-application-launcher? #t) | ||
| 313 | (feature-emacs-elfeed #:elfeed-org-files '("/data/jakub/notes/rss.org")) | ||
| 314 | (feature-emacs-erc #:erc-log? #t | ||
| 315 | #:erc-autojoin-channels-alist '((Libera.Chat "#rde") | ||
| 316 | (Libera.Chat "#systemcrafters") | ||
| 317 | (Libera.Chat "#lisp-pl") | ||
| 318 | (Libera.Chat "#lispcafe") | ||
| 319 | (Libera.Chat "##metal") | ||
| 320 | (Libera.Chat "#hsp") | ||
| 321 | (Libera.Chat "#spritely") | ||
| 322 | (Libera.Chat "#guix"))) | ||
| 323 | (feature-emacs-keycast #:turn-on? #f) | ||
| 324 | (feature-emacs-org-agenda #:org-agenda-files '("/data/jakub/notes/personal.org" | ||
| 325 | "/data/jakub/notes/s32526.org")) | ||
| 326 | (feature-emacs-org-uni) | ||
| 327 | (feature-emacs-org-dailies #:encrypted? #t) | ||
| 328 | (feature-emacs-org #:org-directory "/data/jakub/notes" | ||
| 329 | #:org-indent? #t) | ||
| 330 | (feature-emacs-org-roam #:org-roam-directory "/data/jakub/notes/slip-box") | ||
| 331 | (feature-emacs-spelling #:spelling-program (@ (gnu packages hunspell) hunspell) | ||
| 332 | #:spelling-dictionaries (list (@ (gnu packages hunspell) hunspell-dict-en) | ||
| 333 | (@ (gnu packages hunspell) hunspell-dict-pl)) | ||
| 334 | #:ispell-standard-dictionary "pl_PL") | ||
| 335 | (feature-emacs-dired #:extra-switches "-h") | ||
| 336 | (feature-emacs-monocle #:olivetti-body-width 100) | ||
| 337 | (feature-emacs-denote #:denote-directory "/data/jakub/notes/denote") | ||
| 338 | (feature-emacs-devdocs) | ||
| 339 | (feature-emacs-appearance) | ||
| 340 | (feature-emacs-dashboard) | ||
| 341 | (feature-emacs-eglot) | ||
| 342 | (feature-emacs-eshell) | ||
| 343 | (feature-emacs-git) | ||
| 344 | (feature-emacs-gptel) | ||
| 345 | (feature-emacs-guix) | ||
| 346 | (feature-emacs-message) | ||
| 347 | (feature-emacs-nov-el) | ||
| 348 | (feature-emacs-pdf-tools) | ||
| 349 | (feature-emacs-personal-config) | ||
| 350 | (feature-emacs-project) | ||
| 351 | (feature-emacs-time) | ||
| 352 | (feature-emacs-tramp) | ||
| 353 | (feature-emacs-vertico) | ||
| 354 | (feature-emacs-webpaste) | ||
| 355 | (feature-emacs-which-key) | ||
| 356 | (feature-emacs-battery) | ||
| 357 | (feature-notmuch) | ||
| 358 | (feature-plantuml) | ||
| 359 | (feature-compile))) | ||
| 360 | |||
| 361 | (define %dev-features | ||
| 362 | (list | ||
| 363 | (feature-markdown #:headings-scaling? #t) | ||
| 364 | (feature-android) | ||
| 365 | (feature-clojure) | ||
| 366 | (feature-python) | ||
| 367 | (feature-octave))) | ||
| 368 | |||
| 369 | (define %virtualization-features | ||
| 370 | (list | ||
| 371 | (feature-distrobox) | ||
| 372 | (feature-podman) | ||
| 373 | (feature-qemu))) | ||
| 374 | |||
| 375 | (define (feature-ssh-extra-config) | ||
| 376 | (feature-custom-services | ||
| 377 | #:feature-name-prefix 'jd-ssh-extra-config | ||
| 378 | #:home-services | ||
| 379 | (list | ||
| 380 | (simple-service | ||
| 381 | 'ssh-extra-config | ||
| 382 | home-ssh-service-type | ||
| 383 | (home-ssh-extension | ||
| 384 | (extra-config | ||
| 385 | (append | ||
| 386 | (list | ||
| 387 | (ssh-host | ||
| 388 | (host "jdlugosz.com") | ||
| 389 | (options | ||
| 390 | '((user . "root") | ||
| 391 | (port . 22) | ||
| 392 | (compression . #t)))) | ||
| 393 | (ssh-host | ||
| 394 | (host "git.jdlugosz.com") | ||
| 395 | (options | ||
| 396 | '((user . "git") | ||
| 397 | (port . 22) | ||
| 398 | (compression . #t)))) | ||
| 399 | (ssh-host | ||
| 400 | (host "*.abaks.pl") | ||
| 401 | (options | ||
| 402 | '((user . "serwis") | ||
| 403 | (port . 22) | ||
| 404 | (compression . #t))))))) | ||
| 405 | (toplevel-options | ||
| 406 | '((host-key-algorithms . "+ssh-rsa") | ||
| 407 | (pubkey-accepted-key-types . "+ssh-rsa")))))))) | ||
| 408 | |||
| 409 | (define (feature-additional-services) | ||
| 410 | (feature-custom-services | ||
| 411 | #:feature-name-prefix 'jd-additional-services | ||
| 412 | #:system-services | ||
| 413 | (list (service nix-service-type) | ||
| 414 | (service gnome-keyring-service-type) | ||
| 415 | (service pam-limits-service-type | ||
| 416 | (list | ||
| 417 | (pam-limits-entry "*" 'both 'nofile 100000) ;; Required for some cases when building Docker images in Nix | ||
| 418 | (pam-limits-entry "@users" 'both 'rtprio 99) ;; Needed for Guitarix | ||
| 419 | (pam-limits-entry "@users" 'both 'memlock 'unlimited))) | ||
| 420 | (service cups-service-type | ||
| 421 | (cups-configuration | ||
| 422 | (web-interface? #t) | ||
| 423 | (extensions | ||
| 424 | (list cups-filters))))) | ||
| 425 | #:home-services | ||
| 426 | (list | ||
| 427 | (simple-service | ||
| 428 | 'home-environment-extra-variables | ||
| 429 | home-environment-variables-service-type | ||
| 430 | '(("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share"))) | ||
| 431 | |||
| 432 | (simple-service | ||
| 433 | 'i2pd-add-ilita-irc | ||
| 434 | home-i2pd-service-type | ||
| 435 | (home-i2pd-extension | ||
| 436 | (tunnels-conf | ||
| 437 | `((IRC-ILITA ((type . client) | ||
| 438 | (address . 127.0.0.1) | ||
| 439 | (port . 6669) | ||
| 440 | (destination . irc.ilita.i2p) | ||
| 441 | (destinationport . 6667) | ||
| 442 | (keys . ilita-keys.dat))) | ||
| 443 | (BETA-CRAFT ((type . client) | ||
| 444 | (address . 192.168.122.1) | ||
| 445 | (port . 25565) | ||
| 446 | (destination . jpkqfe5q5z74i4esbcqilwozv72gbrkm4bueibblm732egjlzy6a.b32.i2p ) | ||
| 447 | (destinationport . 25565) | ||
| 448 | (gzip . false) | ||
| 449 | (inbound.length . 1) | ||
| 450 | (outbound.length . 1) | ||
| 451 | (inbound.quantity . 3) | ||
| 452 | (outbound.quantity . 3) | ||
| 453 | (i2cp.leaseSetType . 3) | ||
| 454 | (i2cp.leaseSetEncType . 4) | ||
| 455 | (keys . betacraft.dat))))))) | ||
| 456 | |||
| 457 | (simple-service | ||
| 458 | 'home-profile-extra-packages | ||
| 459 | home-profile-service-type | ||
| 460 | (append | ||
| 461 | (list | ||
| 462 | (@ (gnu packages tree-sitter) tree-sitter-clojure) | ||
| 463 | (@ (gnu packages tree-sitter) tree-sitter-html)) | ||
| 464 | (append | ||
| 465 | (list supernote-tool) | ||
| 466 | (strings->packages | ||
| 467 | "figlet" | ||
| 468 | "calibre" | ||
| 469 | |||
| 470 | "libnotify" | ||
| 471 | |||
| 472 | "flatpak" "wine64" | ||
| 473 | |||
| 474 | "alsa-utils" | ||
| 475 | "pavucontrol" | ||
| 476 | "imagemagick" | ||
| 477 | "obs" "obs-wlrobs" | ||
| 478 | "binutils" "make" "gdb" | ||
| 479 | |||
| 480 | "hicolor-icon-theme" "adwaita-icon-theme" | ||
| 481 | "gnome-themes-extra" "papirus-icon-theme" | ||
| 482 | "arc-theme" | ||
| 483 | |||
| 484 | "xdg-desktop-portal-gnome" | ||
| 485 | |||
| 486 | "kdenlive" "gimp" | ||
| 487 | "freecad" | ||
| 488 | |||
| 489 | "ripgrep" "curl" | ||
| 490 | |||
| 491 | "texlive" "texlive-collection-basic" | ||
| 492 | "texlive-bin" "texlive-collection-latex" | ||
| 493 | "texlive-collection-fontsrecommended" | ||
| 494 | "texlive-collection-pictures" | ||
| 495 | "texlive-collection-latexextra" | ||
| 496 | "texlive-dvipng"))))))) | ||
| 497 | |||
| 498 | |||
| 499 | (define-public (feature-nonfree-kernel) | ||
| 500 | (feature-kernel | ||
| 501 | #:kernel linux | ||
| 502 | #:firmware (list linux-firmware) | ||
| 503 | #:initrd microcode-initrd)) | ||
| 504 | |||
| 505 | (define-public %all-features | ||
| 506 | (append | ||
| 507 | %base-features | ||
| 508 | %cli-features | ||
| 509 | %desktop-features | ||
| 510 | %dev-features | ||
| 511 | %emacs-features | ||
| 512 | %mail-features | ||
| 513 | %virtualization-features)) | ||
| 514 | |||
| 515 | (define-public %user-features | ||
| 516 | (append | ||
| 517 | %all-features | ||
| 518 | (list | ||
| 519 | (feature-user-info | ||
| 520 | #:user-name "jakub" | ||
| 521 | #:full-name "Jakub Dlugosz" | ||
| 522 | #:email "me@jdlugosz.com" | ||
| 523 | #:user-initial-password-hash | ||
| 524 | "$6$C6xUaxw3xOpsPrBF$/nmP.SXpzoAYGu7CrcIMQ02S4f8QDNZTuAyaIZusmz4e3xXTdSYpt8D1WCaLXcAuhVJA5llPf9MH7L1TTlgG81" | ||
| 525 | #:emacs-advanced-user? #t) | ||
| 526 | (feature-gnupg | ||
| 527 | #:gpg-primary-key "83AD9E56AE266488CA2F2598BACE123052C9E77A") | ||
| 528 | (feature-security-token) | ||
| 529 | (feature-password-store | ||
| 530 | #:remote-password-store-url "git@jdlugosz.com:passwords") | ||
| 531 | (feature-state '((git "/data/jakub/notes" "git@jdlugosz.com:notes"))) | ||
| 532 | (feature-mail-settings | ||
| 533 | #:mail-directory-fn (lambda (config) | ||
| 534 | (string-append (get-value 'home-directory config) "/.mail")) | ||
| 535 | #:mail-accounts (list | ||
| 536 | (mail-account | ||
| 537 | (id 'work) | ||
| 538 | (type 'migadu) | ||
| 539 | (fqda "jakub@jdlugosz.com") | ||
| 540 | (aliases '("admin@jdlugosz.com" "postmaster@jdlugosz.com")) | ||
| 541 | (pass-cmd "pass show mail/jakub@jdlugosz.com")) | ||
| 542 | (mail-account | ||
| 543 | (id 'personal) | ||
| 544 | (type 'migadu) | ||
| 545 | (fqda "me@jdlugosz.com") | ||
| 546 | (aliases '("signup.*@jdlugosz.com")) | ||
| 547 | (pass-cmd "pass show mail/me@jdlugosz.com"))) | ||
| 548 | #:mailing-lists (list (mail-lst 'guile-devel "guile-devel@gnu.org" | ||
| 549 | '("https://yhetil.org/guile-devel/0")) | ||
| 550 | (mail-lst 'guix-devel "guix-devel@gnu.org" | ||
| 551 | '("https://yhetil.org/guix-devel/0")) | ||
| 552 | (mail-lst 'guix-bugs "guix-bugs@gnu.org" | ||
| 553 | '("https://yhetil.org/guix-bugs/0")) | ||
| 554 | (mail-lst 'guix-patches "guix-patches@gnu.org" | ||
| 555 | '("https://yhetil.org/guix-patches/1")))) | ||
| 556 | (feature-irc-settings #:irc-accounts (list | ||
| 557 | (irc-account | ||
| 558 | (id 'libera) | ||
| 559 | (network "irc.libera.chat") | ||
| 560 | (nick "jdlugosz963")))) | ||
| 561 | (feature-sourcehut | ||
| 562 | #:user-name-fn (const "jdlugosz")) | ||
| 563 | (feature-keyboard | ||
| 564 | #:keyboard-layout (keyboard-layout "pl")) | ||
| 565 | (feature-ssh-extra-config) | ||
| 566 | (feature-additional-services) | ||
| 567 | ) | ||
