mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2026-04-16 14:19:07 +02:00
Compare commits
16 commits
641a0cd84d
...
06ec1df09a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
06ec1df09a | ||
|
|
a921818915 | ||
|
|
ba1bba39b4 | ||
|
|
d7f27943a5 | ||
|
|
708d65d696 | ||
|
|
1ac888d583 | ||
|
|
c5c09b0358 | ||
|
|
c3060b2be9 | ||
|
|
d136a3069e | ||
|
|
6fb45a0200 | ||
|
|
90efa8e67f | ||
|
|
234a5f2a99 | ||
|
|
486f8b7732 | ||
|
|
1468f3d0fc | ||
|
|
e7d3def830 | ||
|
|
57d5ea065a |
184 changed files with 2579 additions and 2313 deletions
5
.github/README.md
vendored
5
.github/README.md
vendored
|
|
@ -122,13 +122,13 @@ Alternatively, to install this from any NixOS live ISO, run `nix run --experimen
|
||||||
### Services
|
### Services
|
||||||
|
|
||||||
| Topic | Program |
|
| Topic | Program |
|
||||||
|-----------------------|---------------------------------|
|
|-----------------------|---------------------------------------------------------------------------------------------------------------------|
|
||||||
|📖 **Books** | [Kavita](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/kavita.nix) |
|
|📖 **Books** | [Kavita](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/kavita.nix) |
|
||||||
|📼 **Videos** | [Jellyfin](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/jellyfin.nix) |
|
|📼 **Videos** | [Jellyfin](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/jellyfin.nix) |
|
||||||
|🎵 **Music** | [Navidrome](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/navidrome.nix) + [Spotifyd](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/spotifyd.nix) + [MPD](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/mpd.nix) |
|
|🎵 **Music** | [Navidrome](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/navidrome.nix) + [Spotifyd](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/spotifyd.nix) + [MPD](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/mpd.nix) |
|
||||||
|🗨️ **Messaging** | [Matrix](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/matrix.nix) |
|
|🗨️ **Messaging** | [Matrix](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/matrix.nix) |
|
||||||
|📁 **Filesharing** | [Nectcloud](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/nextcloud.nix) |
|
|📁 **Filesharing** | [Nectcloud](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/nextcloud.nix) |
|
||||||
|📷 **Photos** | [Immich](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/immich.nix) |
|
|🎞️ **Photos** | [Immich](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/immich.nix) |
|
||||||
|📄 **Documents** | [Paperless](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/paperless.nix) |
|
|📄 **Documents** | [Paperless](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/paperless.nix) |
|
||||||
|🔄 **File Sync** | [Syncthing](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/syncthing.nix) |
|
|🔄 **File Sync** | [Syncthing](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/syncthing.nix) |
|
||||||
|💾 **Backups** | [Restic](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/restic.nix) |
|
|💾 **Backups** | [Restic](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/restic.nix) |
|
||||||
|
|
@ -143,6 +143,7 @@ Alternatively, to install this from any NixOS live ISO, run `nix run --experimen
|
||||||
|📅 **CalDav/CardDav** | [Radicale](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/radicale.nix) |
|
|📅 **CalDav/CardDav** | [Radicale](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/radicale.nix) |
|
||||||
|↔️ **P2P Filesharing** | [Croc](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/croc.nix) |
|
|↔️ **P2P Filesharing** | [Croc](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/croc.nix) |
|
||||||
|✂️ **Paste Tool** | [Microbin](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/microbin.nix) |
|
|✂️ **Paste Tool** | [Microbin](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/microbin.nix) |
|
||||||
|
|📸 **Image Sharing** | [Slink](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/slink.nix) |
|
||||||
|🔗 **Link Shortener** | [Shlink](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/shlink.nix) |
|
|🔗 **Link Shortener** | [Shlink](https://github.com/Swarsel/.dotfiles/tree/main/modules/nixos/server/shlink.nix) |
|
||||||
|
|
||||||
### Hosts
|
### Hosts
|
||||||
|
|
|
||||||
2217
SwarselSystems.org
2217
SwarselSystems.org
File diff suppressed because it is too large
Load diff
|
|
@ -1,3 +1,4 @@
|
||||||
|
;; -*- lexical-binding: t; -*-
|
||||||
(defvar swarsel-file-name-handler-alist file-name-handler-alist)
|
(defvar swarsel-file-name-handler-alist file-name-handler-alist)
|
||||||
(defvar swarsel-vc-handled-backends vc-handled-backends)
|
(defvar swarsel-vc-handled-backends vc-handled-backends)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(defun swarsel/toggle-evil-state ()
|
(defun swarsel/toggle-evil-state ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (or (evil-emacs-state-p) (evil-insert-state-p))
|
(if (or (evil-emacs-state-p) (evil-insert-state-p))
|
||||||
|
|
@ -34,7 +36,7 @@
|
||||||
(insert (format "%s <%s>" (or from-user user-full-name) from-addr)))))))
|
(insert (format "%s <%s>" (or from-user user-full-name) from-addr)))))))
|
||||||
|
|
||||||
(defun swarsel/mu4e-restore-default ()
|
(defun swarsel/mu4e-restore-default ()
|
||||||
(setq user-mail-address (getenv "SWARSEL_SWARSEL_MAIL")
|
(setq user-mail-address (getenv "SWARSEL_MAIL4")
|
||||||
user-full-name (getenv "SWARSEL_FULLNAME")))
|
user-full-name (getenv "SWARSEL_FULLNAME")))
|
||||||
|
|
||||||
(defun swarsel/with-buffer-name-prompt-and-make-subdirs ()
|
(defun swarsel/with-buffer-name-prompt-and-make-subdirs ()
|
||||||
|
|
@ -1581,11 +1583,11 @@ create a new one."
|
||||||
:init
|
:init
|
||||||
;; set org-caldav-sync-initalization
|
;; set org-caldav-sync-initalization
|
||||||
(setq swarsel-caldav-synced 0)
|
(setq swarsel-caldav-synced 0)
|
||||||
(setq org-caldav-url "https://stash.swarsel.win/remote.php/dav/calendars/Swarsel")
|
;; (setq org-caldav-url "https://schedule.swarsel.win/swarsel/calendar")
|
||||||
(setq org-caldav-calendars
|
;; (setq org-caldav-calendars
|
||||||
'((:calendar-id "personal"
|
;; '((:calendar-id "personal"
|
||||||
:inbox "~/Calendars/leon_cal.org")))
|
;; :inbox "~/Calendars/leon_cal.org")))
|
||||||
(setq org-caldav-files '("~/Calendars/leon_cal.org"))
|
;; (setq org-caldav-files '("~/Calendars/leon_cal.org"))
|
||||||
;; (setq org-caldav-backup-file "~/org-caldav/org-caldav-backup.org")
|
;; (setq org-caldav-backup-file "~/org-caldav/org-caldav-backup.org")
|
||||||
;; (setq org-caldav-save-directory "~/org-caldav/")
|
;; (setq org-caldav-save-directory "~/org-caldav/")
|
||||||
|
|
||||||
|
|
@ -1612,6 +1614,14 @@ create a new one."
|
||||||
:config
|
:config
|
||||||
(bind-key "g" 'cfw:refresh-calendar-buffer cfw:calendar-mode-map)
|
(bind-key "g" 'cfw:refresh-calendar-buffer cfw:calendar-mode-map)
|
||||||
(bind-key "q" 'evil-quit cfw:details-mode-map)
|
(bind-key "q" 'evil-quit cfw:details-mode-map)
|
||||||
|
;; dont change the order of days in this one, as it will break weekend markings
|
||||||
|
(setq calendar-day-name-array
|
||||||
|
["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"])
|
||||||
|
|
||||||
|
;; First day of the week
|
||||||
|
(setq calendar-week-start-day 1) ; 0:Sunday, 1:Monday
|
||||||
|
|
||||||
|
|
||||||
;; (custom-set-faces
|
;; (custom-set-faces
|
||||||
;; '(cfw:face-title ((t (:foreground "#f0dfaf" :weight bold :height 65))))
|
;; '(cfw:face-title ((t (:foreground "#f0dfaf" :weight bold :height 65))))
|
||||||
;; )
|
;; )
|
||||||
|
|
@ -1619,14 +1629,17 @@ create a new one."
|
||||||
|
|
||||||
(defun swarsel/open-calendar ()
|
(defun swarsel/open-calendar ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(unless (eq swarsel-caldav-synced 1) (org-caldav-sync) (setq swarsel-caldav-synced 1))
|
;; (unless (eq swarsel-caldav-synced 1) (org-caldav-sync) (setq swarsel-caldav-synced 1))
|
||||||
;; (select-frame (make-frame '((name . "calendar")))) ; makes a new frame and selects it
|
;; (select-frame (make-frame '((name . "calendar")))) ; makes a new frame and selects it
|
||||||
;; (set-face-attribute 'default (selected-frame) :height 65) ; reduces the font size of the new frame
|
;; (set-face-attribute 'default (selected-frame) :height 65) ; reduces the font size of the new frame
|
||||||
(cfw:open-calendar-buffer
|
(cfw:open-calendar-buffer
|
||||||
:contents-sources
|
:contents-sources
|
||||||
(list
|
(list
|
||||||
(cfw:org-create-source "Purple") ; orgmode source
|
(cfw:org-create-source "Blue") ; orgmode source
|
||||||
(cfw:ical-create-source "TISS" "https://tiss.tuwien.ac.at/events/rest/calendar/personal?locale=de&token=4463bf7a-87a3-490a-b54c-99b4a65192f3" "Cyan"))))
|
(cfw:ical-create-source (getenv "SWARSEL_CAL1NAME") (getenv "SWARSEL_CAL1") "Cyan")
|
||||||
|
(cfw:ical-create-source (getenv "SWARSEL_CAL2NAME") (getenv "SWARSEL_CAL2") "Green")
|
||||||
|
(cfw:ical-create-source (getenv "SWARSEL_CAL3NAME") (getenv "SWARSEL_CAL3") "Magenta")
|
||||||
|
)))
|
||||||
|
|
||||||
(use-package dashboard
|
(use-package dashboard
|
||||||
:ensure t
|
:ensure t
|
||||||
|
|
@ -1696,3 +1709,41 @@ create a new one."
|
||||||
(setq message-log-max 30)
|
(setq message-log-max 30)
|
||||||
(setq comint-buffer-maximum-size 50)
|
(setq comint-buffer-maximum-size 50)
|
||||||
(add-hook 'comint-output-filter-functions 'comint-truncate-buffer)
|
(add-hook 'comint-output-filter-functions 'comint-truncate-buffer)
|
||||||
|
|
||||||
|
(defun prot-window-delete-popup-frame (&rest _)
|
||||||
|
"Kill selected selected frame if it has parameter `prot-window-popup-frame'.
|
||||||
|
Use this function via a hook."
|
||||||
|
(when (frame-parameter nil 'prot-window-popup-frame)
|
||||||
|
(delete-frame)))
|
||||||
|
|
||||||
|
(defmacro prot-window-define-with-popup-frame (command)
|
||||||
|
"Define interactive function which calls COMMAND in a new frame.
|
||||||
|
Make the new frame have the `prot-window-popup-frame' parameter."
|
||||||
|
`(defun ,(intern (format "prot-window-popup-%s" command)) ()
|
||||||
|
,(format "Run `%s' in a popup frame with `prot-window-popup-frame' parameter.
|
||||||
|
Also see `prot-window-delete-popup-frame'." command)
|
||||||
|
(interactive)
|
||||||
|
(let ((frame (make-frame '((prot-window-popup-frame . t)))))
|
||||||
|
(select-frame frame)
|
||||||
|
(modify-frame-parameters nil '((title . "Emacs Popup Frame")))
|
||||||
|
(switch-to-buffer " prot-window-hidden-buffer-for-popup-frame")
|
||||||
|
(condition-case nil
|
||||||
|
(call-interactively ',command)
|
||||||
|
((quit error user-error)
|
||||||
|
(delete-frame frame))))))
|
||||||
|
|
||||||
|
(declare-function org-capture "org-capture" (&optional goto keys))
|
||||||
|
(defvar org-capture-after-finalize-hook)
|
||||||
|
;;;###autoload (autoload 'prot-window-popup-org-capture "prot-window")
|
||||||
|
(prot-window-define-with-popup-frame org-capture)
|
||||||
|
(add-hook 'org-capture-after-finalize-hook #'prot-window-delete-popup-frame)
|
||||||
|
|
||||||
|
(declare-function mu4e "mu4e" (&optional goto keys))
|
||||||
|
;;;###autoload (autoload 'prot-window-popup-mu4e "prot-window")
|
||||||
|
(prot-window-define-with-popup-frame mu4e)
|
||||||
|
(advice-add 'mu4e-quit :after #'prot-window-delete-popup-frame)
|
||||||
|
|
||||||
|
(declare-function swarsel/open-calendar "swarsel/open-calendar" (&optional goto keys))
|
||||||
|
;;;###autoload (autoload 'prot-window-popup-swarsel/open-calendar "prot-window")
|
||||||
|
(prot-window-define-with-popup-frame swarsel/open-calendar)
|
||||||
|
(advice-add 'bury-buffer :after #'prot-window-delete-popup-frame)
|
||||||
|
|
|
||||||
6
flake.lock
generated
6
flake.lock
generated
|
|
@ -1618,11 +1618,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-dev": {
|
"nixpkgs-dev": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752440522,
|
"lastModified": 1752736260,
|
||||||
"narHash": "sha256-CInQkEG3f8XwIBQxYFhuFCT+T++JPstThfifAMD0yRk=",
|
"narHash": "sha256-90Gt98hmw/20aOAd7KaSW6otXu7MOBctRmI9RlXD/s0=",
|
||||||
"owner": "Swarsel",
|
"owner": "Swarsel",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1f569e3bd49502cb4ec312214662d93619cf2c54",
|
"rev": "169c3483f7c06fbb58c9346e4d9d112c8aa7827e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
"${self}/modules/home"
|
"${self}/modules/home"
|
||||||
|
"${self}/modules/nixos/common/pii.nix"
|
||||||
|
"${self}/modules/nixos/common/meta.nix"
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,7 @@
|
||||||
{ self, config, inputs, lib, minimal, ... }:
|
{ self, config, inputs, lib, minimal, ... }:
|
||||||
let
|
let
|
||||||
primaryUser = config.swarselsystems.mainUser;
|
primaryUser = config.swarselsystems.mainUser;
|
||||||
sharedOptions = {
|
sharedOptions = { };
|
||||||
isLaptop = true;
|
|
||||||
isNixos = true;
|
|
||||||
isBtrfs = true;
|
|
||||||
isLinux = true;
|
|
||||||
sharescreen = "eDP-1";
|
|
||||||
profiles = {
|
|
||||||
reduced = lib.mkIf (!minimal) true;
|
|
||||||
minimal = lib.mkIf minimal true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -23,9 +13,20 @@ in
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
swarselprofiles = {
|
||||||
|
reduced = lib.mkIf (!minimal) true;
|
||||||
|
btrfs = true;
|
||||||
|
};
|
||||||
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselsystems = lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
|
isLaptop = true;
|
||||||
|
isNixos = true;
|
||||||
|
isBtrfs = true;
|
||||||
|
isLinux = true;
|
||||||
|
lowResolution = "1280x800";
|
||||||
|
highResolution = "1920x1080";
|
||||||
|
sharescreen = "eDP-1";
|
||||||
info = "Lenovo ThinkPad";
|
info = "Lenovo ThinkPad";
|
||||||
firewall = lib.mkForce true;
|
firewall = lib.mkForce true;
|
||||||
wallpaper = self + /files/wallpaper/lenovowp.png;
|
wallpaper = self + /files/wallpaper/lenovowp.png;
|
||||||
|
|
@ -38,18 +39,12 @@ in
|
||||||
rootDisk = "/dev/nvme0n1";
|
rootDisk = "/dev/nvme0n1";
|
||||||
swapSize = "4G";
|
swapSize = "4G";
|
||||||
hostName = config.node.name;
|
hostName = config.node.name;
|
||||||
profiles = {
|
|
||||||
btrfs = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
sharedOptions;
|
sharedOptions;
|
||||||
|
|
||||||
home-manager.users."${primaryUser}" = {
|
home-manager.users."${primaryUser}" = {
|
||||||
# home.stateVersion = lib.mkForce "23.05";
|
# home.stateVersion = lib.mkForce "23.05";
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselsystems = {
|
||||||
{
|
|
||||||
lowResolution = "1280x800";
|
|
||||||
highResolution = "1920x1080";
|
|
||||||
monitors = {
|
monitors = {
|
||||||
main = {
|
main = {
|
||||||
name = "LG Display 0x04EF Unknown";
|
name = "LG Display 0x04EF Unknown";
|
||||||
|
|
@ -60,7 +55,6 @@ in
|
||||||
output = "eDP-1";
|
output = "eDP-1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
sharedOptions;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,6 @@
|
||||||
{ self, config, pkgs, lib, minimal, ... }:
|
{ self, config, pkgs, lib, minimal, ... }:
|
||||||
let
|
let
|
||||||
mainUser = "demo";
|
mainUser = "demo";
|
||||||
sharedOptions = {
|
|
||||||
inherit mainUser;
|
|
||||||
isBtrfs = false;
|
|
||||||
isLinux = true;
|
|
||||||
isPublic = true;
|
|
||||||
profiles = {
|
|
||||||
chaostheatre = lib.mkIf (!minimal) true;
|
|
||||||
minimal = lib.mkIf minimal true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -39,8 +29,12 @@ in
|
||||||
firewall.enable = true;
|
firewall.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselprofiles = {
|
||||||
{
|
chaostheatre = lib.mkIf (!minimal) true;
|
||||||
|
minimal = lib.mkIf minimal true;
|
||||||
|
btrfs = true;
|
||||||
|
};
|
||||||
|
swarselsystems = {
|
||||||
info = "~SwarselSystems~ demo host";
|
info = "~SwarselSystems~ demo host";
|
||||||
wallpaper = self + /files/wallpaper/lenovowp.png;
|
wallpaper = self + /files/wallpaper/lenovowp.png;
|
||||||
isImpermanence = true;
|
isImpermanence = true;
|
||||||
|
|
@ -49,16 +43,11 @@ in
|
||||||
isSwap = true;
|
isSwap = true;
|
||||||
swapSize = "4G";
|
swapSize = "4G";
|
||||||
rootDisk = "/dev/vda";
|
rootDisk = "/dev/vda";
|
||||||
profiles.btrfs = true;
|
isBtrfs = false;
|
||||||
}
|
inherit mainUser;
|
||||||
sharedOptions;
|
isLinux = true;
|
||||||
|
isPublic = true;
|
||||||
home-manager.users.${mainUser} = {
|
|
||||||
home.stateVersion = lib.mkForce "23.05";
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
|
||||||
{
|
|
||||||
isNixos = true;
|
isNixos = true;
|
||||||
}
|
|
||||||
sharedOptions;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,4 @@
|
||||||
{ lib, config, minimal, ... }:
|
{ lib, minimal, ... }:
|
||||||
let
|
|
||||||
primaryUser = config.swarselsystems.mainUser;
|
|
||||||
sharedOptions = {
|
|
||||||
isBtrfs = true;
|
|
||||||
isLinux = true;
|
|
||||||
isNixos = true;
|
|
||||||
};
|
|
||||||
profiles = {
|
|
||||||
minimal = lib.mkIf minimal true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
@ -32,8 +21,11 @@ in
|
||||||
enableAllFirmware = lib.mkForce false;
|
enableAllFirmware = lib.mkForce false;
|
||||||
};
|
};
|
||||||
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselprofiles = {
|
||||||
{
|
minimal = lib.mkIf minimal true;
|
||||||
|
server.syncserver = true;
|
||||||
|
};
|
||||||
|
swarselsystems = {
|
||||||
info = "VM.Standard.E2.1.Micro";
|
info = "VM.Standard.E2.1.Micro";
|
||||||
isImpermanence = true;
|
isImpermanence = true;
|
||||||
isSecureBoot = false;
|
isSecureBoot = false;
|
||||||
|
|
@ -41,16 +33,9 @@ in
|
||||||
isSwap = true;
|
isSwap = true;
|
||||||
rootDisk = "/dev/sda";
|
rootDisk = "/dev/sda";
|
||||||
swapSize = "4G";
|
swapSize = "4G";
|
||||||
profiles = {
|
isBtrfs = true;
|
||||||
server.syncserver = true;
|
isLinux = true;
|
||||||
};
|
isNixos = true;
|
||||||
}
|
|
||||||
sharedOptions;
|
|
||||||
|
|
||||||
home-manager.users."${primaryUser}" = {
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
|
||||||
{ }
|
|
||||||
sharedOptions;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,7 @@
|
||||||
{ lib, config, globals, ... }:
|
{ lib, config, ... }:
|
||||||
let
|
let
|
||||||
primaryUser = config.swarselsystems.mainUser;
|
|
||||||
inherit (config.repo.secrets.common) workHostName;
|
|
||||||
inherit (config.repo.secrets.local.syncthing) dev1 dev2 dev3 loc1;
|
inherit (config.repo.secrets.local.syncthing) dev1 dev2 dev3 loc1;
|
||||||
inherit (config.swarselsystems) sopsFile;
|
inherit (config.swarselsystems) sopsFile;
|
||||||
serviceDomain = config.repo.secrets.common.services.domains.syncthing3;
|
|
||||||
|
|
||||||
sharedOptions = {
|
|
||||||
isBtrfs = true;
|
|
||||||
isNixos = true;
|
|
||||||
isLinux = true;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -33,15 +24,6 @@ in
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
etc."issue".text = "\4";
|
etc."issue".text = "\4";
|
||||||
|
|
||||||
persistence."/persist".directories = lib.mkIf config.swarselsystems.isImpermanence [
|
|
||||||
{
|
|
||||||
directory = "/var/lib/syncthing";
|
|
||||||
user = "syncthing";
|
|
||||||
group = "syncthing";
|
|
||||||
mode = "0700";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
topology.self.interfaces.wg = {
|
topology.self.interfaces.wg = {
|
||||||
|
|
@ -88,44 +70,10 @@ in
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
globals.services."syncthing-${config.networking.hostName}".domain = serviceDomain;
|
services.syncthing = {
|
||||||
|
dataDir = lib.mkForce "/sync";
|
||||||
services = {
|
|
||||||
nginx = {
|
|
||||||
virtualHosts = {
|
|
||||||
${serviceDomain} = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
acmeRoot = null;
|
|
||||||
locations = {
|
|
||||||
"/" = {
|
|
||||||
proxyPass = "http://localhost:8384";
|
|
||||||
extraConfig = ''
|
|
||||||
client_max_body_size 0;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
syncthing = {
|
|
||||||
enable = true;
|
|
||||||
guiAddress = "0.0.0.0:8384";
|
|
||||||
openDefaultPorts = true;
|
|
||||||
relay.enable = false;
|
|
||||||
settings = {
|
settings = {
|
||||||
urAccepted = -1;
|
devices = config.swarselsystems.syncthing.devices // {
|
||||||
devices = {
|
|
||||||
"magicant" = {
|
|
||||||
id = "VMWGEE2-4HDS2QO-KNQOVGN-LXLX6LA-666E4EK-ZBRYRRO-XFEX6FB-6E3XLQO";
|
|
||||||
};
|
|
||||||
"winters" = {
|
|
||||||
id = "O7RWDMD-AEAHPP7-7TAVLKZ-BSWNBTU-2VA44MS-EYGUNBB-SLHKB3C-ZSLMOAA";
|
|
||||||
};
|
|
||||||
"${workHostName}" = {
|
|
||||||
id = "YAPV4BV-I26WPTN-SIP32MV-SQP5TBZ-3CHMTCI-Z3D6EP2-MNDQGLP-53FT3AB";
|
|
||||||
};
|
|
||||||
"${dev1}" = {
|
"${dev1}" = {
|
||||||
id = "OCCDGDF-IPZ6HHQ-5SSLQ3L-MSSL5ZW-IX5JTAM-PW4PYEK-BRNMJ7E-Q7YDMA7";
|
id = "OCCDGDF-IPZ6HHQ-5SSLQ3L-MSSL5ZW-IX5JTAM-PW4PYEK-BRNMJ7E-Q7YDMA7";
|
||||||
};
|
};
|
||||||
|
|
@ -137,43 +85,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
folders = {
|
folders = {
|
||||||
"Default Folder" = lib.mkForce {
|
|
||||||
path = "/sync/Sync";
|
|
||||||
type = "receiveonly";
|
|
||||||
versioning = null;
|
|
||||||
devices = [ "winters" "magicant" "${workHostName}" ];
|
|
||||||
id = "default";
|
|
||||||
};
|
|
||||||
"Obsidian" = {
|
|
||||||
path = "/sync/Obsidian";
|
|
||||||
type = "receiveonly";
|
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "5";
|
|
||||||
};
|
|
||||||
devices = [ "winters" "magicant" "${workHostName}" ];
|
|
||||||
id = "yjvni-9eaa7";
|
|
||||||
};
|
|
||||||
"Org" = {
|
|
||||||
path = "/sync/Org";
|
|
||||||
type = "receiveonly";
|
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "5";
|
|
||||||
};
|
|
||||||
devices = [ "winters" "magicant" "${workHostName}" ];
|
|
||||||
id = "a7xnl-zjj3d";
|
|
||||||
};
|
|
||||||
"Vpn" = {
|
|
||||||
path = "/sync/Vpn";
|
|
||||||
type = "receiveonly";
|
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "5";
|
|
||||||
};
|
|
||||||
devices = [ "winters" "magicant" "${workHostName}" ];
|
|
||||||
id = "hgp9s-fyq3p";
|
|
||||||
};
|
|
||||||
"Documents" = {
|
"Documents" = {
|
||||||
path = "/sync/Documents";
|
path = "/sync/Documents";
|
||||||
type = "receiveonly";
|
type = "receiveonly";
|
||||||
|
|
@ -181,7 +92,7 @@ in
|
||||||
type = "simple";
|
type = "simple";
|
||||||
params.keep = "2";
|
params.keep = "2";
|
||||||
};
|
};
|
||||||
devices = [ "winters" ];
|
devices = [ "pyramid" ];
|
||||||
id = "hgr3d-pfu3w";
|
id = "hgr3d-pfu3w";
|
||||||
};
|
};
|
||||||
"runandbun" = {
|
"runandbun" = {
|
||||||
|
|
@ -207,27 +118,24 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
swarselprofiles = {
|
||||||
|
server.moonside = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselsystems = {
|
||||||
{
|
|
||||||
info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM";
|
info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM";
|
||||||
isImpermanence = true;
|
isImpermanence = true;
|
||||||
isSecureBoot = false;
|
isSecureBoot = false;
|
||||||
isCrypted = false;
|
isCrypted = false;
|
||||||
isSwap = false;
|
isSwap = false;
|
||||||
rootDisk = "/dev/sda";
|
rootDisk = "/dev/sda";
|
||||||
profiles = {
|
isBtrfs = true;
|
||||||
server.moonside = true;
|
isNixos = true;
|
||||||
|
isLinux = true;
|
||||||
|
syncthing = {
|
||||||
|
serviceDomain = config.repo.secrets.common.services.domains.syncthing3;
|
||||||
|
serviceIP = "localhost";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
sharedOptions;
|
|
||||||
|
|
||||||
home-manager.users."${primaryUser}" = {
|
|
||||||
home.stateVersion = lib.mkForce "23.11";
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
|
||||||
{ }
|
|
||||||
sharedOptions;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,6 @@
|
||||||
{ self, config, inputs, lib, minimal, ... }:
|
{ self, config, inputs, lib, minimal, ... }:
|
||||||
let
|
let
|
||||||
primaryUser = config.swarselsystems.mainUser;
|
primaryUser = config.swarselsystems.mainUser;
|
||||||
sharedOptions = {
|
|
||||||
isLaptop = true;
|
|
||||||
isNixos = true;
|
|
||||||
isBtrfs = true;
|
|
||||||
isLinux = true;
|
|
||||||
sharescreen = "eDP-2";
|
|
||||||
profiles = {
|
|
||||||
personal = lib.mkIf (!minimal) true;
|
|
||||||
minimal = lib.mkIf minimal true;
|
|
||||||
work = lib.mkIf (!minimal) true;
|
|
||||||
framework = lib.mkIf (!minimal) true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -26,8 +13,23 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselprofiles = {
|
||||||
{
|
personal = lib.mkIf (!minimal) true;
|
||||||
|
work = lib.mkIf (!minimal) true;
|
||||||
|
framework = lib.mkIf (!minimal) true;
|
||||||
|
amdcpu = true;
|
||||||
|
amdgpu = true;
|
||||||
|
hibernation = true;
|
||||||
|
btrfs = true;
|
||||||
|
};
|
||||||
|
swarselsystems = {
|
||||||
|
lowResolution = "1280x800";
|
||||||
|
highResolution = "2560x1600";
|
||||||
|
isLaptop = true;
|
||||||
|
isNixos = true;
|
||||||
|
isBtrfs = true;
|
||||||
|
isLinux = true;
|
||||||
|
sharescreen = "eDP-2";
|
||||||
info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM";
|
info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM";
|
||||||
firewall = lib.mkForce true;
|
firewall = lib.mkForce true;
|
||||||
wallpaper = self + /files/wallpaper/lenovowp.png;
|
wallpaper = self + /files/wallpaper/lenovowp.png;
|
||||||
|
|
@ -39,19 +41,10 @@ in
|
||||||
inherit (config.repo.secrets.local) hostName;
|
inherit (config.repo.secrets.local) hostName;
|
||||||
inherit (config.repo.secrets.local) fqdn;
|
inherit (config.repo.secrets.local) fqdn;
|
||||||
hibernation.offset = 533760;
|
hibernation.offset = 533760;
|
||||||
profiles = {
|
|
||||||
amdcpu = true;
|
|
||||||
amdgpu = true;
|
|
||||||
hibernation = true;
|
|
||||||
btrfs = true;
|
|
||||||
};
|
};
|
||||||
}
|
|
||||||
sharedOptions;
|
|
||||||
|
|
||||||
home-manager.users."${primaryUser}" = {
|
home-manager.users."${primaryUser}" = {
|
||||||
# home.stateVersion = lib.mkForce "23.05";
|
swarselsystems = {
|
||||||
swarselsystems = lib.recursiveUpdate
|
|
||||||
{
|
|
||||||
isSecondaryGpu = true;
|
isSecondaryGpu = true;
|
||||||
SecondaryGpuCard = "pci-0000_03_00_0";
|
SecondaryGpuCard = "pci-0000_03_00_0";
|
||||||
cpuCount = 16;
|
cpuCount = 16;
|
||||||
|
|
@ -60,8 +53,6 @@ in
|
||||||
path = "/sys/devices/virtual/thermal/thermal_zone0/";
|
path = "/sys/devices/virtual/thermal/thermal_zone0/";
|
||||||
input-filename = "temp4_input";
|
input-filename = "temp4_input";
|
||||||
};
|
};
|
||||||
lowResolution = "1280x800";
|
|
||||||
highResolution = "2560x1600";
|
|
||||||
monitors = {
|
monitors = {
|
||||||
main = {
|
main = {
|
||||||
name = "BOE 0x0BC9 Unknown";
|
name = "BOE 0x0BC9 Unknown";
|
||||||
|
|
@ -72,7 +63,6 @@ in
|
||||||
output = "eDP-2";
|
output = "eDP-2";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
sharedOptions;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,4 @@
|
||||||
{ self, config, lib, minimal, ... }:
|
{ self, lib, minimal, ... }:
|
||||||
let
|
|
||||||
primaryUser = config.swarselsystems.mainUser;
|
|
||||||
sharedOptions = {
|
|
||||||
isBtrfs = true;
|
|
||||||
isLinux = true;
|
|
||||||
profiles = {
|
|
||||||
toto = lib.mkIf (!minimal) true;
|
|
||||||
minimal = lib.mkIf minimal true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -17,15 +6,17 @@ in
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "toto";
|
hostName = "toto";
|
||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselprofiles = {
|
||||||
{
|
toto = lib.mkIf (!minimal) true;
|
||||||
|
btrfs = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
swarselsystems = {
|
||||||
info = "~SwarselSystems~ remote install helper";
|
info = "~SwarselSystems~ remote install helper";
|
||||||
wallpaper = self + /files/wallpaper/lenovowp.png;
|
wallpaper = self + /files/wallpaper/lenovowp.png;
|
||||||
isImpermanence = true;
|
isImpermanence = true;
|
||||||
|
|
@ -35,18 +26,11 @@ in
|
||||||
swapSize = "2G";
|
swapSize = "2G";
|
||||||
# rootDisk = "/dev/nvme0n1";
|
# rootDisk = "/dev/nvme0n1";
|
||||||
rootDisk = "/dev/vda";
|
rootDisk = "/dev/vda";
|
||||||
profiles.btrfs = true;
|
|
||||||
# rootDisk = "/dev/vda";
|
# rootDisk = "/dev/vda";
|
||||||
}
|
isBtrfs = true;
|
||||||
sharedOptions;
|
isLinux = true;
|
||||||
|
|
||||||
home-manager.users.${primaryUser} = {
|
|
||||||
home.stateVersion = lib.mkForce "23.05";
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
|
||||||
{
|
|
||||||
isLaptop = false;
|
isLaptop = false;
|
||||||
isNixos = true;
|
isNixos = true;
|
||||||
}
|
|
||||||
sharedOptions;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,4 @@
|
||||||
{ lib, config, ... }:
|
{ config, ... }:
|
||||||
let
|
|
||||||
primaryUser = config.swarselsystems.mainUser;
|
|
||||||
sharedOptions = {
|
|
||||||
isBtrfs = false;
|
|
||||||
isLinux = true;
|
|
||||||
isNixos = true;
|
|
||||||
profiles = {
|
|
||||||
server.local = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -30,19 +19,18 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
swarselprofiles = {
|
||||||
{
|
server.local = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
swarselsystems = {
|
||||||
info = "ASRock J4105-ITX, 32GB RAM";
|
info = "ASRock J4105-ITX, 32GB RAM";
|
||||||
isImpermanence = false;
|
isImpermanence = false;
|
||||||
isSecureBoot = true;
|
isSecureBoot = true;
|
||||||
isCrypted = true;
|
isCrypted = true;
|
||||||
}
|
isBtrfs = false;
|
||||||
sharedOptions;
|
isLinux = true;
|
||||||
|
isNixos = true;
|
||||||
home-manager.users."${primaryUser}" = {
|
|
||||||
home.stateVersion = lib.mkForce "23.05";
|
|
||||||
swarselsystems = lib.recursiveUpdate
|
|
||||||
{ }
|
|
||||||
sharedOptions;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"data": "ENC[AES256_GCM,data:XEzKhJ1+iwQZ24wnf7FdThWMwOKEwaYr3ecGjjLpTqx4+kq3W9FWFDSKkHAwo6077tsVTu7NCGZfat/gAylg1xgqAZAHA8/PMQejowAgIPCG7eCQvQfTMepcuWjgc9BAyFYcBjPFmLnvX69LE80Fw0Io1QeKIa6CVJKp4P6eC8OIKeG1fTc3/sWxr+3ZKTzGPKiGCnSMo7qM0/2HlV0bhp8yWFni+2nZ8UlPJluEnmx0bBR0uZ6bdqzLX/fFrmgTd6m30+Zq8pjKVhiHpEQd9m5aU2inCWv4OeNE3EQsLYcnhcVdrcySZ6R4AZ1nlZZedDhf+Ee4AwcIPVsA8HHqlUEY1CayHF5wLpkxralOpt+RFZYJkvupmozP/uYRymoAA6YgJGesr2Oki0wT041nioB9AvpU9xFvfCqbqXXsBvwtvhxpwhEJJOogZENKnjvvoDoLGZlFVPzkfqDANuv5SAJQiWuFLWEdcmQncRlsjwSPOGOnI+r+puHszPOaDsZigF/yuL4rd5a0RkS6dCOfYtCvQBBAMfEAWX13AiKF0Dtz5/ijEEK7iojoMF/B6rnoENs2l0cSljq7TGV0DVRDjFUTiMNbfRxUJUkMuqJFnNzMwz4METmAwgqHn217uvUk2V8UJ5v9k4sapRmogPTfCwhvxGDV1e9AJvL6WXJ2m0ldhKOcQXFiO/+ZtNB1FHJ22ZFcxcSSOSRmEQsB5Yw3zPEjQ7sU93sKRLEPrTEqSSNG75iZ+vZm9iEI2trFhtEOlU98Ury/USC9sjPN/sxGGR5hcRZajY2HUxVTucMheIWJ7mxhxLHg7rz/qWLSqC6TqKwnyv+NdBnrVaLWaRnZGRCgtvN+oJKRjyxCsiDHVoY52cP5SmdXGn3yrVxDuYGrkLf/JOj76Hs/TCSsYptMvKqH4R4vT8SlDnplpcIfd5KTr4sM1n4q4sai1wRc1wlN0EkwK7+otTYcStxtvgUUtW/4jkk+73TdvvR9IkV0PqghKuB6FdAM6qRX1M8AebcXNyZYW9k7sHRVWGk+eMrMe/qX2IAY1WUgdt7hs2Ci9XoJqWKCG17rcKZ/ORu0utrJt+l0H9fZihO8+aYHabsHueiyJTKJvZx9+12r5a6deXShtdpsdQVnMlczWKGKUIdQ7TB12HILGPAvvZkJh0aDq043UU/4dUwyUezi70QnH/Z/GRip68kXH6njBmZRlmmNAFSCHkGxMKxpgssHyXXNEvET/TIVEJeR1vYjqFoGIBrFQV1Bqu2yk3A2pZLBEEbsCQrOuE2CPpfrn5kCUnw2sJOWpnVqyQ+SA4xZ7W1vw7i8aL2ThZlKE3zsriECpOfEaDWv8ME2HsiL42VUmgv+6zm/2hiVK+OayQucBUbY8IC6Yjl2kXB7EPvUsc60V2xOJl40KIAJxa0GNgaRMWkYoFtnVrYbY4yT37UjIAu2fJD725qgkXOJwbFPlX7na86PVVB0MQ==,iv:JSG8DynJg8t7HEDoW7IwYt189P22h4BPMFYsJmo3mcU=,tag:cHoNQBL2DCpntJyhqay54Q==,type:str]",
|
"data": "ENC[AES256_GCM,data:Ow17QtITRfXk4BJGWb4jw1gX8HRIAdpBDpyGtif3Vb42cCqSWpLaIR1KecbU3OPkGesC/vh2tgmfE/xlm6nUR8kvRDZdhFr7UckeKFiD4hlfHBhGckaCXOiRZ3ACHrHfM/a2CbKDl14xLDMFDervdMRfB/4vjvnn9xvhjepZ1e7+Iopd9agL8r658AMFF3j2tRYZp7l5GLArs+7mUsFfXujkui1Xgh5+TRvYPh3zQ18RWyP4QMYP6HPHgHRH7S6uciUb6Qq1yEytOy3pCJTb+gZaa9xI1azzP7r83b7KeXdukupR+9fNWN52swDHXRugThMrh4kOrBdyaafJ1v2w4FTTPwj6JQvkxT+vMV4+WIclhD/FWtEHtUqsHDFnMzTIQfyTMt42HZKNdQDwp2fwuV1BP0qOUqRnheaTPiyZiZL8I27xDfwp5zfSqxA7KEzLL2uRbIPefdqNFlcte/xL9IkbTux+AmHaIjQeLkiPyMf2wc2NTIabWPk/ILC917vnancdAQuujB38SaWPrKeCEqDKsArvgjnmn47ctBND73G4PszieneCnuq4sNT9QrC81mk/AQv5TFG0i0fvPoXfpO4ul7MgaP+iPodb2CThHKDAwL+Gnq/6+tg+vJbTKxrsixHvYViA9p/ke1YaRFg2R8V7NwRDl68NI2yCaqj3qlS6Sa8Mx7IUQR6aCN4nkpcJs2GLVCEhWKFBsNXXhPa01C/81JGJ6+/zfHuGbY6gGtS7k3cZ9+dfizN29nBlp+A1U+Noxjl9arYOX4gjEnQhvo9Tp/gBCmrvXjoE6ja8XXUv78/Bfnvup52gdNunYRYv3Aj91F0u6fH6UqoWPXVTy6eznV727Pj9H1BPzMEfmf3EPc6Qcg7AR7vKORfH3U0PFXxFMY0kGEJdug5jmLuwUoRR9zOyHOqdS4Tk9BcMT02gRyQf6LZ3drDoqC35L5hop/gfbleUXXODn3cE1mEuAuZ08OSavZ24IHo1aMr50gjn32WSBKkjfC0dobBWzWwykxhu0vZZI3xYJx/59qqsodDGAJAhry5N6vrwM/PK/O73L2QBqkaT50eImIQ4+vpahcvFPRIkHLvQkzxlyH0dafuGyyF2gfig5Rq3vw02pT8z06LjmJ/ehvteyy1BE9CdiUvYHjaBXiWg2n5FvAe5e8EQxUx9+SwfwEpnucuocp7g+d3W3cXJOU6m9JxwvK7LX95MbpKOtdPq11yi35LLb1TikFLdFZyu+SeaNFD3AzQMOSem6Lwc7N7WHC5z3Ah7FvqqnL2J51hDfMLW78A7DCI9GNRVoyVjx++gRr+ftEf8UUAYmkJdT/D898wtLWmBXikY/2e36q3QJV0Hy3fGBjxLmN/Tdz62jgCaXrNdJqJTFZ5h+hjd03GT6utmPwp0D2lBSM0LXsZsql+jI54P8cFdu3S4mNIjHZqV1kmsk0MCCVJKnGODeLQLxJhp287N3+0HJEm4KicGWMchef/YeiLLtD7mz7ov/9OI,iv:KvoTnlj+f+eMsFEZP8F1v0r/xZ4aVBUWmO+zsQCvhS4=,tag:U1ziE2832QfNkP0yjIzBeA==,type:str]",
|
||||||
"sops": {
|
"sops": {
|
||||||
"age": [
|
"age": [
|
||||||
{
|
{
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyK0w2RjJ5R1l2ay94QXRj\nekJwSlowcFVLc1cvWVFjNEVFUnFocEJHYlNnCnBnUEYvNWdNWE9BTjB5ODRuTlAw\nMUh4QmlTeVVYNHM0S1FwWG5qUG42VDgKLS0tIHh5VlU2dVZmUlRIMDRlVEJmNU55\ncFlXR1BzMkVnMkFWN3BBZWhHalltMlEKibdARxBcFqaXUhYp3KkrrvO9YgaBDacl\n8BEv4ph0f2baDN0dsymJjmdHStwKTjOwDspRtCTs5u75hR35a2xyFQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyK0w2RjJ5R1l2ay94QXRj\nekJwSlowcFVLc1cvWVFjNEVFUnFocEJHYlNnCnBnUEYvNWdNWE9BTjB5ODRuTlAw\nMUh4QmlTeVVYNHM0S1FwWG5qUG42VDgKLS0tIHh5VlU2dVZmUlRIMDRlVEJmNU55\ncFlXR1BzMkVnMkFWN3BBZWhHalltMlEKibdARxBcFqaXUhYp3KkrrvO9YgaBDacl\n8BEv4ph0f2baDN0dsymJjmdHStwKTjOwDspRtCTs5u75hR35a2xyFQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"lastmodified": "2025-07-02T10:26:33Z",
|
"lastmodified": "2025-07-17T20:14:29Z",
|
||||||
"mac": "ENC[AES256_GCM,data:/rmQKH7up3IcAdyYpdpx6H6gdyiNsnPS6TaozSU0EXxoaods50xC5sf2/quqLaeSRJE/NjKvh+3BWchbFJMQZM4PvSML3XAO8w9t/GqmOwwLJrvnMyulqS5y7BVDJZysmDe9TFNz05UJfZdbvLrH8kyhTHF7ciA8HgJq5JzFiBc=,iv:ORyza5fzjptuq5WD3NA9/OTFbACtzHp5e6kNKT/EaTE=,tag:wsp3Z/ySHVmDC9uRCn30Uw==,type:str]",
|
"mac": "ENC[AES256_GCM,data:4YP1fp9Mcbx0pvS5l9Xzc5cbhFnBo5GkqyRvcEspNYQ3IW5LIWtPwItwLZH/ymfEkpwIVYOugnB12HJJo9jpudgfUMXtp43ImDUNVHs59qkNhJFmTSoEZMBHQjPtE/jE17OIAZzeA41EAItesrmExV1W8ePy7rTgHQl5BDooWME=,iv:vyZ0BGjMUDeoVMkDw6wLZK3KKIECK5caz/nQB3nXlGs=,tag:GAqKNcSf3Ny/WsB3tYM/og==,type:str]",
|
||||||
"pgp": [
|
"pgp": [
|
||||||
{
|
{
|
||||||
"created_at": "2025-06-11T11:42:23Z",
|
"created_at": "2025-06-11T11:42:23Z",
|
||||||
|
|
|
||||||
2
justfile
2
justfile
|
|
@ -24,4 +24,4 @@ dd DRIVE ISO:
|
||||||
sudo dd if=$(eza --sort changed {{ISO}} | tail -n1) of={{DRIVE}} bs=4M status=progress oflag=sync
|
sudo dd if=$(eza --sort changed {{ISO}} | tail -n1) of={{DRIVE}} bs=4M status=progress oflag=sync
|
||||||
|
|
||||||
sync USER HOST:
|
sync USER HOST:
|
||||||
rsync -av --filter=':- .gitignore' -e "ssh -l {{USER}}" . {{USER}}@{{HOST}}:.dotfiles/
|
rsync -rltv --filter=':- .gitignore' -e "ssh -l {{USER}}" . {{USER}}@{{HOST}}:.dotfiles/
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ let
|
||||||
atuinDomain = globals.services.atuin.domain;
|
atuinDomain = globals.services.atuin.domain;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.atuin = lib.mkEnableOption "atuin settings";
|
options.swarselmodules.atuin = lib.mkEnableOption "atuin settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.atuin {
|
config = lib.mkIf config.swarselmodules.atuin {
|
||||||
programs.atuin = {
|
programs.atuin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.ownpackages = lib.mkEnableOption "own packages settings";
|
options.swarselmodules.ownpackages = lib.mkEnableOption "own packages settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.ownpackages {
|
config = lib.mkIf config.swarselmodules.ownpackages {
|
||||||
home.packages = with pkgs; lib.mkIf (!config.swarselsystems.isPublic) [
|
home.packages = with pkgs; lib.mkIf (!config.swarselsystems.isPublic) [
|
||||||
pass-fuzzel
|
pass-fuzzel
|
||||||
cdw
|
cdw
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
importNames = lib.swarselsystems.readNix "modules/home/common";
|
importNames = lib.swarselsystems.readNix "modules/home/common";
|
||||||
|
sharedNames = lib.swarselsystems.readNix "modules/shared";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = lib.swarselsystems.mkImports importNames "modules/home/common";
|
imports = lib.swarselsystems.mkImports importNames "modules/home/common" ++
|
||||||
|
lib.swarselsystems.mkImports sharedNames "modules/shared";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.desktop = lib.mkEnableOption "desktop settings";
|
options.swarselmodules.desktop = lib.mkEnableOption "desktop settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.desktop {
|
config = lib.mkIf config.swarselmodules.desktop {
|
||||||
xdg.desktopEntries = {
|
xdg.desktopEntries = {
|
||||||
|
|
||||||
cura = {
|
cura = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.direnv = lib.mkEnableOption "direnv settings";
|
options.swarselmodules.direnv = lib.mkEnableOption "direnv settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.direnv {
|
config = lib.mkIf config.swarselmodules.direnv {
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
silent = true;
|
silent = true;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,26 @@
|
||||||
{ self, lib, config, pkgs, ... }:
|
{ self, lib, config, pkgs, globals, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) homeDir isPublic;
|
inherit (config.swarselsystems) homeDir isPublic isNixos;
|
||||||
|
inherit (config.repo.secrets.common.emacs) radicaleUser;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.emacs = lib.mkEnableOption "emacs settings";
|
options.swarselmodules.emacs = lib.mkEnableOption "emacs settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.emacs {
|
config = lib.mkIf config.swarselmodules.emacs {
|
||||||
# needed for elfeed
|
# needed for elfeed
|
||||||
sops.secrets.fever-pw = lib.mkIf (!isPublic) { path = "${homeDir}/.emacs.d/.fever"; };
|
sops = lib.mkIf (!isPublic && !isNixos) {
|
||||||
|
secrets = {
|
||||||
|
fever-pw = { path = "${homeDir}/.emacs.d/.fever"; };
|
||||||
|
emacs-radicale-pw = { };
|
||||||
|
};
|
||||||
|
templates = {
|
||||||
|
authinfo = {
|
||||||
|
path = "${homeDir}/.emacs.d/.authinfo";
|
||||||
|
content = ''
|
||||||
|
machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# enable emacs overlay for bleeding edge features
|
# enable emacs overlay for bleeding edge features
|
||||||
# also read init.el file and install use-package packages
|
# also read init.el file and install use-package packages
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,33 @@
|
||||||
{ lib, config, globals, nixosConfig, ... }:
|
{ lib, config, globals, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address3 address4 allMailAddresses;
|
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address3 address4 allMailAddresses;
|
||||||
|
inherit (nixosConfig.repo.secrets.common.calendar) source1 source1-name source2 source2-name source3 source3-name;
|
||||||
inherit (nixosConfig.repo.secrets.common) fullName;
|
inherit (nixosConfig.repo.secrets.common) fullName;
|
||||||
|
inherit (config.swarselsystems) isPublic;
|
||||||
crocDomain = globals.services.croc.domain;
|
crocDomain = globals.services.croc.domain;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.env = lib.mkEnableOption "env settings";
|
options.swarselmodules.env = lib.mkEnableOption "env settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.env {
|
config = lib.mkIf config.swarselmodules.env {
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "e -w";
|
EDITOR = "e -w";
|
||||||
DISPLAY = ":0";
|
DISPLAY = ":0";
|
||||||
CROC_RELAY = crocDomain;
|
|
||||||
SWARSEL_LO_RES = config.swarselsystems.lowResolution;
|
SWARSEL_LO_RES = config.swarselsystems.lowResolution;
|
||||||
SWARSEL_HI_RES = config.swarselsystems.highResolution;
|
SWARSEL_HI_RES = config.swarselsystems.highResolution;
|
||||||
|
CROC_RELAY = lib.mkIf (!isPublic) crocDomain;
|
||||||
};
|
};
|
||||||
systemd.user.sessionVariables = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
systemd.user.sessionVariables = lib.mkIf (!isPublic) {
|
||||||
|
GITHUB_NOTIFICATION_TOKEN_PATH = nixosConfig.sops.secrets.github-notifications-token.path;
|
||||||
SWARSEL_MAIL1 = address1;
|
SWARSEL_MAIL1 = address1;
|
||||||
SWARSEL_MAIL2 = address2;
|
SWARSEL_MAIL2 = address2;
|
||||||
SWARSEL_MAIL3 = address3;
|
SWARSEL_MAIL3 = address3;
|
||||||
SWARSEL_MAIL4 = address4;
|
SWARSEL_MAIL4 = address4;
|
||||||
|
SWARSEL_CAL1 = source1;
|
||||||
|
SWARSEL_CAL1NAME = source1-name;
|
||||||
|
SWARSEL_CAL2 = source2;
|
||||||
|
SWARSEL_CAL2NAME = source2-name;
|
||||||
|
SWARSEL_CAL3 = source3;
|
||||||
|
SWARSEL_CAL3NAME = source3-name;
|
||||||
SWARSEL_FULLNAME = fullName;
|
SWARSEL_FULLNAME = fullName;
|
||||||
SWARSEL_MAIL_ALL = allMailAddresses;
|
SWARSEL_MAIL_ALL = allMailAddresses;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.eza = lib.mkEnableOption "eza settings";
|
options.swarselmodules.eza = lib.mkEnableOption "eza settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.eza {
|
config = lib.mkIf config.swarselmodules.eza {
|
||||||
programs.eza = {
|
programs.eza = {
|
||||||
enable = true;
|
enable = true;
|
||||||
icons = "auto";
|
icons = "auto";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, vars, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.firefox = lib.mkEnableOption "firefox settings";
|
options.swarselmodules.firefox = lib.mkEnableOption "firefox settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.firefox {
|
config = lib.mkIf config.swarselmodules.firefox {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.firefox; # uses overrides
|
package = pkgs.firefox; # uses overrides
|
||||||
|
|
@ -143,7 +143,7 @@
|
||||||
"browser.startup.homepage" = "https://lobste.rs";
|
"browser.startup.homepage" = "https://lobste.rs";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
config.swarselsystems.firefox;
|
vars.firefox;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.fuzzel = lib.mkEnableOption "fuzzel settings";
|
options.swarselmodules.fuzzel = lib.mkEnableOption "fuzzel settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.fuzzel {
|
config = lib.mkIf config.swarselmodules.fuzzel {
|
||||||
programs.fuzzel = {
|
programs.fuzzel = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
{ lib, config, nixosConfig, ... }:
|
{ lib, config, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (nixosConfig.repo.secrets.common.location) latitude longitude;
|
inherit (nixosConfig.repo.secrets.common.location) latitude longitude;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.gammastep = lib.mkEnableOption "gammastep settings";
|
options.swarselmodules.gammastep = lib.mkEnableOption "gammastep settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.gammastep {
|
config = lib.mkIf config.swarselmodules.gammastep {
|
||||||
services.gammastep = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
services.gammastep = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
||||||
enable = true;
|
enable = true;
|
||||||
provider = "manual";
|
provider = "manual";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, config, globals, minimal, nixosConfig, ... }:
|
{ lib, config, globals, minimal, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (nixosConfig.repo.secrets.common.mail) address1;
|
inherit (nixosConfig.repo.secrets.common.mail) address1;
|
||||||
inherit (nixosConfig.repo.secrets.common) fullName;
|
inherit (nixosConfig.repo.secrets.common) fullName;
|
||||||
|
|
@ -6,8 +6,8 @@ let
|
||||||
gitUser = globals.user.name;
|
gitUser = globals.user.name;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.git = lib.mkEnableOption "git settings";
|
options.swarselmodules.git = lib.mkEnableOption "git settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.git {
|
config = lib.mkIf config.swarselmodules.git {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
} // lib.optionalAttrs (!minimal) {
|
} // lib.optionalAttrs (!minimal) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome keyring settings";
|
options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome keyring settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.gnome-keyring {
|
config = lib.mkIf config.swarselmodules.gnome-keyring {
|
||||||
services.gnome-keyring = lib.mkIf (!config.swarselsystems.isNixos) {
|
services.gnome-keyring = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ let
|
||||||
inherit (config.swarselsystems) mainUser homeDir;
|
inherit (config.swarselsystems) mainUser homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.gpgagent = lib.mkEnableOption "gpg agent settings";
|
options.swarselmodules.gpgagent = lib.mkEnableOption "gpg agent settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.gpgagent {
|
config = lib.mkIf config.swarselmodules.gpgagent {
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.kanshi = lib.mkEnableOption "kanshi settings";
|
options.swarselmodules.kanshi = lib.mkEnableOption "kanshi settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.kanshi {
|
config = lib.mkIf config.swarselmodules.kanshi {
|
||||||
swarselsystems = {
|
swarselsystems = {
|
||||||
monitors = {
|
monitors = {
|
||||||
homedesktop = {
|
homedesktop = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.kdeconnect = lib.mkEnableOption "kdeconnect settings";
|
options.swarselmodules.kdeconnect = lib.mkEnableOption "kdeconnect settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.kdeconnect {
|
config = lib.mkIf config.swarselmodules.kdeconnect {
|
||||||
services.kdeconnect = {
|
services.kdeconnect = {
|
||||||
enable = true;
|
enable = true;
|
||||||
indicator = true;
|
indicator = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.kitty = lib.mkEnableOption "kitty settings";
|
options.swarselmodules.kitty = lib.mkEnableOption "kitty settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.kitty {
|
config = lib.mkIf config.swarselmodules.kitty {
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
keybindings = { };
|
keybindings = { };
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
{ lib, config, nixosConfig, ... }:
|
{ lib, config, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address2-name address3 address3-name address4 address4-user address4-host;
|
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address2-name address3 address3-name address4 address4-user address4-host;
|
||||||
inherit (nixosConfig.repo.secrets.common) fullName;
|
inherit (nixosConfig.repo.secrets.common) fullName;
|
||||||
inherit (config.swarselsystems) xdgDir;
|
inherit (config.swarselsystems) xdgDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.mail = lib.mkEnableOption "mail settings";
|
options.swarselmodules.mail = lib.mkEnableOption "mail settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.mail {
|
config = lib.mkIf config.swarselmodules.mail {
|
||||||
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
address1-token = { path = "${xdgDir}/secrets/address1-token"; };
|
address1-token = { path = "${xdgDir}/secrets/address1-token"; };
|
||||||
address2-token = { path = "${xdgDir}/secrets/address2-token"; };
|
address2-token = { path = "${xdgDir}/secrets/address2-token"; };
|
||||||
address3-token = { path = "${xdgDir}/secrets/address3-token"; };
|
address3-token = { path = "${xdgDir}/secrets/address3-token"; };
|
||||||
|
|
@ -42,7 +42,7 @@ in
|
||||||
address = address1;
|
address = address1;
|
||||||
userName = address1;
|
userName = address1;
|
||||||
realName = fullName;
|
realName = fullName;
|
||||||
passwordCommand = "cat ${config.sops.secrets.address1-token.path}";
|
passwordCommand = "cat ${nixosConfig.sops.secrets.address1-token.path}";
|
||||||
gpg = {
|
gpg = {
|
||||||
key = "0x76FD3810215AE097";
|
key = "0x76FD3810215AE097";
|
||||||
signByDefault = true;
|
signByDefault = true;
|
||||||
|
|
@ -74,7 +74,7 @@ in
|
||||||
address = address4;
|
address = address4;
|
||||||
userName = address4-user;
|
userName = address4-user;
|
||||||
realName = fullName;
|
realName = fullName;
|
||||||
passwordCommand = "cat ${config.sops.secrets.address4-token.path}";
|
passwordCommand = "cat ${nixosConfig.sops.secrets.address4-token.path}";
|
||||||
smtp = {
|
smtp = {
|
||||||
host = address4-host;
|
host = address4-host;
|
||||||
port = 587;
|
port = 587;
|
||||||
|
|
@ -97,7 +97,7 @@ in
|
||||||
address = address2;
|
address = address2;
|
||||||
userName = address2;
|
userName = address2;
|
||||||
realName = address2-name;
|
realName = address2-name;
|
||||||
passwordCommand = "cat ${config.sops.secrets.address2-token.path}";
|
passwordCommand = "cat ${nixosConfig.sops.secrets.address2-token.path}";
|
||||||
imap.host = "imap.gmail.com";
|
imap.host = "imap.gmail.com";
|
||||||
smtp.host = "smtp.gmail.com";
|
smtp.host = "smtp.gmail.com";
|
||||||
msmtp.enable = true;
|
msmtp.enable = true;
|
||||||
|
|
@ -124,7 +124,7 @@ in
|
||||||
address = address3;
|
address = address3;
|
||||||
userName = address3;
|
userName = address3;
|
||||||
realName = address3-name;
|
realName = address3-name;
|
||||||
passwordCommand = "cat ${config.sops.secrets.address3-token.path}";
|
passwordCommand = "cat ${nixosConfig.sops.secrets.address3-token.path}";
|
||||||
imap.host = "imap.gmail.com";
|
imap.host = "imap.gmail.com";
|
||||||
smtp.host = "smtp.gmail.com";
|
smtp.host = "smtp.gmail.com";
|
||||||
msmtp.enable = true;
|
msmtp.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.mako = lib.mkEnableOption "mako settings";
|
options.swarselmodules.mako = lib.mkEnableOption "mako settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.mako {
|
config = lib.mkIf config.swarselmodules.mako {
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ self, lib, config, pkgs, ... }:
|
{ self, lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.nix-index = lib.mkEnableOption "nix-index settings";
|
options.swarselmodules.nix-index = lib.mkEnableOption "nix-index settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.nix-index {
|
config = lib.mkIf config.swarselmodules.nix-index {
|
||||||
programs.nix-index =
|
programs.nix-index =
|
||||||
let
|
let
|
||||||
commandNotFound = pkgs.runCommandLocal "command-not-found.sh" { } ''
|
commandNotFound = pkgs.runCommandLocal "command-not-found.sh" { } ''
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
{ lib, config, nixgl, ... }:
|
{ lib, config, nixgl, ... }:
|
||||||
{
|
{
|
||||||
|
options.swarselmodules.nixgl = lib.mkEnableOption "nixgl settings";
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
modules.nixgl = lib.mkEnableOption "nixgl settings";
|
|
||||||
isSecondaryGpu = lib.mkEnableOption "device has a secondary GPU";
|
isSecondaryGpu = lib.mkEnableOption "device has a secondary GPU";
|
||||||
SecondaryGpuCard = lib.mkOption {
|
SecondaryGpuCard = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "";
|
default = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselsystems.modules.nixgl {
|
config = lib.mkIf config.swarselmodules.nixgl {
|
||||||
nixGL = lib.mkIf (!config.swarselsystems.isNixos) {
|
nixGL = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
inherit (nixgl) packages;
|
inherit (nixgl) packages;
|
||||||
defaultWrapper = lib.mkDefault "mesa";
|
defaultWrapper = lib.mkDefault "mesa";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.packages = lib.mkEnableOption "packages settings";
|
options.swarselmodules.packages = lib.mkEnableOption "packages settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.packages {
|
config = lib.mkIf config.swarselmodules.packages {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
||||||
# audio stuff
|
# audio stuff
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.passwordstore = lib.mkEnableOption "passwordstore settings";
|
options.swarselmodules.passwordstore = lib.mkEnableOption "passwordstore settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.passwordstore {
|
config = lib.mkIf config.swarselmodules.passwordstore {
|
||||||
programs.password-store = {
|
programs.password-store = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.programs = lib.mkEnableOption "programs settings";
|
options.swarselmodules.programs = lib.mkEnableOption "programs settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.programs {
|
config = lib.mkIf config.swarselmodules.programs {
|
||||||
programs = {
|
programs = {
|
||||||
bottom.enable = true;
|
bottom.enable = true;
|
||||||
imv.enable = true;
|
imv.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ let
|
||||||
inherit (config.swarselsystems) mainUser;
|
inherit (config.swarselsystems) mainUser;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings";
|
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.general {
|
config = lib.mkIf config.swarselmodules.general {
|
||||||
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
package = lib.mkForce pkgs.nixVersions.nix_2_28;
|
package = lib.mkForce pkgs.nixVersions.nix_2_28;
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
|
|
|
||||||
12
modules/home/common/sharedoptions.nix
Normal file
12
modules/home/common/sharedoptions.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{ lib, config, nixosConfig ? null, ... }:
|
||||||
|
let
|
||||||
|
# mirrorAttrs = lib.mapAttrs (_: v: lib.mkDefault v) nixosConfig.swarselsystems;
|
||||||
|
inherit (lib) mkDefault mapAttrs filterAttrs;
|
||||||
|
mkDefaultCommonAttrs = base: defaults:
|
||||||
|
lib.mapAttrs (_: v: lib.mkDefault v)
|
||||||
|
(lib.filterAttrs (k: _: base ? ${k}) defaults);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# config.swarselsystems = mirrorAttrs;
|
||||||
|
config.swarselsystems = lib.mkIf (nixosConfig != null) (mkDefaultCommonAttrs config.swarselsystems nixosConfig.swarselsystems);
|
||||||
|
}
|
||||||
|
|
@ -3,8 +3,8 @@ let
|
||||||
inherit (config.swarselsystems) homeDir;
|
inherit (config.swarselsystems) homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.sops = lib.mkEnableOption "sops settings";
|
options.swarselmodules.sops = lib.mkEnableOption "sops settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.sops {
|
config = lib.mkIf config.swarselmodules.sops {
|
||||||
sops = {
|
sops = {
|
||||||
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
||||||
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.ssh = lib.mkEnableOption "ssh settings";
|
options.swarselmodules.ssh = lib.mkEnableOption "ssh settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.ssh {
|
config = lib.mkIf config.swarselmodules.ssh {
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
forwardAgent = true;
|
forwardAgent = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.starship = lib.mkEnableOption "starship settings";
|
options.swarselmodules.starship = lib.mkEnableOption "starship settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.starship {
|
config = lib.mkIf config.swarselmodules.starship {
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, vars, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix settings";
|
options.swarselmodules.stylix = lib.mkEnableOption "stylix settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.stylix {
|
config = lib.mkIf config.swarselmodules.stylix {
|
||||||
stylix = lib.mkIf (!config.swarselsystems.isNixos) (lib.recursiveUpdate
|
stylix = lib.mkIf (!config.swarselsystems.isNixos) (lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
image = config.swarselsystems.wallpaper;
|
image = config.swarselsystems.wallpaper;
|
||||||
targets = config.swarselsystems.stylixHomeTargets;
|
targets = vars.stylixHomeTargets;
|
||||||
}
|
}
|
||||||
config.swarselsystems.stylix);
|
vars.stylix);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
options.swarselmodules.sway = lib.mkEnableOption "sway settings";
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
modules.sway = lib.mkEnableOption "sway settings";
|
|
||||||
inputs = lib.mkOption {
|
inputs = lib.mkOption {
|
||||||
type = lib.types.attrsOf (lib.types.attrsOf lib.types.str);
|
type = lib.types.attrsOf (lib.types.attrsOf lib.types.str);
|
||||||
default = { };
|
default = { };
|
||||||
|
|
@ -72,7 +72,7 @@ in
|
||||||
internal = true;
|
internal = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselsystems.modules.sway {
|
config = lib.mkIf config.swarselmodules.sway {
|
||||||
swarselsystems = {
|
swarselsystems = {
|
||||||
touchpad = lib.mkIf config.swarselsystems.isLaptop {
|
touchpad = lib.mkIf config.swarselsystems.isLaptop {
|
||||||
"type:touchpad" = {
|
"type:touchpad" = {
|
||||||
|
|
@ -117,8 +117,6 @@ in
|
||||||
"${modifier}+Space" = "exec fuzzel";
|
"${modifier}+Space" = "exec fuzzel";
|
||||||
"${modifier}+Shift+Space" = "floating toggle";
|
"${modifier}+Shift+Space" = "floating toggle";
|
||||||
"${modifier}+e" = "exec emacsclient -nquc -a emacs -e \"(dashboard-open)\"";
|
"${modifier}+e" = "exec emacsclient -nquc -a emacs -e \"(dashboard-open)\"";
|
||||||
"${modifier}+Shift+m" = "exec emacsclient -nquc -a emacs -e \"(mu4e)\"";
|
|
||||||
"${modifier}+Shift+c" = "exec emacsclient -nquc -a emacs -e \"(swarsel/open-calendar)\"";
|
|
||||||
"${modifier}+m" = "exec swaymsg workspace back_and_forth";
|
"${modifier}+m" = "exec swaymsg workspace back_and_forth";
|
||||||
"${modifier}+a" = "exec swarselcheck -s";
|
"${modifier}+a" = "exec swarselcheck -s";
|
||||||
"${modifier}+x" = "exec swarselcheck -k";
|
"${modifier}+x" = "exec swarselcheck -k";
|
||||||
|
|
@ -127,7 +125,10 @@ in
|
||||||
"${modifier}+Shift+t" = "exec opacitytoggle";
|
"${modifier}+Shift+t" = "exec opacitytoggle";
|
||||||
"${modifier}+Shift+F12" = "move scratchpad";
|
"${modifier}+Shift+F12" = "move scratchpad";
|
||||||
"${modifier}+F12" = "scratchpad show";
|
"${modifier}+F12" = "scratchpad show";
|
||||||
"${modifier}+c" = "exec qalculate-gtk";
|
"${modifier}+Shift+c" = "exec qalculate-gtk";
|
||||||
|
"${modifier}+c" = "emacsclient -e '(prot-window-popup-org-capture)'";
|
||||||
|
"${modifier}+Shift+m" = "emacsclient -e '(prot-window-popup-mu4e)'";
|
||||||
|
"${modifier}+Shift+a" = "emacsclient -e '(prot-window-popup-swarsel/open-calendar)'";
|
||||||
"${modifier}+p" = "exec pass-fuzzel";
|
"${modifier}+p" = "exec pass-fuzzel";
|
||||||
"${modifier}+o" = "exec pass-fuzzel --otp";
|
"${modifier}+o" = "exec pass-fuzzel --otp";
|
||||||
"${modifier}+Shift+p" = "exec pass-fuzzel --type";
|
"${modifier}+Shift+p" = "exec pass-fuzzel --type";
|
||||||
|
|
@ -260,6 +261,7 @@ in
|
||||||
{ title = "^Add$"; }
|
{ title = "^Add$"; }
|
||||||
{ title = "^Picture-in-Picture$"; }
|
{ title = "^Picture-in-Picture$"; }
|
||||||
{ title = "Syncthing Tray"; }
|
{ title = "Syncthing Tray"; }
|
||||||
|
{ title = "Emacs Popup Frame"; }
|
||||||
{ title = "^spotifytui$"; }
|
{ title = "^spotifytui$"; }
|
||||||
{ title = "^kittyterm$"; }
|
{ title = "^kittyterm$"; }
|
||||||
{ app_id = "vesktop"; }
|
{ app_id = "vesktop"; }
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, pkgs, config, ... }:
|
{ lib, pkgs, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings";
|
options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.swayosd {
|
config = lib.mkIf config.swarselmodules.swayosd {
|
||||||
services.swayosd = {
|
services.swayosd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.dev.swayosd;
|
package = pkgs.dev.swayosd;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ self, lib, config, ... }:
|
{ self, lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.symlink = lib.mkEnableOption "symlink settings";
|
options.swarselmodules.symlink = lib.mkEnableOption "symlink settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.symlink {
|
config = lib.mkIf config.swarselmodules.symlink {
|
||||||
home.file = {
|
home.file = {
|
||||||
"init.el" = lib.mkDefault {
|
"init.el" = lib.mkDefault {
|
||||||
source = self + /files/emacs/init.el;
|
source = self + /files/emacs/init.el;
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.tmux = lib.mkEnableOption "tmux settings";
|
options.swarselmodules.tmux = lib.mkEnableOption "tmux settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.tmux {
|
config = lib.mkIf config.swarselmodules.tmux {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
lsof
|
lsof
|
||||||
sesh
|
sesh
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ let
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
options.swarselmodules.waybar = lib.mkEnableOption "waybar settings";
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
modules.waybar = lib.mkEnableOption "waybar settings";
|
|
||||||
cpuCount = lib.mkOption {
|
cpuCount = lib.mkOption {
|
||||||
type = lib.types.int;
|
type = lib.types.int;
|
||||||
default = 8;
|
default = 8;
|
||||||
|
|
@ -52,7 +52,7 @@ in
|
||||||
internal = true;
|
internal = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselsystems.modules.waybar {
|
config = lib.mkIf config.swarselmodules.waybar {
|
||||||
|
|
||||||
swarselsystems = {
|
swarselsystems = {
|
||||||
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
||||||
|
|
@ -60,7 +60,7 @@ in
|
||||||
] ++ modulesRight);
|
] ++ modulesRight);
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
github-notifications-token = { path = "${xdgDir}/secrets/github-notifications-token"; };
|
github-notifications-token = { path = "${xdgDir}/secrets/github-notifications-token"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings";
|
options.swarselmodules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.yubikeytouch {
|
config = lib.mkIf config.swarselmodules.yubikeytouch {
|
||||||
systemd.user.services.yubikey-touch-detector = {
|
systemd.user.services.yubikey-touch-detector = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Detects when your YubiKey is waiting for a touch";
|
Description = "Detects when your YubiKey is waiting for a touch";
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
{ lib, config, nixosConfig, ... }:
|
{ lib, config, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) homeDir;
|
inherit (config.swarselsystems) homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey settings";
|
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey settings";
|
||||||
|
|
||||||
config = lib.mkIf config.swarselsystems.modules.yubikey {
|
config = lib.mkIf config.swarselmodules.yubikey {
|
||||||
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||||
u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ self, lib, config, pkgs, ... }:
|
{ self, lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.zellij = lib.mkEnableOption "zellij settings";
|
options.swarselmodules.zellij = lib.mkEnableOption "zellij settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.zellij {
|
config = lib.mkIf config.swarselmodules.zellij {
|
||||||
programs.zellij = {
|
programs.zellij = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
{ config, lib, minimal, ... }:
|
{ config, lib, minimal, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) flakePath;
|
inherit (config.swarselsystems) flakePath;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
options.swarselmodules.zsh = lib.mkEnableOption "zsh settings";
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
modules.zsh = lib.mkEnableOption "zsh settings";
|
|
||||||
shellAliases = lib.mkOption {
|
shellAliases = lib.mkOption {
|
||||||
type = lib.types.attrsOf lib.types.str;
|
type = lib.types.attrsOf lib.types.str;
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselsystems.modules.zsh
|
config = lib.mkIf config.swarselmodules.zsh
|
||||||
{
|
{
|
||||||
|
|
||||||
sops.secrets = {
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
croc-password = { };
|
croc-password = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -26,9 +26,10 @@ in
|
||||||
hg = "history | grep";
|
hg = "history | grep";
|
||||||
hmswitch = "home-manager --flake ${flakePath}#$(whoami)@$(hostname) switch |& nom";
|
hmswitch = "home-manager --flake ${flakePath}#$(whoami)@$(hostname) switch |& nom";
|
||||||
# nswitch = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json";
|
# nswitch = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json";
|
||||||
nswitch = "swarsel-deploy $(hostname) switch";
|
nswitch = "cd ${flakePath}; swarsel-deploy $(hostname) switch; cd -;";
|
||||||
|
nboot = "cd ${flakePath}; swarsel-deploy $(hostname) boot; cd -;";
|
||||||
|
ndry = "cd ${flakePath}; swarsel-deploy $(hostname) dry-activate; cd -;";
|
||||||
# nboot = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
|
# nboot = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
|
||||||
nboot = "swarsel-deploy $(hostname) boot";
|
|
||||||
magit = "emacsclient -nc -e \"(magit-status)\"";
|
magit = "emacsclient -nc -e \"(magit-status)\"";
|
||||||
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
||||||
g = "git";
|
g = "git";
|
||||||
|
|
@ -120,7 +121,7 @@ in
|
||||||
# ctrl + del
|
# ctrl + del
|
||||||
bindkey '^H' my-backward-delete-word
|
bindkey '^H' my-backward-delete-word
|
||||||
|
|
||||||
export CROC_PASS="$(cat ${config.sops.secrets.croc-password.path})"
|
export CROC_PASS="$(cat ${nixosConfig.sops.secrets.croc-password.path})"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
{ self, ... }:
|
{ self, ... }:
|
||||||
{
|
{
|
||||||
|
home.stateVersion = "23.05";
|
||||||
imports = [
|
imports = [
|
||||||
"${self}/modules/home/common/settings.nix"
|
"${self}/modules/home/common/settings.nix"
|
||||||
"${self}/modules/home/common/sharedsetup.nix"
|
"${self}/modules/shared/options.nix"
|
||||||
|
"${self}/modules/shared/vars.nix"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.optional.framework = lib.mkEnableOption "optional framework machine settings";
|
options.swarselmodules.optional.framework = lib.mkEnableOption "optional framework machine settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.optional.framework {
|
config = lib.mkIf config.swarselmodules.optional.framework {
|
||||||
swarselsystems = {
|
swarselsystems = {
|
||||||
inputs = {
|
inputs = {
|
||||||
"12972:18:Framework_Laptop_16_Keyboard_Module_-_ANSI_Keyboard" = {
|
"12972:18:Framework_Laptop_16_Keyboard_Module_-_ANSI_Keyboard" = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.optional.gaming = lib.mkEnableOption "optional gaming settings";
|
options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.optional.gaming {
|
config = lib.mkIf config.swarselmodules.optional.gaming {
|
||||||
# specialisation = {
|
# specialisation = {
|
||||||
# gaming.configuration = {
|
# gaming.configuration = {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
{ self, config, pkgs, lib, nixosConfig, ... }:
|
{ self, config, pkgs, lib, vars, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) homeDir;
|
inherit (config.swarselsystems) homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.optional.work = lib.mkEnableOption "optional work settings";
|
options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.optional.work {
|
config = lib.mkIf config.swarselmodules.optional.work {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
stable.teams-for-linux
|
stable.teams-for-linux
|
||||||
shellcheck
|
shellcheck
|
||||||
|
|
@ -126,7 +126,7 @@ in
|
||||||
"browser.startup.homepage" = "${site1}|${site2}";
|
"browser.startup.homepage" = "${site1}|${site2}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
config.swarselsystems.firefox;
|
vars.firefox;
|
||||||
"${user2}" = lib.recursiveUpdate
|
"${user2}" = lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
inherit isDefault;
|
inherit isDefault;
|
||||||
|
|
@ -135,13 +135,13 @@ in
|
||||||
"browser.startup.homepage" = "${site3}";
|
"browser.startup.homepage" = "${site3}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
config.swarselsystems.firefox;
|
vars.firefox;
|
||||||
"${user3}" = lib.recursiveUpdate
|
"${user3}" = lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
inherit isDefault;
|
inherit isDefault;
|
||||||
id = 3;
|
id = 3;
|
||||||
}
|
}
|
||||||
config.swarselsystems.firefox;
|
vars.firefox;
|
||||||
work = lib.recursiveUpdate
|
work = lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
inherit isDefault;
|
inherit isDefault;
|
||||||
|
|
@ -150,7 +150,7 @@ in
|
||||||
"browser.startup.homepage" = "${site4}|${site5}|${site6}|${site7}";
|
"browser.startup.homepage" = "${site4}|${site5}|${site6}|${site7}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
config.swarselsystems.firefox;
|
vars.firefox;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,5 @@ in
|
||||||
{
|
{
|
||||||
imports = lib.swarselsystems.mkImports importNames "modules/home/server" ++ [
|
imports = lib.swarselsystems.mkImports importNames "modules/home/server" ++ [
|
||||||
"${modulesPath}/home/common/settings.nix"
|
"${modulesPath}/home/common/settings.nix"
|
||||||
"${modulesPath}/home/common/sharedsetup.nix"
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ self, lib, config, ... }:
|
{ self, lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.server.dotfiles = lib.mkEnableOption "server dotfiles settings";
|
options.swarselmodules.server.dotfiles = lib.mkEnableOption "server dotfiles settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.server.dotfiles {
|
config = lib.mkIf config.swarselmodules.server.dotfiles {
|
||||||
home.file = {
|
home.file = {
|
||||||
"init.el" = lib.mkForce {
|
"init.el" = lib.mkForce {
|
||||||
source = self + /files/emacs/server.el;
|
source = self + /files/emacs/server.el;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.appimage = lib.mkEnableOption "appimage config";
|
options.swarselmodules.appimage = lib.mkEnableOption "appimage config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.appimage {
|
config = lib.mkIf config.swarselmodules.appimage {
|
||||||
programs.appimage = {
|
programs.appimage = {
|
||||||
enable = true;
|
enable = true;
|
||||||
binfmt = true;
|
binfmt = true;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ let
|
||||||
inherit (config.swarselsystems) mainUser;
|
inherit (config.swarselsystems) mainUser;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.autologin = lib.mkEnableOption "optional autologin settings";
|
options.swarselmodules.autologin = lib.mkEnableOption "optional autologin settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.autologin {
|
config = lib.mkIf config.swarselmodules.autologin {
|
||||||
services = {
|
services = {
|
||||||
getty.autologinUser = mainUser;
|
getty.autologinUser = mainUser;
|
||||||
greetd.settings.initial_session.user = mainUser;
|
greetd.settings.initial_session.user = mainUser;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.blueman = lib.mkEnableOption "blueman config";
|
options.swarselmodules.blueman = lib.mkEnableOption "blueman config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.blueman {
|
config = lib.mkIf config.swarselmodules.blueman {
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
services.hardware.bolt.enable = true;
|
services.hardware.bolt.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.distrobox = lib.mkEnableOption "distrobox config";
|
options.swarselmodules.distrobox = lib.mkEnableOption "distrobox config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.distrobox {
|
config = lib.mkIf config.swarselmodules.distrobox {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
distrobox
|
distrobox
|
||||||
boxbuddy
|
boxbuddy
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.env = lib.mkEnableOption "environment config";
|
options.swarselmodules.env = lib.mkEnableOption "environment config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.env {
|
config = lib.mkIf config.swarselmodules.env {
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
wordlist.enable = true;
|
wordlist.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome-keyring config";
|
options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome-keyring config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.gnome-keyring {
|
config = lib.mkIf config.swarselmodules.gnome-keyring {
|
||||||
services.gnome.gnome-keyring = {
|
services.gnome.gnome-keyring = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.gvfs = lib.mkEnableOption "gvfs config for nautilus";
|
options.swarselmodules.gvfs = lib.mkEnableOption "gvfs config for nautilus";
|
||||||
config = lib.mkIf config.swarselsystems.modules.gvfs {
|
config = lib.mkIf config.swarselmodules.gvfs {
|
||||||
services.gvfs.enable = true;
|
services.gvfs.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, lib, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
options.swarselmodules.hardware = lib.mkEnableOption "hardware config";
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
modules.hardware = lib.mkEnableOption "hardware config";
|
|
||||||
hasBluetooth = lib.mkEnableOption "bluetooth availability";
|
hasBluetooth = lib.mkEnableOption "bluetooth availability";
|
||||||
hasFingerprint = lib.mkEnableOption "fingerprint sensor availability";
|
hasFingerprint = lib.mkEnableOption "fingerprint sensor availability";
|
||||||
trackpoint = {
|
trackpoint = {
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselsystems.modules.hardware {
|
config = lib.mkIf config.swarselmodules.hardware {
|
||||||
hardware = {
|
hardware = {
|
||||||
# opengl.driSupport32Bit = true is replaced with graphics.enable32Bit and hence redundant
|
# opengl.driSupport32Bit = true is replaced with graphics.enable32Bit and hence redundant
|
||||||
graphics = {
|
graphics = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.keyboards = lib.mkEnableOption "keyboards config";
|
options.swarselmodules.keyboards = lib.mkEnableOption "keyboards config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.keyboards {
|
config = lib.mkIf config.swarselmodules.keyboards {
|
||||||
services.udev.packages = with pkgs; [
|
services.udev.packages = with pkgs; [
|
||||||
qmk-udev-rules
|
qmk-udev-rules
|
||||||
vial
|
vial
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.ledger = lib.mkEnableOption "ledger config";
|
options.swarselmodules.ledger = lib.mkEnableOption "ledger config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.ledger {
|
config = lib.mkIf config.swarselmodules.ledger {
|
||||||
hardware.ledger.enable = true;
|
hardware.ledger.enable = true;
|
||||||
|
|
||||||
services.udev.packages = with pkgs; [
|
services.udev.packages = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ let
|
||||||
inherit (config.repo.secrets.common.yubikeys) cfg1 cfg2;
|
inherit (config.repo.secrets.common.yubikeys) cfg1 cfg2;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey config";
|
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.yubikey {
|
config = lib.mkIf config.swarselmodules.yubikey {
|
||||||
programs.ssh.startAgent = false;
|
programs.ssh.startAgent = false;
|
||||||
|
|
||||||
services.pcscd.enable = false;
|
services.pcscd.enable = false;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.interceptionTools = lib.mkEnableOption "interception tools config";
|
options.swarselmodules.interceptionTools = lib.mkEnableOption "interception tools config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.interceptionTools {
|
config = lib.mkIf config.swarselmodules.interceptionTools {
|
||||||
# Make CAPS work as a dual function ESC/CTRL key
|
# Make CAPS work as a dual function ESC/CTRL key
|
||||||
services.interception-tools = {
|
services.interception-tools = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.lid = lib.mkEnableOption "lid config";
|
options.swarselmodules.lid = lib.mkEnableOption "lid config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.lid {
|
config = lib.mkIf config.swarselmodules.lid {
|
||||||
services.logind = {
|
services.logind = {
|
||||||
lidSwitch = "suspend";
|
lidSwitch = "suspend";
|
||||||
lidSwitchDocked = "ignore";
|
lidSwitchDocked = "ignore";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.login = lib.mkEnableOption "login config";
|
options.swarselmodules.login = lib.mkEnableOption "login config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.login {
|
config = lib.mkIf config.swarselmodules.login {
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.lowBattery = lib.mkEnableOption "low battery notification config";
|
options.swarselmodules.lowBattery = lib.mkEnableOption "low battery notification config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.lowBattery {
|
config = lib.mkIf config.swarselmodules.lowBattery {
|
||||||
systemd.user.services."battery-low" = {
|
systemd.user.services."battery-low" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
description = "Timer for battery check that alerts at 10% or less";
|
description = "Timer for battery check that alerts at 10% or less";
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,10 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
modules.network = lib.mkEnableOption "network config";
|
|
||||||
firewall = lib.swarselsystems.mkTrueOption;
|
firewall = lib.swarselsystems.mkTrueOption;
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselsystems.modules.network {
|
options.swarselmodules.network = lib.mkEnableOption "network config";
|
||||||
|
config = lib.mkIf config.swarselmodules.network {
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||||
|
|
@ -118,7 +118,7 @@ in
|
||||||
wifi-security = {
|
wifi-security = {
|
||||||
auth-alg = "open";
|
auth-alg = "open";
|
||||||
key-mgmt = "wpa-psk";
|
key-mgmt = "wpa-psk";
|
||||||
psk = "WLAN1_PW";
|
psk = "$WLAN1_PW";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.networkDevices = lib.mkEnableOption "network device config";
|
options.swarselmodules.networkDevices = lib.mkEnableOption "network device config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.networkDevices {
|
config = lib.mkIf config.swarselmodules.networkDevices {
|
||||||
# enable scanners over network
|
# enable scanners over network
|
||||||
hardware.sane = {
|
hardware.sane = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.nix-ld = lib.mkEnableOption "nix-ld config";
|
options.swarselmodules.nix-ld = lib.mkEnableOption "nix-ld config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.nix-ld {
|
config = lib.mkIf config.swarselmodules.nix-ld {
|
||||||
programs.nix-ld = {
|
programs.nix-ld = {
|
||||||
enable = true;
|
enable = true;
|
||||||
libraries = with pkgs; [
|
libraries = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.nvd = lib.mkEnableOption "nvd config";
|
options.swarselmodules.nvd = lib.mkEnableOption "nvd config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.nvd {
|
config = lib.mkIf config.swarselmodules.nvd {
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.nvd
|
pkgs.nvd
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, minimal, ... }:
|
{ lib, config, pkgs, minimal, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.packages = lib.mkEnableOption "install packages";
|
options.swarselmodules.packages = lib.mkEnableOption "install packages";
|
||||||
config = lib.mkIf config.swarselsystems.modules.packages {
|
config = lib.mkIf config.swarselmodules.packages {
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; lib.optionals (!minimal) [
|
environment.systemPackages = with pkgs; lib.optionals (!minimal) [
|
||||||
# yubikey packages
|
# yubikey packages
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.pipewire = lib.mkEnableOption "pipewire config";
|
options.swarselmodules.pipewire = lib.mkEnableOption "pipewire config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.pipewire {
|
config = lib.mkIf config.swarselmodules.pipewire {
|
||||||
security.rtkit.enable = true; # this is required for pipewire real-time access
|
security.rtkit.enable = true; # this is required for pipewire real-time access
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, minimal, ... }:
|
{ lib, config, minimal, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.security = lib.mkEnableOption "security config";
|
options.swarselmodules.security = lib.mkEnableOption "security config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.security {
|
config = lib.mkIf config.swarselmodules.security {
|
||||||
|
|
||||||
security = {
|
security = {
|
||||||
pam.services = lib.mkIf (!minimal) {
|
pam.services = lib.mkIf (!minimal) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.ppd = lib.mkEnableOption "power profiles daemon config";
|
options.swarselmodules.ppd = lib.mkEnableOption "power profiles daemon config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.ppd {
|
config = lib.mkIf config.swarselmodules.ppd {
|
||||||
services.power-profiles-daemon.enable = true;
|
services.power-profiles-daemon.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.programs = lib.mkEnableOption "small program modules config";
|
options.swarselmodules.programs = lib.mkEnableOption "small program modules config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.programs {
|
config = lib.mkIf config.swarselmodules.programs {
|
||||||
programs = {
|
programs = {
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
evince.enable = true;
|
evince.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
options.swarselsystems.modules.pulseaudio = lib.mkEnableOption "pulseaudio config";
|
options.swarselmodules.pulseaudio = lib.mkEnableOption "pulseaudio config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.pulseaudio {
|
config = lib.mkIf config.swarselmodules.pulseaudio {
|
||||||
services.pulseaudio = {
|
services.pulseaudio = {
|
||||||
enable = lib.mkIf (!config.services.pipewire.enable) true;
|
enable = lib.mkIf (!config.services.pipewire.enable) true;
|
||||||
package = pkgs.pulseaudioFull;
|
package = pkgs.pulseaudioFull;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.sops = lib.mkEnableOption "sops config";
|
options.swarselmodules.sops = lib.mkEnableOption "sops config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.sops {
|
config = lib.mkIf config.swarselmodules.sops {
|
||||||
sops = {
|
sops = {
|
||||||
|
|
||||||
# age.sshKeyPaths = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs [ "/persist/.ssh/sops" "/persist/.ssh/ssh_host_ed25519_key" ] [ "${config.swarselsystems.homeDir}/.ssh/sops" "/etc/ssh/sops" "/etc/ssh/ssh_host_ed25519_key" ];
|
# age.sshKeyPaths = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs [ "/persist/.ssh/sops" "/persist/.ssh/ssh_host_ed25519_key" ] [ "${config.swarselsystems.homeDir}/.ssh/sops" "/etc/ssh/sops" "/etc/ssh/ssh_host_ed25519_key" ];
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
{ self, lib, config, ... }:
|
{ self, lib, config, vars, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix config";
|
options.swarselmodules.stylix = lib.mkEnableOption "stylix config";
|
||||||
config = {
|
config = {
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
base16Scheme = "${self}/files/stylix/swarsel.yaml";
|
base16Scheme = "${self}/files/stylix/swarsel.yaml";
|
||||||
} // lib.optionalAttrs config.swarselsystems.modules.stylix
|
} // lib.optionalAttrs config.swarselmodules.stylix
|
||||||
(lib.recursiveUpdate
|
(lib.recursiveUpdate
|
||||||
{
|
{
|
||||||
targets.grub.enable = false; # the styling makes grub more ugly
|
targets.grub.enable = false; # the styling makes grub more ugly
|
||||||
image = config.swarselsystems.wallpaper;
|
image = config.swarselsystems.wallpaper;
|
||||||
}
|
}
|
||||||
config.swarselsystems.stylix);
|
vars.stylix);
|
||||||
home-manager.users."${config.swarselsystems.mainUser}" = {
|
home-manager.users."${config.swarselsystems.mainUser}" = {
|
||||||
stylix = {
|
stylix = {
|
||||||
targets = config.swarselsystems.stylixHomeTargets;
|
targets = vars.stylixHomeTargets;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.sway = lib.mkEnableOption "sway config";
|
options.swarselmodules.sway = lib.mkEnableOption "sway config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.sway {
|
config = lib.mkIf config.swarselmodules.sway {
|
||||||
programs.sway = {
|
programs.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.dev.swayfx;
|
package = pkgs.dev.swayfx;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, pkgs, config, ... }:
|
{ lib, pkgs, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings";
|
options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||||
config = lib.mkIf config.swarselsystems.modules.swayosd {
|
config = lib.mkIf config.swarselmodules.swayosd {
|
||||||
environment.systemPackages = [ pkgs.dev.swayosd ];
|
environment.systemPackages = [ pkgs.dev.swayosd ];
|
||||||
services.udev.packages = [ pkgs.dev.swayosd ];
|
services.udev.packages = [ pkgs.dev.swayosd ];
|
||||||
systemd.services.swayosd-libinput-backend = {
|
systemd.services.swayosd-libinput-backend = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) mainUser homeDir;
|
inherit (config.swarselsystems) mainUser homeDir;
|
||||||
|
devices = config.swarselsystems.syncthing.syncDevices;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.syncthing = lib.mkEnableOption "syncthing config";
|
options.swarselmodules.syncthing = lib.mkEnableOption "syncthing config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.syncthing {
|
config = lib.mkIf config.swarselmodules.syncthing {
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.stable.syncthing;
|
package = pkgs.stable.syncthing;
|
||||||
|
|
@ -18,39 +19,26 @@ in
|
||||||
options = {
|
options = {
|
||||||
urAccepted = -1;
|
urAccepted = -1;
|
||||||
};
|
};
|
||||||
devices = {
|
inherit (config.swarselsystems.syncthing) devices;
|
||||||
"magicant" = {
|
|
||||||
id = "VMWGEE2-4HDS2QO-KNQOVGN-LXLX6LA-666E4EK-ZBRYRRO-XFEX6FB-6E3XLQO";
|
|
||||||
};
|
|
||||||
"sync@oracle" = {
|
|
||||||
id = "ETW6TST-NPK7MKZ-M4LXMHA-QUPQHDT-VTSHH5X-CR5EIN2-YU7E55F-MGT7DQB";
|
|
||||||
};
|
|
||||||
"winters" = {
|
|
||||||
id = "O7RWDMD-AEAHPP7-7TAVLKZ-BSWNBTU-2VA44MS-EYGUNBB-SLHKB3C-ZSLMOAA";
|
|
||||||
};
|
|
||||||
"moonside@oracle" = {
|
|
||||||
id = "VPCDZB6-MGVGQZD-Q6DIZW3-IZJRJTO-TCC3QUQ-2BNTL7P-AKE7FBO-N55UNQE";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
folders = {
|
folders = {
|
||||||
"Default Folder" = lib.mkDefault {
|
"Default Folder" = lib.mkDefault {
|
||||||
path = "${homeDir}/Sync";
|
path = "${homeDir}/Sync";
|
||||||
devices = [ "sync@oracle" "magicant" "winters" "moonside@oracle" ];
|
inherit devices;
|
||||||
id = "default";
|
id = "default";
|
||||||
};
|
};
|
||||||
"Obsidian" = {
|
"Obsidian" = {
|
||||||
path = "${homeDir}/Nextcloud/Obsidian";
|
path = "${homeDir}/Nextcloud/Obsidian";
|
||||||
devices = [ "sync@oracle" "magicant" "winters" "moonside@oracle" ];
|
inherit devices;
|
||||||
id = "yjvni-9eaa7";
|
id = "yjvni-9eaa7";
|
||||||
};
|
};
|
||||||
"Org" = {
|
"Org" = {
|
||||||
path = "${homeDir}/Nextcloud/Org";
|
path = "${homeDir}/Nextcloud/Org";
|
||||||
devices = [ "sync@oracle" "magicant" "winters" "moonside@oracle" ];
|
inherit devices;
|
||||||
id = "a7xnl-zjj3d";
|
id = "a7xnl-zjj3d";
|
||||||
};
|
};
|
||||||
"Vpn" = {
|
"Vpn" = {
|
||||||
path = "${homeDir}/Vpn";
|
path = "${homeDir}/Vpn";
|
||||||
devices = [ "sync@oracle" "magicant" "winters" "moonside@oracle" ];
|
inherit devices;
|
||||||
id = "hgp9s-fyq3p";
|
id = "hgp9s-fyq3p";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.systemdTimeout = lib.mkEnableOption "systemd timeout config";
|
options.swarselmodules.systemdTimeout = lib.mkEnableOption "systemd timeout config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.systemdTimeout {
|
config = lib.mkIf config.swarselmodules.systemdTimeout {
|
||||||
# systemd
|
# systemd
|
||||||
systemd.extraConfig = ''
|
systemd.extraConfig = ''
|
||||||
DefaultTimeoutStartSec=60s
|
DefaultTimeoutStartSec=60s
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.xdg-portal = lib.mkEnableOption "xdg portal config";
|
options.swarselmodules.xdg-portal = lib.mkEnableOption "xdg portal config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.xdg-portal {
|
config = lib.mkIf config.swarselmodules.xdg-portal {
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.zsh = lib.mkEnableOption "zsh base config";
|
options.swarselmodules.zsh = lib.mkEnableOption "zsh base config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.zsh {
|
config = lib.mkIf config.swarselmodules.zsh {
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableCompletion = false;
|
enableCompletion = false;
|
||||||
|
|
|
||||||
25
modules/nixos/common/boot.nix
Normal file
25
modules/nixos/common/boot.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ lib, pkgs, config, globals, ... }:
|
||||||
|
{
|
||||||
|
options.swarselmodules.boot = lib.mkEnableOption "boot config";
|
||||||
|
config = lib.mkIf config.swarselmodules.boot {
|
||||||
|
boot = {
|
||||||
|
initrd.systemd = {
|
||||||
|
enable = true;
|
||||||
|
emergencyAccess = globals.root.hashedPassword;
|
||||||
|
users.root.shell = "${pkgs.bashInteractive}/bin/bash";
|
||||||
|
storePaths = [ "${pkgs.bashInteractive}/bin/bash" ];
|
||||||
|
extraBin = {
|
||||||
|
ip = "${pkgs.iproute2}/bin/ip";
|
||||||
|
ping = "${pkgs.iputils}/bin/ping";
|
||||||
|
cryptsetup = "${pkgs.cryptsetup}/bin/cryptsetup";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
kernelParams = [ "log_buf_len=16M" ];
|
||||||
|
tmp.useTmpfs = true;
|
||||||
|
loader.timeout = lib.mkDefault 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
console.earlySetup = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
{ self, lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
importNames = lib.swarselsystems.readNix "modules/nixos/common";
|
importNames = lib.swarselsystems.readNix "modules/nixos/common";
|
||||||
|
sharedNames = lib.swarselsystems.readNix "modules/shared";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = lib.swarselsystems.mkImports importNames "modules/nixos/common" ++ [
|
imports = lib.swarselsystems.mkImports importNames "modules/nixos/common" ++
|
||||||
"${self}/modules/shared/sharedsetup.nix"
|
lib.swarselsystems.mkImports sharedNames "modules/shared";
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,12 @@ in
|
||||||
default = { };
|
default = { };
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
options = {
|
options = {
|
||||||
|
root = {
|
||||||
|
hashedPassword = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
user = {
|
user = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
||||||
36
modules/nixos/common/home-manager-secrets.nix
Normal file
36
modules/nixos/common/home-manager-secrets.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
{ lib, config, globals, ... }:
|
||||||
|
let
|
||||||
|
inherit (config.swarselsystems) mainUser homeDir;
|
||||||
|
inherit (config.repo.secrets.common.emacs) radicaleUser;
|
||||||
|
modules = config.home-manager.users.${mainUser}.swarselmodules;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.swarselsystems.withHomeManager {
|
||||||
|
sops = {
|
||||||
|
secrets = (lib.optionalAttrs modules.mail
|
||||||
|
{
|
||||||
|
address1-token = { owner = mainUser; };
|
||||||
|
address2-token = { owner = mainUser; };
|
||||||
|
address3-token = { owner = mainUser; };
|
||||||
|
address4-token = { owner = mainUser; };
|
||||||
|
}) // (lib.optionalAttrs modules.waybar {
|
||||||
|
github-notifications-token = { owner = mainUser; };
|
||||||
|
}) // (lib.optionalAttrs modules.emacs {
|
||||||
|
fever-pw = { path = "${homeDir}/.emacs.d/.fever"; owner = mainUser; };
|
||||||
|
}) // (lib.optionalAttrs modules.zsh {
|
||||||
|
croc-password = { owner = mainUser; };
|
||||||
|
}) // (lib.optionalAttrs modules.emacs {
|
||||||
|
emacs-radicale-pw = { owner = mainUser; };
|
||||||
|
});
|
||||||
|
templates = {
|
||||||
|
authinfo = {
|
||||||
|
path = "${homeDir}/.emacs.d/.authinfo";
|
||||||
|
content = ''
|
||||||
|
machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw}
|
||||||
|
'';
|
||||||
|
owner = mainUser;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
{ self, inputs, config, lib, outputs, globals, nodes, minimal, configName, ... }:
|
{ self, inputs, config, lib, outputs, globals, options, nodes, minimal, configName, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.home-manager = lib.mkEnableOption "home-manager";
|
options.swarselmodules.home-manager = lib.mkEnableOption "home-manager";
|
||||||
config = lib.mkIf config.swarselsystems.modules.home-manager {
|
config = lib.mkIf config.swarselmodules.home-manager {
|
||||||
home-manager = lib.mkIf config.swarselsystems.withHomeManager {
|
home-manager = lib.mkIf config.swarselsystems.withHomeManager {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
verbose = true;
|
verbose = true;
|
||||||
users.swarsel.imports = [
|
users.${config.swarselsystems.mainUser}.imports = [
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
# inputs.stylix.homeModules.stylix
|
# inputs.stylix.homeModules.stylix
|
||||||
|
|
@ -14,8 +14,11 @@
|
||||||
imports = [
|
imports = [
|
||||||
"${self}/profiles/home"
|
"${self}/profiles/home"
|
||||||
"${self}/modules/home"
|
"${self}/modules/home"
|
||||||
# "${self}/modules/nixos/common/pii.nix"
|
{
|
||||||
# "${self}/modules/nixos/common/meta.nix"
|
swarselprofiles = {
|
||||||
|
minimal = lib.mkIf minimal true;
|
||||||
|
};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
# node = {
|
# node = {
|
||||||
# secretsDir = if (!config.swarselsystems.isNixos) then ../../../hosts/home/${configName}/secrets else ../../../hosts/nixos/${configName}/secrets;
|
# secretsDir = if (!config.swarselsystems.isNixos) then ../../../hosts/home/${configName}/secrets else ../../../hosts/nixos/${configName}/secrets;
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ let
|
||||||
inherit (config.swarselsystems) isImpermanence isCrypted;
|
inherit (config.swarselsystems) isImpermanence isCrypted;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.impermanence = lib.mkEnableOption "impermanence config";
|
options.swarselmodules.impermanence = lib.mkEnableOption "impermanence config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.impermanence {
|
config = lib.mkIf config.swarselmodules.impermanence {
|
||||||
|
|
||||||
|
|
||||||
security.sudo.extraConfig = lib.mkIf isImpermanence ''
|
security.sudo.extraConfig = lib.mkIf isImpermanence ''
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, pkgs, config, minimal, ... }:
|
{ lib, pkgs, config, minimal, ... }:
|
||||||
{
|
{
|
||||||
options.swarselsystems.modules.lanzaboote = lib.mkEnableOption "lanzaboote config";
|
options.swarselmodules.lanzaboote = lib.mkEnableOption "lanzaboote config";
|
||||||
config = lib.mkIf config.swarselsystems.modules.lanzaboote {
|
config = lib.mkIf config.swarselmodules.lanzaboote {
|
||||||
|
|
||||||
environment.systemPackages = lib.mkIf config.swarselsystems.isSecureBoot [
|
environment.systemPackages = lib.mkIf config.swarselsystems.isSecureBoot [
|
||||||
pkgs.sbctl
|
pkgs.sbctl
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue