(use-modules
  (gnu)
  (gnu system nss))
(use-package-modules
  certs
  linux
  wm)
(use-service-modules
  desktop
  networking
  xorg
  cups
  ssh
  dbus)
(operating-system
  (kernel linux-libre)
  (keyboard-layout (keyboard-layout "us" "altgr-intl"))
  (bootloader
    (bootloader-configuration
      (bootloader (bootloader
                    (inherit grub-bootloader)
                    (installer #~(const #t))))
      (keyboard-layout keyboard-layout)))
  (host-name "PC")
  (mapped-devices (list
                    (mapped-device
                      (source (uuid "e836ef6e-97a8-442b-a025-e81ab58bbc04"))
                      (target "fde")
                      (type luks-device-mapping))
                    (mapped-device
                      (source "matrix")
                      (targets (list "matrix-rootvol"
                                     "matrix-swapvol"))
                      (type lvm-device-mapping))))
  (file-systems (append (list
                          (file-system
                            (type "btrfs")
                            (mount-point "/")
                            (device (file-system-label "root"))
                            (flags '(no-atime))
                            (options "space_cache=v2")
                            (needed-for-boot? #t)
                            (dependencies mapped-devices)))
                        %base-file-systems))
  (swap-devices (list
                  (swap-space
                    (target (file-system-label "swap")))))
  (users (append (list
                   (user-account
                     (name "cobra")
                     (comment "Skylar \"The Cobra\" Widulski")
                     (group "users")
                     (supplementary-groups '("audio" "cdrom" "kvm" "lp" "netdev" "tape" "video" "wheel"))))
                 %base-user-accounts))
  (packages (append
              (map specification->package
                   (list "nss-certs"
                         "tor"
                         "vim"
                         "screen"
                         "lynx"
                         "curl"
                         "wget"
                         "net-tools"
                         "sway"
                         "waybar"
                         "swaylock"
                         "openssh"
                         "i2pd"
                         "dbus"
                         "cryptsetup"
                         "libdvdcss"
                         "libdvdread"
                         "gcc-toolchain"
                         "gcc"
                         "librsvg"
                         "json-c"
			 "libnotify"
			 "kicad"
			 "kicad-templates"
			 "kicad-symbols"
			 "kicad-packages3d"
			 "kicad-footprints"
			 "kicad-doc"
			 "freecad"
			 "mako"))
              (cons*
                %base-packages)))
  (timezone "America/New_York")
  (locale "en_US.utf8")
  (name-service-switch %mdns-host-lookup-nss)
  (services
    (cons*
      (service openssh-service-type)
      (service network-manager-service-type)
      (service wpa-supplicant-service-type)
      (service gpm-service-type)
      (service ntp-service-type)
      (service cups-service-type)
      (service elogind-service-type)
      (service dbus-root-service-type)
      (screen-locker-service swaylock)
      (service tor-service-type
               (tor-configuration
                 (config-file (plain-file "tor-config"
                                          "HTTPTunnelPort 127.0.0.1:9250"))))
      %base-services))
  (sudoers-file (local-file "sudoers")))
