From c9b8c7c140d1ade07b39f666a68a466e0b64669e Mon Sep 17 00:00:00 2001 From: Aleksandr Lebedev Date: Wed, 22 Apr 2026 20:47:57 +0200 Subject: [PATCH] fleetcarrier guix --- guix/.config/guix/channels.scm | 9 ++ guix/.config/guix/config-fleetcarrier.scm | 107 ++++++++++++++++++++++ guix/.config/guix/home-fleetcarrier.scm | 101 ++++++++++++++++++++ guix/bin/home-reconfigure.sh | 2 + guix/bin/reconfigure.sh | 2 + 5 files changed, 221 insertions(+) create mode 100644 guix/.config/guix/channels.scm create mode 100644 guix/.config/guix/config-fleetcarrier.scm create mode 100644 guix/.config/guix/home-fleetcarrier.scm create mode 100755 guix/bin/home-reconfigure.sh create mode 100755 guix/bin/reconfigure.sh diff --git a/guix/.config/guix/channels.scm b/guix/.config/guix/channels.scm new file mode 100644 index 0000000..76fd4f5 --- /dev/null +++ b/guix/.config/guix/channels.scm @@ -0,0 +1,9 @@ +(cons* (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) + %default-channels) diff --git a/guix/.config/guix/config-fleetcarrier.scm b/guix/.config/guix/config-fleetcarrier.scm new file mode 100644 index 0000000..835e2c6 --- /dev/null +++ b/guix/.config/guix/config-fleetcarrier.scm @@ -0,0 +1,107 @@ +;; This is an operating system configuration generated +;; by the graphical installer. +;; +;; Once installation is complete, you can learn and modify +;; this file to tweak the system configuration, and pass it +;; to the 'guix system reconfigure' command to effect your +;; changes. + + +;; Indicate which modules to import to access the variables +;; used in this configuration. +(define-module (guix-system-config) + #:use-module (gnu) + #:use-module (nongnu packages linux) + #:use-module (nongnu services vpn) + #:use-module (nongnu system linux-initrd) + #:use-module (gnu packages wm) + #:use-module (gnu packages gnome) + #:use-module (nonguix transformations) +) + +(use-service-modules cups desktop networking ssh xorg) + +(define %pc-os (operating-system + (kernel linux) + (initrd microcode-initrd) + (firmware (list linux-firmware)) + (locale "ru_RU.utf8") + (timezone "Europe/Berlin") + (keyboard-layout (keyboard-layout "us")) + (host-name "fleetcarrier") + + ;; Учетные записи пользователей ('root' не указывается). + (users (cons* (user-account + (name "kylekrein") + (comment "Kylekrein") + (group "users") + (home-directory "/home/kylekrein") + (supplementary-groups '("wheel" "netdev" "audio" "video"))) + %base-user-accounts)) + + ;; Packages installed system-wide. Users can also install packages + ;; under their own account: use 'guix search KEYWORD' to search + ;; for packages and 'guix install PACKAGE' to install a package. + (packages (append (list (specification->package "emacs-pgtk") + (specification->package "niri") + (specification->package "git") + (specification->package "alacritty") + (specification->package + "dbus")) %base-packages)) + + ;; Below is the list of system services. To search for available + ;; services, run 'guix system search KEYWORD' in a terminal. + (services + (append (list + + ;; To configure OpenSSH, pass an 'openssh-configuration' + ;; record as a second argument to 'service' below. + (service openssh-service-type) + (service cups-service-type) + (service zerotier-service-type) + (service gnome-keyring-service-type) + (set-xorg-configuration + (xorg-configuration (keyboard-layout keyboard-layout)))) + + ;; This is the default list of services we + ;; are appending to. + (modify-services %desktop-services + (guix-service-type config => (guix-configuration + (inherit config) + (substitute-urls + (append (list "https://substitutes.nonguix.org") + %default-substitute-urls)) + (authorized-keys + (append (list (local-file "./signing-key.pub")) + %default-authorized-guix-keys)))) + (console-font-service-type config => + (map (lambda (tty) + (cons (car tty) + "LatGrkCyr-8x16")) + config))))) + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets (list "/boot/efi")) + (keyboard-layout keyboard-layout))) + (mapped-devices (list (mapped-device + (source (uuid + "ccc4cadf-cfcc-4b11-b8ea-8b5f13f2a1ee")) + (target "cryptroot") + (type luks-device-mapping)))) + + ;; The list of file systems that get "mounted". The unique + ;; file system identifiers there ("UUIDs") can be obtained + ;; by running 'blkid' in a terminal. + (file-systems (cons* (file-system + (mount-point "/") + (device "/dev/mapper/cryptroot") + (type "btrfs") + (dependencies mapped-devices)) + (file-system + (mount-point "/boot/efi") + (device (uuid "6048-0F0F" + 'fat16)) + (type "vfat")) %base-file-systems)))) + +((nonguix-transformation-nvidia) + %pc-os) diff --git a/guix/.config/guix/home-fleetcarrier.scm b/guix/.config/guix/home-fleetcarrier.scm new file mode 100644 index 0000000..df6844b --- /dev/null +++ b/guix/.config/guix/home-fleetcarrier.scm @@ -0,0 +1,101 @@ +(define-module (guix-home-config) + #:use-module (gnu home) + #:use-module (nongnu packages linux) + #:use-module (nongnu system linux-initrd) + #:use-module (gnu home services) + #:use-module (gnu home services shells) + #:use-module (gnu services) + #:use-module (gnu system shadow) + #:use-module (gnu packages librewolf) + #:use-module (gnu packages emacs) + #:use-module (gnu packages terminals) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages wm) + #:use-module (gnu packages audio) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xorg) + #:use-module (gnu packages monitoring) + #:use-module (gnu packages kde-utils) + #:use-module (gnu packages version-control) + #:use-module (gnu packages golang) + #:use-module (gnu packages rust-apps) + #:use-module (gnu packages qt) + #:use-module (gnu packages glib) + #:use-module (gnu packages linux) + #:use-module (gnu packages gnome) + #:use-module (gnu packages fonts) + #:use-module (gnu packages kde-plasma) + #:use-module (gnu packages package-management) + #:use-module (gnu packages kde-systemtools) + #:use-module (gnu home services sound) + #:use-module (gnu home services desktop) + #:use-module (gnu packages sync) + #:use-module (nongnu packages game-client) + #:use-module (gnu packages gtk) + #:use-module (gnu packages admin) + #:use-module (nongnu packages nvidia) + #:use-module (gnu packages pulseaudio) +) + +(define home-config + (home-environment + (services + (append + (list + ;; Uncomment the shell you wish to use for your user: + (service home-bash-service-type) + (service home-pipewire-service-type) + (service home-dbus-service-type) + ;(service home-fish-service-type) + ;(service home-zsh-service-type) + (simple-service 'home-packages home-profile-service-type + (map replace-mesa (list +;main apps +btop +steam-nvidia +dolphin +librewolf +emacs-pgtk +alacritty +git +ark +cliphist +quickshell +nextcloud-client +solaar +stow +pavucontrol +nautilus +;additional apps and dependencies +xdg-desktop-portal-gtk +xwayland-satellite +gtk +hicolor-icon-theme +breeze +font-adwaita +xdg-desktop-portal-gnome +flatpak +adwaita-icon-theme +qtwayland +cava +cliphist +wl-clipboard +dgop +accountsservice +matugen +`(,glib "bin") +brightnessctl +qtmultimedia +))) + + (service home-files-service-type + `((".guile" ,%default-dotguile) + (".Xdefaults" ,%default-xdefaults))) + + (service home-xdg-configuration-files-service-type + `(("gdb/gdbinit" ,%default-gdbinit) + ("nano/nanorc" ,%default-nanorc)))) + + %base-home-services)))) + +home-config diff --git a/guix/bin/home-reconfigure.sh b/guix/bin/home-reconfigure.sh new file mode 100755 index 0000000..19f6a72 --- /dev/null +++ b/guix/bin/home-reconfigure.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +guix home reconfigure ~/.config/guix/home-$(hostname).scm diff --git a/guix/bin/reconfigure.sh b/guix/bin/reconfigure.sh new file mode 100755 index 0000000..c5a5821 --- /dev/null +++ b/guix/bin/reconfigure.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +sudo -E guix system reconfigure ~/.config/guix/config-$(hostname).scm