;; -*- mode: scheme; -*-
;; This is an operating system configuration template
;; for a "desktop" setup with GNOME and Xfce.

(use-modules (gnu) 
             (gnu system nss)
             (guix utils)
             (nongnu packages linux)
             (nongnu system linux-initrd)
	     (srfi srfi-1))
(use-service-modules desktop xorg dns networking)
(use-package-modules bootloaders certs shells ssh version-control emacs vim wm freedesktop xorg fontutils)

(operating-system
  (host-name "apnx")
  (timezone "Europe/Ljubljana")
  (locale "sl_SI.utf8")

  ;; Use the UEFI variant of GRUB with the EFI System
  ;; Partition mounted on /boot/efi.
  (bootloader (bootloader-configuration
                (bootloader grub-efi-bootloader)
                (targets '("/boot/efi"))))

  (kernel linux)
  (initrd microcode-initrd)
  (firmware (list linux-firmware))

  (file-systems (cons* (file-system
                         (device "/dev/sda3")
                         (mount-point "/")
                         (type "btrfs")
                         (options "compress"))
                        (file-system
                         (device "/dev/sda2")
                         (mount-point "/boot/efi")
                         (type "vfat"))
                        %base-file-systems))

  (users (cons* (user-account
                  (name "yuri")
                  (comment "Yuri")
                  (group "users")
                  (supplementary-groups '("wheel" "netdev"
                                          "audio" "video"
                                          "dialout" "users"))
                  (home-directory "/home/g1smo"))
               %base-user-accounts))

  (packages (append (list (specification->package "i3-wm")
                          (specification->package "i3status")
                          (specification->package "dmenu")
                          (specification->package "st")
                          (specification->package "nss-certs")
                          ;; sistem
                          (specification->package "lvm2")
                          ;; WM zadeve
                          (specification->package "sway")
                          (specification->package "swaybg")
                          (specification->package "rofi")
                          (specification->package "i3-autotiling")
                          (specification->package "waybar")
                          (specification->package "gammastep")
                          (specification->package "kitty")
                          (specification->package "eog")
                          (specification->package "nautilus")
                          ;; Urejevalniki teksta
                          (specification->package "emacs")
                          (specification->package "vim")
                          ;; Razno
                          (sepcification->package "zsh")
                          (specification->package "git")
                          (specification->package "file"))
                    %base-packages))


  (services (cons* (service xfce-desktop-service-type)
                   (service gnome-desktop-service-type)
		   (service dnsmasq-service-type
			    (dnsmasq-configuration
			      (cache-size 1500)))
		   (service network-manager-service-type
			    (network-manager-configuration 
			      (dns "dnsmasq")))
		   (service pam-limits-service-type
		      (list 
			(pam-limits-entry "@audio" 'both 'rtprio 99) 
			(pam-limits-entry "@audio" 'both 'memlock 'unlimited)))

		   (remove 
		     (lambda (service)
		       (eq? network-manager-service-type (service-kind service))) 
		     %desktop-services)))

  (swap-devices (list (swap-space
                        (target (uuid
                                 "76019829-e8eb-477c-a08a-d2ccff3fcdd5")))))
  ;(mapped-devices (list (mapped-device
  ;                        (source (uuid
  ;                                 "52c83c72-c391-4a71-8405-897603f61363"))
  ;                        (target "gpnx-root")
  ;                        (type luks-device-mapping))
	;		(mapped-device
	;		  (source (uuid
	;			    "3020ad8b-ee01-49e2-8a46-3f66c902ef67"))
	;		  (target "dbn-home")
	;		  (type luks-device-mapping))
	;		(mapped-device
	;		  (source "dbn-vg")
	;		  (targets (list "home"))
	;		  (type lvm-device-mapping))
  ; ))

  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss)

  (file-systems (cons* (file-system
                         (mount-point "/")
                         (device "/dev/mapper/gpnx-root")
                         (type "ext4")
                         (dependencies mapped-devices))
		       (file-system
			 (mount-point "/boot")
			 (device (uuid "65689a28-4afb-4c40-9ff2-2a0df1168a86"))
			 (type "ext2"))
                       (file-system
                         (mount-point "/boot/efi")
                         (device (uuid "3F44-75AB"
                                       'fat16))
                         (type "vfat"))
		      ;(file-system
			 ;(mount-point "/home/g1smo/dbn")
			 ;(device "/dev/mapper/dbn-home")
			 ;(type "ext4")
			 ;(dependencies mapped-devices))
		       %base-file-systems)))
