Compare commits

...

62 Commits

Author SHA1 Message Date
Luis Guilherme Coelho 298c085e02
operating-systems: buer: Remove unnecessary comments 2024-11-25 03:31:30 -03:00
Luis Guilherme Coelho 771fc81d3e
operating-systems: buer: Use spawn-shell-command instead of system since a lambda action should be suspendable 2024-11-25 03:30:48 -03:00
Luis Guilherme Coelho ab23d68de3
home-environment: radio: Use spawn-shell-command instead of system since a lambda action should be suspendable 2024-11-25 03:23:58 -03:00
Luis Guilherme Coelho bc36fbc43d
operating-systems: buer: Add comment on essential-services section 2024-11-25 00:34:43 -03:00
Luis Guilherme Coelho 47dae46b98
home-environment: radio: Setup timer-related shepherd-services 2024-11-24 23:17:43 -03:00
Luis Guilherme Coelho 77d40da76f
operating-systems: buer: Setup timer-related shepherd-services 2024-11-24 22:06:13 -03:00
Luis Guilherme Coelho 101f5404eb
home-environments: radio: Add shepherd/modules to GUILE_LOAD_PATH 2024-11-24 21:10:21 -03:00
Luis Guilherme Coelho 715cde6746
radio: files: Add kew 2024-11-24 13:42:51 -03:00
Luis Guilherme Coelho 733bb12361
operating-systems: buer: Use shepherd 1.0.0rc1 2024-11-24 13:42:32 -03:00
Luis Guilherme Coelho f29d809e76
buer: file-systems: Add an @snapshot subvolume 2024-11-24 13:41:46 -03:00
Luis Guilherme Coelho 806e5cb188
home-environments: radio: Use shepherd 1.0.0rc1 2024-11-24 13:40:01 -03:00
Luis Guilherme Coelho 3154e9c042
home-environments: radio: Remove channel:saayix 2024-11-24 13:31:35 -03:00
Luis Guilherme Coelho fdcb39f3ed
radio: files: senpai: Fix on-highlight script 2024-11-24 13:30:43 -03:00
Luis Guilherme Coelho 01527be1d0
home-environments: radio: Add packages:music 2024-11-24 13:27:43 -03:00
Luis Guilherme Coelho 5b75cf2b23
buer: kernel: Refer to right defconfig location an use latest available kernel 2024-11-24 13:26:14 -03:00
Luis Guilherme Coelho eb8d291d54
radio: files: newsraft: Update feeds file syntax 2024-11-21 11:45:09 -03:00
Luis Guilherme Coelho bf9257fa2a
radio: packages: Remove riverguile and river-bnf 2024-11-21 11:42:14 -03:00
Luis Guilherme Coelho 0d1e51ce95
operating-systems: buer: Remove psmisc utils 2024-11-21 11:40:46 -03:00
Luis Guilherme Coelho a612bd99bc
operating-systems: buer: Remove wireguard-tools, since it's currently unused 2024-11-21 11:39:40 -03:00
Luis Guilherme Coelho 379b88d68a
operating-systems: buer: Remove extra comment tag in module imports 2024-11-21 11:39:06 -03:00
Luis Guilherme Coelho f3146db447
buer: file-systems: Use in /run and /var/run the file-system-flags and file-system-options proposed by Hilton Chain in issues.guix.gnu.org/73494 2024-11-20 15:28:10 -03:00
Luis Guilherme Coelho 0b4754e6aa
radio: packages: Remove keepassxc 2024-11-20 15:24:20 -03:00
Luis Guilherme Coelho e7af051da4
radio: files: Add senpai 2024-11-19 11:56:35 -03:00
Luis Guilherme Coelho 0e631d55f7
home-environments: radio: Add !pass abbreviation for obtaining passwords more quickly 2024-11-19 11:53:17 -03:00
Luis Guilherme Coelho 102c542180
buer: file-systems: Remove /etc/wireguard as persistent directory, since it's currently unused 2024-11-19 11:52:20 -03:00
Luis Guilherme Coelho 6167d59e70
operating-systems: buer: Add /swap/swapfile for eventual long hibernations 2024-11-19 11:51:37 -03:00
Luis Guilherme Coelho f96a4a3808
operating-systems: buer: Remove extra slash when symlinking persistent files 2024-11-19 11:50:20 -03:00
Luis Guilherme Coelho 2a12b1f930
operating-systems: buer: Remove unecessary module import 2024-11-19 11:49:30 -03:00
Luis Guilherme Coelho 114595e476
operating-systems: buer: Remove avahi 2024-11-17 20:07:51 -03:00
Luis Guilherme Coelho 5c7d9c2a16
home-environments: radio: Set PASSWORD_STORE_DIR 2024-11-16 10:03:50 -03:00
Luis Guilherme Coelho 14de2225a4
home-environments: radio: Add saayix 2024-11-16 09:25:57 -03:00
Luis Guilherme Coelho d7504db402
radio: channels: Add saayix 2024-11-16 09:25:12 -03:00
Luis Guilherme Coelho 85a6f7692b
radio: files: river: Bind senpai to super+s 2024-11-16 09:24:16 -03:00
Luis Guilherme Coelho d18b488b31
radio: packages: Add senpai, password-store and tessen 2024-11-16 09:17:18 -03:00
Luis Guilherme Coelho 507881ab7c
radio: packages: Remove perl (now propagated by kakoune), and re-declare red-eclipse and xonotic 2024-11-13 09:51:46 -03:00
Luis Guilherme Coelho a00d8cfbc0
radio: files: kak: Add missing backslash in kakrc 2024-11-13 09:15:06 -03:00
Luis Guilherme Coelho ca1507c014
radio: files: sioyek: Disable highlight 2024-11-13 09:14:26 -03:00
Luis Guilherme Coelho b04a365498
radio: files: lf: Set watch to true in lfrc 2024-11-13 03:23:54 -03:00
Luis Guilherme Coelho 7abed19266
radio: files: kak: Remove stateful management of plugins in kakrc 2024-11-13 03:23:15 -03:00
Luis Guilherme Coelho e85f07f57e
radio: packages: Manage kakoune plugins declaratively 2024-11-13 03:22:09 -03:00
Luis Guilherme Coelho 72bc8a2548
home-environments: radio: Add missing comma in !network abbreviation definition 2024-11-11 12:15:52 -03:00
Luis Guilherme Coelho 560ed1d9bc
home-environments: Add !network abbreviation to restart networking and wpa-supplicant system services 2024-11-11 12:13:38 -03:00
Luis Guilherme Coelho b4e89e28da
home-environments: radio: Add ~/.config/guix/home.scm as a special file that symlinks to (home-environments radio) module location 2024-11-11 12:12:49 -03:00
Luis Guilherme Coelho 20ac5678da
operating-systems: buer: Remove guix-publish service 2024-11-11 12:08:35 -03:00
Luis Guilherme Coelho a147faefab
operating-systems: buer: Add /etc/config.scm as a special file that symlinks to (operating-systems buer) module location 2024-11-11 12:08:12 -03:00
Luis Guilherme Coelho 16ae85e10e
operating-systems: buer: Remove extra indicator comment 2024-11-11 12:07:10 -03:00
Luis Guilherme Coelho 293fb0c784
buer: file-systems: Remove /etc/config.scm from persistent files 2024-11-11 12:00:40 -03:00
Luis Guilherme Coelho 5201891f91
radio: files: btop: Disable showing swap as a partition 2024-11-11 11:59:51 -03:00
Luis Guilherme Coelho 44cdedfebb
operating-systems: buer: Set uncompressed zram size to 2*ram, use greetd-service-type from (radix services greetd) 2024-11-09 08:54:30 -03:00
Luis Guilherme Coelho 90bbe22950
radio: files: newsraft: Remove feed entries related to FreeBSD 2024-11-08 05:53:36 -03:00
Luis Guilherme Coelho 10449248f8
operating-systems: buer: Remove guix-for-channels declaration 2024-11-08 05:52:57 -03:00
Luis Guilherme Coelho 4c7bbafc5c
home-environments: radio: temporarly remove packages:games and some development packages 2024-11-08 05:52:01 -03:00
Luis Guilherme Coelho 644a9741c9
radio: packages: Use newsraft from (gnu packages syndication) 2024-11-07 08:37:19 -03:00
Luis Guilherme Coelho 9eb140c67e
operating-systems: buer: Use guix-for-channels to instantiate a custom guix 2024-11-07 08:26:05 -03:00
Luis Guilherme Coelho 795665491d
buer: file-systems: Remove /gnu/persist/mnt 2024-11-06 14:07:07 -03:00
Luis Guilherme Coelho 22e043e4ca
operating-systems: buer: Add installation scripts 2024-11-04 19:13:29 -03:00
Luis Guilherme Coelho 82cc77b433
operating-systems: buer: Move to impermanence setup 2024-11-04 18:49:38 -03:00
Luis Guilherme Coelho ba91125c7e
operating-systems: buer: Add https://guix.bordeaux.inria.fr 2024-10-30 08:14:57 -03:00
Luis Guilherme Coelho b39929dd8f
buer: substitute-keys: Add inria.pub 2024-10-30 08:10:29 -03:00
Luis Guilherme Coelho bf7b7f8106
operating-systems: buer: Rename operating-system to buer 2024-10-28 21:13:05 -03:00
Luis Guilherme Coelho 443702abc3
home-environments: radio: Rename home-environment to radio, minor changes 2024-10-28 21:01:21 -03:00
Luis Guilherme Coelho d0ea6d3c11
operating-system: buer: Update kernel version 2024-10-22 23:07:08 -03:00
25 changed files with 584 additions and 326 deletions

