This commit is contained in:
Jacob Hrbek 2021-11-30 06:15:36 +01:00
parent 93ec4dbe77
commit 15e5fb91df
28 changed files with 446 additions and 287 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.owncloudsync.log
.sync_*.db*`

7
.guix-authorizations Normal file
View File

@ -0,0 +1,7 @@
;; This is the list of OpenPGP keys currently authorized to sign commits in this repository.
(authorizations
(version 0)
(("SHASUM"
(name "user"))))

6
.guix-channel Normal file
View File

@ -0,0 +1,6 @@
;; -*- mode: scheme; -*-
(channel
(version 0)
(news-file "news.txt")
(url "https://git.dotya.ml/something/something.git"))

View File

@ -0,0 +1 @@
file containing solutions to provide emacs environment

View File

@ -0,0 +1,33 @@
#!/usr/bin/env -S guix shell -m
!#
;;; This is a recipe file for GNU Guix as a solution to provide the required packages for GNU Emacs
(use-modules
(guix channels))
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(commit
"f1bfd9f1948a5ff336d737c0614b9a30c2bb3097")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
(specifications->manifest (list
"emacs"
;; EXT(Krey): To navigate in the directory tree
"emacs-treemacs"
;; EXT(Krey): To get vim keybinding and functionality
"emacs-evil"
;; EXT(Krey): For working with scheme
"emacs-geiser"
;; EXT(Krey): Required for geiser to work with guile files
"emacs-geiser-guile"
;; EXT(Krey): To define per-directory configuration
"emacs-projectile"
;; EXT(Krey): Include doom themes
"emacs-doom-themes"))

View File

@ -1,4 +1,7 @@
;;; Standard GNU Guix file defining packages for guix-shell environment
#!/usr/bin/env -S guix shell -m
!#
;;; Recipe to provide GNU Emacs through GNU Guix
(use-modules
(guix channels))
@ -15,5 +18,4 @@
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
(specifications->manifest
(list "emacs@27.2"
"emacs-treemacs"))
(list "emacs@27.2"))

View File

@ -0,0 +1,31 @@
#!/usr/bin/env -S guix shell -m
!#
;;; This is a recipe file for GNU Guix as a solution to provide the required packages for GNU Emacs
(use-modules
(guix channels))
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(commit
"f1bfd9f1948a5ff336d737c0614b9a30c2bb3097")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
(specifications->manifest (list
"guile-emacs"
;; EXT(Krey): To navigate in the directory tree
"emacs-treemacs"
;; EXT(Krey): To get vim keybinding and functionality
"emacs-evil"
;; EXT(Krey): For working with scheme
"emacs-geiser"
;; EXT(Krey): Required for geiser to work with guile files
"emacs-geiser-guile"
;; EXT(Krey): To define per-directory configuration
"emacs-projectile"))

View File

@ -1,4 +1,7 @@
;;; Standard GNU Guix file defining packages for guix-shell environment
#!/usr/bin/env -S guix shell -m
!#
;;; Recipe to provide GNU Emacs through GNU Guix
(use-modules
(guix channels))
@ -15,5 +18,4 @@
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
(specifications->manifest
(list "emacs@27.2"
"emacs-dired-sidebar"))
(list "guile-emacs"))

View File

@ -1,7 +1,7 @@
;;; Standard GNU Guix file defining packages for guix-shell environment
;; NOTE(Krey): For development of 'cargo-make' package, remove once merged
(load "cargo-make.scm")
;(load "cargo-make.scm")
(use-modules
(guix channels))
@ -19,4 +19,9 @@
(specifications->manifest
;; BLOCKER(Krey): Cargo-make is not defined
(list "rust-cargo-make"))
(list
;; CONTRIB-PKGS(Krey): Not packaged
;"rust-cargo-make"
;; CONTRIB-PKGS(Krey): Not packaged - https://issues.guix.gnu.org/51563
;"woodpeckerCI"
"git"))

View File

@ -1,7 +1,5 @@
#@ All rights reserved (C) Jacob Hrbek <rsa4096/0x31AE4020956E0A9A> in 30/10/2021-EU 01:22:40 UTC
#@ Copyright (C) Jacob Hrbek <rsa4096/0x31AE4020956E0A9A> in 30/10/2021-EU 13:27:17 UTC released under the GPLv3 license <https://www.gnu.org/licenses/gpl-3.0.en.html>
### HOTFIX(Krey): The guix-install.sh requires an interactive shell blocking the deployment, this is a hotfix that requires used to invoke `./guix-install.sh` on the environment and go through with the installation
#@ Copyright (C) 16/11/2021-EU Jacob Hrbek <kreyren@rixotstudio.cz>, released under the terms of GPLv3 license <https://www.gnu.org/licenses/gpl-3.0.en.html>
# 30/10/2021-EU 01:44:14 UTC
FROM debian:bullseye-20211011-slim
@ -25,6 +23,7 @@ RUN true \
&& wget "https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh?id=$guixInstall_commit" -O guix-install.sh \
# Add guix-install dependencies
&& chmod +x guix-install.sh \
&& yes | sh guix-install.sh \
&& apt-get remove --yes \
wget \
gnupg \
@ -35,4 +34,4 @@ RUN true \
/var/cache/debconf/* \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/*
/var/tmp/*

View File

@ -1,7 +1,5 @@
#@ All rights reserved (C) Jacob Hrbek <rsa4096/0x31AE4020956E0A9A> in 30/10/2021-EU 01:22:40 UTC
### HALTED(Krey): The guix-install.sh requires an interactive shell blocking the deployment
# 30/10/2021-EU 01:44:14 UTC
FROM debian:bullseye-20211011-slim
LABEL Description="Minimal Debian Linux Image with GUIX package manager designed for testing"
@ -24,7 +22,7 @@ RUN true \
&& wget "https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh?id=$guixInstall_commit" -O guix-install.sh \
# Add guix-install dependencies
&& chmod +x guix-install.sh \
&& sh guix-install.sh \
&& yes | sh guix-install.sh \
&& apt-get remove --yes \
wget \
gnupg \
@ -35,4 +33,4 @@ RUN true \
/var/cache/debconf/* \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/*
/var/tmp/*

View File

@ -10,7 +10,7 @@ category = "deployment"
# FIXME-QA(Krey): Convert this on `command` and `args`
script = '''
#!@shell
guix system reconfigure \
guix system --keep-going reconfigure \
src/default.scm
'''

31
default.el Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env -S emacs --no-splash -q -l
;;; Initialization file for emacs designed to provide the standard environment to work with the project
;; NOT_FINISHED(Krey): Work in progress
;; We assume that all required packages are already installed in emacs which is expected to be handled through cargo-make's Makefile.toml
;; Q(Krey): Should we ask the end-user whether they want to use evil?
(evil-mode 1)
;;; KEYBINDS
;; Treemacs
(define-key global-map (kbd "C-x C-\\") 'treemacs)
;;; EXPERIMENT
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-enabled-themes '(doom-outrun-electric)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(message "hello")

35
news.txt Normal file
View File

@ -0,0 +1,35 @@
;; TODO(Krey): Re-define
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
;;
;; Copying and distribution of this file, with or without modification, are
;; permitted in any medium without royalty provided the copyright notice and
;; this notice are preserved.
(channel-news
(version 0)
(entry (commit "1ac29b33f3ca19134fcbedd6dc22deb45c15229f")
(title (en "Nonguix authenticated updates"))
(body
(en "Nonguix can now take advantage of the new support for
authenticated updates in @command{guix pull}, which protects you from attempts
to tamper with the Nonguix repository and ship malicious code instead.
To ensure you only receive genuine updates from Nonguix, you should update your
@file{~/.config/guix/channels.scm} to include the channel introduction:
@lisp
(channel
(name 'nonguix)
(url \"https://gitlab.com/nonguix/nonguix\")
(introduction
(make-channel-introduction
\"897c1a470da759236cc11798f4e0a5f7d4d59fbc\"
(openpgp-fingerprint
\"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5\"))))
@end lisp "))))
;; Local Variables:
;; mode: scheme
;; End:
;; vim: filetype=scheme

View File

@ -1,6 +1,6 @@
# Proposal to make guix system deployment more flexible
TLDR: Make `(operating-system)` into a "derivation capable of storing data" that can be triggered using a function `(guix-build-system)` to enable more flexible system management
# TLDR: Make `(operating-system)` into a "derivation capable of storing data" that can be triggered using a function `(guix-build-system)` to enable more flexible system management
### Context and end-goal
I am trying to port my NixOS managing system (https://git.dotya.ml/OpenVolt/nyxtumops) on guix to manage my systems where the expected goal is to be able to use public git repository to manage +200 systems at once through Continuous Integration and Delivery transparently to the user to provide https://snopyta.org -like libre service provider on a federated network to which new members can be added.

View File

View File

@ -13,6 +13,8 @@
;(define system-hostname (getenv "HOSTNAME"))
;; TODO(Krey): Process https://guix.gnu.org/manual/en/html_node/Invoking-guix-deploy.html
(load "users/kreyren.scm")
(load "domains/rixotstudio.cz/default.scm")

View File

@ -13,7 +13,9 @@
;(define system-hostname (getenv "HOSTNAME"))
(load "domains/rixotstudio.cz/default.scm")
;; TODO(Krey): Process https://guix.gnu.org/manual/en/html_node/Invoking-guix-deploy.html
(load "users/kreyren.scm")
(load "domains/rixotstudio.cz/default.scm")
(display "Finished")(newline)

View File

@ -0,0 +1,87 @@
;; TODO-LIBRE(Krey): Install libre BIOS
(use-modules (gnu))
(use-modules (nongnu packages linux)
(nongnu system linux-initrd))
(use-service-modules
cups
desktop
networking
ssh
xorg)
(operating-system
(kernel linux)
(initrd microcode-initrd)
(firmware (list linux-firmware))
(locale "en_US.utf8")
(timezone "Europe/Prague")
(keyboard-layout (keyboard-layout "us"))
(host-name "lunarmax")
(users (cons*
(user-account
(name "raptor")
(comment "Raptor")
(group "users")
(home-directory "/home/raptor")
(supplementary-groups
'("wheel" "netdev" "audio" "video")))
(user-account
(name "sidonia")
(comment "Sidonia")
(group "users")
(home-directory "/home/sidonia")
(supplementary-groups
'("netdev" "audio" "video")))
%base-user-accounts))
(packages
(append
(list (specification->package "nss-certs"))
%base-packages))
(services
(append
(list (service xfce-desktop-service-type)
(service gnome-desktop-service-type)
(service openssh-service-type)
(service tor-service-type)
(service cups-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout))))
%desktop-services))
(bootloader
(bootloader-configuration
(bootloader grub-efi-bootloader)
(targets (list "/boot/efi"))
(keyboard-layout keyboard-layout)))
(initrd-modules
(append
'("mmc_block" "sdhci_pci")
%base-initrd-modules))
(mapped-devices
(list (mapped-device
(source
(uuid "221b74ac-f047-4290-ad24-6f779f54f299"))
(target "crypthome-sidonia")
(type luks-device-mapping))
(mapped-device
(source
(uuid "cc3664df-fe96-44e8-b23a-70ee58ff4d1c"))
(target "crypthome-raptor")
(type luks-device-mapping))
(mapped-device
(source
(uuid "2d507235-a6ac-43e3-a4f6-f16bdfebd2fd"))
(target "cryptroot")
(type luks-device-mapping))))
(file-systems
(cons* (file-system
(mount-point "/")
(device "/dev/mapper/cryptroot")
(type "btrfs")
(dependencies mapped-devices))
(file-system
(mount-point "/boot/efi")
(device (uuid "C606-DE41" 'fat32))
(type "vfat"))
%base-file-systems)))

View File

@ -0,0 +1 @@
For systems that are not assigned in any network

View File

@ -1,7 +1,12 @@
;;; Fallback system build
;;; used to fallback to a working system until the presented configuration is finished
;; SECURITY(Krey): Use `linux-libre-lts` kernel instead of the master which is insane
(use-modules (gnu))
(use-modules (gnu packages certs))
(use-modules (gnu packages docker))
(use-modules (gnu services docker))
(use-service-modules
cups
desktop
@ -20,17 +25,21 @@
(group "users")
(home-directory "/home/kreyren")
(supplementary-groups
'("wheel" "netdev" "audio" "video")))
%base-user-accounts))
(packages
(append
(list (specification->package "nss-certs"))
%base-packages))
'("wheel" "netdev" "audio" "video" "docker")))
%base-user-accounts))
(packages (append (list nss-certs docker) %base-packages))
;(packages (append (map "nss-certs" "docker") %base-packages))
;(packages
;(append
;(list (specification->package "nss-certs"))
;%base-packages))
(services
(append
(list (service xfce-desktop-service-type)
(service openssh-service-type)
(service tor-service-type)
(service docker-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout))))

View File

@ -3,7 +3,7 @@
(operating-system
(host-name "guix")
(timezone "UTC")
(timezone "Etc/UTC")
(locale "en_US.utf8")
(keyboard-layout (keyboard-layout "us" "altgr-intl"))
@ -34,4 +34,4 @@
(services (append (list
(service openssh-service-type))
%desktop-services))
%desktop-services))

View File

@ -0,0 +1,37 @@
;;; # Minimal GUIX
;;; configuration used for development and testing
(operating-system
(host-name "guix")
(timezone "UTC")
(locale "en_US.utf8")
(keyboard-layout (keyboard-layout "us" "altgr-intl"))
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(target "/dev/sda")
(timeout 10))
(file-systems (append
(list (file-system
(mount-point "/")
(device (file-system-label "GUIX"))
(type "btrfs"))
%base-file-systems))
(users (cons
(user-account
(name "guix")
(group "users")
(password "guix")
(supplementary-groups '(
"wheel")))
%base-user-accounts))
(packages (append (list
nss-certs)
%base-packages))
(services (append (list
(service openssh-service-type))
%desktop-services))

View File

@ -1,54 +1,74 @@
;;; All Rights Reserved (C) Jacob Hrbek <rsa4096/0x31AE4020956E0A9A> in 29/10/2021-EU 21:27:26 UTC
;;;@ All Rights Reserved (C) Jacob Hrbek <https://keys.openpgp.org/search?q=kreyren%40rixotstudio.cz> in 29/10/2021-EU 21:27:26 UTC
;; This file is expected to be loaded e.g. `(load path/to/file)` in the file passed to `guix system reconfigure` to configure the user account. It is important that this file is kept independent from the implementation
;;; # Kreyren
;;; The user account of RiXotStudio's Headmaster
;;; REPRODUCIBILITY CHECKLIST
;;; - [ ] IceCat
;;; - [ ] Extensions
;;; - [ ] DarkReader
;;; - [ ] Ublock origin
;;; - [ ] Decentraleyes
;;; - [ ] LocalCND
;;; - [ ] SponsorBlock
;;; - [ ] Don't track me Google
;;; - [ ] I don't care about cookies
;;; - [ ] ClearURLs
;;; - [ ] NoScript
;;; - [ ] Forget Me Not
;;; - [ ] Metastream Remote
;;; - [ ] Read Aloud
;;; - [ ] KeepAssXC
;;; - [ ] Theme: Dark
;;; - [ ] Privacy & Security > Delete cookies and site data when IceCat is closed
;;; - [ ] Privacy & Security > History > Always use private browsing mode
;;; - [ ] Set SOCKS5 proxy on 9050 with deployed tor
;;; - [ ] Alacritty
;;; - [ ] XFCE4
;;; - [ ] Wallpaper: Solid Black Color
;;; - [ ] Window Manager style: Daloa
;;; - [ ] Focus follows mouse
;;; - [ ] Keybinds
;;; - [ ] Super_L + Enter = exo-open --launch TerminalEmulator
;;; - [ ] Super_L + Key_T = exo-open --launch WebBrowser
;;; - [ ] Super_L + Key_H = Hide focused window
;;; - [ ] Super_L + Key_D = dmenu_run
;;; - [ ] Super_L + Key_L = xflock4
;;; - [ ] Alt_L + Shift_L + PrintScreen = flameshot gui
;;; - [ ] KeepAssXC
;;; - [ ] Configured to open Kreyren.kdbx by default
;;; - [ ] Enable browser integration
;;; - [ ] dmenu
;;; - [ ] Nextcloud
;;; - [ ] Credentials pre-set to open on user login and start sync
;;; - [ ] Flameshot
;;; - [ ] Sync all required dirs
;;; - [ ] Pulseaudio
;;; - [ ] Set 'load-module module-echo-cancel' to do active noise filtering
;;; - [ ] Vim
;;; - [ ] Tor
;;; - [ ] element-desktop
;;; - [ ] htop
;;; - [ ] xclip
;;; - [ ] IceCat
;;; - [ ] Extensions
;;; - [ ] DarkReader
;;; - [ ] Ublock origin
;;; - [ ] Decentraleyes
;;; - [ ] Privacy Redirect
;;; - [ ] LocalCND
;;; - [ ] SponsorBlock
;;; - [ ] Don't track me Google
;;; - [ ] I don't care about cookies
;;; - [ ] ClearURLs
;;; - [ ] NoScript
;;; - [ ] Forget Me Not
;;; - [ ] Metastream Remote
;;; - [ ] Read Aloud
;;; - [ ] KeepAssXC
;;; - [ ] Video Speed Controller
;;; - [ ] Configuration
;;; - [ ] Theme: Dark
;;; - [ ] Privacy & Security > Delete cookies and site data when IceCat is closed
;;; - [ ] Privacy & Security > History > Always use private browsing mode
;;; - [ ] Set SOCKS5 proxy on 9050 with deployed tor
;;; - [ ] Alacritty
;;; - [ ] XFCE4
;;; - [ ] Wallpaper: Solid Black Color
;;; - [ ] Window Manager style: Daloa
;;; - [ ] Focus follows mouse
;;; - [ ] Keybinds
;;; - [ ] Super_L + Enter = exo-open --launch TerminalEmulator
;;; - [ ] Super_L + Key_T = exo-open --launch WebBrowser
;;; - [ ] Super_L + Key_H = Hide focused window
;;; - [ ] Super_L + Key_D = dmenu_run
;;; - [ ] Super_L + Key_L = xflock4
;;; - [ ] Alt_L + Shift_L + PrintScreen = flameshot gui
;;; - [ ] Audio mute = pactl set-sink-mute @DEFAULT_SINK@ toggle
;;; - [ ] Audio raise volume = pactl set-sink-volume @DEFAULT_SINK@ +2.5%
;;; - [ ] Audio lower volume = pactl set-sink-volume @DEFAULT_SINK@ -2.5%
;;; - [ ] KeepAssXC
;;; - [ ] Configured to open Kreyren.kdbx by default
;;; - [ ] Enable browser integration
;;; - [ ] Conky
;;; - [ ] Configure
;;; - [ ] dmenu
;;; - [ ] Nextcloud
;;; - [ ] Credentials pre-set to open on user login and start sync
;;; - [ ] Flameshot
;;; - [ ] Sync all required dirs
;;; - [ ] Pulseaudio
;;; - [ ] Set 'load-module module-echo-cancel' to do active noise filtering
;;; - [ ] Vim
;;; - [ ] Tor
;;; - [ ] TorSOCKS
;;; - [ ] Matrix client
;;; - [ ] element-desktop?
;;; - [ ] htop
;;; - [ ] xclip
;;; - [ ] GnuPG
;;; - [ ] pinentry-tty
;;; - [ ] vlc
;;; - [ ] Configuration
;;; - [ ] Use tor for remotes
;;; - [ ] qbittorrent
;;; - [ ] Get search engines
;; When this file is `(load)`-ed set user kreyren
(operating-system (users (cons* (user-account

View File

@ -1,44 +0,0 @@
;;; All Rights Reserved (C) Jacob Hrbek <rsa4096/0x31AE4020956E0A9A> in 29/10/2021-EU 21:27:26 UTC
;;; The user account of RiXotStudio's Headmaster
;;; REPRODUCIBILITY CHECKLIST
;;; - [ ] IceCat
;;; - [ ] Extension: DarkReader
;;; - [ ] Theme: Dark
;;; - [ ] Alacritty
;;; - [ ] XFCE4
;;; - [ ] Wallpaper: Solid Black Color
;;; - [ ] Window Manager style: Daloa
;;; - [ ] Focus follows mouse
;;; - [ ] Keybinds
;;; - [ ] Super_L + Enter = exo-open --launch TerminalEmulator
;;; - [ ] Super_L + Key_T = exo-open --launch WebBrowser
;;; - [ ] Super_L + Key_H = Hide focused window
;;; - [ ] Super_L + Key_D = dmenu_run
;;; - [ ] Super_L + Key_L = xflock4
;;; - [ ] Alt_L + Shift_L + PrintScreen = flameshot gui
;;; - [ ] KeepAssXC
;;; - [ ] Configured to open Kreyren.kdbx by default
;;; - [ ] dmenu
;;; - [ ] Nextcloud
;;; - [ ] Credentials pre-set to open on user login and start sync
;;; - [ ] Flameshot
;;; - [ ] Sync all required dirs
;;; - [ ] Pulseaudio
;;; - [ ] Set 'load-module module-echo-cancel' to do active noise filtering
(operating-system (users (cons* (user-account
(name "kreyren")
(comment "Jacob Hrbek")
(group "users")
(shell (file-append bash "/bin/bash"))
;; DND(Krey): Figure out how to do the password
(password (crypt "InitialPassword!" "$6$abc"))
(supplementary-groups '(
"wheel"
"netdev"
"audio"
"video"))))))
;; DND(Krey): Handle SSH access

62
src2/systems/leonid.scm Normal file
View File

@ -0,0 +1,62 @@
;;; All Rights Reserved (C) Jacob Hrbek <rsa4096/0x31AE4020956E0A9A> in 29/10/2021-EU 21:27:26 UTC
;;; TODO(Krey): Release under FLOSS once finished
;;; This file defines a configuration for the Leonid system
;;; Expected:
;;; - [ ] XFCE4
;;; - [ ] SSH
;;; - [ ] SSH+TOR
;;; - [ ] Bind9
;;; - [ ] Docker
;;; - [ ] Tor Private Bridge
;;; - [ ] Xen
(use-service-modules
cups
desktop
networking
ssh
xorg)
(operating-system
(host-name "leonid")
(timezone "Europe/Prague")
(locale "en_US.utf8")
(keyboard-layout (keyboard-layout "us"))
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(targets "/dev/sda")
;; SECURITY(Krey): Our bootloader is encrypted so we can allow timeout higher than 0
(timeout 5)
(keyboard-layout keyboard-layout)))
(mapped-devices
(list (mapped-device
(source (uuid "1fe117ac-fe47-4eb3-a63b-b8a34dee4ea8"))
(target "cryptroot")
(type luks-device-mapping))))
(file-systems (cons* (file-system
(mount-point "/")
(device "/dev/mapper/cryptroot")
(type "btrfs")
(dependencies mapped-devices))
%base-file-systems))
(users (append my-users %base-users))
(packages
(append
(list (specification->package "nss-certs"))
%base-packages))
(services
(append
(list (service xfce-desktop-service-type)
(service openssh-service-type)
(service tor-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout))))
%desktop-services)))

19
test
View File

@ -1,19 +0,0 @@
;;; All Rights Reserved (C) Jacob Hrbek <rsa4096/0x31AE4020956E0A9A> in 29/10/2021-EU 21:27:26 UTC
;;; TODO(Krey): Release under FLOSS once finished
;;; This file is the gateway in the system managing solution
(use-modules (gnu))
;; FIXME(Krey): Process DOMAIN
;; FIXME(Krey): getenv returns #f if it's variable is unassigned.. i don't know how to check for false
;(if (false? (getenv "HOSTNAME"))
; (throw 1 "Environment variable 'HOSTNAME' is not set, unable to apply sufficient configuration"))
;(define system-hostname (getenv "HOSTNAME"))
(load "domains/rixotstudio.cz/default.scm")
(load "users/kreyren.scm")
(display "Finished")(newline)

View File

@ -1,150 +0,0 @@
{
"folders": [
{
"path": "."
},
],
"extensions": {
"recommendations": [
"aaron-bond.better-comments",
"2gua.rainbow-brackets",
"streetsidesoftware.code-spell-checker",
"tamasfe.even-better-toml",
"markwylde.vscode-filesize",
"eamodio.gitlens",
"oderwat.indent-rainbow",
"formulahendry.code-runner",
"rubymaniac.vscode-direnv",
"huka.blogging-tool",
"jnoortheen.nix-ide",
"cweijan.vscode-office",
"luxcium.pop-n-lock-theme-vscode",
"stephen-riley.regexworkbench",
"medo64.render-crlf",
"gruntfuggly.todo-tree",
"yzhang.markdown-all-in-one",
// Used to work with guile files
"rebornix.scheme",
// Docker-relevant
"exiasr.hadolint",
"ms-azuretools.vscode-docker"
]
},
"settings": {
// Enable liguratures
"editor.fontLigatures": true,
"editor.fontFamily": "'Fira Code'",
"terminal.integrated.fontFamily": "'Fira Code'",
"[jsonc]": {
"editor.tabSize": 2,
"editor.renderWhitespace": "all",
},
"[rust]": {
"editor.tabSize": 2,
"editor.insertSpaces": false,
"editor.wordWrap": "on",
"editor.renderWhitespace": "all",
},
"[scheme]": {
"editor.tabSize": 2,
"editor.insertSpaces": false,
"editor.wordWrap": "on",
"editor.renderWhitespace": "all",
},
"[nix]": {
"editor.tabSize": 2,
"editor.insertSpaces": false,
"editor.wordWrap": "on",
"editor.renderWhitespace": "all",
},
"[shellscript]": {
"editor.tabSize": 2,
"editor.insertSpaces": false,
"editor.wordWrap": "on",
"editor.renderWhitespace": "all",
},
// cSpell
"cSpell.diagnosticLevel": "Error",
"cSpell.allowCompoundWords": true,
"cSpell.flagWords": [
// DO
"kreyen",
// NOT
"kyren",
// MANGLE
"keyren",
// MY
"keren",
// NAME
"kreyn",
],
"cSpell.ignoreWords": [
"Krey",
"Hrbek",
"kreyren",
"FSFE",
"Cydia"
],
// Task tree
"todo-tree.general.tags": [
"FIXME",
"TODO",
"DNM", // Do Not Merge
"DNC", // Do Not Contribute
"DNR" // Do Not Release
],
// NOTE: Icons has to be valid codicons (https://microsoft.github.io/vscode-codicons/dist/codicon.html)
"todo-tree.highlights.customHighlight": {
"FIXME": {
"foreground": "orange",
"icon": "report",
"fontWeight": "bold"
},
"TODO": {
"foreground": "turquoise",
"icon": "tasklist",
"fontWeight": "bold"
},
"DOCS": {
"foreground:": "blue",
"icon": "repo",
"fontWeight": "bold"
},
"DNM": {
"foreground": "red",
"icon": "alert",
"fontWeight": "bold"
},
"DNR": {
"foreground": "red",
"icon": "alert",
"fontWeight": "bold"
},
"DNC": {
"foreground": "red",
"icon": "alert",
"fontWeight": "bold"
}
},
"todo-tree.regex.regex": "($TAGS)((\\-.*|)\\(.*\\)):",
// Code-eol
"code-eol.highlightExtraWhitespace": true,
"code-eol.newlineCharacter": "↵",
"code-eol.crlfCharacter": "↓",
"shellcheck.run": "onSave",
"editor.wordWrap": "on",
"editor.mouseWheelZoom": true,
// To Be Sorted
"cSpell.words": [
"favicon"
],
},
}