mirror of https://codeberg.org/anemofilia/zero
Compare commits
65 Commits
298c085e02
...
a2da805db2
Author | SHA1 | Date |
---|---|---|
Luis Guilherme Coelho | a2da805db2 | |
Luis Guilherme Coelho | 55e3457d42 | |
Luis Guilherme Coelho | cd0ad6cdc0 | |
Luis Guilherme Coelho | e4d923dd41 | |
Luis Guilherme Coelho | c4f002b98b | |
Luis Guilherme Coelho | 153fda0b68 | |
Luis Guilherme Coelho | 90b6c5d6c2 | |
Luis Guilherme Coelho | 635bf92b33 | |
Luis Guilherme Coelho | 99675cf4fd | |
Luis Guilherme Coelho | dee7ef2278 | |
Luis Guilherme Coelho | b29b97ecdc | |
Luis Guilherme Coelho | 0a0e377d5f | |
Luis Guilherme Coelho | 9e8dd2e5fb | |
Luis Guilherme Coelho | 1f0b494c92 | |
Luis Guilherme Coelho | 41e30ceea3 | |
Luis Guilherme Coelho | 175f65b36a | |
Luis Guilherme Coelho | b554ff7c61 | |
Luis Guilherme Coelho | 0a9e7836d1 | |
Luis Guilherme Coelho | b080b626f5 | |
Luis Guilherme Coelho | 48dfffc5ec | |
Luis Guilherme Coelho | 756c977ff0 | |
Luis Guilherme Coelho | d2fd2d91bc | |
Luis Guilherme Coelho | 7fe98bb4eb | |
Luis Guilherme Coelho | 93e55ebeea | |
Luis Guilherme Coelho | a92f73cd17 | |
Luis Guilherme Coelho | 215f23ac08 | |
Luis Guilherme Coelho | afe083bf9f | |
Luis Guilherme Coelho | 32dc462518 | |
Luis Guilherme Coelho | 9134370c23 | |
Luis Guilherme Coelho | 92aa147de0 | |
Luis Guilherme Coelho | 0d8a3530d8 | |
Luis Guilherme Coelho | cb926a465f | |
Luis Guilherme Coelho | 71085e8bdc | |
Luis Guilherme Coelho | 21842d797f | |
Luis Guilherme Coelho | 56ab23db09 | |
Luis Guilherme Coelho | 8936be6122 | |
Luis Guilherme Coelho | 3bfe6aef0a | |
Luis Guilherme Coelho | 023c2ff278 | |
Luis Guilherme Coelho | 7c7784f712 | |
Luis Guilherme Coelho | 2e333cfd52 | |
Luis Guilherme Coelho | 4bf0c07e7e | |
Luis Guilherme Coelho | 4fbfa8455f | |
Luis Guilherme Coelho | 71d42de750 | |
Luis Guilherme Coelho | 0d98814e7f | |
Luis Guilherme Coelho | e586332b9c | |
Luis Guilherme Coelho | 8c3fb4ef2b | |
Luis Guilherme Coelho | a94c55bc8d | |
Luis Guilherme Coelho | c610f2f584 | |
Luis Guilherme Coelho | b0cb05691f | |
Luis Guilherme Coelho | 00101cc001 | |
Luis Guilherme Coelho | 716148ec93 | |
Luis Guilherme Coelho | 6f8d4a801c | |
Luis Guilherme Coelho | c2fb04f2b8 | |
Luis Guilherme Coelho | 516455fd24 | |
Luis Guilherme Coelho | 819748a90c | |
Luis Guilherme Coelho | 22f1906d61 | |
Luis Guilherme Coelho | b045c14bf9 | |
Luis Guilherme Coelho | a5d37057db | |
Luis Guilherme Coelho | e29f80d43b | |
Luis Guilherme Coelho | b4a4daa914 | |
Luis Guilherme Coelho | 322e24af31 | |
Luis Guilherme Coelho | e89d1fb601 | |
Luis Guilherme Coelho | 1810fac47d | |
Luis Guilherme Coelho | 0400b67ac8 | |
Luis Guilherme Coelho | 1730718338 |
|
@ -4,13 +4,12 @@
|
|||
|
||||
#|GNU|#
|
||||
#|•|# #:use-module (gnu)
|
||||
#|H|# #:use-module ((gnu home) #:select (this-home-environment))
|
||||
#:use-module ((gnu home) #:hide (this-home-environment)
|
||||
#:prefix user-)
|
||||
#|H|# #:use-module (gnu home)
|
||||
|
||||
#|GNU packages|#
|
||||
#|G|# #:use-module (gnu packages gnupg)
|
||||
#|L|# #:use-module (gnu packages linux)
|
||||
#|S|# #:use-module (gnu packages shells)
|
||||
|
||||
#|GNU home services|#
|
||||
#|•|# #:use-module (gnu home services)
|
||||
|
@ -29,6 +28,7 @@
|
|||
#|Radio|#
|
||||
#|C|# #:use-module ((radio channels) #:prefix channel:)
|
||||
#|P|# #:use-module ((radio packages) #:prefix packages:)
|
||||
#|S|# #:use-module ((radio shepherd-services) #:prefix shepherd-service:)
|
||||
|
||||
#|Radix|#
|
||||
#|C|# #:use-module (radix combinators)
|
||||
|
@ -43,35 +43,23 @@
|
|||
#|S|# #:use-module (radix home services shells)
|
||||
#|X|# #:use-module (radix home services xdg)
|
||||
|
||||
#:export (home-environment
|
||||
#:export (radio radio.scm))
|
||||
|
||||
application:browser
|
||||
application:editor
|
||||
application:pager
|
||||
application:reader
|
||||
application:shell
|
||||
application:terminal
|
||||
application:wm))
|
||||
(define radio.scm
|
||||
(search-path %load-path
|
||||
(module-filename (current-module))))
|
||||
|
||||
#|Default applications|#
|
||||
(define application:browser "chromium")
|
||||
(define application:editor "kak")
|
||||
(define application:pager "less")
|
||||
(define application:reader "sioyek")
|
||||
(define application:terminal "foot")
|
||||
(define application:wm "river")
|
||||
|
||||
(define home-environment
|
||||
(user-home-environment
|
||||
(define radio
|
||||
(home-environment
|
||||
(packages
|
||||
(append #|B|# packages:blogging
|
||||
#|C|# packages:calendar
|
||||
#|D|# packages:databases packages:desktop packages:development
|
||||
packages:documentation packages:downloads
|
||||
#|F|# packages:file-managing packages:fonts
|
||||
#|G|# packages:games packages:guix-contrib
|
||||
#|G|# packages:guix-contrib
|
||||
#|I|# packages:image
|
||||
#|M|# packages:messaging
|
||||
#|M|# packages:messaging packages:music
|
||||
#|P|# packages:password
|
||||
#|R|# packages:reading
|
||||
#|S|# packages:scheme packages:sound
|
||||
|
@ -140,6 +128,8 @@
|
|||
"image/webp"))
|
||||
('sioyek.desktop
|
||||
`("application/pdf"))))))
|
||||
(service home-special-files-service-type
|
||||
`((".config/guix/home.scm" ,radio.scm)))
|
||||
|
||||
#|Dotfiles service|#
|
||||
(service home-dotfiles-service-type
|
||||
|
@ -153,8 +143,13 @@
|
|||
(list channel:guix
|
||||
channel:radix))
|
||||
|
||||
#|Shepherd service|#
|
||||
(service home-shepherd-service-type)
|
||||
#|Shepherd services|#
|
||||
(service home-shepherd-service-type
|
||||
(home-shepherd-configuration
|
||||
(shepherd (@ (shepherd-package) shepherd))
|
||||
(services (list shepherd-service:repl
|
||||
shepherd-service:timer
|
||||
shepherd-service:wake-up))))
|
||||
|
||||
#|Shell services|#
|
||||
(service home-tty-colorscheme-service-type
|
||||
|
@ -179,6 +174,7 @@
|
|||
(home-fish-configuration
|
||||
(plugins
|
||||
(list fish-autopair
|
||||
fish-foreign-env
|
||||
fish-puffer))
|
||||
(environment-variables
|
||||
`(#|GNU Privacy Guard|#
|
||||
|
@ -208,7 +204,6 @@
|
|||
#|Clear terminal screen without ncurses|#
|
||||
("clear" . "printf \"\\033c\"")
|
||||
|
||||
#|Kakoune bindings for info|#
|
||||
("info" . "info --init-file $XDG_CONFIG_HOME/info")
|
||||
|
||||
#|Kakoune aliases for the shell|#
|
||||
|
@ -233,12 +228,16 @@
|
|||
(position 'anywhere)
|
||||
(expansion y))))
|
||||
`(#|Guix|#
|
||||
(!dgen . "guix % delete-generations 2w")
|
||||
(!repair . "doas guix build --repair")
|
||||
(!pull . "guix pull")
|
||||
(!repl . "guix repl -i ~/.config/guile/guilerc")
|
||||
(!home . "guix home reconfigure ~/.config/guix/home.scm")
|
||||
(!system . "doas guix system reconfigure /etc/config.scm")
|
||||
(!network . ,(format #f "doas herd restart networking ~
|
||||
&& doas herd restart wpa-supplicant"))
|
||||
|
||||
#|Pass|#
|
||||
(!pass . "pass show % | wl-copy")
|
||||
|
||||
#|Processes|#
|
||||
(tf . "setsid -f % >/dev/null 2>&1 & disown")
|
||||
|
@ -311,6 +310,8 @@
|
|||
. ,(format #f "~?~?"
|
||||
"~@{:$HOME/areas/code/scm/~a~}"
|
||||
'(radix
|
||||
shepherd/modules
|
||||
shepherd/.guix/modules
|
||||
zero
|
||||
zero/operating-systems
|
||||
zero/home-environments)
|
||||
|
@ -337,16 +338,16 @@
|
|||
("LC_COLLATE" . "C")))
|
||||
(simple-service 'home-default-applications-environment-variables
|
||||
home-environment-variables-service-type
|
||||
`(("BROWSER" . ,application:browser)
|
||||
("EDITOR" . ,application:editor)
|
||||
("PAGER" . ,application:pager)
|
||||
("READER" . ,application:reader)
|
||||
("TERMINAL" . ,application:terminal)
|
||||
("VISUAL" . ,application:editor)
|
||||
("WM" . ,application:wm)))
|
||||
`(("BROWSER" . "chromium")
|
||||
("EDITOR" . "kak")
|
||||
("PAGER" . "less")
|
||||
("TERMINAL" . "foot")
|
||||
("VISUAL" . "$EDITOR")
|
||||
("WM" . "river")))
|
||||
(simple-service 'home-applications-environment-variables
|
||||
home-environment-variables-service-type
|
||||
`(("MINETEST_USER_PATH" . "$XDG_DATA_HOME/minetest")))
|
||||
`(("MINETEST_USER_PATH" . "$XDG_DATA_HOME/minetest")
|
||||
("PASSWORD_STORE_DIR" . "$HOME/.local/share/pass")))
|
||||
|
||||
#|SSH service|#
|
||||
(service home-openssh-service-type
|
||||
|
@ -393,4 +394,4 @@
|
|||
(full-message "Unplug the cable")
|
||||
(warning-message "You may want to plug the cable")
|
||||
(critical-message "Plug the cable")))))))
|
||||
home-environment
|
||||
radio
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#:use-module (guix channels)
|
||||
#:use-module (gnu packages package-management)
|
||||
|
||||
#:export (guix radix))
|
||||
#:export (guix radix saayix))
|
||||
|
||||
(define guix
|
||||
(channel
|
||||
|
@ -25,3 +25,14 @@
|
|||
"f9130e11e35d2c147c6764ef85542dc58dc09c4f"
|
||||
(openpgp-fingerprint
|
||||
"F164 709E 5FC7 B32B AEC7 9F37 1F2E 76AC E3F5 31C8")))))
|
||||
|
||||
(define saayix
|
||||
(channel
|
||||
(name 'saayix)
|
||||
(url "https://codeberg.org/look/saayix.git")
|
||||
(branch "entropy")
|
||||
(introduction
|
||||
(make-channel-introduction
|
||||
"12540f593092e9a177eb8a974a57bb4892327752"
|
||||
(openpgp-fingerprint
|
||||
"3FFA 7335 973E 0A49 47FC 0A8C 38D5 96BE 07D3 34AB")))))
|
||||
|
|
|
@ -166,7 +166,7 @@ zfs_arc_cached = True
|
|||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
swap_disk = False
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
|
|
@ -364,62 +364,30 @@ hook global WinSetOption filetype=kak %{
|
|||
}
|
||||
}
|
||||
|
||||
# __________ plugins __________
|
||||
source "%val{config}/plugins/plug.kak/rc/plug.kak"
|
||||
plug "andreyorst/plug.kak" noload # manually installed plugin manager
|
||||
|
||||
# configure this
|
||||
plug "occivink/kakoune-phantom-selection" # work on multiple selections, one at a time
|
||||
|
||||
plug "maximbaz/surround.kak" # easily surround selections with parentesis or quotes
|
||||
|
||||
plug "https://gitlab.com/Screwtapello/kakoune-texinfo" # read info pages inside kakoune
|
||||
|
||||
plug "https://gitlab.com/Screwtapello/kakoune-state-save" config %{
|
||||
hook global KakBegin .* %{
|
||||
evaluate-commands 'state-save-reg-load colon'
|
||||
evaluate-commands 'state-save-reg-load pipe'
|
||||
evaluate-commands 'state-save-reg-load slash'
|
||||
}
|
||||
|
||||
hook global KakEnd .* %{
|
||||
evaluate-commands 'state-save-reg-save colon'
|
||||
evaluate-commands 'state-save-reg-save pipe'
|
||||
evaluate-commands 'state-save-reg-save slash'
|
||||
}
|
||||
} # save and restore state between sessions
|
||||
} # save kakoune state
|
||||
|
||||
# plug "https://codeberg.org/anemofilia/relapath.kak" demand relapath %{
|
||||
# alias global cd relapath-change-directory
|
||||
# alias global e relapath-edit
|
||||
# alias global e! relapath-edit-bang
|
||||
#
|
||||
# alias global change-directory relapath-change-directory
|
||||
# alias global edit relapath-edit
|
||||
# alias global edit! relapath-edit-bang
|
||||
# alias global rename-buffer relapath-rename-buffer
|
||||
#
|
||||
# relapath-modelinefmt-replace global
|
||||
# } # no dereference symlinks
|
||||
hook global KakBegin .* %{
|
||||
evaluate-commands 'state-save-reg-load colon'
|
||||
evaluate-commands 'state-save-reg-load pipe'
|
||||
evaluate-commands 'state-save-reg-load slash'
|
||||
} # restore kakoune state
|
||||
|
||||
plug 'delapouite/kakoune-buffers' # ease navigation between opened buffers.
|
||||
|
||||
plug "https://gitlab.com/Screwtapello/kakoune-texinfo.git" # texinfo
|
||||
|
||||
plug "jpcornwell/kakoune-sokoban" # sokoban because yes
|
||||
|
||||
plug "lePerdu/kakboard" config %{
|
||||
hook global WinCreate .* %{ kakboard-enable }
|
||||
hook global WinCreate .* %{
|
||||
kakboard-enable
|
||||
} # sync clipboards
|
||||
|
||||
plug "JJK96/kakoune-rainbow"
|
||||
# add coloring to matching parenthesis
|
||||
set-option global rainbow_opening "[[(]"
|
||||
declare-option str-list rainbow_faces "rgb:a790d3" "rgb:6cdae0" "rgb:ff7f50" \
|
||||
declare-option str-list rainbow_faces \
|
||||
"rgb:a790d3" "rgb:6cdae0" "rgb:ff7f50" \
|
||||
"rgb:ffea8c" "rgb:83dcaf" "rgb:eba4d4" \
|
||||
"rgb:8b5be7"
|
||||
# add coloring to matching parenthesis
|
||||
|
||||
plug "alexherbo2/auto-pairs.kak" config %{
|
||||
# auto pairing
|
||||
set-option global auto_pairs ( ) { } [ ] '"' '"' "'" "'" ` `
|
||||
hook -group config global BufSetOption filetype=latex %{
|
||||
set-option buffer auto_pairs ( ) [ ] { } '"' '"' $ $
|
||||
|
@ -431,13 +399,6 @@ plug "alexherbo2/auto-pairs.kak" config %{
|
|||
set-option buffer auto_pairs ( ) [ ] { } '"' '"' $ $ * *
|
||||
}
|
||||
evaluate-commands enable-auto-pairs
|
||||
} # auto-pairing of characters
|
||||
|
||||
plug "Delapouite/kakoune-palette" config %{
|
||||
hook global BufOpenFile .*colorscheme.kak %{
|
||||
evaluate-commands palette-gutter
|
||||
}
|
||||
} # preview face colors in kakoune
|
||||
|
||||
# __________ lsp __________
|
||||
eval %sh{kak-lsp --kakoune -s $kak_session}
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
# Make sure that kew is closed before editing this file in order for changes to take effect.
|
||||
|
||||
path=/home/radio/media/music/by-artist
|
||||
coverEnabled=1
|
||||
coverAnsi=0
|
||||
visualizerEnabled=1
|
||||
visualizerHeight=5
|
||||
useProfileColors=1
|
||||
allowNotifications=1
|
||||
hideLogo=0
|
||||
hideHelp=1
|
||||
lastVolume=100
|
||||
|
||||
# Cache: Set to 1 to use cache of the music library directory tree for faster startup times.
|
||||
cacheLibrary=-1
|
||||
|
||||
# Color values are 0=Black, 1=Red, 2=Green, 3=Yellow, 4=Blue, 5=Magenta, 6=Cyan, 7=White
|
||||
# These mostly affect the library view.
|
||||
|
||||
# Logo color:
|
||||
color=4
|
||||
# Header color in library view:
|
||||
artistColor=4
|
||||
# Now playing song text in library view:
|
||||
titleColor=4
|
||||
# Color of enqueued songs in library view:
|
||||
enqueuedColor=7
|
||||
|
||||
# Key Bindings:
|
||||
|
||||
volumeUp=+
|
||||
volumeUpAlt==
|
||||
volumeDown=-
|
||||
previousTrackAlt=h
|
||||
nextTrackAlt=l
|
||||
scrollUpAlt=k
|
||||
scrollDownAlt=j
|
||||
switchNumberedSong=
|
||||
togglePause=p
|
||||
toggleColorsDerivedFrom=i
|
||||
toggleVisualizer=v
|
||||
toggleAscii=b
|
||||
toggleRepeat=r
|
||||
toggleShuffle=s
|
||||
seekBackward=a
|
||||
seekForward=d
|
||||
savePlaylist=x
|
||||
addToMainPlaylist=.
|
||||
updateLibrary=u
|
||||
|
||||
# The different main views, normally F2-F6:
|
||||
showPlaylistAlt=Z
|
||||
showLibraryAlt=X
|
||||
showTrackAlt=C
|
||||
showSearchAlt=V
|
||||
showKeysAlt=B
|
||||
|
||||
quit=q
|
||||
|
||||
# For special keys use terminal codes: OS, for F4 for instance. This can depend on the terminal.
|
||||
# You can find out the codes for the keys by using tools like showkey.
|
||||
# For special keys, see the key value after the bracket "[" after typing "showkey -a" in the terminal and then pressing a key you want info about.
|
||||
|
||||
|
|
@ -25,6 +25,7 @@ set promptfmt "\033[34m%d%f\033[0m"
|
|||
set statfmt "\033[34m%p\033[0m| %c| %u| %g| %S| %t| -> %l"
|
||||
|
||||
# Basic Settings
|
||||
set watch true
|
||||
set preview true
|
||||
set sixel true
|
||||
set shell /bin/sh
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
@ Articles
|
||||
https://cyber.dabamos.de/blog/feed.rss "Cyber Dabamos"
|
||||
https://drewdevault.com/blog/index.xml "Drew DeVault"
|
||||
https://edwardsnowden.substack.com/feed "Edward Snowden" {60}
|
||||
https://feeds.twit.tv/floss.xml "Floss Weekly"
|
||||
https://forums.freebsd.org/forums/howtos-and-faqs-moderated.39/index.rss "FreeBSD Forum Hacks and FAQ's"
|
||||
https://forums.freebsd.org/forums/-/index.rss "FreeBSD Forum Index"
|
||||
https://m7.rs/feed.xml "Gabriel Fontes"
|
||||
https://gsthnz.com/posts/index.xml "Gustavo Heinz"
|
||||
https://lukesmith.xyz/rss.xml "Luke Smith" {60}
|
||||
https://lukesmith.xyz/rss.xml "Luke Smith"
|
||||
https://www.privacytools.io/guides/rss.xml "Privacy Tools"
|
||||
https://michaelneuper.com/index.xml "Michael Neuper"
|
||||
https://ohhelloana.blog/feed.xml "Oh Hello Ana"
|
||||
|
@ -24,7 +21,7 @@ https://yewtu.be/feed/channel/UCweCc7bSMX5J4jEH7HFImng "G
|
|||
https://yewtu.be/feed/channel/UCSAo4zvM1oAJ_i4C6q6ejBA "Raffael Chess"
|
||||
https://yewtu.be/feed/channel/UC5K-TQsItHnNLjqYf8A3CTw "Xadrez Brasil"
|
||||
|
||||
@ Politics {60}
|
||||
@ Politics < reload-period 60
|
||||
https://yewtu.be/feed/channel/UCkSjy-IOEq-eMtarZl2uH1Q "Arthur do Val"
|
||||
https://yewtu.be/feed/channel/UC7-Pp09PJX_SYP9oyMzUAtg "Assim disse o João"
|
||||
https://odysee.com/$/rss/@Fhoer:f "Fhoer"
|
||||
|
@ -37,7 +34,7 @@ https://www.yewtu.be/feed/channel/UCk5BcU1rOy6hepflk7_q_Pw "M
|
|||
https://yewtu.be/feed/channel/UCZdJE8KpuFm6NRafHTEIC-g "Tempero Drag"
|
||||
https://yewtu.be/feed/channel/UC0fGGprihDIlQ3ykWvcb9hg "Tese Onze"
|
||||
|
||||
@ Hacker Videos {60}
|
||||
@ Hacker Videos < reload-period 60
|
||||
https://odysee.com/$/rss/@blenderdumbass:f "Blender Dumbass"
|
||||
https://odysee.com/$/rss/@BrodieRobertson:5 "Brodie Robertson"
|
||||
https://odysee.com/$/rss/@debxp:9 "Debxp"
|
||||
|
@ -54,12 +51,12 @@ https://odysee.com/$/rss/@slackjeff:1 "S
|
|||
https://yewtu.be/feed/channel/UCjr2bPAyPV7t35MvcgT3W8Q "The Hated One"
|
||||
https://odysee.com/$/rss/@TheLinuxExperiment:e "The Linux Experiment"
|
||||
|
||||
@ Enviromental News {720}
|
||||
@ Enviromental News < reload-period 720
|
||||
https://www.greenpeace.org/brasil/feed/ "Greenpeace - Brasil"
|
||||
https://www.greenpeace.org/international/feed/ "Greenpeace - International"
|
||||
https://revistaforum.com.br/rss/feed.html?r=5 "Revista Fórum - Meio Ambiente"
|
||||
|
||||
@ Scheme {720}
|
||||
@ Scheme < reload-period 720
|
||||
https://www.blogger.com/feeds/7061944/posts/default?alt=atom "(The Scheme Way)"
|
||||
http://pestilenz.org/~ckeen/blog//scheme.atom "/dev/random"
|
||||
https://www.blogger.com/feeds/8288194986820249216/posts/default/-/scheme "Abstract Heresies"
|
||||
|
@ -114,7 +111,7 @@ http://shisaa.be/categories/scheme.xml "s
|
|||
https://weinholt.se/feed.xml "weinholt.se"
|
||||
https://wingolog.org/feed/atom "wingolog"
|
||||
|
||||
@ Mathematics and Computer Science {60}
|
||||
@ Mathematics and Computer Science < reload-period 60
|
||||
https://yewtu.be/feed/channel/UCYO_jab_esuFRV4b17AJtAw "3Blue1Brown"
|
||||
https://yewtu.be/feed/channel/UCzBjutX2PmitNF4avysL-vg "Aleph 0"
|
||||
https://yewtu.be/feed/channel/UC9-y-6csu5WGm29I7JiwpnA "Computerphile"
|
||||
|
@ -126,7 +123,7 @@ https://yewtu.be/feed/channel/UCoxcjq-8xIDTYp3uz647V5A "N
|
|||
https://yewtu.be/feed/channel/UCr7lmzIk63PZnBw3bezl-Mg "The Math Sorcerer"
|
||||
https://yewtu.be/feed/channel/UCHnyfMqiRRG1u-2MsSQLbXA "Veritasium"
|
||||
|
||||
@ News {60}
|
||||
@ News < reload-period 60
|
||||
https://agencia.fapesp.br/rss/ "Agência Fapesp"
|
||||
https://baixacultura.org/feed/ "Baixa Cultura"
|
||||
https://www.brasildefato.com.br/rss2.xml "Brasil de Fato"
|
||||
|
@ -138,13 +135,13 @@ https://nucleo.jor.br/rss/ "N
|
|||
https://www.phoronix.com/rss.php "Phoronix"
|
||||
http://rss.slashdot.org/Slashdot/slashdotMain "Slashdot"
|
||||
|
||||
@ Veganism {600}
|
||||
@ Veganism < reload-period 600
|
||||
https://yewtu.be/feed/channel/UCYamjJAo9qHUIN1jLYEDN4w "Eduardo Corassa"
|
||||
https://yewtu.be/feed/channel/UCZ6JHFBaDUJ9wfo41HSII_w "Fábio Chaves"
|
||||
https://yewtu.be/feed/channel/UCvyxOb6wDUGmMZFbV3cJeXg "Giancarlo Eidler"
|
||||
https://yewtu.be/feed/channel/UCptCWTO2uq6jXcJLEvRhr8g "Dr Eric Slywitch"
|
||||
|
||||
@ Calisthenics {600}
|
||||
@ Calisthenics < reload-period 600
|
||||
https://yewtu.be/feed/channel/UC1CVzH-XVr3E-kTT6D8hhfg "FitnessFAQs"
|
||||
https://yewtu.be/feed/channel/UCb9pq9JLs2m5Drn_ftcRkIw "Hemo Calisthenics"
|
||||
https://yewtu.be/feed/channel/UCUkyyRJdVdXFmBuxPLFYmPw "K. Boges"
|
||||
|
@ -157,5 +154,5 @@ https://yewtu.be/feed/channel/UCpyhJZhJQWKDdJCR07jPY-Q "S
|
|||
https://yewtu.be/feed/channel/UC41yTzQIzrCr7Edij7Ha4wA "The Jacked Vegan"
|
||||
https://yewtu.be/feed/channel/UCAo68fdu-hYfgO0y0n-J8qg "Trainer Winny"
|
||||
|
||||
@ Ecology {600}
|
||||
@ Ecology < reload-period 600
|
||||
https://yewtu.be/feed/channel/UCj4Y34OeIG0y_IRGMiiQLCg "Bioconstrução ArteNativamente"
|
||||
|
|
|
@ -166,6 +166,9 @@ riverctl map normal Super d spawn "$TERMINAL -e lf"
|
|||
# btop
|
||||
riverctl map normal Super b spawn "$TERMINAL -e btop"
|
||||
|
||||
# senpai
|
||||
riverctl map normal Super s spawn "$TERMINAL -e senpai"
|
||||
|
||||
# application launcher
|
||||
riverctl map normal Super Semicolon spawn fuzzel
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env -S fish
|
||||
|
||||
function escape
|
||||
printf "%s" "$1" | string replace '\\' '\\\\'
|
||||
end
|
||||
|
||||
notify-send --urgency=normal --expire-time=0 --category=Mail "[$BUFFER] $SENDER" "$(escape "$MESSAGE")"
|
||||
|
||||
mpv ~/.guix-home/profile/share/sounds/freedesktop/stereo/message.oga
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
address chat.sr.ht
|
||||
nickname anemofilia
|
||||
password-cmd pass show senpai/password
|
||||
highlight anemofilia: anemofilia, radix saayix cargo2guix misako
|
||||
channel "#coreboot" "#fossandcrafts" "#fsf" "#gnu" "#guix" "#guile" "#hurd" "#ibmthinkpad" "#kakoune" "#lisp" "#lobsters" "#scheme" "#spritely" "#savannah" "#whereiseveryone"
|
||||
on-highlight-path /home/radio/.config/senpai/scripts/on-highlight.fish
|
||||
tls true
|
||||
typings false
|
||||
mouse true
|
||||
pane-widths {
|
||||
nicknames 20
|
||||
channels 20
|
||||
}
|
|
@ -107,7 +107,7 @@ ui_font Meslo LG M DZ
|
|||
font_size 12
|
||||
|
||||
## Semicolon-separated list of command to execute upon sioyek startup
|
||||
startup_commands toggle_highlight
|
||||
startup_commands
|
||||
|
||||
## Background color to use when executing `toggle_custom_color`
|
||||
custom_background_color 0.09 0.09 0.09
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env -S guile
|
||||
!#
|
||||
|
||||
(use-modules (ice-9 textual-ports)
|
||||
(srfi srfi-197)
|
||||
(radix utils))
|
||||
|
||||
(for-each (lambda (line)
|
||||
(display line)
|
||||
(newline))
|
||||
(chain (current-input-port)
|
||||
(get-string-all _)
|
||||
(string-split _ #\newline)
|
||||
(duplicates _)))
|
|
@ -26,7 +26,8 @@
|
|||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages image-viewers)
|
||||
#:use-module (gnu packages irc)
|
||||
#|L|# #:use-module (gnu packages linux)
|
||||
#|L|# #:use-module (gnu packages libcanberra)
|
||||
#:use-module (gnu packages linux)
|
||||
#|M|# #:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mail)
|
||||
#:use-module (gnu packages messaging)
|
||||
|
@ -34,12 +35,12 @@
|
|||
#|O|# #:use-module (gnu packages ocr)
|
||||
#|P|# #:use-module (gnu packages password-utils)
|
||||
#:use-module (gnu packages pdf)
|
||||
#:use-module (gnu packages perl)
|
||||
#|R|# #:use-module (gnu packages rust-apps)
|
||||
#|S|# #:use-module (gnu packages scheme)
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages suckless)
|
||||
#:use-module (gnu packages syndication)
|
||||
#|T|# #:use-module (gnu packages telegram)
|
||||
#:use-module (gnu packages terminals)
|
||||
#:use-module (gnu packages tex)
|
||||
|
@ -62,10 +63,11 @@
|
|||
#:use-module (radix packages freedesktop)
|
||||
#:use-module (radix packages fonts)
|
||||
#|G|# #:use-module (radix packages games)
|
||||
#|K|# #:use-module (radix packages kak-xyz)
|
||||
#|M|# #:use-module (radix packages music)
|
||||
#|P|# #:use-module (radix packages pdf)
|
||||
#:use-module (radix packages pulseaudio)
|
||||
#|S|# #:use-module (radix packages seninha)
|
||||
#:use-module (radix packages syndication)
|
||||
#|T|# #:use-module (radix packages text-editors)
|
||||
#:use-module (radix packages toys)
|
||||
#|W|# #:use-module (radix packages wm)
|
||||
|
@ -87,6 +89,7 @@
|
|||
haskell
|
||||
image
|
||||
messaging
|
||||
music
|
||||
password
|
||||
reading
|
||||
scheme
|
||||
|
@ -109,9 +112,10 @@
|
|||
xdg-terminal-exec
|
||||
#|glib |# dbus
|
||||
#|image |# grim slurp
|
||||
#|libcanberra|# sound-theme-freedesktop
|
||||
#|terminals |# foot
|
||||
#|toys |# wayneko
|
||||
#|wm |# fnott rivercarro riverguile river-bnf swww waybar
|
||||
#|wm |# fnott rivercarro swww waybar
|
||||
#|xdisorg |# fuzzel-lowercase wl-clipboard wlrctl wlsunset
|
||||
#|zig-xyz |# river))
|
||||
|
||||
|
@ -119,8 +123,10 @@
|
|||
(list #|gnupg |# gnupg pinentry
|
||||
#|math |# libqalculate
|
||||
#|ssh |# openssh
|
||||
#|perl |# perl ; dep for some kakoune functionality
|
||||
#|text-editors |# kakoune kak-lsp kak-tree-sitter
|
||||
#|text-editors |# kakoune
|
||||
#|kak-xyz |# kak-auto-pairs kak-board kak-buffers kak-lsp
|
||||
kak-phantom-selection kak-rainbow kak-state-save
|
||||
kak-surround kak-tree-sitter
|
||||
#|tmux |# tmux
|
||||
#|vesion-control|# diff-so-fancy git))
|
||||
|
||||
|
@ -149,7 +155,7 @@
|
|||
font-misc-misc font-un font-wqy-zenhei))
|
||||
|
||||
(define games
|
||||
(list #|games|# minetest #|red-eclipse|# srb2 supertuxkart #|xonotic|#))
|
||||
(list #|games|# minetest red-eclipse srb2 supertuxkart xonotic))
|
||||
|
||||
(define guix-contrib
|
||||
(list #|mail |# mumi
|
||||
|
@ -161,10 +167,14 @@
|
|||
|
||||
(define messaging
|
||||
(list #|telegram |# telegram-desktop
|
||||
#|mail |# neomutt))
|
||||
#|mail |# neomutt
|
||||
#|messaging|# senpai))
|
||||
|
||||
(define music
|
||||
(list #|music|# kew))
|
||||
|
||||
(define password
|
||||
(list #|password-utils|# keepassxc))
|
||||
(list #|password-utils|# password-store tessen))
|
||||
|
||||
(define reading
|
||||
(list #|pdf |# sioyek/wayland
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
(define-module (radio shepherd-services)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (shepherd service timer)
|
||||
|
||||
#:export (repl timer wake-up))
|
||||
|
||||
#|Repl|#
|
||||
(define repl
|
||||
(shepherd-service
|
||||
(provision '(repl))
|
||||
(modules '((shepherd service repl)))
|
||||
(free-form #~(repl-service))))
|
||||
|
||||
#|Timers|#
|
||||
(define timer
|
||||
(shepherd-service
|
||||
(provision '(timer))
|
||||
(modules '((shepherd service timer)))
|
||||
(free-form #~(timer-service))))
|
||||
|
||||
(define timer-trigger-action
|
||||
(shepherd-action
|
||||
(name 'trigger)
|
||||
(procedure #~trigger-timer)
|
||||
(documentation
|
||||
"Trigger the action associated with @var{timer} as if it had reached its
|
||||
next calendar event.")))
|
||||
|
||||
(define wake-up
|
||||
(shepherd-service
|
||||
(provision '(wake-up))
|
||||
(modules '((shepherd service timer)))
|
||||
(start #~(make-timer-constructor
|
||||
(calendar-event #:hours '(6) #:minutes '(0))
|
||||
(lambda ()
|
||||
(spawn-shell-command "mpv --shuffle ~/media/music/by-artist"))))
|
||||
(stop #~(make-timer-destructor))
|
||||
(actions (list timer-trigger-action))))
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
#|GNU packages|#
|
||||
#|A|# #:use-module (gnu packages admin)
|
||||
#|B|# #:use-module (gnu packages base)
|
||||
#|S|# #:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bash)
|
||||
#|C|# #:use-module (gnu packages certs)
|
||||
#:use-module (gnu packages compression)
|
||||
#|G|# #:use-module (gnu packages gawk)
|
||||
|
@ -18,26 +18,22 @@
|
|||
#|P|# #:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#|T|# #:use-module (gnu packages texinfo)
|
||||
#|V|# #:use-module (gnu packages vpn)
|
||||
|
||||
#|GNU services|#
|
||||
#|•|# #:use-module (gnu services)
|
||||
#|A|# #:use-module (gnu services admin)
|
||||
#:use-module (gnu services avahi)
|
||||
#|B|# #:use-module (gnu services base)
|
||||
#|B|# #:use-module ((gnu services base) #:hide (greetd-service-type))
|
||||
#|D|# #:use-module (gnu services dbus)
|
||||
#:use-module (gnu services desktop)
|
||||
#|G|# #:use-module (gnu services guix)
|
||||
#|M|# #:use-module (gnu services mcron)
|
||||
#|L|# #:use-module (gnu services linux)
|
||||
#|N|# #:use-module (gnu services networking)
|
||||
#|P|# #:use-module (gnu services pm)
|
||||
#|S|# #:use-module (gnu services sysctl)
|
||||
#|S|# #:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services sysctl)
|
||||
|
||||
#|GNU system|#
|
||||
#|•|# #:use-module ((gnu system)
|
||||
#:select (operating-system)
|
||||
#:prefix gnu:)
|
||||
#|•|# #:use-module (gnu system)
|
||||
#|A|# #:use-module (gnu system accounts)
|
||||
#|F|# #:use-module (gnu system file-systems)
|
||||
#|K|# #:use-module (gnu system keyboard)
|
||||
|
@ -49,8 +45,7 @@
|
|||
|
||||
#|Home environments|#
|
||||
#|R|# #:use-module ((home-environments radio)
|
||||
#:select (home-environment)
|
||||
#:renamer (const 'home-environment:radio))
|
||||
#:prefix home-environment:)
|
||||
|
||||
#|Radix|#
|
||||
#|A|# #:use-module (radix artwork)
|
||||
|
@ -64,6 +59,7 @@
|
|||
|
||||
#|Radix services|#
|
||||
#|A|# #:use-module (radix services admin)
|
||||
#|G|# #:use-module (radix services greetd)
|
||||
#|P|# #:use-module (radix services pm)
|
||||
|
||||
#|Radix system|#
|
||||
|
@ -78,11 +74,15 @@
|
|||
#:prefix channel:)
|
||||
#|F|# #:use-module ((buer files)
|
||||
#:prefix file:)
|
||||
#:use-module ((buer file-systems)
|
||||
#:prefix file-system:)
|
||||
#|P|# #:use-module ((buer privilege)
|
||||
#:prefix privileged-programs:)
|
||||
#|R|# #:use-module ((buer rules)
|
||||
#:prefix rules:)
|
||||
#|S|# #:use-module ((buer substitute-keys)
|
||||
#|S|# #:use-module ((buer shepherd-services)
|
||||
#:prefix shepherd-service:)
|
||||
#:use-module ((buer substitute-keys)
|
||||
#:prefix substitute-key:)
|
||||
#|U|# #:use-module ((buer users)
|
||||
#:prefix user:)
|
||||
|
@ -90,10 +90,13 @@
|
|||
#|SRFIs|#
|
||||
#|1|# #:use-module (srfi srfi-1)
|
||||
|
||||
#:export (operating-system))
|
||||
#:export (buer buer.scm))
|
||||
|
||||
(define operating-system
|
||||
(gnu:operating-system
|
||||
(define buer.scm
|
||||
(search-path %load-path (module-filename (current-module))))
|
||||
|
||||
(define buer
|
||||
(operating-system
|
||||
(host-name "buer")
|
||||
(timezone "America/Sao_Paulo")
|
||||
(locale "en_US.utf8")
|
||||
|
@ -107,7 +110,7 @@
|
|||
(bootloader
|
||||
(bootloader-configuration
|
||||
(bootloader grub-bootloader)
|
||||
(targets `("/dev/sda"))
|
||||
(targets `("/dev/disk/by-id/wwn-0x50026b7785a0a591"))
|
||||
(theme (grub-theme
|
||||
(color-normal
|
||||
'((fg . light-gray) (bg . black)))
|
||||
|
@ -117,9 +120,10 @@
|
|||
"/backgrounds/guix-silver-16-9.svg"))
|
||||
(gfxmode `("1280x720x32"))))))
|
||||
|
||||
(kernel linux-libre-6.10)
|
||||
(kernel linux-libre-6.11)
|
||||
(kernel-arguments
|
||||
(cons* "modprobe.blacklist=usbmouse,usbkbd,pcspkr"
|
||||
(cons* "resume=/swap/swapfile"
|
||||
"modprobe.blacklist=usbmouse,usbkbd,pcspkr"
|
||||
"thinkpad_acpi.fan_control=1"
|
||||
(filter (negate ((on disjoin
|
||||
(partial partial string-prefix?))
|
||||
|
@ -127,22 +131,19 @@
|
|||
%kicksecure-kernel-arguments)))
|
||||
|
||||
(file-systems
|
||||
(cons* (file-system
|
||||
(device (file-system-label "guix-root"))
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
(file-system
|
||||
(device (file-system-label "home"))
|
||||
(mount-point "/home")
|
||||
(type "ext4"))
|
||||
%base-file-systems))
|
||||
|
||||
(append file-system:volumes
|
||||
file-system:persistent-directories))
|
||||
(swap-devices
|
||||
(list (swap-space
|
||||
(target "/swap/swapfile")
|
||||
(dependencies
|
||||
(filter (file-system-mount-point-predicate "/swap")
|
||||
file-systems)))))
|
||||
(users
|
||||
(cons* user:radio
|
||||
user:root
|
||||
%base-user-accounts))
|
||||
|
||||
#|System level packages|#
|
||||
(packages
|
||||
(list #|admin |# btop inetutils isc-dhcp shadow zzz
|
||||
#|base |# coreutils diffutils findutils grep patch sed tar which
|
||||
|
@ -152,13 +153,11 @@
|
|||
#|gawk |# gawk
|
||||
#|guile |# guile-next guile-colorized guile-readline
|
||||
#|less |# less
|
||||
#|linux |# e2fsprogs iproute kmod procps psmisc usbutils
|
||||
util-linux
|
||||
#|linux |# e2fsprogs iproute kmod procps usbutils util-linux
|
||||
#|man |# man-db man-pages
|
||||
#|pciutils |# pciutils
|
||||
#|texinfo |# info-reader
|
||||
#|text-editors|# kakoune
|
||||
#|vpn |# wireguard-tools))
|
||||
#|text-editors|# kakoune))
|
||||
|
||||
#|Do not generate a sudoers file|#
|
||||
(sudoers-file #f)
|
||||
|
@ -172,7 +171,15 @@
|
|||
#|Allow resolution of '.local' host names with mDNS|#
|
||||
(name-service-switch %mdns-host-lookup-nss)
|
||||
|
||||
#|System services|#
|
||||
(essential-services
|
||||
(modify-services
|
||||
(operating-system-default-essential-services this-operating-system)
|
||||
(shepherd-root-service-type
|
||||
_ => (shepherd-configuration
|
||||
(shepherd (@ (shepherd-package) shepherd))
|
||||
(services (list shepherd-service:guix-gc
|
||||
shepherd-service:snapshot-@home
|
||||
shepherd-service:timer))))))
|
||||
(services
|
||||
(list #|TTY services|#
|
||||
(service virtual-terminal-service-type)
|
||||
|
@ -189,10 +196,7 @@
|
|||
(map (lambda (x)
|
||||
(greetd-terminal-configuration
|
||||
(terminal-vt (number->string x))
|
||||
(terminal-switch (= x 1))
|
||||
(default-session-command
|
||||
(greetd-agreety-session
|
||||
(command #~(getenv "SHELL"))))))
|
||||
(terminal-switch (= x 1))))
|
||||
(iota 2 1)))))
|
||||
|
||||
#|Home environment services|#
|
||||
|
@ -211,41 +215,25 @@
|
|||
#|IPC services|#
|
||||
(service dbus-root-service-type)
|
||||
|
||||
#|Avahi service|#
|
||||
(service avahi-service-type
|
||||
(avahi-configuration
|
||||
(wide-area? #t)))
|
||||
|
||||
#|Guix services|#
|
||||
(service guix-service-type
|
||||
(guix-configuration
|
||||
(build-accounts 16)
|
||||
(discover? #t)
|
||||
(authorized-keys
|
||||
(cons* substitute-key:genenetwork.pub
|
||||
substitute-key:inria.pub
|
||||
substitute-key:yumiko.pub
|
||||
%default-authorized-guix-keys))
|
||||
(substitute-urls
|
||||
`("https://ci.guix.gnu.org"
|
||||
`("https://bordeaux.guix.gnu.org"
|
||||
"https://cuirass.genenetwork.org"
|
||||
"https://bordeaux.guix.gnu.org"))
|
||||
"https://ci.guix.gnu.org"
|
||||
"https://guix.bordeaux.inria.fr"))
|
||||
(extra-options
|
||||
`("--max-jobs=8"
|
||||
"--cores=4"
|
||||
"--gc-keep-derivations=yes"
|
||||
"--gc-keep-outputs=yes"))))
|
||||
(service guix-publish-service-type
|
||||
(guix-publish-configuration
|
||||
(port 8080)
|
||||
(host "0.0.0.0")
|
||||
(advertise? #t)
|
||||
(compression `(("zstd" 3)))))
|
||||
|
||||
#|Mcron service|#
|
||||
(service mcron-service-type
|
||||
(mcron-configuration
|
||||
(jobs (list #~(job "* * * * Sun"
|
||||
"guix gc --optimize --free-space=10G")))))
|
||||
|
||||
#|Device management services|#
|
||||
(service udev-service-type
|
||||
|
@ -295,7 +283,8 @@
|
|||
#|Memory management services|#
|
||||
(service zram-device-service-type
|
||||
(zram-device-configuration
|
||||
(size (round/ (ram-total) 2))
|
||||
(priority 100)
|
||||
(size (* 2 (ram-total)))
|
||||
(compression-algorithm 'lz4)))
|
||||
|
||||
#|Permission services|#
|
||||
|
@ -309,7 +298,13 @@
|
|||
#|Special file services|#
|
||||
(service special-files-service-type
|
||||
`(("/bin/sh" ,(file-append bash "/bin/bash"))
|
||||
("/usr/bin/env" ,(file-append coreutils "/bin/env"))))
|
||||
("/usr/bin/env" ,(file-append coreutils "/bin/env"))
|
||||
("/etc/config.scm" ,buer.scm)))
|
||||
(simple-service 'persistent-files
|
||||
special-files-service-type
|
||||
(map (juxt identity
|
||||
(partial string-append "/gnu/persist"))
|
||||
file-system:persistent-files))
|
||||
|
||||
#|Sysctl services|#
|
||||
(simple-service 'extra-sysctl-settings sysctl-service-type
|
||||
|
@ -324,5 +319,4 @@
|
|||
#|Base services|#
|
||||
(service urandom-seed-service-type)
|
||||
(service nscd-service-type)))))
|
||||
|
||||
operating-system
|
||||
buer
|
||||
|
|
|
@ -1,104 +1,175 @@
|
|||
;; based on https://codeberg.org/squishypinkelephant/guix-random-junk
|
||||
|
||||
;; how to guix: / as tmpfs
|
||||
|
||||
;; /var/guix is REQUIRED to perform rollbacks
|
||||
;; create the folders /gnu/persist/etc/ssh /gnu/persist/etc/wireguard and
|
||||
;; the file /gnu/persist/etc/machine-id for dbus
|
||||
|
||||
(define-module (buer file-systems)
|
||||
#:use-module (gnu system file-systems)
|
||||
|
||||
#:export (rootfs
|
||||
bootfs
|
||||
file-systems))
|
||||
#:export (partition:guix
|
||||
persistent-directories
|
||||
persistent-files
|
||||
volumes))
|
||||
|
||||
;;; reminder: Send a patch to guix to make file-system-options and
|
||||
;;; privileged-program-capabitilities receive a list-of-strings
|
||||
|
||||
(define rootfs
|
||||
(file-system
|
||||
(device (file-system-label "root"))
|
||||
(mount-point "/")
|
||||
(type "tmpfs")
|
||||
(options "mode=755")))
|
||||
(define partition:guix
|
||||
(file-system-label "guix"))
|
||||
|
||||
(define bootfs
|
||||
(define volumes
|
||||
(list #|base|#
|
||||
%immutable-store
|
||||
%pseudo-terminal-file-system
|
||||
%shared-memory-file-system
|
||||
|
||||
#|boot|#
|
||||
(file-system
|
||||
(device (file-system-label "root")
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/boot")
|
||||
(dependencies (list rootfs))
|
||||
(flags '(no-atime))
|
||||
(options (format #f "compress=zstd:7,~
|
||||
discard=async,~
|
||||
ssd,~
|
||||
subvol=@boot")))))
|
||||
|
||||
(define file-systems
|
||||
(cons* rootfs
|
||||
;; /gnu/store
|
||||
(file-system
|
||||
(device (file-system-label "root"))
|
||||
(type "btrfs")
|
||||
(mount-point "/gnu/store")
|
||||
(check? #f)
|
||||
(needed-for-boot? #t)
|
||||
(dependencies (list rootfs))
|
||||
(flags '(read-only bind-mount no-atime))
|
||||
(options (format #f "compress=zstd:7,~
|
||||
(flags '(no-atime))
|
||||
(options (format #f "subvol=@boot,~
|
||||
discard=async,~
|
||||
ssd,~
|
||||
subvol=@gnu/store")))
|
||||
;; /gnu/persist
|
||||
ssd")))
|
||||
|
||||
#|run|#
|
||||
(file-system
|
||||
(device (file-system-label "root"))
|
||||
(device "none")
|
||||
(type "tmpfs")
|
||||
(mount-point "/run")
|
||||
(check? #f)
|
||||
(needed-for-boot? #t)
|
||||
(flags '(no-dev strict-atime))
|
||||
(options (format #f "mode=0755,~
|
||||
nr_inodes=800k,~
|
||||
size=20%")))
|
||||
|
||||
#|tmp|#
|
||||
(file-system
|
||||
(device "none")
|
||||
(type "tmpfs")
|
||||
(mount-point "/tmp")
|
||||
(check? #f)
|
||||
(needed-for-boot? #f))
|
||||
|
||||
#|root|#
|
||||
(file-system
|
||||
(device "none")
|
||||
(type "tmpfs")
|
||||
(mount-point "/")
|
||||
(check? #f)
|
||||
(needed-for-boot? #t)
|
||||
(options "mode=0755"))
|
||||
|
||||
#|gnu|#
|
||||
(file-system
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/gnu/persist")
|
||||
(needed-for-boot? #t)
|
||||
(dependencies (list rootfs))
|
||||
(flags '(no-atime bind-mount))
|
||||
(options (format #f "discard=async,~
|
||||
ssd,~
|
||||
subvol=@gnu/persist")))
|
||||
;; /home
|
||||
(flags '(no-atime))
|
||||
(options (format #f "subvol=@gnu/persist,~
|
||||
ssd")))
|
||||
(file-system
|
||||
(device (file-system-label "root"))
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/home")
|
||||
(dependencies (list rootfs))
|
||||
(flags '(no-atime bind-mount))
|
||||
(options (format #f "compress=zstd:7,~
|
||||
discard=async,~
|
||||
ssd,~
|
||||
subvol=@home")))
|
||||
;; /var/guix
|
||||
(mount-point "/gnu/store")
|
||||
(needed-for-boot? #t)
|
||||
(flags '(no-atime))
|
||||
(options (format #f "compress=zstd,~
|
||||
subvol=@gnu/store,~
|
||||
ssd")))
|
||||
|
||||
#|var|#
|
||||
(file-system
|
||||
(device (file-system-label "root"))
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/var/guix")
|
||||
(dependencies (list rootfs))
|
||||
(needed-for-boot? #t)
|
||||
(flags '(no-atime))
|
||||
(options (format #f "compress=zstd:7,~
|
||||
discard=async,~
|
||||
ssd,~
|
||||
subvol=@var/guix")))
|
||||
;; /var/log
|
||||
(options (format #f "compress=zstd,~
|
||||
subvol=@var/guix,~
|
||||
ssd")))
|
||||
(file-system
|
||||
(device (file-system-label "root"))
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/var/lib")
|
||||
(needed-for-boot? #t)
|
||||
(flags '(no-atime))
|
||||
(options (format #f "compress=zstd,~
|
||||
subvol=@var/lib,~
|
||||
ssd")))
|
||||
(file-system
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/var/log")
|
||||
(dependencies (list rootfs))
|
||||
(check? #f)
|
||||
(needed-for-boot? #t)
|
||||
(flags '(no-atime))
|
||||
(options (format #f "compress=zstd:7,~
|
||||
discard=async,~
|
||||
ssd,~
|
||||
subvol=@var/log")))
|
||||
;; /boot
|
||||
bootfs
|
||||
(options (format #f "compress=zstd,~
|
||||
subvol=@var/log,~
|
||||
ssd")))
|
||||
(file-system
|
||||
(device (file-system-label "esp"))
|
||||
(type "vfat")
|
||||
(dependencies (list bootfs))
|
||||
(mount-point "/boot/efi")
|
||||
(create-mount-point? #t))
|
||||
%base-file-systems))
|
||||
(device "none")
|
||||
(type "tmpfs")
|
||||
(mount-point "/var/run")
|
||||
(check? #f)
|
||||
(needed-for-boot? #t)
|
||||
(flags '(no-dev strict-atime))
|
||||
(options (format #f "mode=0755,~
|
||||
nr_inodes=800k,~
|
||||
size=20%")))
|
||||
|
||||
#|swap|#
|
||||
(file-system
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/swap")
|
||||
(check? #f)
|
||||
(needed-for-boot? #t)
|
||||
(options (format #f "subvol=@swap,~
|
||||
discard=async,~
|
||||
ssd")))
|
||||
|
||||
#|snapshots|#
|
||||
(file-system
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/snapshots")
|
||||
(check? #f)
|
||||
(needed-for-boot? #t)
|
||||
(flags '(no-atime))
|
||||
(options (format #f "compress=zstd,~
|
||||
subvol=@snapshots,~
|
||||
ssd")))
|
||||
|
||||
#|home|#
|
||||
(file-system
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/root")
|
||||
(flags '(no-atime))
|
||||
(options (format #f "subvol=@root,~
|
||||
discard=async,~
|
||||
ssd")))
|
||||
(file-system
|
||||
(device partition:guix)
|
||||
(type "btrfs")
|
||||
(mount-point "/home")
|
||||
(flags '(no-atime))
|
||||
(options (format #f "subvol=@home,~
|
||||
discard=async,~
|
||||
ssd")))))
|
||||
|
||||
(define persistent-directories
|
||||
(map (lambda (filename)
|
||||
(file-system
|
||||
(mount-point filename)
|
||||
(device (string-append "/gnu/persist" mount-point))
|
||||
(type "none")
|
||||
(check? #f)
|
||||
(flags '(no-atime bind-mount))))
|
||||
`("/etc/guix"
|
||||
"/etc/ssh")))
|
||||
|
||||
(define persistent-files
|
||||
(list "/etc/machine-id"
|
||||
"/etc/wpa-supplicant.conf"))
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
guix shell git -- git clone https://codeberg.org/anemofilia/radix
|
||||
echo "Format your disk and mount the btrfs partition on /mnt."
|
||||
echo "After that, run 02-create.sh"
|
|
@ -0,0 +1,10 @@
|
|||
cd /mnt
|
||||
mkdir -p boot home root gnu/store gnu/persist var/log var/lib var/guix
|
||||
|
||||
for vol in home root boot gnu gnu/store gnu/persist var var/log var/lib var/guix; do
|
||||
btrfs subvolume create @$vol
|
||||
mount --bind @$vol $vol
|
||||
done
|
||||
|
||||
cd @gnu/persist
|
||||
mkdir -p etc/guix etc/ssh etc/wireguard
|
|
@ -0,0 +1,3 @@
|
|||
herd start cow-store /mnt
|
||||
export GUILE_LOAD_PATH=/root/radix:/root/zero:/root/zero/home-environments:/root/zero:operating-systems:$GUILE_LOAD_PATH
|
||||
guix system init /root/zero/operating-systems/buer.scm /mnt
|
|
@ -0,0 +1,3 @@
|
|||
cd /mnt
|
||||
umount home root boot gnu/store gnu/persist var/log var/lib var/guix
|
||||
rm -rf home root boot bin etc gnu mnt tmp var
|
|
@ -0,0 +1 @@
|
|||
guix shell dbus -- dbus-uuidgen > /mnt/@gnu/persist/etc/machine-id
|
|
@ -0,0 +1,3 @@
|
|||
chmod 700 /mnt/@root
|
||||
chmod 644 /mnt/@gnu/persist/etc/machine-id
|
||||
chmod 600 /mnt/@gnu/persist/etc/{wireguard,ssh,guix}
|
|
@ -5,7 +5,7 @@
|
|||
(define-public linux-libre
|
||||
(customize-linux
|
||||
#:name "buer-linux-libre"
|
||||
#:linux linux-libre-6.10
|
||||
#:source linux-libre-6.10-source
|
||||
#:defconfig (local-file "defconfig")
|
||||
#:linux linux-libre-6.11
|
||||
#:source linux-libre-6.11-source
|
||||
#:defconfig (local-file "kernel/defconfig")
|
||||
#:extra-version "buer"))
|
||||
|
|
|
@ -35,6 +35,10 @@
|
|||
(command "herd")
|
||||
(args (list action))))
|
||||
`("status" "detailed-status"))
|
||||
(list (permit (identity ":wheel")
|
||||
(nopass? #t)
|
||||
(command "herd")
|
||||
(args (list "trigger" "snapshot-@home"))))
|
||||
(flat-map (lambda (service action)
|
||||
(permit (identity ":wheel")
|
||||
(nopass? #t)
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
(define-module (buer shepherd-services)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (shepherd service repl)
|
||||
#:use-module (shepherd service timer)
|
||||
|
||||
#:export (guix-gc snapshot-@home repl timer))
|
||||
|
||||
#|Repl|#
|
||||
(define repl
|
||||
(shepherd-service
|
||||
(provision '(repl))
|
||||
(modules '((shepherd service repl)))
|
||||
(free-form #~(repl-service))))
|
||||
|
||||
#|Timers|#
|
||||
(define timer-trigger-action
|
||||
(shepherd-action
|
||||
(name 'trigger)
|
||||
(procedure #~trigger-timer)
|
||||
(documentation
|
||||
"Trigger the action associated with @var{timer} as if it had reached its
|
||||
next calendar event.")))
|
||||
|
||||
(define guix-gc
|
||||
(shepherd-service
|
||||
(provision '(guix-gc))
|
||||
(modules '((shepherd service timer)))
|
||||
(start #~(make-timer-constructor
|
||||
(calendar-event #:days-of-month '(1 15))
|
||||
(command '("guix" "gc" "--optimize" "--free-space=10G"))))
|
||||
(stop #~(make-timer-destructor))
|
||||
(actions (list timer-trigger-action))))
|
||||
|
||||
(define snapshot-@home
|
||||
(shepherd-service
|
||||
(provision '(snapshot-@home))
|
||||
(modules '((shepherd service timer)))
|
||||
(start #~(make-timer-constructor
|
||||
(calendar-event #:days-of-month '(1 15))
|
||||
(lambda ()
|
||||
(let ((btrfs "/run/current-system/profile/bin/btrfs")
|
||||
(date (strftime "%Y-%m-%d" (localtime (current-time)))))
|
||||
(spawn-shell-command
|
||||
(string-append btrfs " subvolume snapshot"
|
||||
" /home /snapshots/home/" date))))))
|
||||
(stop #~(make-timer-destructor))
|
||||
(actions (list timer-trigger-action))))
|
||||
|
||||
(define timer
|
||||
(shepherd-service
|
||||
(provision '(timer))
|
||||
(modules '((shepherd service timer)))
|
||||
(free-form #~(timer-service))))
|
|
@ -2,26 +2,9 @@
|
|||
#:use-module (gnu)
|
||||
#:export (berlin.pub
|
||||
genenetwork.pub
|
||||
yuria.pub
|
||||
yumiko.pub))
|
||||
|
||||
(define yuria.pub
|
||||
(plain-file "yuria.pub"
|
||||
"(public-key
|
||||
(ecc
|
||||
(curve Ed25519)
|
||||
(q #D5D0C1203D294B410DA106DDC1713B74CBB27353D53F4EE3D9D26972E8687424#)
|
||||
)
|
||||
)"))
|
||||
|
||||
(define yumiko.pub
|
||||
(plain-file "yumiko.pub"
|
||||
"(public-key
|
||||
(ecc
|
||||
(curve Ed25519)
|
||||
(q #EBD4DD318A84F9F0AD13300D8A2ACF022F16088DA59B57E539F6DC3BD9C33A52#)
|
||||
)
|
||||
)"))
|
||||
inria.pub
|
||||
yumiko.pub
|
||||
yuria.pub))
|
||||
|
||||
(define berlin.pub
|
||||
(plain-file "berlin.pub"
|
||||
|
@ -40,3 +23,30 @@
|
|||
(q #9578AD6CDB23BA51F9C4185D5D5A32A7EEB47ACDD55F1CCB8CEE4E0570FBF961#)
|
||||
)
|
||||
)"))
|
||||
|
||||
(define inria.pub
|
||||
(plain-file "inria.pub"
|
||||
"(public-key
|
||||
(ecc
|
||||
(curve Ed25519)
|
||||
(q #89FBA276A976A8DE2A69774771A92C8C879E0F24614AAAAE23119608707B3F06#)
|
||||
)
|
||||
)"))
|
||||
|
||||
(define yumiko.pub
|
||||
(plain-file "yumiko.pub"
|
||||
"(public-key
|
||||
(ecc
|
||||
(curve Ed25519)
|
||||
(q #EBD4DD318A84F9F0AD13300D8A2ACF022F16088DA59B57E539F6DC3BD9C33A52#)
|
||||
)
|
||||
)"))
|
||||
|
||||
(define yuria.pub
|
||||
(plain-file "yuria.pub"
|
||||
"(public-key
|
||||
(ecc
|
||||
(curve Ed25519)
|
||||
(q #D5D0C1203D294B410DA106DDC1713B74CBB27353D53F4EE3D9D26972E8687424#)
|
||||
)
|
||||
)"))
|
||||
|
|
Loading…
Reference in New Issue