View File

@ -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
@ -82,14 +70,14 @@
(list #|XDG services|#
(service home-xdg-user-directories-service-type
(home-xdg-user-directories-configuration
(desktop "$HOME/areas")
(documents "$HOME/areas/documents")
(download "$HOME/media/downloads")
(music "$HOME/media/music")
(pictures "$HOME/media/pictures")
(videos "$HOME/media/videos")
(desktop "$HOME/areas")
(documents "$HOME/areas/documents")
(download "$HOME/media/downloads")
(music "$HOME/media/music")
(pictures "$HOME/media/pictures")
(videos "$HOME/media/videos")
(publicshare "")
(templates "")))
(templates "")))
(service home-xdg-mime-applications-service-type
(home-xdg-mime-applications-configuration
@ -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,12 @@
(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:timer
shepherd-service:wake-up))))
#|Shell services|#
(service home-tty-colorscheme-service-type
@ -179,6 +173,7 @@
(home-fish-configuration
(plugins
(list fish-autopair
fish-foreign-env
fish-puffer))
(environment-variables
`(#|GNU Privacy Guard|#
@ -194,21 +189,20 @@
("TERMINFO" . "$XDG_DATA_HOME/terminfo")))
(aliases
`(#|Common aliases|#
("df" . "df -h")
("du" . "du -h")
("df" . "df -h")
("du" . "du -h")
("diff" . "diff --color=auto")
("grep" . "grep --color=auto")
("ip" . "ip --color=auto")
("ls" . ,(format #f "ls --color=auto ~
--group-directories-first ~
--classify ~
--human-readable ~
-v"))
("ip" . "ip --color=auto")
("ls" . ,(format #f "ls --color=auto ~
--group-directories-first ~
--classify ~
--human-readable ~
-v"))
#|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 +227,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")
@ -301,7 +299,7 @@
#|Environment variables services|#
(simple-service 'home-shell-environment-variables
home-environment-variables-service-type
`(("PATH" . "$HOME/.local/bin:$PATH")
`(("PATH" . "$HOME/.local/bin:$PATH")
("INPUTRC" . "$XDG_CONFIG_HOME/readline/inputrc")))
(simple-service 'home-guile-environment-variables
home-environment-variables-service-type
@ -311,6 +309,8 @@
. ,(format #f "~?~?"
"~@{:$HOME/areas/code/scm/~a~}"
'(radix
shepherd/modules
shepherd/.guix/modules
zero
zero/operating-systems
zero/home-environments)
@ -337,16 +337,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 +393,4 @@
(full-message "Unplug the cable")
(warning-message "You may want to plug the cable")
(critical-message "Plug the cable")))))))
home-environment
radio

View File

@ -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")))))

View File

@ -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

View File

@ -364,80 +364,41 @@ hook global WinSetOption filetype=kak %{
}
}
# __________ plugins __________
source "%val{config}/plugins/plug.kak/rc/plug.kak"
plug "andreyorst/plug.kak" noload # manually installed plugin manager
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 kakoune state
# configure this
plug "occivink/kakoune-phantom-selection" # work on multiple selections, one at a time
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 "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
# 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
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"
set-option global rainbow_opening "[[(]"
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
set-option global rainbow_opening "[[(]"
declare-option str-list rainbow_faces \
"rgb:a790d3" "rgb:6cdae0" "rgb:ff7f50" \
"rgb:ffea8c" "rgb:83dcaf" "rgb:eba4d4" \
"rgb:8b5be7"
plug "alexherbo2/auto-pairs.kak" config %{
set-option global auto_pairs ( ) { } [ ] '"' '"' "'" "'" ` `
hook -group config global BufSetOption filetype=latex %{
set-option buffer auto_pairs ( ) [ ] { } '"' '"' $ $
}
hook -group config global BufSetOption filetype=scheme %{
set-option buffer auto_pairs ( ) [ ] { } '"' '"'
}
hook -group config global BufSetOption filetype=typst %{
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
# auto pairing
set-option global auto_pairs ( ) { } [ ] '"' '"' "'" "'" ` `
hook -group config global BufSetOption filetype=latex %{
set-option buffer auto_pairs ( ) [ ] { } '"' '"' $ $
}
hook -group config global BufSetOption filetype=scheme %{
set-option buffer auto_pairs ( ) [ ] { } '"' '"'
}
hook -group config global BufSetOption filetype=typst %{
set-option buffer auto_pairs ( ) [ ] { } '"' '"' $ $ * *
}
evaluate-commands enable-auto-pairs
# __________ lsp __________
eval %sh{kak-lsp --kakoune -s $kak_session}

View File

@ -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.

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -23,8 +23,8 @@ link_highlight_color 0.0 0.0 1.0
# Hihglight color for synctex forward search highlights
synctex_highlight_color 1.0 0.0 1.0
# Displays an overview of destination when hovering over a link with mouse.
hover_overview 1
# Displays an overview of destination when hovering over a link with mouse.
hover_overview 1
# Urls to use when executing external_search commands
search_url_a https://annas-archive.org/search?q=
@ -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

View File

@ -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 _)))

View File

@ -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

View File

@ -0,0 +1,31 @@
(define-module (radio shepherd-services)
#:use-module (guix gexp)
#:use-module (gnu services shepherd)
#:use-module (shepherd service timer)
#:export (wake-up timer))
(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))))
(define timer
(shepherd-service
(provision '(timer))
(modules '((shepherd service timer)))
(free-form #~(timer-service))))

View File

@ -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

View File

@ -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
(file-system
(device (file-system-label "root")
(type "btrfs")
(mount-point "/boot")
(dependencies (list rootfs))
(flags '(no-atime))
(options (format #f "compress=zstd:7,~
discard=async,~
ssd,~
subvol=@boot")))))
(define volumes
(list #|base|#
%immutable-store
%pseudo-terminal-file-system
%shared-memory-file-system
(define file-systems
(cons* rootfs
;; /gnu/store
#|boot|#
(file-system
(device partition:guix)
(type "btrfs")
(mount-point "/boot")
(check? #f)
(needed-for-boot? #t)
(flags '(no-atime))
(options (format #f "subvol=@boot,~
discard=async,~
ssd")))
#|run|#
(file-system
(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)
(flags '(no-atime))
(options (format #f "subvol=@gnu/persist,~
ssd")))
(file-system
(device partition:guix)
(type "btrfs")
(mount-point "/gnu/store")
(needed-for-boot? #t)
(flags '(no-atime))
(options (format #f "compress=zstd,~
subvol=@gnu/store,~
ssd")))
#|var|#
(file-system
(device partition:guix)
(type "btrfs")
(mount-point "/var/guix")
(needed-for-boot? #t)
(flags '(no-atime))
(options (format #f "compress=zstd,~
subvol=@var/guix,~
ssd")))
(file-system
(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")
(check? #f)
(needed-for-boot? #t)
(flags '(no-atime))
(options (format #f "compress=zstd,~
subvol=@var/log,~
ssd")))
(file-system
(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
(device (file-system-label "root"))
(type "btrfs")
(mount-point "/gnu/store")
(needed-for-boot? #t)
(dependencies (list rootfs))
(flags '(read-only bind-mount no-atime))
(options (format #f "compress=zstd:7,~
discard=async,~
ssd,~
subvol=@gnu/store")))
;; /gnu/persist
(file-system
(device (file-system-label "root"))
(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
(file-system
(device (file-system-label "root"))
(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
(file-system
(device (file-system-label "root"))
(type "btrfs")
(mount-point "/var/guix")
(dependencies (list rootfs))
(flags '(no-atime))
(options (format #f "compress=zstd:7,~
discard=async,~
ssd,~
subvol=@var/guix")))
;; /var/log
(file-system
(device (file-system-label "root"))
(type "btrfs")
(mount-point "/var/log")
(dependencies (list rootfs))
(flags '(no-atime))
(options (format #f "compress=zstd:7,~
discard=async,~
ssd,~
subvol=@var/log")))
;; /boot
bootfs
(file-system
(device (file-system-label "esp"))
(type "vfat")
(dependencies (list bootfs))
(mount-point "/boot/efi")
(create-mount-point? #t))
%base-file-systems))
(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"))

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1 @@
guix shell dbus -- dbus-uuidgen > /mnt/@gnu/persist/etc/machine-id

View File

@ -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}

View File

@ -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"))

View File

@ -0,0 +1,45 @@
(define-module (buer shepherd-services)
#:use-module (guix gexp)
#:use-module (gnu services shepherd)
#:use-module (shepherd service timer)
#:export (guix-gc snapshot-@home timer))
(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))))

View File

@ -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#)
)
)"))