Initial commit
This commit is contained in:
commit
59391c6456
341
Emacs.org
Normal file
341
Emacs.org
Normal file
|
@ -0,0 +1,341 @@
|
|||
* Emacs config
|
||||
** Packages
|
||||
#+begin_src scheme :tangle home/emacs-packages.scm
|
||||
(define-public emacs-parinfer-rust-mode
|
||||
(package
|
||||
(name "emacs-parinfer-rust-mode")
|
||||
(version "0.8.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://stable.melpa.org/packages/parinfer-rust-mode-" version
|
||||
".tar"))
|
||||
(sha256
|
||||
(base32 "1ivpw22043rag2wx7agfck330cdy5acg4djfsdh01v33d95547c1"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/justinbarclay/parinfer-rust-mode")
|
||||
(synopsis "An interface for the parinfer-rust library")
|
||||
(propagated-inputs (list parinfer-rust))
|
||||
(description
|
||||
"An intuitive editor mode to make paren management fun and easy without
|
||||
sacrificing power. How it works: Parinfer users the state of the buffer
|
||||
combined with the current mode (paren, indent, or smart) to either balance an
|
||||
s-expression's indentation, paren, or to do both. Let's go over some light
|
||||
examples to get a sense of how parinfer works. I am going to use `|` to
|
||||
indicate the cursor and `_` to indicate the a space that's been added either by
|
||||
the user or parinfer. Paren Mode gives you full control of parens, while
|
||||
Parinfer corrects indentation. For example, if we start off with the cursor
|
||||
before `(foo` ``` |(foo bar) ``` and the user inserts a space ``` _|(foo bar)
|
||||
``` then parinfer will maintain, infer, that a space is needed in front of
|
||||
`bar)` to maintain indentation ``` |(foo _bar) ``` Indent Mode gives you full
|
||||
control of indentation, while Parinfer corrects or inserts close-parens where
|
||||
appropriate. Now the cursor is before `4` ``` (foo [1 2 3] |4 5 6) ``` and the
|
||||
user inserts a space ``` (foo [1 2 3] _|4 5 6) ``` then parinfer will adjust the
|
||||
`]` and move it down to the follow line to enclose the 4 5 6 ``` (foo [1 2 3 |4
|
||||
5 6]) ``` Smart Mode is like Indent Mode, but it tries to preserve the structure
|
||||
too. This roughly translates to it treating everything before the cursor as
|
||||
indent-mode and every after the cursor as paren-mode. The cursor is before `(+`
|
||||
``` (let [x (fn [])] |(+ 1 2) x) ``` and the user add several spaces to the sexp
|
||||
``` (let [x (fn [])] ________|(+ 1 2) x) ``` Smart-Mode will move a ) and a ] to
|
||||
enclose the addition function call and move the 2 to maintain structure ``` (let
|
||||
[x (fn [] |(+ 1 _________2))] x) ``` To find out more about how parinfer works
|
||||
go to: https://shaunlebron.github.io/parinfer/ `parinfer-rust-mode` provides an
|
||||
interface between the `parinfer-rust` library and Emacs. As such it's primary
|
||||
role is to capture meta information about the buffer and transfer it to the
|
||||
parinfer-rust API. As such parinfer-rust-mode requires that your version of
|
||||
Emacs supports modules.")
|
||||
(license #f)))
|
||||
|
||||
(define emacs-packages (list
|
||||
emacs-all-the-icons
|
||||
emacs-all-the-icons-dired
|
||||
emacs-company
|
||||
emacs-company-box
|
||||
emacs-company-quickhelp
|
||||
emacs-counsel
|
||||
emacs-crux
|
||||
emacs-dracula-theme
|
||||
emacs-geiser
|
||||
emacs-geiser-guile
|
||||
emacs-gerbil-mode
|
||||
emacs-guix
|
||||
emacs-ivy
|
||||
emacs-ivy-rich
|
||||
emacs-kbd
|
||||
emacs-ligature
|
||||
emacs-magit
|
||||
emacs-meow
|
||||
emacs-org-roam
|
||||
emacs-org-superstar
|
||||
emacs-parinfer-rust-mode
|
||||
emacs-polymode
|
||||
emacs-polymode-org
|
||||
emacs-swiper
|
||||
emacs-telephone-line
|
||||
emacs-which-key
|
||||
emacs-yasnippet))
|
||||
#+end_src
|
||||
|
||||
** Config
|
||||
|
||||
#+begin_src emacs-lisp :tangle home/init.el
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(scroll-bar-mode -1)
|
||||
|
||||
(use-package parinfer-rust
|
||||
:custom ((parinfer-rust-library-directory "/home/skylar/.guix-home/profile/lib/")
|
||||
(parinfer-rust-library "/home/skylar/.guix-home/profile/lib/libparinfer_rust.so"))
|
||||
:hook (emacs-lisp-mode scheme-mode lisp-mode geiser-mode))
|
||||
|
||||
(use-package ivy
|
||||
:config (ivy-mode t))
|
||||
(use-package counsel
|
||||
:config (counsel-mode t))
|
||||
(use-package swiper
|
||||
:bind ("C-x /" . swiper))
|
||||
(use-package company
|
||||
:config (global-company-mode t))
|
||||
(use-package company-quickhelp
|
||||
:config (company-quickhelp-mode 1))
|
||||
|
||||
(use-package mu4e
|
||||
:config (setq
|
||||
mu4e-sent-folder "/posteo/Sent"
|
||||
mu4e-drafts-folder "/posteo/Drafts"
|
||||
mu4e-trash-folder "/posteo/Trash"
|
||||
mu4e-get-mail-command "offlineimap"
|
||||
mu4e-update-interval 3000))
|
||||
|
||||
(use-package dracula-theme
|
||||
:config (load-theme 'dracula :no-confirm))
|
||||
|
||||
(use-package org
|
||||
:hook (org-superstar-mode))
|
||||
|
||||
(use-package poly-org
|
||||
:config
|
||||
(pm-around-advice #'org-babel-tangle #'polymode-with-current-base-buffer)
|
||||
(pm-around-advice #'org-babel-demarcate-block #'polymode-with-current-base-buffer)
|
||||
:bind (:map poly-org-mode-map
|
||||
("C-c C-v C-t" . org-babel-tangle)
|
||||
("C-c C-v t" . org-babel-tangle)
|
||||
("C-c C-v C-d" . org-babel-demarcate-block)
|
||||
("C-c C-v d" . org-babel-demarcate-block))
|
||||
:hook ((poly-org-mode . (lambda () (setq-local org-src-fontify-natively t)))
|
||||
(org-mode . poly-org-mode)))
|
||||
|
||||
|
||||
(use-package geiser-guile
|
||||
:config (add-to-list 'geiser-guile-load-path "~/software/guix"))
|
||||
|
||||
(use-package yasnippet
|
||||
:config (add-to-list 'yas-snippet-dirs "~/software/guix/etc/snippets/yas/"))
|
||||
|
||||
(setq user-full-name "Skylar Hill"
|
||||
user-mail-address "stellarskylark@posteo.net")
|
||||
(load-file "~/software/guix/etc/copyright.el")
|
||||
|
||||
(use-package smtpmail
|
||||
:config (setq message-send-mail-function 'smtpmail-send-it
|
||||
smtpmail-stream-type 'ssl
|
||||
smtpmail-smtp-server "posteo.de"
|
||||
smtpmail-smtp-service 465))
|
||||
|
||||
(use-package ligature
|
||||
:config
|
||||
;; Enable the "www" ligature in every possible major mode
|
||||
(ligature-set-ligatures 't '("www"))
|
||||
;; Enable traditional ligature support in eww-mode, if the
|
||||
;; `variable-pitch' face supports it
|
||||
(ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi"))
|
||||
;; Enable all Cascadia and Fira Code ligatures in programming modes
|
||||
(ligature-set-ligatures 'prog-mode
|
||||
'(;; == === ==== => =| =>>=>=|=>==>> ==< =/=//=// =~
|
||||
;; =:= =!=
|
||||
("=" (rx (+ (or ">" "<" "|" "/" "~" ":" "!" "="))))
|
||||
;; ;; ;;;
|
||||
(";" (rx (+ ";")))
|
||||
;; && &&&
|
||||
("&" (rx (+ "&")))
|
||||
;; !! !!! !. !: !!. != !== !~
|
||||
("!" (rx (+ (or "=" "!" "\." ":" "~"))))
|
||||
;; ?? ??? ?: ?= ?.
|
||||
("?" (rx (or ":" "=" "\." (+ "?"))))
|
||||
;; %% %%%
|
||||
("%" (rx (+ "%")))
|
||||
;; |> ||> |||> ||||> |] |} || ||| |-> ||-||
|
||||
;; |->>-||-<<-| |- |== ||=||
|
||||
;; |==>>==<<==<=>==//==/=!==:===>
|
||||
("|" (rx (+ (or ">" "<" "|" "/" ":" "!" "}" "\]"
|
||||
"-" "="))))
|
||||
;; \\ \\\ \/
|
||||
("\\" (rx (or "/" (+ "\\"))))
|
||||
;; ++ +++ ++++ +>
|
||||
("+" (rx (or ">" (+ "+"))))
|
||||
;; :: ::: :::: :> :< := :// ::=
|
||||
(":" (rx (or ">" "<" "=" "//" ":=" (+ ":"))))
|
||||
;; // /// //// /\ /* /> /===:===!=//===>>==>==/
|
||||
("/" (rx (+ (or ">" "<" "|" "/" "\\" "\*" ":" "!"
|
||||
"="))))
|
||||
;; .. ... .... .= .- .? ..= ..<
|
||||
("\." (rx (or "=" "-" "\?" "\.=" "\.<" (+ "\."))))
|
||||
;; -- --- ---- -~ -> ->> -| -|->-->>->--<<-|
|
||||
("-" (rx (+ (or ">" "<" "|" "~" "-"))))
|
||||
;; *> */ *) ** *** ****
|
||||
("*" (rx (or ">" "/" ")" (+ "*"))))
|
||||
;; www wwww
|
||||
("w" (rx (+ "w")))
|
||||
;; <> <!-- <|> <: <~ <~> <~~ <+ <* <$ </ <+> <*>
|
||||
;; <$> </> <| <|| <||| <|||| <- <-| <-<<-|-> <->>
|
||||
;; <<-> <= <=> <<==<<==>=|=>==/==//=!==:=>
|
||||
;; << <<< <<<<
|
||||
("<" (rx (+ (or "\+" "\*" "\$" "<" ">" ":" "~" "!"
|
||||
"-" "/" "|" "="))))
|
||||
;; >: >- >>- >--|-> >>-|-> >= >== >>== >=|=:=>>
|
||||
;; >> >>> >>>>
|
||||
(">" (rx (+ (or ">" "<" "|" "/" ":" "=" "-"))))
|
||||
;; #: #= #! #( #? #[ #{ #_ #_( ## ### #####
|
||||
("#" (rx (or ":" "=" "!" "(" "\?" "\[" "{" "_(" "_"
|
||||
(+ "#"))))
|
||||
;; ~~ ~~~ ~= ~- ~@ ~> ~~>
|
||||
("~" (rx (or ">" "=" "-" "@" "~>" (+ "~"))))
|
||||
;; __ ___ ____ _|_ __|____|_
|
||||
("_" (rx (+ (or "_" "|"))))
|
||||
;; Fira code: 0xFF 0x12
|
||||
("0" (rx (and "x" (+ (in "A-F" "a-f" "0-9")))))
|
||||
;; Fira code:
|
||||
"Fl" "Tl" "fi" "fj" "fl" "ft"
|
||||
;; The few not covered by the regexps.
|
||||
"{|" "[|" "]#" "(*" "}#" "$>" "^="))
|
||||
;; Enables ligature checks globally in all buffers. You can also do it
|
||||
;; per mode with `ligature-mode'.
|
||||
(global-ligature-mode t))
|
||||
|
||||
(use-package all-the-icons-dired
|
||||
:hook (dired-mode . all-the-icons-dired-mode))
|
||||
|
||||
(require 'telephone-line)
|
||||
|
||||
(defface skylark-accent '((t (:background "#50fa7b" :foreground "#282a36"))) "")
|
||||
(setq telephone-line-faces
|
||||
'((skylark-accent . (skylark-accent . skylark-accent))
|
||||
(accent . (telephone-line-accent-active . telephone-line-accent-inactive))
|
||||
(nil . (mode-line . mode-line-inactive))))
|
||||
(setq telephone-line-lhs
|
||||
'((skylark-accent . (telephone-line-meow-tag-segment))
|
||||
(accent . (telephone-line-vc-segment
|
||||
telephone-line-erc-modified-channels-segment
|
||||
telephone-line-process-segment))
|
||||
(nil . (telephone-line-minor-mode-segment
|
||||
telephone-line-buffer-segment))))
|
||||
(setq telephone-line-rhs
|
||||
'((nil . (telephone-line-misc-info-segment))
|
||||
(accent . (telephone-line-major-mode-segment))
|
||||
(skylark-accent . (telephone-line-airline-position-segment))))
|
||||
|
||||
(telephone-line-mode 1)
|
||||
|
||||
(setq frame-resize-pixelwise t)
|
||||
(setq window-resize-pixelwise t)
|
||||
|
||||
(setq-default indent-tabs-mode nil)
|
||||
|
||||
(add-to-list 'default-frame-alist
|
||||
'(font . "Fira Code"))
|
||||
|
||||
(add-to-list 'default-frame-alist
|
||||
'(alpha-background . 80))
|
||||
|
||||
(require 'meow)
|
||||
(defun meow-setup ()
|
||||
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
|
||||
(meow-motion-overwrite-define-key
|
||||
'("j" . meow-next)
|
||||
'("k" . meow-prev)
|
||||
'("<escape>" . ignore))
|
||||
(meow-leader-define-key
|
||||
;; SPC j/k will run the original command in MOTION state.
|
||||
'("j" . "H-j")
|
||||
'("k" . "H-k")
|
||||
;; Use SPC (0-9) for digit arguments.
|
||||
'("1" . meow-digit-argument)
|
||||
'("2" . meow-digit-argument)
|
||||
'("3" . meow-digit-argument)
|
||||
'("4" . meow-digit-argument)
|
||||
'("5" . meow-digit-argument)
|
||||
'("6" . meow-digit-argument)
|
||||
'("7" . meow-digit-argument)
|
||||
'("8" . meow-digit-argument)
|
||||
'("9" . meow-digit-argument)
|
||||
'("0" . meow-digit-argument)
|
||||
'("/" . meow-keypad-describe-key)
|
||||
'("?" . meow-cheatsheet))
|
||||
(meow-normal-define-key
|
||||
'("0" . meow-expand-0)
|
||||
'("9" . meow-expand-9)
|
||||
'("8" . meow-expand-8)
|
||||
'("7" . meow-expand-7)
|
||||
'("6" . meow-expand-6)
|
||||
'("5" . meow-expand-5)
|
||||
'("4" . meow-expand-4)
|
||||
'("3" . meow-expand-3)
|
||||
'("2" . meow-expand-2)
|
||||
'("1" . meow-expand-1)
|
||||
'("-" . negative-argument)
|
||||
'(";" . meow-reverse)
|
||||
'("," . meow-inner-of-thing)
|
||||
'("." . meow-bounds-of-thing)
|
||||
'("[" . meow-beginning-of-thing)
|
||||
'("]" . meow-end-of-thing)
|
||||
'("a" . meow-append)
|
||||
'("A" . meow-open-below)
|
||||
'("b" . meow-back-word)
|
||||
'("B" . meow-back-symbol)
|
||||
'("c" . meow-change)
|
||||
'("d" . meow-delete)
|
||||
'("D" . meow-backward-delete)
|
||||
'("e" . meow-next-word)
|
||||
'("E" . meow-next-symbol)
|
||||
'("f" . meow-find)
|
||||
'("g" . meow-cancel-selection)
|
||||
'("G" . meow-grab)
|
||||
'("h" . meow-left)
|
||||
'("H" . meow-left-expand)
|
||||
'("i" . meow-insert)
|
||||
'("I" . meow-open-above)
|
||||
'("j" . meow-next)
|
||||
'("J" . meow-next-expand)
|
||||
'("k" . meow-prev)
|
||||
'("K" . meow-prev-expand)
|
||||
'("l" . meow-right)
|
||||
'("L" . meow-right-expand)
|
||||
'("m" . meow-join)
|
||||
'("n" . meow-search)
|
||||
'("o" . meow-block)
|
||||
'("O" . meow-to-block)
|
||||
'("p" . meow-yank)
|
||||
'("q" . meow-quit)
|
||||
'("Q" . meow-goto-line)
|
||||
'("r" . meow-replace)
|
||||
'("R" . meow-swap-grab)
|
||||
'("s" . meow-kill)
|
||||
'("t" . meow-till)
|
||||
'("u" . meow-undo)
|
||||
'("U" . meow-undo-in-selection)
|
||||
'("v" . meow-visit)
|
||||
'("w" . meow-mark-word)
|
||||
'("W" . meow-mark-symbol)
|
||||
'("x" . meow-line)
|
||||
'("X" . meow-goto-line)
|
||||
'("y" . meow-save)
|
||||
'("Y" . meow-sync-grab)
|
||||
'("z" . meow-pop-selection)
|
||||
'("'" . repeat)
|
||||
'("<escape>" . ignore)))
|
||||
(meow-setup)
|
||||
(meow-global-mode 1)
|
||||
(customize-set-variable 'meow-use-clipboard t)
|
||||
|
||||
#+end_src
|
166
Sanderson.org
Normal file
166
Sanderson.org
Normal file
|
@ -0,0 +1,166 @@
|
|||
* Sanderson config
|
||||
|
||||
** Main system
|
||||
|
||||
#+begin_src scheme :tangle sanderson.scm
|
||||
(use-modules (gnu)
|
||||
(nongnu packages linux)
|
||||
(nongnu system linux-initrd))
|
||||
(use-service-modules cups desktop networking ssh syncthing xorg)
|
||||
(operating-system
|
||||
(kernel linux)
|
||||
(initrd microcode-initrd)
|
||||
(firmware (list linux-firmware))
|
||||
(locale "en_US.utf8")
|
||||
(timezone "America/Chicago")
|
||||
(keyboard-layout (keyboard-layout "us"))
|
||||
(host-name "sanderson")
|
||||
|
||||
;; The list of user accounts ('root' is implicit).
|
||||
(users (cons* (user-account
|
||||
(name "skylar")
|
||||
(comment "Skylar")
|
||||
(group "users")
|
||||
(home-directory "/home/skylar")
|
||||
(supplementary-groups '("wheel" "netdev" "audio" "video")))
|
||||
%base-user-accounts))
|
||||
|
||||
;; Packages installed system-wide. Users can also install packages
|
||||
;; under their own account: use 'guix search KEYWORD' to search
|
||||
;; for packages and 'guix install PACKAGE' to install a package.
|
||||
(packages (append (specifications->packages (list "nss-certs"
|
||||
"stumpwm"))
|
||||
%base-packages))
|
||||
|
||||
;; Below is the list of system services. To search for available
|
||||
;; services, run 'guix system search KEYWORD' in a terminal.
|
||||
(services
|
||||
(append (list (service plasma-desktop-service-type)
|
||||
|
||||
;; To configure OpenSSH, pass an 'openssh-configuration'
|
||||
;; record as a second argument to 'service' below.
|
||||
(service openssh-service-type)
|
||||
(service cups-service-type)
|
||||
(set-xorg-configuration
|
||||
(xorg-configuration (keyboard-layout keyboard-layout)))
|
||||
(service syncthing-service-type
|
||||
(syncthing-configuration
|
||||
(user "skylar")
|
||||
(home "/home/skylar"))))
|
||||
|
||||
;; This is the default list of services we
|
||||
;; are appending to.
|
||||
(modify-services %desktop-services
|
||||
(guix-service-type config => (guix-configuration
|
||||
(inherit config)
|
||||
(substitute-urls
|
||||
(append (list "https://substitutes.nonguix.org")
|
||||
%default-substitute-urls))
|
||||
(authorized-keys
|
||||
(append (list (local-file "./signing-key.pub"))
|
||||
%default-authorized-guix-keys)))))))
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-bootloader)
|
||||
(targets (list "/dev/sda"))
|
||||
(keyboard-layout keyboard-layout)))
|
||||
(swap-devices (list (swap-space
|
||||
(target (uuid
|
||||
"646006cb-84a4-46ea-a03c-78a343b2fd07")))))
|
||||
|
||||
;; The list of file systems that get "mounted". The unique
|
||||
;; file system identifiers there ("UUIDs") can be obtained
|
||||
;; by running 'blkid' in a terminal.
|
||||
(file-systems (cons* (file-system
|
||||
(mount-point "/")
|
||||
(device (uuid
|
||||
"38be76dc-b7d8-4433-bab6-04c6c7f62733"
|
||||
'ext4))
|
||||
(type "ext4")) %base-file-systems)))
|
||||
#+end_src
|
||||
|
||||
** Home configuration
|
||||
|
||||
#+begin_src scheme :tangle home/sanderson.scm
|
||||
(use-modules (gnu home)
|
||||
(gnu home services)
|
||||
(gnu packages)
|
||||
(gnu packages emacs-xyz)
|
||||
(gnu packages gnupg)
|
||||
(gnu packages scheme)
|
||||
(gnu packages text-editors)
|
||||
(gnu services)
|
||||
(guix build-system emacs)
|
||||
(guix build-system font)
|
||||
(guix download)
|
||||
(guix gexp)
|
||||
(guix packages)
|
||||
(gnu home services shells)
|
||||
(gnu home services gnupg))
|
||||
|
||||
(load "./emacs-packages.scm")
|
||||
|
||||
(home-environment
|
||||
;; Below is the list of packages that will show up in your
|
||||
;; Home profile, under ~/.guix-home/profile.
|
||||
(packages (append
|
||||
(specifications->packages
|
||||
(list "bat"
|
||||
"calibre"
|
||||
"emacs"
|
||||
"firefox"
|
||||
"font-fira-code"
|
||||
"font-google-noto"
|
||||
"font-google-noto-emoji"
|
||||
"gerbil"
|
||||
"git"
|
||||
"gnupg"
|
||||
"gnutls"
|
||||
"hicolor-icon-theme"
|
||||
"kitty"
|
||||
"kmonad"
|
||||
"kwallet"
|
||||
"nheko"
|
||||
"offlineimap3"
|
||||
"okular"
|
||||
"mu"
|
||||
"pamixer"
|
||||
"password-store"
|
||||
"pavucontrol"
|
||||
"python"
|
||||
"rofi"
|
||||
"rofi-pass"
|
||||
"sbcl-stumpwm-pamixer"
|
||||
"smtpmail"
|
||||
"steam"
|
||||
"stumpwm"
|
||||
"swi-prolog"
|
||||
"xclip"
|
||||
"zoom"))
|
||||
emacs-packages))
|
||||
|
||||
;; Below is the list of Home services. To search for available
|
||||
;; services, run 'guix home search KEYWORD' in a terminal.
|
||||
(services
|
||||
(list (service home-bash-service-type
|
||||
(home-bash-configuration
|
||||
(aliases '(("grep" . "grep --color=auto")
|
||||
("ip" . "ip -color=auto")
|
||||
("ll" . "ls -l")
|
||||
("ls" . "ls -p --color=auto")))
|
||||
(bashrc (list (local-file
|
||||
"/home/skylar/.config/guix/home/.bashrc"
|
||||
"bashrc")))
|
||||
(bash-profile (list (local-file
|
||||
"/home/skylar/.config/guix/home/.bash_profile"
|
||||
"bash_profile")))))
|
||||
(service home-gpg-agent-service-type
|
||||
(home-gpg-agent-configuration
|
||||
(pinentry-program
|
||||
(file-append pinentry "/bin/pinentry"))
|
||||
(default-cache-ttl 86400)
|
||||
(max-cache-ttl 86400)
|
||||
(ssh-support? #t)))
|
||||
(service home-files-service-type
|
||||
`((".emacs.d/init.el" ,(local-file "init.el"))
|
||||
(".offlineimaprc" ,(local-file "offlineimaprc")))))))
|
||||
#+end_src
|
9
channels.scm
Normal file
9
channels.scm
Normal file
|
@ -0,0 +1,9 @@
|
|||
(cons* (channel
|
||||
(name 'nonguix)
|
||||
(url "https://gitlab.com/nonguix/nonguix")
|
||||
(introduction
|
||||
(make-channel-introduction
|
||||
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
|
||||
(openpgp-fingerprint
|
||||
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
|
||||
%default-channels)
|
11
home/.bash_profile
Normal file
11
home/.bash_profile
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Set up the system, user profile, and related variables.
|
||||
# /etc/profile will be sourced by bash automatically
|
||||
# Set up the home environment profile.
|
||||
if [ -f ~/.profile ]; then source ~/.profile; fi
|
||||
|
||||
# Honor per-interactive-shell startup file
|
||||
if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
|
||||
PS1='\u@\h \w${GUIX_ENVIRONMENT:+ [env]}\$ '
|
||||
# Honor per-interactive-shell startup file
|
||||
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
|
||||
|
60
home/.bashrc
Normal file
60
home/.bashrc
Normal file
|
@ -0,0 +1,60 @@
|
|||
alias grep="grep --color=auto"
|
||||
alias ll="ls -l"
|
||||
alias ls="ls -p --color=auto"
|
||||
# Bash initialization for interactive non-login shells and
|
||||
# for remote shells (info "(bash) Bash Startup Files").
|
||||
|
||||
# Export 'SHELL' to child processes. Programs such as 'screen'
|
||||
# honor it and otherwise use /bin/sh.
|
||||
export SHELL
|
||||
|
||||
if [[ $- != *i* ]]
|
||||
then
|
||||
# We are being invoked from a non-interactive shell. If this
|
||||
# is an SSH session (as in "ssh host command"), source
|
||||
# /etc/profile so we get PATH and other essential variables.
|
||||
[[ -n "$SSH_CLIENT" ]] && source /etc/profile
|
||||
|
||||
# Don't do anything else.
|
||||
return
|
||||
fi
|
||||
|
||||
# Source the system-wide file.
|
||||
[ -f /etc/bashrc ] && source /etc/bashrc
|
||||
|
||||
alias ls='ls -p --color=auto'
|
||||
alias ll='ls -l'
|
||||
alias grep='grep --color=auto'
|
||||
alias ip='ip -color=auto'
|
||||
# Bash initialization for interactive non-login shells and
|
||||
# for remote shells (info "(bash) Bash Startup Files").
|
||||
|
||||
# Export 'SHELL' to child processes. Programs such as 'screen'
|
||||
# honor it and otherwise use /bin/sh.
|
||||
export SHELL
|
||||
|
||||
if [[ $- != *i* ]]
|
||||
then
|
||||
# We are being invoked from a non-interactive shell. If this
|
||||
# is an SSH session (as in "ssh host command"), source
|
||||
# /etc/profile so we get PATH and other essential variables.
|
||||
[[ -n "$SSH_CLIENT" ]] && source /etc/profile
|
||||
|
||||
# Don't do anything else.
|
||||
return
|
||||
fi
|
||||
|
||||
# Source the system-wide file.
|
||||
source /etc/bashrc
|
||||
|
||||
# Adjust the prompt depending on whether we're in 'guix environment'.
|
||||
if [ -n "$GUIX_ENVIRONMENT" ]
|
||||
then
|
||||
PS1='\u@\h \w [env]\$ '
|
||||
else
|
||||
PS1='\u@\h \w\$ '
|
||||
fi
|
||||
alias ls='ls -p --color=auto'
|
||||
alias ll='ls -l'
|
||||
alias grep='grep --color=auto'
|
||||
|
74
home/emacs-packages.scm
Normal file
74
home/emacs-packages.scm
Normal file
|
@ -0,0 +1,74 @@
|
|||
(define-public emacs-parinfer-rust-mode
|
||||
(package
|
||||
(name "emacs-parinfer-rust-mode")
|
||||
(version "0.8.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://stable.melpa.org/packages/parinfer-rust-mode-" version
|
||||
".tar"))
|
||||
(sha256
|
||||
(base32 "1ivpw22043rag2wx7agfck330cdy5acg4djfsdh01v33d95547c1"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/justinbarclay/parinfer-rust-mode")
|
||||
(synopsis "An interface for the parinfer-rust library")
|
||||
(propagated-inputs (list parinfer-rust))
|
||||
(description
|
||||
"An intuitive editor mode to make paren management fun and easy without
|
||||
sacrificing power. How it works: Parinfer users the state of the buffer
|
||||
combined with the current mode (paren, indent, or smart) to either balance an
|
||||
s-expression's indentation, paren, or to do both. Let's go over some light
|
||||
examples to get a sense of how parinfer works. I am going to use `|` to
|
||||
indicate the cursor and `_` to indicate the a space that's been added either by
|
||||
the user or parinfer. Paren Mode gives you full control of parens, while
|
||||
Parinfer corrects indentation. For example, if we start off with the cursor
|
||||
before `(foo` ``` |(foo bar) ``` and the user inserts a space ``` _|(foo bar)
|
||||
``` then parinfer will maintain, infer, that a space is needed in front of
|
||||
`bar)` to maintain indentation ``` |(foo _bar) ``` Indent Mode gives you full
|
||||
control of indentation, while Parinfer corrects or inserts close-parens where
|
||||
appropriate. Now the cursor is before `4` ``` (foo [1 2 3] |4 5 6) ``` and the
|
||||
user inserts a space ``` (foo [1 2 3] _|4 5 6) ``` then parinfer will adjust the
|
||||
`]` and move it down to the follow line to enclose the 4 5 6 ``` (foo [1 2 3 |4
|
||||
5 6]) ``` Smart Mode is like Indent Mode, but it tries to preserve the structure
|
||||
too. This roughly translates to it treating everything before the cursor as
|
||||
indent-mode and every after the cursor as paren-mode. The cursor is before `(+`
|
||||
``` (let [x (fn [])] |(+ 1 2) x) ``` and the user add several spaces to the sexp
|
||||
``` (let [x (fn [])] ________|(+ 1 2) x) ``` Smart-Mode will move a ) and a ] to
|
||||
enclose the addition function call and move the 2 to maintain structure ``` (let
|
||||
[x (fn [] |(+ 1 _________2))] x) ``` To find out more about how parinfer works
|
||||
go to: https://shaunlebron.github.io/parinfer/ `parinfer-rust-mode` provides an
|
||||
interface between the `parinfer-rust` library and Emacs. As such it's primary
|
||||
role is to capture meta information about the buffer and transfer it to the
|
||||
parinfer-rust API. As such parinfer-rust-mode requires that your version of
|
||||
Emacs supports modules.")
|
||||
(license #f)))
|
||||
|
||||
(define emacs-packages (list
|
||||
emacs-all-the-icons
|
||||
emacs-all-the-icons-dired
|
||||
emacs-company
|
||||
emacs-company-box
|
||||
emacs-company-quickhelp
|
||||
emacs-counsel
|
||||
emacs-crux
|
||||
emacs-dracula-theme
|
||||
emacs-geiser
|
||||
emacs-geiser-guile
|
||||
emacs-gerbil-mode
|
||||
emacs-guix
|
||||
emacs-ivy
|
||||
emacs-ivy-rich
|
||||
emacs-kbd
|
||||
emacs-ligature
|
||||
emacs-magit
|
||||
emacs-meow
|
||||
emacs-org-roam
|
||||
emacs-org-superstar
|
||||
emacs-parinfer-rust-mode
|
||||
emacs-polymode
|
||||
emacs-polymode-org
|
||||
emacs-swiper
|
||||
emacs-telephone-line
|
||||
emacs-which-key
|
||||
emacs-yasnippet))
|
257
home/init.el
Normal file
257
home/init.el
Normal file
|
@ -0,0 +1,257 @@
|
|||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(scroll-bar-mode -1)
|
||||
|
||||
(use-package parinfer-rust
|
||||
:custom ((parinfer-rust-library-directory "/home/skylar/.guix-home/profile/lib/")
|
||||
(parinfer-rust-library "/home/skylar/.guix-home/profile/lib/libparinfer_rust.so"))
|
||||
:hook (emacs-lisp-mode scheme-mode lisp-mode geiser-mode))
|
||||
|
||||
(use-package ivy
|
||||
:config (ivy-mode t))
|
||||
(use-package counsel
|
||||
:config (counsel-mode t))
|
||||
(use-package swiper
|
||||
:bind ("C-x /" . swiper))
|
||||
(use-package company
|
||||
:config (global-company-mode t))
|
||||
(use-package company-quickhelp
|
||||
:config (company-quickhelp-mode 1))
|
||||
|
||||
(use-package mu4e
|
||||
:config (setq
|
||||
mu4e-sent-folder "/posteo/Sent"
|
||||
mu4e-drafts-folder "/posteo/Drafts"
|
||||
mu4e-trash-folder "/posteo/Trash"
|
||||
mu4e-get-mail-command "offlineimap"
|
||||
mu4e-update-interval 3000))
|
||||
|
||||
(use-package dracula-theme
|
||||
:config (load-theme 'dracula :no-confirm))
|
||||
|
||||
(use-package org
|
||||
:hook (org-superstar-mode))
|
||||
|
||||
(use-package poly-org
|
||||
:config
|
||||
(pm-around-advice #'org-babel-tangle #'polymode-with-current-base-buffer)
|
||||
(pm-around-advice #'org-babel-demarcate-block #'polymode-with-current-base-buffer)
|
||||
:bind (:map poly-org-mode-map
|
||||
("C-c C-v C-t" . org-babel-tangle)
|
||||
("C-c C-v t" . org-babel-tangle)
|
||||
("C-c C-v C-d" . org-babel-demarcate-block)
|
||||
("C-c C-v d" . org-babel-demarcate-block))
|
||||
:hook ((poly-org-mode . (lambda () (setq-local org-src-fontify-natively t)))
|
||||
(org-mode . poly-org-mode)))
|
||||
|
||||
|
||||
(use-package geiser-guile
|
||||
:config (add-to-list 'geiser-guile-load-path "~/software/guix"))
|
||||
|
||||
(use-package yasnippet
|
||||
:config (add-to-list 'yas-snippet-dirs "~/software/guix/etc/snippets/yas/"))
|
||||
|
||||
(setq user-full-name "Skylar Hill"
|
||||
user-mail-address "stellarskylark@posteo.net")
|
||||
(load-file "~/software/guix/etc/copyright.el")
|
||||
|
||||
(use-package smtpmail
|
||||
:config (setq message-send-mail-function 'smtpmail-send-it
|
||||
smtpmail-stream-type 'ssl
|
||||
smtpmail-smtp-server "posteo.de"
|
||||
smtpmail-smtp-service 465))
|
||||
|
||||
(use-package ligature
|
||||
:config
|
||||
;; Enable the "www" ligature in every possible major mode
|
||||
(ligature-set-ligatures 't '("www"))
|
||||
;; Enable traditional ligature support in eww-mode, if the
|
||||
;; `variable-pitch' face supports it
|
||||
(ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi"))
|
||||
;; Enable all Cascadia and Fira Code ligatures in programming modes
|
||||
(ligature-set-ligatures 'prog-mode
|
||||
'(;; == === ==== => =| =>>=>=|=>==>> ==< =/=//=// =~
|
||||
;; =:= =!=
|
||||
("=" (rx (+ (or ">" "<" "|" "/" "~" ":" "!" "="))))
|
||||
;; ;; ;;;
|
||||
(";" (rx (+ ";")))
|
||||
;; && &&&
|
||||
("&" (rx (+ "&")))
|
||||
;; !! !!! !. !: !!. != !== !~
|
||||
("!" (rx (+ (or "=" "!" "\." ":" "~"))))
|
||||
;; ?? ??? ?: ?= ?.
|
||||
("?" (rx (or ":" "=" "\." (+ "?"))))
|
||||
;; %% %%%
|
||||
("%" (rx (+ "%")))
|
||||
;; |> ||> |||> ||||> |] |} || ||| |-> ||-||
|
||||
;; |->>-||-<<-| |- |== ||=||
|
||||
;; |==>>==<<==<=>==//==/=!==:===>
|
||||
("|" (rx (+ (or ">" "<" "|" "/" ":" "!" "}" "\]"
|
||||
"-" "="))))
|
||||
;; \\ \\\ \/
|
||||
("\\" (rx (or "/" (+ "\\"))))
|
||||
;; ++ +++ ++++ +>
|
||||
("+" (rx (or ">" (+ "+"))))
|
||||
;; :: ::: :::: :> :< := :// ::=
|
||||
(":" (rx (or ">" "<" "=" "//" ":=" (+ ":"))))
|
||||
;; // /// //// /\ /* /> /===:===!=//===>>==>==/
|
||||
("/" (rx (+ (or ">" "<" "|" "/" "\\" "\*" ":" "!"
|
||||
"="))))
|
||||
;; .. ... .... .= .- .? ..= ..<
|
||||
("\." (rx (or "=" "-" "\?" "\.=" "\.<" (+ "\."))))
|
||||
;; -- --- ---- -~ -> ->> -| -|->-->>->--<<-|
|
||||
("-" (rx (+ (or ">" "<" "|" "~" "-"))))
|
||||
;; *> */ *) ** *** ****
|
||||
("*" (rx (or ">" "/" ")" (+ "*"))))
|
||||
;; www wwww
|
||||
("w" (rx (+ "w")))
|
||||
;; <> <!-- <|> <: <~ <~> <~~ <+ <* <$ </ <+> <*>
|
||||
;; <$> </> <| <|| <||| <|||| <- <-| <-<<-|-> <->>
|
||||
;; <<-> <= <=> <<==<<==>=|=>==/==//=!==:=>
|
||||
;; << <<< <<<<
|
||||
("<" (rx (+ (or "\+" "\*" "\$" "<" ">" ":" "~" "!"
|
||||
"-" "/" "|" "="))))
|
||||
;; >: >- >>- >--|-> >>-|-> >= >== >>== >=|=:=>>
|
||||
;; >> >>> >>>>
|
||||
(">" (rx (+ (or ">" "<" "|" "/" ":" "=" "-"))))
|
||||
;; #: #= #! #( #? #[ #{ #_ #_( ## ### #####
|
||||
("#" (rx (or ":" "=" "!" "(" "\?" "\[" "{" "_(" "_"
|
||||
(+ "#"))))
|
||||
;; ~~ ~~~ ~= ~- ~@ ~> ~~>
|
||||
("~" (rx (or ">" "=" "-" "@" "~>" (+ "~"))))
|
||||
;; __ ___ ____ _|_ __|____|_
|
||||
("_" (rx (+ (or "_" "|"))))
|
||||
;; Fira code: 0xFF 0x12
|
||||
("0" (rx (and "x" (+ (in "A-F" "a-f" "0-9")))))
|
||||
;; Fira code:
|
||||
"Fl" "Tl" "fi" "fj" "fl" "ft"
|
||||
;; The few not covered by the regexps.
|
||||
"{|" "[|" "]#" "(*" "}#" "$>" "^="))
|
||||
;; Enables ligature checks globally in all buffers. You can also do it
|
||||
;; per mode with `ligature-mode'.
|
||||
(global-ligature-mode t))
|
||||
|
||||
(use-package all-the-icons-dired
|
||||
:hook (dired-mode . all-the-icons-dired-mode))
|
||||
|
||||
(require 'telephone-line)
|
||||
|
||||
(defface skylark-accent '((t (:background "#50fa7b" :foreground "#282a36"))) "")
|
||||
(setq telephone-line-faces
|
||||
'((skylark-accent . (skylark-accent . skylark-accent))
|
||||
(accent . (telephone-line-accent-active . telephone-line-accent-inactive))
|
||||
(nil . (mode-line . mode-line-inactive))))
|
||||
(setq telephone-line-lhs
|
||||
'((skylark-accent . (telephone-line-meow-tag-segment))
|
||||
(accent . (telephone-line-vc-segment
|
||||
telephone-line-erc-modified-channels-segment
|
||||
telephone-line-process-segment))
|
||||
(nil . (telephone-line-minor-mode-segment
|
||||
telephone-line-buffer-segment))))
|
||||
(setq telephone-line-rhs
|
||||
'((nil . (telephone-line-misc-info-segment))
|
||||
(accent . (telephone-line-major-mode-segment))
|
||||
(skylark-accent . (telephone-line-airline-position-segment))))
|
||||
|
||||
(telephone-line-mode 1)
|
||||
|
||||
(setq frame-resize-pixelwise t)
|
||||
(setq window-resize-pixelwise t)
|
||||
|
||||
(setq-default indent-tabs-mode nil)
|
||||
|
||||
(add-to-list 'default-frame-alist
|
||||
'(font . "Fira Code"))
|
||||
|
||||
(add-to-list 'default-frame-alist
|
||||
'(alpha-background . 80))
|
||||
|
||||
(require 'meow)
|
||||
(defun meow-setup ()
|
||||
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
|
||||
(meow-motion-overwrite-define-key
|
||||
'("j" . meow-next)
|
||||
'("k" . meow-prev)
|
||||
'("<escape>" . ignore))
|
||||
(meow-leader-define-key
|
||||
;; SPC j/k will run the original command in MOTION state.
|
||||
'("j" . "H-j")
|
||||
'("k" . "H-k")
|
||||
;; Use SPC (0-9) for digit arguments.
|
||||
'("1" . meow-digit-argument)
|
||||
'("2" . meow-digit-argument)
|
||||
'("3" . meow-digit-argument)
|
||||
'("4" . meow-digit-argument)
|
||||
'("5" . meow-digit-argument)
|
||||
'("6" . meow-digit-argument)
|
||||
'("7" . meow-digit-argument)
|
||||
'("8" . meow-digit-argument)
|
||||
'("9" . meow-digit-argument)
|
||||
'("0" . meow-digit-argument)
|
||||
'("/" . meow-keypad-describe-key)
|
||||
'("?" . meow-cheatsheet))
|
||||
(meow-normal-define-key
|
||||
'("0" . meow-expand-0)
|
||||
'("9" . meow-expand-9)
|
||||
'("8" . meow-expand-8)
|
||||
'("7" . meow-expand-7)
|
||||
'("6" . meow-expand-6)
|
||||
'("5" . meow-expand-5)
|
||||
'("4" . meow-expand-4)
|
||||
'("3" . meow-expand-3)
|
||||
'("2" . meow-expand-2)
|
||||
'("1" . meow-expand-1)
|
||||
'("-" . negative-argument)
|
||||
'(";" . meow-reverse)
|
||||
'("," . meow-inner-of-thing)
|
||||
'("." . meow-bounds-of-thing)
|
||||
'("[" . meow-beginning-of-thing)
|
||||
'("]" . meow-end-of-thing)
|
||||
'("a" . meow-append)
|
||||
'("A" . meow-open-below)
|
||||
'("b" . meow-back-word)
|
||||
'("B" . meow-back-symbol)
|
||||
'("c" . meow-change)
|
||||
'("d" . meow-delete)
|
||||
'("D" . meow-backward-delete)
|
||||
'("e" . meow-next-word)
|
||||
'("E" . meow-next-symbol)
|
||||
'("f" . meow-find)
|
||||
'("g" . meow-cancel-selection)
|
||||
'("G" . meow-grab)
|
||||
'("h" . meow-left)
|
||||
'("H" . meow-left-expand)
|
||||
'("i" . meow-insert)
|
||||
'("I" . meow-open-above)
|
||||
'("j" . meow-next)
|
||||
'("J" . meow-next-expand)
|
||||
'("k" . meow-prev)
|
||||
'("K" . meow-prev-expand)
|
||||
'("l" . meow-right)
|
||||
'("L" . meow-right-expand)
|
||||
'("m" . meow-join)
|
||||
'("n" . meow-search)
|
||||
'("o" . meow-block)
|
||||
'("O" . meow-to-block)
|
||||
'("p" . meow-yank)
|
||||
'("q" . meow-quit)
|
||||
'("Q" . meow-goto-line)
|
||||
'("r" . meow-replace)
|
||||
'("R" . meow-swap-grab)
|
||||
'("s" . meow-kill)
|
||||
'("t" . meow-till)
|
||||
'("u" . meow-undo)
|
||||
'("U" . meow-undo-in-selection)
|
||||
'("v" . meow-visit)
|
||||
'("w" . meow-mark-word)
|
||||
'("W" . meow-mark-symbol)
|
||||
'("x" . meow-line)
|
||||
'("X" . meow-goto-line)
|
||||
'("y" . meow-save)
|
||||
'("Y" . meow-sync-grab)
|
||||
'("z" . meow-pop-selection)
|
||||
'("'" . repeat)
|
||||
'("<escape>" . ignore)))
|
||||
(meow-setup)
|
||||
(meow-global-mode 1)
|
||||
(customize-set-variable 'meow-use-clipboard t)
|
18
home/offlineimaprc
Normal file
18
home/offlineimaprc
Normal file
|
@ -0,0 +1,18 @@
|
|||
[general]
|
||||
pythonfile = ~/.local/bin/offlineimap-pass.py
|
||||
accounts = posteo
|
||||
|
||||
[Account posteo]
|
||||
localrepository = posteo-local
|
||||
remoterepository = posteo-remote
|
||||
|
||||
[Repository posteo-local]
|
||||
type = Maildir
|
||||
localfolders = ~/.local/share/mail/posteo/
|
||||
|
||||
[Repository posteo-remote]
|
||||
type = IMAP
|
||||
remotehost = posteo.de
|
||||
remoteuser = stellarskylark@posteo.net
|
||||
remotepasseval = get_pass("posteo")
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
1
home/offlineimaprc~
Normal file
1
home/offlineimaprc~
Normal file
|
@ -0,0 +1 @@
|
|||
[general]
|
82
home/sanderson.scm
Normal file
82
home/sanderson.scm
Normal file
|
@ -0,0 +1,82 @@
|
|||
(use-modules (gnu home)
|
||||
(gnu home services)
|
||||
(gnu packages)
|
||||
(gnu packages emacs-xyz)
|
||||
(gnu packages gnupg)
|
||||
(gnu packages scheme)
|
||||
(gnu packages text-editors)
|
||||
(gnu services)
|
||||
(guix build-system emacs)
|
||||
(guix build-system font)
|
||||
(guix download)
|
||||
(guix gexp)
|
||||
(guix packages)
|
||||
(gnu home services shells)
|
||||
(gnu home services gnupg))
|
||||
|
||||
(load "./emacs-packages.scm")
|
||||
|
||||
(home-environment
|
||||
;; Below is the list of packages that will show up in your
|
||||
;; Home profile, under ~/.guix-home/profile.
|
||||
(packages (append
|
||||
(specifications->packages
|
||||
(list "bat"
|
||||
"calibre"
|
||||
"emacs"
|
||||
"firefox"
|
||||
"font-fira-code"
|
||||
"font-google-noto"
|
||||
"font-google-noto-emoji"
|
||||
"gerbil"
|
||||
"git"
|
||||
"gnupg"
|
||||
"gnutls"
|
||||
"hicolor-icon-theme"
|
||||
"kitty"
|
||||
"kmonad"
|
||||
"kwallet"
|
||||
"nheko"
|
||||
"offlineimap3"
|
||||
"okular"
|
||||
"mu"
|
||||
"pamixer"
|
||||
"password-store"
|
||||
"pavucontrol"
|
||||
"python"
|
||||
"rofi"
|
||||
"rofi-pass"
|
||||
"sbcl-stumpwm-pamixer"
|
||||
"smtpmail"
|
||||
"steam"
|
||||
"stumpwm"
|
||||
"swi-prolog"
|
||||
"xclip"
|
||||
"zoom"))
|
||||
emacs-packages))
|
||||
|
||||
;; Below is the list of Home services. To search for available
|
||||
;; services, run 'guix home search KEYWORD' in a terminal.
|
||||
(services
|
||||
(list (service home-bash-service-type
|
||||
(home-bash-configuration
|
||||
(aliases '(("grep" . "grep --color=auto")
|
||||
("ip" . "ip -color=auto")
|
||||
("ll" . "ls -l")
|
||||
("ls" . "ls -p --color=auto")))
|
||||
(bashrc (list (local-file
|
||||
"/home/skylar/.config/guix/home/.bashrc"
|
||||
"bashrc")))
|
||||
(bash-profile (list (local-file
|
||||
"/home/skylar/.config/guix/home/.bash_profile"
|
||||
"bash_profile")))))
|
||||
(service home-gpg-agent-service-type
|
||||
(home-gpg-agent-configuration
|
||||
(pinentry-program
|
||||
(file-append pinentry "/bin/pinentry"))
|
||||
(default-cache-ttl 86400)
|
||||
(max-cache-ttl 86400)
|
||||
(ssh-support? #t)))
|
||||
(service home-files-service-type
|
||||
`((".emacs.d/init.el" ,(local-file "init.el"))
|
||||
(".offlineimaprc" ,(local-file "offlineimaprc")))))))
|
85
home/sanderson.scm~
Normal file
85
home/sanderson.scm~
Normal file
|
@ -0,0 +1,85 @@
|
|||
(use-modules (gnu home)
|
||||
(gnu home services)
|
||||
(gnu packages)
|
||||
(gnu packages emacs)
|
||||
(gnu packages emacs-xyz)
|
||||
(gnu packages fonts)
|
||||
(gnu packages haskell-apps)
|
||||
(gnu packages gnupg)
|
||||
(gnu packages kde)
|
||||
(gnu packages kde-frameworks)
|
||||
(gnu packages mail)
|
||||
(gnu packages messaging)
|
||||
(gnu packages password-utils)
|
||||
(gnu packages pulseaudio)
|
||||
(gnu packages python)
|
||||
(gnu packages rust-apps)
|
||||
(gnu packages scheme)
|
||||
(gnu packages terminals)
|
||||
(gnu packages text-editors)
|
||||
(gnu packages tls)
|
||||
(gnu packages web-browsers)
|
||||
(gnu packages xdisorg)
|
||||
(gnu services)
|
||||
(guix build-system emacs)
|
||||
(guix build-system font)
|
||||
(guix download)
|
||||
(guix gexp)
|
||||
(guix packages)
|
||||
(gnu home services shells)
|
||||
(gnu home services gnupg)
|
||||
(nongnu packages messaging))
|
||||
|
||||
(load "./emacs-packages.scm")
|
||||
|
||||
(home-environment
|
||||
;; Below is the list of packages that will show up in your
|
||||
;; Home profile, under ~/.guix-home/profile.
|
||||
(packages (append (list
|
||||
bat
|
||||
emacs
|
||||
font-fira-code
|
||||
font-google-noto
|
||||
gerbil
|
||||
gnupg
|
||||
gnutls
|
||||
kitty
|
||||
kmonad
|
||||
kwallet
|
||||
nheko
|
||||
offlineimap3
|
||||
okular
|
||||
mu
|
||||
password-store
|
||||
pavucontrol
|
||||
python
|
||||
qutebrowser
|
||||
smtpmail
|
||||
xclip
|
||||
zoom)
|
||||
(specifications->packages (list "steam"))
|
||||
emacs-packages))
|
||||
|
||||
;; Below is the list of Home services. To search for available
|
||||
;; services, run 'guix home search KEYWORD' in a terminal.
|
||||
(services
|
||||
(list (service home-bash-service-type
|
||||
(home-bash-configuration
|
||||
(aliases '(("grep" . "grep --color=auto")
|
||||
("ip" . "ip -color=auto")
|
||||
("ll" . "ls -l")
|
||||
("ls" . "ls -p --color=auto")))
|
||||
(bashrc (list (local-file
|
||||
"/home/skylar/.config/guix/home/.bashrc"
|
||||
"bashrc")))
|
||||
(bash-profile (list (local-file
|
||||
"/home/skylar/.config/guix/home/.bash_profile"
|
||||
"bash_profile")))))
|
||||
(service home-gpg-agent-service-type
|
||||
(home-gpg-agent-configuration
|
||||
(pinentry-program
|
||||
(file-append pinentry "/bin/pinentry"))
|
||||
(ssh-support? #t)))
|
||||
(service home-files-service-type
|
||||
`((".emacs.d/init.el" ,(local-file "init.el"))
|
||||
(".offlineimaprc" ,(local-file "offlineimaprc")))))))
|
73
sanderson.scm
Normal file
73
sanderson.scm
Normal file
|
@ -0,0 +1,73 @@
|
|||
(use-modules (gnu)
|
||||
(nongnu packages linux)
|
||||
(nongnu system linux-initrd))
|
||||
(use-service-modules cups desktop networking ssh syncthing xorg)
|
||||
(operating-system
|
||||
(kernel linux)
|
||||
(initrd microcode-initrd)
|
||||
(firmware (list linux-firmware))
|
||||
(locale "en_US.utf8")
|
||||
(timezone "America/Chicago")
|
||||
(keyboard-layout (keyboard-layout "us"))
|
||||
(host-name "sanderson")
|
||||
|
||||
;; The list of user accounts ('root' is implicit).
|
||||
(users (cons* (user-account
|
||||
(name "skylar")
|
||||
(comment "Skylar")
|
||||
(group "users")
|
||||
(home-directory "/home/skylar")
|
||||
(supplementary-groups '("wheel" "netdev" "audio" "video")))
|
||||
%base-user-accounts))
|
||||
|
||||
;; Packages installed system-wide. Users can also install packages
|
||||
;; under their own account: use 'guix search KEYWORD' to search
|
||||
;; for packages and 'guix install PACKAGE' to install a package.
|
||||
(packages (append (specifications->packages (list "nss-certs"
|
||||
"stumpwm"))
|
||||
%base-packages))
|
||||
|
||||
;; Below is the list of system services. To search for available
|
||||
;; services, run 'guix system search KEYWORD' in a terminal.
|
||||
(services
|
||||
(append (list (service plasma-desktop-service-type)
|
||||
|
||||
;; To configure OpenSSH, pass an 'openssh-configuration'
|
||||
;; record as a second argument to 'service' below.
|
||||
(service openssh-service-type)
|
||||
(service cups-service-type)
|
||||
(set-xorg-configuration
|
||||
(xorg-configuration (keyboard-layout keyboard-layout)))
|
||||
(service syncthing-service-type
|
||||
(syncthing-configuration
|
||||
(user "skylar")
|
||||
(home "/home/skylar"))))
|
||||
|
||||
;; This is the default list of services we
|
||||
;; are appending to.
|
||||
(modify-services %desktop-services
|
||||
(guix-service-type config => (guix-configuration
|
||||
(inherit config)
|
||||
(substitute-urls
|
||||
(append (list "https://substitutes.nonguix.org")
|
||||
%default-substitute-urls))
|
||||
(authorized-keys
|
||||
(append (list (local-file "./signing-key.pub"))
|
||||
%default-authorized-guix-keys)))))))
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-bootloader)
|
||||
(targets (list "/dev/sda"))
|
||||
(keyboard-layout keyboard-layout)))
|
||||
(swap-devices (list (swap-space
|
||||
(target (uuid
|
||||
"646006cb-84a4-46ea-a03c-78a343b2fd07")))))
|
||||
|
||||
;; The list of file systems that get "mounted". The unique
|
||||
;; file system identifiers there ("UUIDs") can be obtained
|
||||
;; by running 'blkid' in a terminal.
|
||||
(file-systems (cons* (file-system
|
||||
(mount-point "/")
|
||||
(device (uuid
|
||||
"38be76dc-b7d8-4433-bab6-04c6c7f62733"
|
||||
'ext4))
|
||||
(type "ext4")) %base-file-systems)))
|
6
signing-key.pub
Normal file
6
signing-key.pub
Normal file
|
@ -0,0 +1,6 @@
|
|||
(public-key
|
||||
(ecc
|
||||
(curve Ed25519)
|
||||
(q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)
|
||||
)
|
||||
)
|
Loading…
Reference in a new issue