diff --git a/guix/channels-lock.scm b/guix-config/channels-lock.scm similarity index 86% rename from guix/channels-lock.scm rename to guix-config/channels-lock.scm index 2cd0779..fc6f96c 100644 --- a/guix/channels-lock.scm +++ b/guix-config/channels-lock.scm @@ -3,7 +3,7 @@ (url "https://git.guix.gnu.org/guix.git") (branch "master") (commit - "97e9fad7d2b9458f7735a056843c46542651075b") + "47df71794f7ee9fc09398382feac12a5d39e6ddd") (introduction (make-channel-introduction "9edb3f66fd807b096b48283debdcddccfea34bad" diff --git a/guix-config/channels.scm b/guix-config/channels.scm new file mode 100644 index 0000000..a1ed13b --- /dev/null +++ b/guix-config/channels.scm @@ -0,0 +1,9 @@ +(list (channel + (name 'guix) + (url "https://git.guix.gnu.org/guix.git") + (branch "master") + (introduction + (make-channel-introduction + "9edb3f66fd807b096b48283debdcddccfea34bad" + (openpgp-fingerprint + "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) diff --git a/guix-config/home/workstation.scm b/guix-config/home/workstation.scm new file mode 100644 index 0000000..2f44ae6 --- /dev/null +++ b/guix-config/home/workstation.scm @@ -0,0 +1,78 @@ +(define-module (guix-config home workstation) + #:use-module (gnu home) + #:use-module (gnu packages emacs) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages mail) + #:use-module (gnu packages messaging) + #:use-module (gnu packages sync) + #:use-module (gnu packages pdf) + #:use-module (gnu packages gnome) + #:use-module (gnu packages wm) + #:use-module (gnu packages terminals) + #:use-module (gnu packages xorg) + #:use-module (gnu packages linux) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages rust-apps) + #:use-module (gnu packages qt) + #:use-module (gnu packages version-control) + #:use-module (gnu packages librewolf) + #:use-module (gnu packages audio) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages admin) + #:use-module (gnu packages fonts) + #:use-module (gnu services) + #:use-module (guix gexp) + #:use-module (gnu home services shells) + #:use-module (gnu home services dotfiles) + #:use-module (gnu home services sound) + #:use-module (gnu home services desktop) + #:use-module (gnu home services niri)) + +(home-environment + ;; Below is the list of packages that will show up in your + ;; Home profile, under ~/.guix-home/profile. + (packages (list emacs-pgtk + font-iosevka + git + kitty + btop + fastfetch + librewolf + icecat + nheko + ;birdtray + nextcloud-client + nautilus + xournalpp + ripgrep + quickshell + cava + wl-clipboard + brightnessctl + qtmultimedia + accountsservice + matugen + wayland + xwayland-satellite + qtwayland)) + + ;; Below is the list of Home services. To search for available + ;; services, run 'guix home search KEYWORD' in a terminal. + (services + (append (list (service home-niri-service-type) + (service home-pipewire-service-type) + (service home-dbus-service-type) + (service home-bash-service-type + (home-bash-configuration + (environment-variables '(("PS1" . "\\[\\e[1;32m\\]\\u \\[\\e[1;34m\\]\\w \\[\\e[0m\\] ") + ("EDITOR" . "emacsclient -c"))) + (aliases '(("gs" . "git status") + ("system-reconfigure" . "sudo -E guix time-machine -C ~/dotfiles/guix-config/channels-lock.scm -- system -L ~/dotfiles reconfigure ~/dotfiles/guix-config/system/$(hostname).scm") +("home-reconfigure" . "guix time-machine -C ~/dotfiles/guix-config/channels-lock.scm -- home -L ~/dotfiles reconfigure ~/dotfiles/guix-config/home/workstation.scm") +("guix-pull" . "guix pull --channels=$HOME/dotfiles/guix-config/channels.scm; guix describe --format=channels > $HOME/dotfiles/guix-config/channels-lock.scm") +("reconfigure" . "system-reconfigure && home-reconfigure") +("guix-full-upgrade" . "guix-pull && reconfigure"))))) + (service home-dotfiles-service-type + (home-dotfiles-configuration + (directories '("../../files"))))) + %base-home-services))) diff --git a/guix-config/system/base-system.scm b/guix-config/system/base-system.scm new file mode 100644 index 0000000..5eca44f --- /dev/null +++ b/guix-config/system/base-system.scm @@ -0,0 +1,55 @@ +(define-module (guix-config system base-system) + #:use-module (gnu) + #:use-module (guix) + #:export (base-system)) + +(use-service-modules cups desktop networking ssh xorg pm) + +(define %my-desktop-services + (modify-services %desktop-services + (delete gdm-service-type))) + +(define base-system + (operating-system + (locale "ru_RU.utf8") + (timezone "Europe/Berlin") + (keyboard-layout (keyboard-layout "eu,ru" + #:options '("grp:alt_shift_toggle"))) + (host-name "base-system") + + (users (cons* (user-account + (name "kylekrein") + (comment "Aleksandr Lebedev") + (group "users") + (home-directory "/home/kylekrein") + (supplementary-groups '("wheel" "netdev" "audio" "video"))) + %base-user-accounts)) + + ;; 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 gnome-keyring-service-type) + (service bluetooth-service-type) + (service power-profiles-daemon-service-type) + (set-xorg-configuration + (xorg-configuration (keyboard-layout keyboard-layout)))) + + ;; This is the default list of services we + ;; are appending to. + %my-desktop-services)) + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (targets '("/dev/vda")) + (terminal-outputs '(console)) + (keyboard-layout keyboard-layout))) + + (file-systems (cons (file-system + (mount-point "/") + (device "/dev/vda1") + (type "ext4")) + %base-file-systems)))) diff --git a/guix-config/system/iuseguixbtw.scm b/guix-config/system/iuseguixbtw.scm new file mode 100644 index 0000000..b4884dc --- /dev/null +++ b/guix-config/system/iuseguixbtw.scm @@ -0,0 +1,29 @@ +(define-module (guix-config system iuseguixbtw) + #:use-module (gnu) + #:use-module (guix-config system base-system)) + +(operating-system + (inherit base-system) + (host-name "iuseguixbtw") + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets (list "/boot/efi")))) + (mapped-devices (list (mapped-device + (source (uuid + "e6686154-def0-41d3-a724-c89a36a5b3ed")) + (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 "ext4") + (dependencies mapped-devices)) + (file-system + (mount-point "/boot/efi") + (device (uuid "B677-E030" + 'fat32)) + (type "vfat")) %base-file-systems))) diff --git a/guix/channels.scm b/guix/channels.scm deleted file mode 100644 index ae76007..0000000 --- a/guix/channels.scm +++ /dev/null @@ -1,4 +0,0 @@ -(cons (channel - (name 'quickshell) - (url "https://git.outfoxxed.me/quickshell/quickshell")) - %default-channels) diff --git a/guix/home/kylekrein/home-configuration.scm b/guix/home/kylekrein/home-configuration.scm deleted file mode 100644 index 77961e1..0000000 --- a/guix/home/kylekrein/home-configuration.scm +++ /dev/null @@ -1,76 +0,0 @@ -;; This "home-environment" file can be passed to 'guix home reconfigure' -;; to reproduce the content of your profile. This is "symbolic": it only -;; specifies package names. To reproduce the exact same profile, you also -;; need to capture the channels being used, as returned by "guix describe". -;; See the "Replicating Guix" section in the manual. - -(use-modules (gnu home) - (gnu packages emacs) - (gnu packages gnuzilla) - (gnu packages mail) - (gnu packages messaging) - (gnu packages sync) - (gnu packages pdf) - (gnu packages gnome) - (gnu packages wm) - (gnu packages terminals) - (gnu packages xorg) - (gnu packages linux) - (gnu packages freedesktop) - (gnu packages rust-apps) - (gnu packages qt) - (gnu packages version-control) - (gnu packages librewolf) - (gnu packages audio) - (gnu packages xdisorg) - (gnu packages admin) - (gnu services) - (guix gexp) - (gnu home services shells) - (gnu home services dotfiles) - (gnu home services sound) - (gnu home services desktop) - (gnu home services niri)) - -(home-environment - ;; Below is the list of packages that will show up in your - ;; Home profile, under ~/.guix-home/profile. - (packages (list emacs-pgtk - git - kitty - btop - fastfetch - librewolf - icecat - nheko - ;birdtray - nextcloud-client - nautilus - xournalpp - ripgrep - quickshell - cava - wl-clipboard - brightnessctl - qtmultimedia - accountsservice - matugen - wayland - xwayland-satellite - qtwayland)) - - ;; Below is the list of Home services. To search for available - ;; services, run 'guix home search KEYWORD' in a terminal. - (services - (append (list (service home-niri-service-type) - (service home-pipewire-service-type) - (service home-dbus-service-type) - (service home-bash-service-type - (home-bash-configuration - (environment-variables '(("PS1" . "\\[\\e[1;32m\\]\\u \\[\\e[1;34m\\]\\w \\[\\e[0m\\] ") - ("EDITOR" . "emacsclient -c"))) - (aliases '(("gs" . "git status"))))) - (service home-dotfiles-service-type - (home-dotfiles-configuration - (directories '("../../../files"))))) - %base-home-services))) diff --git a/guix/home/kylekrein/home-configuration.scm~ b/guix/home/kylekrein/home-configuration.scm~ deleted file mode 100644 index 7bb3d75..0000000 --- a/guix/home/kylekrein/home-configuration.scm~ +++ /dev/null @@ -1,30 +0,0 @@ -;; This "home-environment" file can be passed to 'guix home reconfigure' -;; to reproduce the content of your profile. This is "symbolic": it only -;; specifies package names. To reproduce the exact same profile, you also -;; need to capture the channels being used, as returned by "guix describe". -;; See the "Replicating Guix" section in the manual. - -(use-modules (gnu home) - (gnu packages emacs) - (gnu packages version-control) - (gnu services) - (guix gexp) - (gnu home services shells) - (gnu home services niri)) - -(home-environment - ;; Below is the list of packages that will show up in your - ;; Home profile, under ~/.guix-home/profile. - (packages (list emacs-pgtk - git)) - - ;; Below is the list of Home services. To search for available - ;; services, run 'guix home search KEYWORD' in a terminal. - (services - (append (list (service home-niri-service-type) - (service home-bash-service-type - (home-bash-configuration - (bash-profile (list (local-file - "./.bash_profile" - "bash_profile")))))) - %base-home-services))) diff --git a/guix/home/kylekrein/niri-home-test.scm b/guix/home/kylekrein/niri-home-test.scm deleted file mode 100644 index 2cc84bb..0000000 --- a/guix/home/kylekrein/niri-home-test.scm +++ /dev/null @@ -1,63 +0,0 @@ -;; This "home-environment" file can be passed to 'guix home reconfigure' -;; to reproduce the content of your profile. This is "symbolic": it only -;; specifies package names. To reproduce the exact same profile, you also -;; need to capture the channels being used, as returned by "guix describe". -;; See the "Replicating Guix" section in the manual. - -(use-modules (gnu home) - (gnu packages emacs) - (gnu packages wm) - (gnu packages terminals) - (gnu packages xorg) - (gnu packages linux) - (gnu packages freedesktop) - (gnu packages rust-apps) - (gnu packages qt) - (gnu packages version-control) - (gnu packages librewolf) - (gnu packages audio) - (gnu packages xdisorg) - (gnu packages admin) - (gnu services) - (guix gexp) - (gnu home services shells) - (gnu home services dotfiles) - (gnu home services sound) - (gnu home services desktop) - (gnu home services niri)) - -(home-environment - ;; Below is the list of packages that will show up in your - ;; Home profile, under ~/.guix-home/profile. - (packages (list emacs-pgtk - git - kitty - btop - fastfetch - librewolf - quickshell - cava - wl-clipboard - brightnessctl - qtmultimedia - accountsservice - matugen - wayland - xwayland-satellite - qtwayland)) - - ;; Below is the list of Home services. To search for available - ;; services, run 'guix home search KEYWORD' in a terminal. - (services - (append (list (service home-niri-service-type) - (service home-pipewire-service-type) - (service home-dbus-service-type) - (service home-bash-service-type - (home-bash-configuration - (environment-variables '(("PS1" . "\\[\\e[1;32m\\]\\u \\[\\e[1;34m\\]\\w \\[\\e[0m\\] ") - ("EDITOR" . "emacsclient"))) - (aliases '(("gs" . "git status"))))) - (service home-dotfiles-service-type - (home-dotfiles-configuration - (directories '("../../../files"))))) - %base-home-services))) diff --git a/guix/system/config.scm b/guix/system/config.scm deleted file mode 100644 index f50155c..0000000 --- a/guix/system/config.scm +++ /dev/null @@ -1,85 +0,0 @@ -;; 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. -(use-modules (gnu)) -(use-service-modules cups desktop networking ssh xorg pm) -(use-package-modules emacs-xyz wm xorg) - -(define %my-desktop-services - (modify-services %desktop-services - (gdm-service-type config => - (gdm-configuration - (inherit config) - (wayland? #t))))) - -(operating-system - (locale "ru_RU.utf8") - (timezone "Europe/Berlin") - (keyboard-layout (keyboard-layout "eu,ru" - #:options '("grp:alt_shift_toggle"))) - (host-name "iuseguixbtw") - - ;; Учетные записи пользователей ('root' не указывается). - (users (cons* (user-account - (name "kylekrein") - (comment "Aleksandr Lebedev") - (group "users") - (home-directory "/home/kylekrein") - (supplementary-groups '("wheel" "netdev" "audio" "video"))) - %base-user-accounts)) - - (packages (append (list - niri - ;emacs emacs-exwm emacs-desktop-environment - ) - %base-packages)) - - ;; Below is the list of system services. To search for available - ;; services, run 'guix system search KEYWORD' in a terminal. - (services - (append (list ;(service gnome-desktop-service-type) - - ;; To configure OpenSSH, pass an 'openssh-configuration' - ;; record as a second argument to 'service' below. - (service openssh-service-type) - (service cups-service-type) - (service gnome-keyring-service-type) - (service bluetooth-service-type) - (service power-profiles-daemon-service-type) - (set-xorg-configuration - (xorg-configuration (keyboard-layout keyboard-layout)))) - - ;; This is the default list of services we - ;; are appending to. - %my-desktop-services)) - (bootloader (bootloader-configuration - (bootloader grub-efi-bootloader) - (targets (list "/boot/efi")) - (keyboard-layout keyboard-layout))) - (mapped-devices (list (mapped-device - (source (uuid - "e6686154-def0-41d3-a724-c89a36a5b3ed")) - (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 "ext4") - (dependencies mapped-devices)) - (file-system - (mount-point "/boot/efi") - (device (uuid "B677-E030" - 'fat32)) - (type "vfat")) %base-file-systems)))