diff --git a/old/fixes/plasma-fix.nix b/old/fixes/plasma-fix.nix
deleted file mode 100644
index 35e95f9..0000000
--- a/old/fixes/plasma-fix.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-# https://github.com/NixOS/nixpkgs/issues/126590#issuecomment-3194531220
-{
- config,
- pkgs,
- lib,
- ...
-}: {
- nixpkgs.overlays = lib.singleton (final: prev: {
- kdePackages =
- prev.kdePackages
- // {
- plasma-workspace = let
- # the package we want to override
- basePkg = prev.kdePackages.plasma-workspace;
-
- # a helper package that merges all the XDG_DATA_DIRS into a single directory
- xdgdataPkg = pkgs.stdenv.mkDerivation {
- name = "${basePkg.name}-xdgdata";
- buildInputs = [basePkg];
- dontUnpack = true;
- dontFixup = true;
- dontWrapQtApps = true;
- installPhase = ''
- mkdir -p $out/share
- ( IFS=:
- for DIR in $XDG_DATA_DIRS; do
- if [[ -d "$DIR" ]]; then
- cp -r $DIR/. $out/share/
- chmod -R u+w $out/share
- fi
- done
- )
- '';
- };
-
- # undo the XDG_DATA_DIRS injection that is usually done in the qt wrapper
- # script and instead inject the path of the above helper package
- derivedPkg = basePkg.overrideAttrs {
- preFixup = ''
- for index in "''${!qtWrapperArgs[@]}"; do
- if [[ ''${qtWrapperArgs[$((index+0))]} == "--prefix" ]] && [[ ''${qtWrapperArgs[$((index+1))]} == "XDG_DATA_DIRS" ]]; then
- unset -v "qtWrapperArgs[$((index+0))]"
- unset -v "qtWrapperArgs[$((index+1))]"
- unset -v "qtWrapperArgs[$((index+2))]"
- unset -v "qtWrapperArgs[$((index+3))]"
- fi
- done
- qtWrapperArgs=("''${qtWrapperArgs[@]}")
- qtWrapperArgs+=(--prefix XDG_DATA_DIRS : "${xdgdataPkg}/share")
- qtWrapperArgs+=(--prefix XDG_DATA_DIRS : "$out/share")
- '';
- };
- in
- derivedPkg;
- };
- });
-}
diff --git a/old/modules/bin/nix-scripts.nix b/old/modules/bin/nix-scripts.nix
deleted file mode 100644
index 61c97b7..0000000
--- a/old/modules/bin/nix-scripts.nix
+++ /dev/null
@@ -1,118 +0,0 @@
-{
- config,
- lib,
- pkgs,
- isHM,
- ...
-}: let
- cfg = config.hive.nix-scripts;
- home-rebuild =
- pkgs.writeShellScriptBin ".home-rebuild"
- ''
- set -e
- pushd ~/.hive/
- ${pkgs.alejandra}/bin/alejandra . &>/dev/null
- ${pkgs.git}/bin/git diff -U0
- echo "NixOS Rebuilding..."
- home-manager switch --flake ~/.hive -b backup --log-format internal-json |& ${pkgs.nix-output-monitor}/bin/nom --json
- gen=$(home-manager generations | head -n1 | ${pkgs.gawk}/bin/awk '{print "Gen" $5 " @ " $1 "-" $2}')
- by="$(${pkgs.coreutils-full}/bin/whoami)@$(${pkgs.nettools}/bin/hostname)"
- ${pkgs.git}/bin/git commit --no-gpg-sign -am "Home $gen by $by"
- popd
- '';
- rebuild =
- pkgs.writeShellScriptBin ".nixos-rebuild"
- ''
- set -e
- pushd ~/.hive/
- ${pkgs.alejandra}/bin/alejandra . &>/dev/null
- ${pkgs.git}/bin/git diff -U0
- echo "NixOS Rebuilding..."
- ${pkgs.nh}/bin/nh os switch ~/.hive
- gen=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | ${pkgs.gnugrep}/bin/grep current | ${pkgs.gawk}/bin/awk '{print "Gen" $1 " @ " $2 "-" $3}')
- by="$(${pkgs.coreutils-full}/bin/whoami)@$(${pkgs.nettools}/bin/hostname)"
- ${pkgs.git}/bin/git commit --no-gpg-sign -am "System $gen by $by"
- popd
- '';
- upgrade =
- pkgs.writeShellScriptBin ".nixos-upgrade"
- ''
- set -e
- pushd ~/.hive/
- if [ -n "$(${pkgs.git}/bin/git status --porcelain)" ]; then
- echo ".hive is unclean!"
- exit 1
- fi
- branch_staging="staging-update"
-
- if ${pkgs.git}/bin/git rev-parse --verify "$branch_staging" >/dev/null 2>&1; then
- echo "Using staging update branch."
- else
- echo "No staging update branch found."
- exit 1
- fi
-
- ${pkgs.git}/bin/git checkout "$branch_staging" flake.lock
- echo "Updating nix-flake..."
- nix flake update --flake .
- echo "NixOS Rebuilding..."
- ${pkgs.nh}/bin/nh os switch ~/.hive
- gen=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | ${pkgs.gnugrep}/bin/grep current | ${pkgs.gawk}/bin/awk '{print "Gen" $1 " @ " $2 "-" $3}')
- by="$(${pkgs.coreutils-full}/bin/whoami)@$(${pkgs.nettools}/bin/hostname)"
- ${pkgs.git}/bin/git commit --no-gpg-sign -am "Upgrade $gen by $by"
- ${pkgs.git}/bin/git branch -D "$branch_staging"
- popd
- '';
- update =
- pkgs.writeShellScriptBin ".nixos-update"
- ''
- set -e
- pushd ~/.hive/
- if [ -n "$(${pkgs.git}/bin/git status --porcelain)" ]; then
- echo ".hive is unclean!"
- exit 1
- fi
- branch_staging="staging-update"
- branch_current="$(${pkgs.git}/bin/git branch --show-current)"
-
- if ${pkgs.git}/bin/git rev-parse --verify "$branch_staging" >/dev/null 2>&1; then
- echo "There is already a staging update branch."
- else
- echo "Creating a new staging update branch."
- ${pkgs.git}/bin/git switch -c "$branch_staging"
- nix flake update --verbose --flake .
- ${pkgs.git}/bin/git add flake.lock
- ${pkgs.git}/bin/git commit --no-gpg-sign -m "staging update"
- ${pkgs.git}/bin/git switch "$branch_current"
- fi
-
- nix store --log-format internal-json -v diff-closures \
- '.?ref='"$branch_current"'#nixosConfigurations.'"$(${pkgs.hostname}/bin/hostname)"'.config.system.build.toplevel' \
- '.?ref='"$branch_staging"'#nixosConfigurations.'"$(${pkgs.hostname}/bin/hostname)"'.config.system.build.toplevel' \
- |& ${pkgs.nix-output-monitor}/bin/nom --json
-
- popd
- '';
-in {
- options = {
- hive.nix-scripts.enable = lib.mkEnableOption "Enable the nix build/update scripts";
- };
-
- config =
- lib.mkIf cfg.enable
- (
- if isHM
- then {
- home.packages = [
- home-rebuild
- ];
- }
- else {
- environment.systemPackages = [
- rebuild
- upgrade
- update
- ];
- }
- );
-}
diff --git a/old/modules/default.nix b/old/modules/default.nix
deleted file mode 100644
index f1453c7..0000000
--- a/old/modules/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- isHM ? null,
- lib,
- ...
-}: {
- assertions = [
- {
- assertion = isHM != null;
- message = "The \"home-manager\" flag isHM is required.";
- }
- ];
- imports =
- [
- # modules containing both system and home-manager configs
- ./bin/nix-scripts.nix
- ]
- ++ lib.optionals (! isHM) [
- # pure system modules
- ./desktop/de
- ./desktop/dm
- ./desktop/themes
- ./hardware/bluetooth.nix
- ./hardware/sound.nix
- ./hardware/yubikey.nix
- ./networking/wireguard
- ./programs/creative.nix
- ./programs/games.nix
- ./programs/spotify-shortcuts.nix
- ./programs/utils.nix
- ./services/borg-server.nix
- ./services/gitea-instance.nix
- ./services/gotify-instance.nix
- ./services/kdeconnect.nix
- ./services/minecraft-server
- ./services/nextcloud-instance.nix
- ./services/virt-manager.nix
- ]
- ++ lib.optionals isHM [
- # pure home-manager modules
- ./home/doom
- ./home/firefox.nix
- ./home/flameshot.nix
- ./home/gotify.nix
- ./home/hyprland
- ./home/jj.nix
- ./home/kdeconnect.nix
- ./home/kitty
- ./home/nextcloud
- ./home/plasma.nix
- ./home/ranger
- ./home/ssh.nix
- ./home/swaync
- ./home/themes/layan.nix
- ./home/waybar
- ./home/wlogout
- ./home/wofi
- ./home/yubikey.nix
- ./home/zsh
- ];
-}
diff --git a/old/modules/desktop/de/default.nix b/old/modules/desktop/de/default.nix
deleted file mode 100644
index 4695193..0000000
--- a/old/modules/desktop/de/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- imports = [
- ./hyprland.nix
- ./kwallet.nix
- ./plasma.nix
- ];
-}
diff --git a/old/modules/desktop/de/hyprland.nix b/old/modules/desktop/de/hyprland.nix
deleted file mode 100644
index 15ce81d..0000000
--- a/old/modules/desktop/de/hyprland.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- lib,
- config,
- pkgs,
- ...
-}: let
- cfg = config.hive.hyprland;
-in {
- options.hive.hyprland = {
- enable = lib.mkEnableOption "enable hyprland desktop environment";
- };
- config = lib.mkIf cfg.enable {
- services = {
- libinput.enable = true;
- dbus.enable = true;
- };
-
- xdg.portal = {
- enable = true;
- extraPortals = with pkgs; [
- xdg-desktop-portal-wlr
- xdg-desktop-portal-hyprland
- kdePackages.xdg-desktop-portal-kde
- ];
- };
-
- environment.systemPackages = with pkgs; [spaceFM];
-
- services.udisks2.enable = true;
-
- programs.hyprland = {
- enable = true;
- withUWSM = true;
- xwayland.enable = true;
- };
- programs.hyprlock.enable = true;
- security.pam.services.hyprlock = {};
- };
-}
diff --git a/old/modules/desktop/de/plasma.nix b/old/modules/desktop/de/plasma.nix
deleted file mode 100644
index d88c0d2..0000000
--- a/old/modules/desktop/de/plasma.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.plasma;
-in {
- options.hive.plasma = {
- enable = lib.mkEnableOption "Enable Plasma desktop environment with sddm";
- };
-
- config = lib.mkIf cfg.enable {
- services.desktopManager.plasma6.enable = true;
-
- xdg.portal = {
- enable = true;
- extraPortals = with pkgs; [
- kdePackages.xdg-desktop-portal-kde
- xdg-desktop-portal-gtk
- ];
- };
- };
-}
diff --git a/old/modules/desktop/dm/default.nix b/old/modules/desktop/dm/default.nix
deleted file mode 100644
index 381c205..0000000
--- a/old/modules/desktop/dm/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.displayManager;
-in {
- options.hive.displayManager = with lib; {
- name = mkOption {
- type = types.enum ["sddm" "gdm" "cosmic"];
- default = "sddm";
- description = "The display manager to use.";
- };
- autologin = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = "The autologin username or null for no autologin.";
- };
- };
-
- imports = [
- ./gdm.nix
- ./sddm.nix
- ];
-
- config = {
- services.xserver.enable = true;
- services.xserver = {
- xkb.layout = "de";
- xkb.variant = "";
- xkb.options = "caps:ctrl_modifier";
- };
- services.displayManager.autoLogin.enable = cfg.autologin != null;
- services.displayManager.autoLogin.user = cfg.autologin;
- };
-}
diff --git a/old/modules/desktop/dm/gdm.nix b/old/modules/desktop/dm/gdm.nix
deleted file mode 100644
index 83e7813..0000000
--- a/old/modules/desktop/dm/gdm.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- lib,
- config,
- ...
-}: let
- cfg = config.hive.displayManager;
-in {
- config = lib.mkIf (cfg.name == "gdm") {
- services.xserver.displayManager.gdm = {
- enable = true;
- wayland = true;
- };
- };
-}
diff --git a/old/modules/desktop/dm/sddm.nix b/old/modules/desktop/dm/sddm.nix
deleted file mode 100644
index 56fdd69..0000000
--- a/old/modules/desktop/dm/sddm.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- lib,
- config,
- pkgs,
- ...
-}: let
- cfg = config.hive.displayManager;
-in {
- config = lib.mkIf (cfg.name == "sddm") {
- services.displayManager.sddm = {
- enable = true;
- wayland.enable = true;
- };
- };
-}
diff --git a/old/modules/desktop/themes/default.nix b/old/modules/desktop/themes/default.nix
deleted file mode 100644
index 65faac2..0000000
--- a/old/modules/desktop/themes/default.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{...}: {
- imports = [
- ./layan.nix
- ];
-}
diff --git a/old/modules/desktop/themes/layan.nix b/old/modules/desktop/themes/layan.nix
deleted file mode 100644
index a89573c..0000000
--- a/old/modules/desktop/themes/layan.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- lib,
- config,
- pkgs,
- ...
-}: let
- cfg = config.hive.themes.layan;
-in {
- options.hive.themes.layan = {
- enable = lib.mkEnableOption "Layan theme configuration";
- };
- config = lib.mkIf cfg.enable {
- environment.systemPackages = [
- pkgs.hive.layan-qt6
- pkgs.kdePackages.qtstyleplugin-kvantum
- pkgs.unstable.layan-cursors
- pkgs.layan-gtk-theme
- pkgs.tela-circle-icon-theme
- ];
- };
-}
diff --git a/old/modules/home/firefox.nix b/old/modules/home/firefox.nix
deleted file mode 100644
index 25f80c7..0000000
--- a/old/modules/home/firefox.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- config,
- lib,
- inputs,
- pkgs,
- ...
-}: let
- cfg = config.hive.firefox;
-in {
- options.hive.firefox = {
- enable = lib.mkEnableOption "Enable Firefox";
- plasmaIntegration = lib.mkEnableOption "Enable Plasma Integration";
- passFF = lib.mkEnableOption "Enable PassFF";
- };
- config = lib.mkIf cfg.enable {
- programs.firefox = {
- enable = true;
- nativeMessagingHosts = lib.optional cfg.passFF pkgs.passff-host;
-
- # Default profile
- profiles.jonas = {
- name = "Jonas";
- id = 0;
- isDefault = true;
-
- # Search
- search = {
- default = "ddg";
- order = ["ddg" "google"];
- force = true;
- engines = {
- "Nix Packages" = {
- urls = [
- {
- template = "https://search.nixos.org/packages";
- params = [
- {
- name = "type";
- value = "packages";
- }
- {
- name = "query";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- };
- "Noogle" = {
- urls = [
- {
- template = "https://noogle.dev/q";
- params = [
- {
- name = "term";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- };
- "cppreference" = {
- urls = [
- {
- template = "https://en.cppreference.com/mwiki/index.php";
- params = [
- {
- name = "title";
- value = "Special%3ASearch";
- }
- {
- name = "search";
- value = "{searchTerms}";
- }
- {
- name = "Go";
- value = "go";
- }
- ];
- }
- ];
- };
- };
- };
-
- # Extensions
- extensions.packages = with inputs.firefox-addons.packages."x86_64-linux"; ([
- ublock-origin
- violentmonkey
- ]
- ++ lib.optional cfg.plasmaIntegration plasma-integration
- ++ lib.optional cfg.passFF passff);
- };
- };
- };
-}
diff --git a/old/modules/home/flameshot.nix b/old/modules/home/flameshot.nix
deleted file mode 100644
index 41b0ca6..0000000
--- a/old/modules/home/flameshot.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.flameshot;
-in {
- options.hive.flameshot.enable = lib.mkEnableOption "Flameshot service.";
- config = lib.mkIf cfg.enable {
- services.flameshot.enable = true;
- };
-}
diff --git a/old/modules/home/gotify.nix b/old/modules/home/gotify.nix
deleted file mode 100644
index 188c1f4..0000000
--- a/old/modules/home/gotify.nix
+++ /dev/null
@@ -1,153 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.gotify;
- cli-config = {
- token = config.sops.placeholder.${cfg.cli.tokenSopsKey};
- inherit (cfg.cli) url defaultPriority;
- };
- daemon-config = {
- gotify =
- {
- inherit (cfg.daemon) url;
- token = config.sops.placeholder.${cfg.daemon.tokenSopsKey};
- auto_delete = cfg.daemon.autoDelete;
- min_priority = cfg.daemon.minPriority;
- }
- // lib.optionalAttrs (cfg.daemon.onMsgCommand != null) {
- on_msg_command = cfg.daemon.onMsgCommand;
- };
- };
-
- valueToString = val:
- if (builtins.typeOf val == "string")
- then "\"${val}\""
- else
- (
- if (builtins.typeOf val == "int")
- then "${toString val}"
- else
- (
- if (builtins.typeOf val == "bool")
- then
- (
- if val
- then "true"
- else "false"
- )
- else (abort "Expected string int or bool, got ${builtins.typeOf val} with value ${toString val}")
- )
- );
-
- toTOML = attrs:
- lib.concatStrings (
- lib.attrValues (
- lib.mapAttrs (
- name: config: ''
- [${name}]
- ${lib.concatStringsSep "\n" (lib.attrValues (lib.mapAttrs (k: v: "${k} = ${valueToString v}") config))}
- ''
- )
- attrs
- )
- );
-in {
- options.hive.gotify = {
- cli = {
- enable = lib.mkEnableOption "Enable Gotify cli tool";
- url = lib.mkOption {
- type = lib.types.singleLineStr;
- default = "https://${cfg.host}:${toString cfg.port}";
- example = "http://gotify.example.com";
- description = "The http url of the gotify server (for the cli tool)";
- };
- tokenSopsKey = lib.mkOption {
- type = lib.types.singleLineStr;
- description = "The sops key of the token secret";
- };
- defaultPriority = lib.mkOption {
- type = lib.types.int;
- default = 0;
- example = 3;
- description = "The default priority of the dispatched messages";
- };
- };
- daemon = {
- enable = lib.mkEnableOption "Enable the Gotify desktop notification daemon";
- url = lib.mkOption {
- type = lib.types.singleLineStr;
- default = "wss://${cfg.host}:${toString cfg.port}";
- example = "ws://gotify.example.com";
- description = "The websocket url of the gotify server (for the desktop tool)";
- };
- tokenSopsKey = lib.mkOption {
- type = lib.types.singleLineStr;
- description = "The sops key of the token secret";
- };
- autoDelete = lib.mkOption {
- type = lib.types.bool;
- default = false;
- example = true;
- description = "Delete messages that have been handled";
- };
- minPriority = lib.mkOption {
- type = lib.types.int;
- default = 0;
- example = 1;
- description = "Ignore messages with priority lower than given value";
- };
- onMsgCommand = lib.mkOption {
- type = lib.types.nullOr lib.types.singleLineStr;
- default = null;
- example = "/usr/bin/beep";
- description = '' A command to tun for each message with env vars
- GOTIFY_MSG_PRIORITY, GOTIFY_MSG_TITLE and GOTIFY_MSG_TEXTs
- If unset use the standard desktop notification passing
- '';
- };
- };
- host = lib.mkOption {
- type = lib.types.singleLineStr;
- example = "example.com";
- description = "The hostname of the gotify server";
- };
- port = lib.mkOption {
- type = lib.types.int;
- default = 443;
- example = 443;
- description = "The port of the gotify server";
- };
- };
-
- config = let
- cli = lib.mkIf cfg.cli.enable {
- home.packages = [pkgs.gotify-cli];
- sops.templates."gotify-cli-json" = {
- content = lib.generators.toJSON {} cli-config;
- path = "${config.xdg.configHome}/gotify/cli.json";
- };
- };
- daemon = lib.mkIf cfg.daemon.enable {
- systemd.user.services.gotify-desktop = {
- Unit = {
- Description = "Gotify Desktop notification service";
- After = ["sops-nix.service"]; # After the secrets have been rendered
- };
- Service = {
- ExecStart = "${pkgs.gotify-desktop}/bin/gotify-desktop";
- };
- Install = {
- WantedBy = ["multi-user.target"];
- };
- };
- sops.templates."gotify-daemon-toml" = {
- content = toTOML daemon-config;
- path = "${config.xdg.configHome}/gotify-desktop/config.toml";
- };
- };
- in
- lib.mkMerge [cli daemon];
-}
diff --git a/old/modules/home/hyprland/config.nix b/old/modules/home/hyprland/config.nix
deleted file mode 100644
index a7f67ce..0000000
--- a/old/modules/home/hyprland/config.nix
+++ /dev/null
@@ -1,362 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}: let
- cfg = config.hive.hyprland;
- screenshot = pkgs.writeShellScriptBin "screenshot" ''
- region=0
- clip=0
- while [[ "$#" -gt 0 ]]; do
- case $1 in
- --region) region=1; ;;
- --clip) clip=1; ;;
- *) echo "Unknown parameter passed: $1"; exit 1 ;;
- esac
- shift
- done
-
- if [[ $region -eq 1 ]]; then
- if [[ $clip -eq 1 ]]; then
- ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.wl-clipboard}/bin/wl-copy
- else
- ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" ~/Pictures/Screenshots/$(${pkgs.coreutils}/bin/date +'%Y-%m-%d_%H-%M-%S').png
- fi
- else
- if [[ $clip -eq 1 ]]; then
- ${pkgs.grim}/bin/grim - | ${pkgs.wl-clipboard}/bin/wl-copy
- else
- ${pkgs.grim}/bin/grim ~/Pictures/Screenshots/$(${pkgs.coreutils}/bin/date +'%Y-%m-%d_%H-%M-%S').png
- fi
- fi
- '';
-in {
- config = lib.mkIf cfg.enable {
- services.hypridle.settings = {
- general = {
- # lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
- # unlock_cmd = notify-send "unlock!" # same as above, but unlock
- ignore_dbus_inhibit = "false"; # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
- lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
- before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
- after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
- };
-
- listener = [
- # Screenlock
- {
- timeout = 180; # in seconds
- on-timeout = "hyprlock"; # command to run when timeout has passed
- # on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
- }
- # Suspend
- {
- timeout = 360; # in seconds
- on-timeout = "systemctl suspend"; # command to run when timeout has passed
- # on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
- }
- ];
- };
-
- programs.hyprlock = {
- enable = true;
- settings = {
- background = [
- {
- path = "screenshot"; # only png supported for now
- # color = $color1
-
- # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
- blur_size = 4;
- blur_passes = 3; # 0 disables blurring
- noise = 0.0117;
- contrast = 1.3000; # Vibrant!!!
- brightness = 0.8000;
- vibrancy = 0.2100;
- vibrancy_darkness = 0.0;
- }
- ];
-
- # Hours
- label = [
- {
- text = ''cmd[update:1000] echo " $(date +"%H") "'';
- #color = $color6
- font_size = 112;
- # font_family = Geist Mono 10
- shadow_passes = 3;
- shadow_size = 4;
-
- position = "0, 220";
- halign = "center";
- valign = "center";
- }
- {
- text = ''cmd[update:1000] echo " $(date +"%M") "'';
- # color = $color6
- font_size = 112;
- # font_family = Geist Mono 10
- shadow_passes = 3;
- shadow_size = 4;
-
- position = "0, 80";
- halign = "center";
- valign = "center";
- }
- {
- text = ''cmd[update:18000000] echo " "$(date +'%A')" "'';
- # color = $color7
- font_size = 22;
- # font_family = JetBrainsMono Nerd Font 10
-
- position = "0, -10";
- halign = "center";
- valign = "center";
- }
- {
- text = ''cmd[update:18000000] echo " "$(${pkgs.coreutils-full}/bin/date +'%d %b')" "'';
- # color = $color7
- font_size = 18;
- #font_family = JetBrainsMono Nerd Font 10
-
- position = "0, -40";
- halign = "center";
- valign = "center";
- }
- {
- text = ''cmd[update:18000000] echo "So ca. $(${pkgs.curl}/bin/curl -s 'wttr.in?format=%t' | ${pkgs.coreutils-full}/bin/tr -d '+') oder watt."'';
- #color = $color7
- font_size = 18;
- # font_family = Geist Mono 10
-
- position = "0, 40";
- halign = "center";
- valign = "bottom";
- }
- ];
-
- input-field = [
- {
- size = "250, 50";
- outline_thickness = 3;
-
- dots_size = 0.26; # Scale of input-field height, 0.2 - 0.8
- dots_spacing = 0.64; # Scale of dots' absolute size, 0.0 - 1.0
- dots_center = true;
- dots_rouding = -1;
-
- rounding = 22;
- # outer_color = $color0
- # inner_color = $color0
- # font_color = $color6
- fade_on_empty = true;
- placeholder_text = ''Password...''; # Text rendered in the input box when it's empty.
-
- position = "0, 120";
- halign = "center";
- valign = "bottom";
- }
- ];
- };
- };
-
- wayland.windowManager.hyprland = {
- settings = {
- exec-once = [
- "${pkgs.wpaperd}/bin/wpaperd &"
- ];
-
- "$mod" = "SUPER";
- bind =
- [
- "$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty"
- "$mod, d, exec, ${pkgs.wofi}/bin/wofi --show drun"
- "$mod, h, movefocus, l"
- "$mod, j, movefocus, d"
- "$mod, k, movefocus, u"
- "$mod, l, movefocus, r"
- "$mod, LEFT, movefocus, l"
- "$mod, DOWN, movefocus, d"
- "$mod, UP, movefocus, u"
- "$mod, RIGHT, movefocus, r"
- "$mod SHIFT, h, movewindow, l"
- "$mod SHIFT, j, movewindow, d"
- "$mod SHIFT, k, movewindow, u"
- "$mod SHIFT, l, movewindow, r"
- "$mod SHIFT, LEFT, movewindow, l"
- "$mod SHIFT, DOWN, movewindow, d"
- "$mod SHIFT, UP, movewindow, u"
-
- "$mod CTRL SHIFT, LEFT, moveactive, -10 0"
- "$mod CTRL SHIFT, DOWN, moveactive, 0 10"
- "$mod CTRL SHIFT, UP, moveactive, 0 -10"
- "$mod CTRL SHIFT, RIGHT, moveactive, 10 0"
- "$mod CTRL SHIFT, h, moveactive, -10 0"
- "$mod CTRL SHIFT, j, moveactive, 0 10"
- "$mod CTRL SHIFT, k, moveactive, 0 -10"
- "$mod CTRL SHIFT, l, moveactive, 10 0"
- "$mod SHIFT, q, killactive"
- "$mod CTRL, h, resizeactive, -5% 0%"
- "$mod CTRL, l, resizeactive, 5% 0%"
- "$mod CTRL, j, resizeactive, 0% -5%"
- "$mod CTRL, k, resizeactive, 0% 5%"
- "$mod, SPACE, togglefloating, active"
- "$mod SHIFT, SPACE, centerwindow"
- "$mod, f, fullscreen, 1"
- "$mod SHIFT, f, fullscreen, 0"
- "$mod CTRL, f, fullscreenstate, -1 2"
- "$mod SHIFT, s, pin"
- "$mod SHIFT, x, exec, ${pkgs.hyprland}/bin/hyprctl kill"
- ", XF86AudioRaiseVolume, exec, ${pkgs.pulsemixer}/bin/pulsemixer --change-volume +5"
- ", XF86AudioLowerVolume, exec, ${pkgs.pulsemixer}/bin/pulsemixer --change-volume -5"
- ", XF86AudioMute, exec, ${pkgs.pulsemixer}/bin/pulsemixer --toggle-mute"
- ", XF86AudioMicMute, exec, ${pkgs.pulsemixer}/bin/pulsemixer --toggle-mute --id 1"
- ", XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl set +5%"
- ", XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"
- "$mod, 9, exec, ${pkgs.hyprlock}/bin/hyprlock"
- "$mod, 0, exec, ${pkgs.wlogout}/bin/wlogout -b 5"
- "$mod, n, exec, ${pkgs.swaynotificationcenter}/bin/swaync-client -t"
- ", Print, exec, ${screenshot}/bin/screenshot"
- "CTRL, Print, exec, ${screenshot}/bin/screenshot --region"
- "SHIFT, Print, exec, ${screenshot}/bin/screenshot --clip"
- "CTRL SHIFT, Print, exec, ${screenshot}/bin/screenshot --region --clip"
- ]
- ++ (
- # workspaces
- # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
- builtins.concatLists (builtins.genList (
- x: let
- ws = builtins.toString (x + 1);
- in [
- "$mod, ${ws}, workspace, ${ws}"
- "$mod SHIFT, ${ws}, movetoworkspace, ${ws}"
- "$mod CTRL, ${ws}, movetoworkspacesilent, ${ws}"
- ]
- )
- 8)
- );
- # See https://wiki.hyprland.org/Configuring/Monitors/
- monitor = ",preferred,auto,1";
- env = [
- "GDK_SCALE,1"
- "XCURSOR_SIZE,12"
- ];
-
- xwayland = {
- force_zero_scaling = true;
- };
-
- # See https://wiki.hyprland.org/Configuring/Keywords/ for more
-
- # Execute your favorite apps at launch
- # exec-once = waybar & hyprpaper & firefox
-
- # Source a file (multi-file configs)
- # source = ~/.config/hypr/myColors.conf
-
- # For all categories, see https://wiki.hyprland.org/Configuring/Variables/
- input = {
- kb_layout = "de";
- kb_variant = "deadacute";
- kb_model = "";
- kb_options = "caps:ctrl_modifier";
- kb_rules = "";
- repeat_delay = 250;
- repeat_rate = 30;
- follow_mouse = 1;
-
- touchpad = {
- natural_scroll = "yes";
- };
-
- sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
- };
-
- general = {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
-
- gaps_in = 5;
- gaps_out = 10;
- border_size = 2;
- "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
- "col.inactive_border" = "rgba(595959aa)";
-
- layout = "dwindle";
-
- # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
- allow_tearing = false;
- };
-
- layerrule = [
- # blur for wlogout
- "blur, logout_dialog"
-
- # blur for swaync
- "blur, swaync-control-center"
- "blur, swaync-notification-window"
- "ignorezero, swaync-control-center"
- "ignorezero, swaync-notification-window"
- "ignorealpha 0.5, swaync-control-center"
- "ignorealpha 0.5, swaync-notification-window"
- ];
-
- decoration = {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
-
- rounding = 10;
-
- blur = {
- enabled = true;
- size = 8;
- passes = 1;
- new_optimizations = true;
- };
- };
-
- animations = {
- enabled = "yes";
-
- # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
-
- bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
-
- animation = [
- "windows, 1, 7, myBezier"
- "windowsOut, 1, 7, default, popin 80%"
- "border, 1, 10, default"
- "borderangle, 1, 8, default"
- "fade, 1, 7, default"
- "workspaces, 1, 6, default"
- ];
- };
-
- dwindle = {
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
- pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
- preserve_split = "yes"; # you probably want this
- };
-
- master = {
- # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
- # new_is_master = true;
- };
-
- ecosystem = {
- no_update_news = true;
- };
-
- misc = {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- force_default_wallpaper = 0; # Set to 0 to disable the anime mascot wallpapers
- };
-
- # Example per-device config
- # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
- # "device:epic-mouse-v1" = {
- # sensitivity = -0.5;
- # };
- };
- };
- };
-}
diff --git a/old/modules/home/hyprland/default.nix b/old/modules/home/hyprland/default.nix
deleted file mode 100644
index 5b5db0a..0000000
--- a/old/modules/home/hyprland/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{lib, ...}: {
- options.hive.hyprland = {
- enable = lib.mkEnableOption "Enable Hyprland configuration";
- };
-
- imports = [
- ./config.nix
- ./hyprland.nix
- ];
-}
diff --git a/old/modules/home/hyprland/hyprland.nix b/old/modules/home/hyprland/hyprland.nix
deleted file mode 100644
index f59507f..0000000
--- a/old/modules/home/hyprland/hyprland.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.hyprland;
-in {
- config = lib.mkIf cfg.enable {
- wayland.windowManager.hyprland = {
- enable = true;
- systemd.enable = false;
- systemd.variables = ["--all"];
- xwayland.enable = true;
- };
-
- home.packages = with pkgs; [
- wl-clipboard
- ];
-
- services.hypridle.enable = true;
-
- services.wpaperd = {
- enable = true;
- settings = {
- default = {
- path = ../../../static/wallpaper/stones.jpg;
- };
- };
- };
- };
-}
diff --git a/old/modules/home/kdeconnect.nix b/old/modules/home/kdeconnect.nix
deleted file mode 100644
index b5f80ff..0000000
--- a/old/modules/home/kdeconnect.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.kdeconnect;
-in {
- options.hive.kdeconnect = {
- enable = lib.mkEnableOption "Enable KDE Connect";
- indicatorOnly = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = ''
- Only enable the incicator service.
- '';
- };
- };
- config = lib.mkIf cfg.enable {
- services.kdeconnect.enable = ! cfg.indicatorOnly;
- services.kdeconnect.indicator = true;
- };
-}
diff --git a/old/modules/home/kitty/default.nix b/old/modules/home/kitty/default.nix
deleted file mode 100644
index d4e452e..0000000
--- a/old/modules/home/kitty/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.kitty;
-in {
- options.hive.kitty = {
- enable = lib.mkEnableOption "Enable kitty terminal";
- };
- config = lib.mkIf cfg.enable {
- programs.kitty = {
- enable = true;
- shellIntegration.enableZshIntegration = true;
- font = {
- package = pkgs.nerd-fonts.fira-code;
- name = "FiraCode Nerd Font";
- size = 12;
- };
- themeFile = "Molokai";
- settings = {
- background_opacity = "0.6";
- enable_audio_bell = false;
- confirm_os_window_close = 0;
- };
- };
- };
-}
diff --git a/old/modules/home/nextcloud/default.nix b/old/modules/home/nextcloud/default.nix
deleted file mode 100644
index 183470a..0000000
--- a/old/modules/home/nextcloud/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.nextcloud;
-in {
- options.hive.nextcloud = {
- enable = lib.mkEnableOption "Enable Nextcloud client";
- };
- config = lib.mkIf cfg.enable {
- services.nextcloud-client = {
- enable = true;
- startInBackground = true;
- package = pkgs.nextcloud-client;
- };
- };
-}
diff --git a/old/modules/home/plasma.nix b/old/modules/home/plasma.nix
deleted file mode 100644
index fb19bb3..0000000
--- a/old/modules/home/plasma.nix
+++ /dev/null
@@ -1,147 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.plasma;
-in {
- options.hive.plasma.enable = lib.mkEnableOption "Plasma configuration";
-
- config = lib.mkIf cfg.enable {
- # load hm-vars in x-session
- xsession.enable = true;
-
- # symlink wallpapers
- home.file.".local/share/wallpaper" = {
- source = ../../static/wallpaper;
- recursive = true;
- };
-
- # provide kvantum and nord theme
- home.packages = [
- pkgs.kdePackages.qtstyleplugin-kvantum
- pkgs.layan-kde
- pkgs.nordzy-cursor-theme
- pkgs.qt6ct
- pkgs.tela-circle-icon-theme
- ];
-
- programs.konsole = {
- enable = true;
- defaultProfile = "default";
- profiles = {
- default = {
- name = "default";
- colorScheme = "Layan";
- font = {
- name = "Fira Code";
- size = 10;
- };
- };
- };
- };
-
- # use kvantum theme
- qt.enable = true;
- qt.style.name = "kvantum";
- home.sessionVariables = {
- QT_STYLE_OVERRIDE = "kvantum";
- };
-
- # add nord like gtk theme
- gtk = {
- enable = true;
- cursorTheme = {
- package = pkgs.nordzy-cursor-theme;
- name = "Nordzy-cursors";
- };
- theme = {
- package = pkgs.nordic;
- name = "Nordic";
- };
- iconTheme = {
- package = pkgs.tela-circle-icon-theme;
- name = "Tela-circle-nord";
- };
- };
-
- programs.plasma = {
- enable = true;
-
- #
- # Some high-level settings:
- #
- workspace = {
- clickItemTo = "select";
- lookAndFeel = "com.github.vinceliuice.Layan";
- cursor = {
- theme = "Nordzy-cursors";
- size = 24;
- };
- iconTheme = "Tela-circle-nord";
- wallpaper = "/home/jonas/.local/share/wallpaper/nord.png";
- };
-
- hotkeys.commands."launch-konsole" = {
- name = "Launch Konsole";
- key = "Meta+Return";
- command = "konsole";
- };
-
- kwin = {
- edgeBarrier = 0; # Disables the edge-barriers introduced in plasma 6.1
- cornerBarrier = false;
-
- scripts.polonium.enable = false;
- };
-
- kscreenlocker = {
- lockOnResume = true;
- timeout = 10;
- };
-
- #
- # Some mid-level settings:
- #
- shortcuts = {
- ksmserver = {
- "Lock Session" = ["Screensaver" "Meta+Ctrl+Alt+L"];
- };
-
- kwin =
- {
- "Expose" = "Meta+,";
- "Switch Window Down" = "Meta+J";
- "Switch Window Left" = "Meta+H";
- "Switch Window Right" = "Meta+L";
- "Switch Window Up" = "Meta+K";
- "Window Quick Tile Bottom" = "Meta+Shift+J";
- "Window Quick Tile Left" = "Meta+Shift+H";
- "Window Quick Tile Right" = "Meta+Shift+L";
- "Window Quick Tile Top" = "Meta+Shift+K";
- "Kill Window" = "Meta+Alt+Q";
- "Window Close" = "Meta+Shift+Q";
- }
- // (
- with lib; let
- desktops = map toString (lists.range 1 8);
- in
- listToAttrs
- (map
- (i: {
- name = "Switch to Desktop ${i}";
- value = "Meta+${i}";
- })
- desktops)
- // listToAttrs (map
- (i: {
- name = "Window to Desktop ${i}";
- value = "Meta+Shift+${i}";
- })
- desktops)
- );
- };
- };
- };
-}
diff --git a/old/modules/home/ranger/default.nix b/old/modules/home/ranger/default.nix
deleted file mode 100644
index 994aa63..0000000
--- a/old/modules/home/ranger/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.ranger;
-in {
- options.hive.ranger = {
- enable = lib.mkEnableOption "Enable ranger";
- };
- config = lib.mkIf cfg.enable {
- programs.ranger = {
- enable = true;
- settings = {
- preview_images = true;
- preview_images_method =
- if config.programs.kitty.enable
- then "kitty"
- else "ueberzug";
- };
- extraConfig = lib.strings.concatStringsSep "\n" [
- "default_linemode devicons"
- ];
- mappings = {
- f = "console fzf_filter%space";
- };
- plugins =
- [
- {
- name = "ranger_fzf_filter";
- src = builtins.fetchGit {
- url = "https://github.com/MuXiu1997/ranger-fzf-filter";
- rev = "bf16de2e4ace415b685ff7c58306d0c5146f9f43";
- };
- }
- {
- name = "ranger_archives";
- src = builtins.fetchGit {
- url = "https://github.com/maximtrp/ranger-archives";
- rev = "b4e136b24fdca7670e0c6105fb496e5df356ef25";
- };
- }
- {
- name = "ranger_devicons";
- src = builtins.fetchGit {
- url = "https://github.com/alexanderjeurissen/ranger_devicons";
- rev = "f227f212e14996fbb366f945ec3ecaf5dc5f44b0";
- };
- }
- ]
- ++ (
- if config.services.kdeconnect.enable
- then
- lib.lists.singleton
- {
- name = "ranger_kdeconnect.py";
- src =
- builtins.fetchGit {
- url = "https://github.com/bwconrad/ranger-kdeconnect";
- rev = "710c600bb894fed3e293f6518930c16a494dd154";
- }
- + "/kdeconnect_send.py";
- }
- else []
- );
- };
- };
-}
diff --git a/old/modules/home/ssh.nix b/old/modules/home/ssh.nix
deleted file mode 100644
index 863c5d5..0000000
--- a/old/modules/home/ssh.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.ssh;
-in {
- options.hive.ssh = {
- enable = lib.mkEnableOption "SSH keys and config";
- keys = lib.mkOption {
- type = lib.types.listOf (lib.types.str);
- default = [];
- description = ''
- A list of SSH key names. Each one results in a id_ file in .ssh
- '';
- };
- sopsFile = lib.mkOption {
- type = lib.types.path;
- default = null;
- description = ''
- Path to the sops file containing the SSH keys.
- Requires a config key. And for each private key names in an keys. entry.
- '';
- };
- };
-
- config = lib.mkIf cfg.enable {
- sops.secrets =
- {
- "ssh/config" = {
- inherit (cfg) sopsFile;
- key = "config";
- path = "${config.home.homeDirectory}/.ssh/config";
- };
- }
- // builtins.listToAttrs (map (name: {
- name = "ssh/id_${name}";
- value = {
- inherit (cfg) sopsFile;
- key = "keys/${name}";
- path = "${config.home.homeDirectory}/.ssh/id_${name}";
- };
- })
- cfg.keys);
- };
-}
diff --git a/old/modules/home/swaync/default.nix b/old/modules/home/swaync/default.nix
deleted file mode 100644
index 3c87a33..0000000
--- a/old/modules/home/swaync/default.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.swaync;
-in {
- options.hive.swaync = {
- enable = lib.mkEnableOption "Enable swaync";
- };
- config = lib.mkIf cfg.enable {
- xdg.enable = true;
- xdg.configFile = {
- "swaync/themes" = {
- source = ./themes;
- };
- "swaync/icons" = {
- source = ./icons;
- recursive = true;
- };
- };
- services.swaync.enable = true;
- services.swaync.style = ''
- @import 'themes/nova-dark/notifications.css';
- @import 'themes/nova-dark/central_control.css';
- '';
- services.swaync.settings = {
- positionX = "right";
- positionY = "top";
- cssPriority = "user";
-
- control-center-width = 380;
- control-center-height = 860;
- control-center-margin-top = 2;
- control-center-margin-bottom = 2;
- control-center-margin-right = 1;
- control-center-margin-left = 0;
-
- notification-window-width = 400;
- notification-icon-size = 48;
- notification-body-image-height = 160;
- notification-body-image-width = 200;
-
- timeout = 4;
- timeout-low = 2;
- timeout-critical = 6;
-
- fit-to-screen = false;
- keyboard-shortcuts = true;
- image-visibility = "when-available";
- transition-time = 200;
- hide-on-clear = false;
- hide-on-action = false;
- script-fail-notify = true;
- scripts = {
- example-script = {
- exec = "echo 'Do something...'";
- urgency = "Normal";
- };
- };
- notification-visibility = {
- example-name = {
- state = "muted";
- urgency = "Low";
- app-name = "Spotify";
- };
- };
- widgets = [
- "label"
- "buttons-grid"
- "mpris"
- "title"
- "dnd"
- "notifications"
- ];
- widget-config = {
- title = {
- text = "Notifications";
- clear-all-button = true;
- button-text = " ";
- };
- dnd = {
- text = "Do not disturb";
- };
- label = {
- max-lines = 1;
- text = " ";
- };
- mpris = {
- image-size = 96;
- image-radius = 12;
- };
- volume = {
- label = "";
- show-per-app = true;
- };
- buttons-grid = {
- actions = [
- {
- label = " ";
- command = "${pkgs.alsa-utils}/bin/amixer set Master toggle";
- }
- {
- label = "";
- command = "${pkgs.alsa-utils}/bin/amixer set Capture toggle";
- }
- {
- label = " ";
- command = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
- }
- {
- label = "";
- command = "${pkgs.blueman}/bin/blueman-manager";
- }
- ];
- };
- };
- };
- };
-}
diff --git a/old/modules/home/swaync/icons/bolt.png b/old/modules/home/swaync/icons/bolt.png
deleted file mode 100644
index e0ce40d..0000000
Binary files a/old/modules/home/swaync/icons/bolt.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/brightness-100.png b/old/modules/home/swaync/icons/brightness-100.png
deleted file mode 100644
index e98b793..0000000
Binary files a/old/modules/home/swaync/icons/brightness-100.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/brightness-20.png b/old/modules/home/swaync/icons/brightness-20.png
deleted file mode 100644
index 0edf2ba..0000000
Binary files a/old/modules/home/swaync/icons/brightness-20.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/brightness-40.png b/old/modules/home/swaync/icons/brightness-40.png
deleted file mode 100644
index 681583b..0000000
Binary files a/old/modules/home/swaync/icons/brightness-40.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/brightness-60.png b/old/modules/home/swaync/icons/brightness-60.png
deleted file mode 100644
index a9ea001..0000000
Binary files a/old/modules/home/swaync/icons/brightness-60.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/brightness-80.png b/old/modules/home/swaync/icons/brightness-80.png
deleted file mode 100644
index 8345d21..0000000
Binary files a/old/modules/home/swaync/icons/brightness-80.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/gamemode.png b/old/modules/home/swaync/icons/gamemode.png
deleted file mode 100644
index ed5c3d2..0000000
Binary files a/old/modules/home/swaync/icons/gamemode.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/microphone-mute.png b/old/modules/home/swaync/icons/microphone-mute.png
deleted file mode 100644
index 8c1ab7a..0000000
Binary files a/old/modules/home/swaync/icons/microphone-mute.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/microphone.png b/old/modules/home/swaync/icons/microphone.png
deleted file mode 100644
index ab43784..0000000
Binary files a/old/modules/home/swaync/icons/microphone.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/music.png b/old/modules/home/swaync/icons/music.png
deleted file mode 100644
index fe02df3..0000000
Binary files a/old/modules/home/swaync/icons/music.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/palette.png b/old/modules/home/swaync/icons/palette.png
deleted file mode 100644
index 552ae1d..0000000
Binary files a/old/modules/home/swaync/icons/palette.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/picture.png b/old/modules/home/swaync/icons/picture.png
deleted file mode 100644
index 21a5541..0000000
Binary files a/old/modules/home/swaync/icons/picture.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/play.png b/old/modules/home/swaync/icons/play.png
deleted file mode 100644
index d5b448b..0000000
Binary files a/old/modules/home/swaync/icons/play.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/timer.png b/old/modules/home/swaync/icons/timer.png
deleted file mode 100644
index 1e80912..0000000
Binary files a/old/modules/home/swaync/icons/timer.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/volume-high.png b/old/modules/home/swaync/icons/volume-high.png
deleted file mode 100644
index 908af2a..0000000
Binary files a/old/modules/home/swaync/icons/volume-high.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/volume-low.png b/old/modules/home/swaync/icons/volume-low.png
deleted file mode 100644
index 26ff46f..0000000
Binary files a/old/modules/home/swaync/icons/volume-low.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/volume-mid.png b/old/modules/home/swaync/icons/volume-mid.png
deleted file mode 100644
index 3159ed5..0000000
Binary files a/old/modules/home/swaync/icons/volume-mid.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/volume-mute.png b/old/modules/home/swaync/icons/volume-mute.png
deleted file mode 100644
index e99b2b2..0000000
Binary files a/old/modules/home/swaync/icons/volume-mute.png and /dev/null differ
diff --git a/old/modules/home/swaync/icons/wand.png b/old/modules/home/swaync/icons/wand.png
deleted file mode 100644
index f06223c..0000000
Binary files a/old/modules/home/swaync/icons/wand.png and /dev/null differ
diff --git a/old/modules/home/swaync/themes/nova-dark/central_control.css b/old/modules/home/swaync/themes/nova-dark/central_control.css
deleted file mode 100644
index 361784a..0000000
--- a/old/modules/home/swaync/themes/nova-dark/central_control.css
+++ /dev/null
@@ -1,258 +0,0 @@
-@define-color text @foreground;
-@define-color background-alt alpha(@color1, .4);
-@define-color selected @color6;
-@define-color hover alpha(@selected, .4);
-@define-color urgent @color2;
-
-/* Temporary color defs */
-@define-color background rgb(0,10,20);
-@define-color background-alt rgb(0,20,30);
-@define-color selected rgb(0,30,130);
-
-* {
- color: @text;
-
- all: unset;
- font-size: 14px;
- /*font-family: "JetBrains Mono Nerd Font 10";*/
- transition: 200ms;
-
-}
-
-/* Avoid 'annoying' backgroud */
-.blank-window {
- background: transparent;
-}
-
-/* CONTROL CENTER ------------------------------------------------------------------------ */
-
-.control-center {
- background: alpha(@background, .55);
- border-radius: 24px;
- border: 1px solid @selected;
- box-shadow: 0 0 10px 0 rgba(0,0,0,.6);
- margin: 18px;
- padding: 12px;
-}
-
-/* Notifications */
-.control-center .notification-row .notification-background,
-.control-center .notification-row .notification-background .notification.critical {
- background-color: @background-alt;
- border-radius: 16px;
- margin: 4px 0px;
- padding: 4px;
-}
-
-.control-center .notification-row .notification-background .notification.critical {
- color: @urgent;
-}
-
-.control-center .notification-row .notification-background .notification .notification-content {
- margin: 6px;
- padding: 8px 6px 2px 2px;
-}
-
-.control-center .notification-row .notification-background .notification > *:last-child > * {
- min-height: 3.4em;
-}
-
-.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action {
- background: alpha(@selected, .6);
- color: @text;
- border-radius: 12px;
- margin: 6px;
-}
-
-.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
- background: @selected;
-}
-
-.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
- background-color: @selected;
-}
-
-/* Buttons */
-
-.control-center .notification-row .notification-background .close-button {
- background: transparent;
- border-radius: 6px;
- color: @text;
- margin: 0px;
- padding: 4px;
-}
-
-.control-center .notification-row .notification-background .close-button:hover {
- background-color: @selected;
-}
-
-.control-center .notification-row .notification-background .close-button:active {
- background-color: @selected;
-}
-
-progressbar,
-progress,
-trough {
- border-radius: 12px;
-}
-
-progressbar {
- background-color: rgba(255,255,255,.1);
-}
-
-/* Notifications expanded-group */
-
-.notification-group {
- margin: 2px 8px 2px 8px;
-
-}
-.notification-group-headers {
- font-weight: bold;
- font-size: 1.25rem;
- color: @text;
- letter-spacing: 2px;
-}
-
-.notification-group-icon {
- color: @text;
-}
-
-.notification-group-collapse-button,
-.notification-group-close-all-button {
- background: transparent;
- color: @text;
- margin: 4px;
- border-radius: 6px;
- padding: 4px;
-}
-
-.notification-group-collapse-button:hover,
-.notification-group-close-all-button:hover {
- background: @hover;
-}
-
-/* WIDGETS --------------------------------------------------------------------------- */
-
- /* Notification clear button */
-.widget-title {
- font-size: 1.2em;
- margin: 6px;
-}
-
-.widget-title button {
- background: @background-alt;
- border-radius: 6px;
- padding: 4px 16px;
-}
-
-.widget-title button:hover {
- background-color: @hover;
-}
-
-.widget-title button:active {
- background-color: @selected;
-}
-
- /* Do not disturb */
-.widget-dnd {
- margin: 6px;
- font-size: 1.2rem;
-}
-
-.widget-dnd > switch {
- background: @background-alt;
- font-size: initial;
- border-radius: 8px;
- box-shadow: none;
- padding: 2px;
-}
-
-.widget-dnd > switch:hover {
- background: @hover;
-}
-
-.widget-dnd > switch:checked {
- background: @selected;
-}
-
-.widget-dnd > switch:checked:hover {
- background: @hover;
-}
-
-.widget-dnd > switch slider {
- background: @text;
- border-radius: 6px;
-}
-
- /* Buttons menu */
-.widget-buttons-grid {
- font-size: x-large;
- padding: 6px 2px;
- margin: 6px;
- border-radius: 12px;
- background: @background-alt;
-}
-
-.widget-buttons-grid>flowbox>flowboxchild>button {
- margin: 4px 10px;
- padding: 6px 12px;
- background: transparent;
- border-radius: 8px;
-}
-
-.widget-buttons-grid>flowbox>flowboxchild>button:hover {
- background: @hover;
-}
-
-
- /* Music player */
-.widget-mpris {
- background: @background-alt;
- border-radius: 16px;
- color: @text;
- margin: 20px 6px;
-}
-
- /* NOTE: Background need *opacity 1* otherwise will turn into the album art blurred */
-.widget-mpris-player {
- background-color: @background-sec;
- border-radius: 22px;
- padding: 6px 14px;
- margin: 6px;
-}
-
-.widget-mpris > box > button {
- color: @text;
- border-radius: 20px;
-}
-
-.widget-mpris button {
- color: alpha(@text, .6);
-}
-
-.widget-mpris button:hover {
- color: @text;
-}
-
-.widget-mpris-album-art {
- border-radius: 16px;
-}
-
-.widget-mpris-title {
- font-weight: 700;
- font-size: 1rem;
-}
-
-.widget-mpris-subtitle {
- font-weight: 500;
- font-size: 0.8rem;
-}
-
-/* Volume */
-.widget-volume {
- background: @background-sec;
- color: @background;
- padding: 4px;
- margin: 6px;
- border-radius: 6px;
-}
diff --git a/old/modules/home/swaync/themes/nova-dark/notifications.css b/old/modules/home/swaync/themes/nova-dark/notifications.css
deleted file mode 100644
index 1e898a8..0000000
--- a/old/modules/home/swaync/themes/nova-dark/notifications.css
+++ /dev/null
@@ -1,115 +0,0 @@
-@define-color text @foreground;
-@define-color background-alt @color1;
-@define-color selected @color3;
-@define-color hover @color5;
-@define-color urgent @color2;
-/* Temporary color defs */
-@define-color background rgb(0,10,20);
-@define-color background-alt rgb(0,20,30);
-@define-color selected rgb(0,30,130);
-
-* {
-
- /*background-alt: @color1; Buttons background */
- /*selected: @color2; Button selected */
- /*hover: @color5; Hover button */
- /*urgent: @color6; Urgency critical */
- /*text-selected: @background; */
-
- color: @text;
-
- all: unset;
- font-size: 14px;
- font-family: "JetBrains Mono Nerd Font 10";
- transition: 200ms;
-
-}
-
-.notification-row {
- outline: none;
- margin: 0;
- padding: 0px;
-}
-
-.floating-notifications.background .notification-row .notification-background {
- background: alpha(@background, .55);
- box-shadow: 0 0 8px 0 rgba(0,0,0,.6);
- border: 1px solid @selected;
- border-radius: 24px;
- margin: 16px;
- padding: 0;
-}
-
-.floating-notifications.background .notification-row .notification-background .notification {
- padding: 6px;
- border-radius: 12px;
-}
-
-.floating-notifications.background .notification-row .notification-background .notification.critical {
- border: 2px solid @urgent;
-}
-
-.floating-notifications.background .notification-row .notification-background .notification .notification-content {
- margin: 14px;
-}
-
-.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * {
- min-height: 3.4em;
-}
-
-.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action {
- border-radius: 8px;
- background-color: @background-alt ;
- margin: 6px;
- border: 1px solid transparent;
-}
-
-.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
- background-color: @hover;
- border: 1px solid @selected;
-}
-
-.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
- background-color: @selected;
- color: @background;
-}
-
-.image {
- margin: 10px 20px 10px 0px;
-}
-
-.summary {
- font-weight: 800;
- font-size: 1rem;
-}
-
-.body {
- font-size: 0.8rem;
-}
-
-.floating-notifications.background .notification-row .notification-background .close-button {
- margin: 6px;
- padding: 2px;
- border-radius: 6px;
- background-color: transparent;
- border: 1px solid transparent;
-}
-
-.floating-notifications.background .notification-row .notification-background .close-button:hover {
- background-color: @selected;
-}
-
-.floating-notifications.background .notification-row .notification-background .close-button:active {
- background-color: @selected;
- color: @background;
-}
-
-.notification.critical progress {
- background-color: @selected;
-}
-
-.notification.low progress,
-.notification.normal progress {
- background-color: @selected;
-}
-
diff --git a/old/modules/home/themes/layan.nix b/old/modules/home/themes/layan.nix
deleted file mode 100644
index 71ea170..0000000
--- a/old/modules/home/themes/layan.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.themes.layan;
-in {
- options.hive.themes.layan = {
- enable = lib.mkEnableOption "Layan theme configuration";
- pkgsInHome = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = "Whether to install Layan theme packages in the user's home directory.";
- };
- };
-
- config = lib.mkIf cfg.enable {
- home.packages = lib.optionals cfg.pkgsInHome [
- pkgs.hive.layan-qt6
- pkgs.kdePackages.qtstyleplugin-kvantum
- pkgs.unstable.layan-cursors
- pkgs.layan-gtk-theme
- pkgs.tela-circle-icon-theme
- ];
-
- qt.enable = false;
- qt.style.name = "kvantum";
- qt.style.package = pkgs.kdePackages.qtstyleplugin-kvantum;
- qt.platformTheme.name = "gtk";
- systemd.user.settings.Manager.DefaultEnvironment = lib.mapAttrs (_: lib.mkDefault) {
- QT_STYLE_OVERRIDE = "kvantum";
- QT_QPA_PLATFORMTHEME = "gtk";
- };
- xdg.configFile."Kvantum/kvantum.kvconfig".text = lib.generators.toINI {} {
- General.theme = "LayanDark";
- };
-
- # add nord like gtk theme
- gtk = {
- enable = true;
- cursorTheme = {
- package = pkgs.unstable.layan-cursors;
- name = "Layan-cursors";
- };
- theme = {
- package = pkgs.layan-gtk-theme;
- name = "Layan-Dark";
- };
- iconTheme = {
- package = pkgs.tela-circle-icon-theme;
- name = "Tela-circle-dark";
- };
- };
- };
-}
diff --git a/old/modules/home/waybar/default.nix b/old/modules/home/waybar/default.nix
deleted file mode 100644
index 2cfa1e1..0000000
--- a/old/modules/home/waybar/default.nix
+++ /dev/null
@@ -1,266 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.waybar;
-in {
- options.hive.waybar = {
- enable = lib.mkEnableOption "Enable Waybar";
- };
- config = lib.mkIf cfg.enable {
- programs.waybar.enable = true;
- programs.waybar.systemd.enable = true;
-
- services.blueman-applet.enable = true;
- services.network-manager-applet.enable = true;
- services.pasystray.enable = true;
-
- # is already fixed on latest home-manager rev
- systemd.user.services = {
- blueman-applet.Unit.After = lib.mkForce ["graphical-session.target"];
- network-manager-applet.Unit.After = lib.mkForce ["graphical-session.target"];
- pasystray.Unit.After = lib.mkForce ["graphical-session.target"];
- waybar.Unit.After = lib.mkForce ["graphical-session.target"];
- };
-
- home.packages = with pkgs; [
- pulsemixer
- pavucontrol
- networkmanagerapplet
- ];
-
- programs.waybar = {
- settings.mainBar = {
- position = "top";
- layer = "top";
- height = 5;
- margin-top = 0;
- margin-bottom = 0;
- margin-left = 0;
- margin-right = 0;
- modules-left = [
- "custom/launcher"
- "hyprland/workspaces"
- ];
- modules-center = [
- "hyprland/window"
- ];
- modules-right = [
- "clock"
- "cpu"
- "memory"
- "disk"
- "battery"
- "network"
- "tray"
- ];
- clock = {
- calendar = {
- format = {today = "{}";};
- };
- format = " {:%H:%M}";
- tooltip = "true";
- tooltip-format = "{:%Y %B}\n{calendar}";
- format-alt = " {:%d/%m}";
- };
- "hyprland/workspaces" = {
- active-only = false;
- disable-scroll = true;
- format = "{icon}";
- on-click = "activate";
- format-icons = {
- "1" = "1";
- "2" = "2";
- "3" = "3";
- "4" = "4";
- "5" = "5";
- "6" = "6";
- "7" = "7";
- "8" = "8";
- urgent = "";
- default = "";
- sort-by-number = true;
- };
- persistent-workspaces = {
- "1" = [];
- "2" = [];
- "3" = [];
- "4" = [];
- "5" = [];
- "6" = [];
- "7" = [];
- "8" = [];
- };
- };
- memory = {
- format = " {}%";
- format-alt = " {used} GiB"; #
- interval = 2;
- };
- cpu = {
- format = " {usage}%";
- format-alt = " {avg_frequency} GHz";
- interval = 2;
- };
- disk = {
- # path = "/";
- format = " {percentage_used}%";
- interval = 60;
- };
- network = {
- format-wifi = " {signalStrength}%";
- format-ethernet = " ";
- tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
- format-linked = "{ifname} (No IP)";
- format-disconnected = " ";
- };
- tray = {
- icon-size = 20;
- spacing = 8;
- };
- pulseaudio = {
- format = "{icon} {volume}%";
- format-muted = " {volume}%";
- format-icons = {
- default = [" "];
- };
- scroll-step = 5;
- on-click = "pamixer -t";
- };
- battery = {
- format = "{icon} {capacity}%";
- format-icons = [" " " " " " " " " "];
- format-charging = " {capacity}%";
- format-full = " {capacity}%";
- format-warning = " {capacity}%";
- interval = 5;
- states = {
- warning = 20;
- };
- format-time = "{H}h{M}m";
- tooltip = true;
- tooltip-format = "{time}";
- };
- "custom/launcher" = {
- format = "";
- on-click = "${pkgs.wofi}/bin/wofi --show drun";
- tooltip = "false";
- };
- };
- style = ''
- * {
- border: none;
- font-family: Font Awesome, Roboto, Arial, sans-serif;
- font-size: 13px;
- color: #ffffff;
- border-radius: 15px;
- }
-
- window {
- /*font-weight: bold;*/
- }
- window#waybar {
- border-style: none;
- border-width: 1px;
- border-color: #33ccff;
- background: rgba(0, 0, 0, 0);
- }
- /*-----module groups----*/
- .modules-right {
- background-color: rgba(0,43,51,0.85);
- margin: 2px 10px 2px 0;
- }
- .modules-left {
- margin: 2px 0 2px 5px;
- background-color: rgba(0,119,179,0.6);
- }
- /*-----modules indv----*/
- #workspaces button {
- padding: 1px 5px;
- background-color: transparent;
- }
- #workspaces button:hover {
- box-shadow: inherit;
- background-color: rgba(0,153,153,1);
- }
- #workspaces button.empty {
- color: rgba(0 ,40, 40, 40);
- }
- #workspaces button.active {
- background-color: rgba(0,43,51,0.85);
- }
- #window {
- border-style: solid;
- background-color: rgba(0,43,51,0.5);
- margin: 2px 5px;
- padding: 2px 5px;
- border-width: 1px;
- border-color: #33ccff;
- }
- #window.empty {
- border-style: none;
- background-color: transparent;
- }
- #custom-launcher {
- background-color: rgba(0,119,179,0.6);
- border-radius: 100px;
- margin: 5px 5px;
- }
-
- #clock,
- #battery,
- #cpu,
- #memory,
- #temperature,
- #network,
- #pulseaudio,
- #custom-media,
- #tray,
- #mode,
- #custom-power,
- #custom-menu,
- #idle_inhibitor {
- padding: 0 10px;
- }
- #mode {
- color: #cc3436;
- font-weight: bold;
- }
- #custom-power {
- background-color: rgba(0,119,179,0.6);
- border-radius: 100px;
- margin: 5px 5px;
- padding: 1px 1px 1px 6px;
- }
- /*-----Indicators----*/
- #idle_inhibitor.activated {
- color: #2dcc36;
- }
- #pulseaudio.muted {
- color: #cc3436;
- }
- #battery.charging {
- color: #2dcc36;
- }
- #battery.warning:not(.charging) {
- color: #e6e600;
- }
- #battery.critical:not(.charging) {
- color: #cc3436;
- }
- #temperature.critical {
- color: #cc3436;
- }
- /*-----Colors----*/
- /*
- *rgba(0,85,102,1),#005566 --> Indigo(dye)
- *rgba(0,43,51,1),#002B33 --> Dark Green
- *RGBA(0,153,153,1),#009999 --> PERSIAN GREEN
- *
- */
- '';
- };
- };
-}
diff --git a/old/modules/home/wlogout/default.nix b/old/modules/home/wlogout/default.nix
deleted file mode 100644
index 81d184c..0000000
--- a/old/modules/home/wlogout/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.wlogout;
-in {
- options.hive.wlogout = {
- enable = lib.mkEnableOption "Enable Wlogout";
- };
- config = lib.mkIf cfg.enable {
- programs.wlogout.enable = true;
- programs.wlogout.layout = [
- {
- label = "shutdown";
- action = "systemctl poweroff";
- text = "Shutdown";
- keybind = "s";
- }
- {
- label = "reboot";
- action = "systemctl reboot";
- text = "Reboot";
- keybind = "r";
- }
- {
- label = "logout";
- action = "loginctl kill-session $XDG_SESSION_ID";
- text = "Logout";
- keybind = "e";
- }
- {
- label = "hibernate";
- action = "hyprlock --immediate & (sleep 1; systemctl hibernate -i)";
- text = "Hibernate";
- keybind = "h";
- }
- {
- label = "lock";
- action = "hyprlock";
- text = "Lock";
- keybind = "l";
- }
- ];
- programs.wlogout.style = builtins.readFile ./style.css;
- xdg.enable = true;
- xdg.configFile = {
- "wlogout/icons/hibernate.png" = {
- source = ./icons/hibernate.png;
- };
- "wlogout/icons/lock.png" = {
- source = ./icons/lock.png;
- };
- "wlogout/icons/logout.png" = {
- source = ./icons/logout.png;
- };
- "wlogout/icons/power.png" = {
- source = ./icons/power.png;
- };
- "wlogout/icons/restart.png" = {
- source = ./icons/restart.png;
- };
- "wlogout/icons/hibernate-hover.png" = {
- source = ./icons/hibernate-hover.png;
- };
- "wlogout/icons/lock-hover.png" = {
- source = ./icons/lock-hover.png;
- };
- "wlogout/icons/logout-hover.png" = {
- source = ./icons/logout-hover.png;
- };
- "wlogout/icons/power-hover.png" = {
- source = ./icons/power-hover.png;
- };
- "wlogout/icons/restart-hover.png" = {
- source = ./icons/restart-hover.png;
- };
- };
- };
-}
diff --git a/old/modules/home/wlogout/icons/hibernate-hover.png b/old/modules/home/wlogout/icons/hibernate-hover.png
deleted file mode 100644
index 9f93aaf..0000000
Binary files a/old/modules/home/wlogout/icons/hibernate-hover.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/hibernate.png b/old/modules/home/wlogout/icons/hibernate.png
deleted file mode 100644
index 0090e02..0000000
Binary files a/old/modules/home/wlogout/icons/hibernate.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/lock-hover.png b/old/modules/home/wlogout/icons/lock-hover.png
deleted file mode 100644
index 093d11e..0000000
Binary files a/old/modules/home/wlogout/icons/lock-hover.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/lock.png b/old/modules/home/wlogout/icons/lock.png
deleted file mode 100644
index 6b4afb7..0000000
Binary files a/old/modules/home/wlogout/icons/lock.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/logout-hover.png b/old/modules/home/wlogout/icons/logout-hover.png
deleted file mode 100644
index bcdf57b..0000000
Binary files a/old/modules/home/wlogout/icons/logout-hover.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/logout.png b/old/modules/home/wlogout/icons/logout.png
deleted file mode 100644
index f280ca9..0000000
Binary files a/old/modules/home/wlogout/icons/logout.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/power-hover.png b/old/modules/home/wlogout/icons/power-hover.png
deleted file mode 100644
index 26c06af..0000000
Binary files a/old/modules/home/wlogout/icons/power-hover.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/power.png b/old/modules/home/wlogout/icons/power.png
deleted file mode 100644
index a32880b..0000000
Binary files a/old/modules/home/wlogout/icons/power.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/restart-hover.png b/old/modules/home/wlogout/icons/restart-hover.png
deleted file mode 100644
index 09f7797..0000000
Binary files a/old/modules/home/wlogout/icons/restart-hover.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/restart.png b/old/modules/home/wlogout/icons/restart.png
deleted file mode 100644
index 719e03f..0000000
Binary files a/old/modules/home/wlogout/icons/restart.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/sleep-hover.png b/old/modules/home/wlogout/icons/sleep-hover.png
deleted file mode 100644
index cd39d3d..0000000
Binary files a/old/modules/home/wlogout/icons/sleep-hover.png and /dev/null differ
diff --git a/old/modules/home/wlogout/icons/sleep.png b/old/modules/home/wlogout/icons/sleep.png
deleted file mode 100644
index 3c6c618..0000000
Binary files a/old/modules/home/wlogout/icons/sleep.png and /dev/null differ
diff --git a/old/modules/home/wlogout/style.css b/old/modules/home/wlogout/style.css
deleted file mode 100644
index 2098f17..0000000
--- a/old/modules/home/wlogout/style.css
+++ /dev/null
@@ -1,80 +0,0 @@
- /* ----------- 💫 https://github.com/JaKooLit 💫 -------- */
- /* pywal-wlogout */
-
-/* Importing pywal colors */
-
-/*
-@import '../../.cache/wal/colors-waybar.css';
-*/
-
-window {
- font-family: Fira Code Medium;
- font-size: 16pt;
- /* color: @foreground; */
- color: rgba(255, 255, 255, 0.9);
- background-color: rgba(24, 27, 32, 0.2);
-
-}
-
-button {
- background-repeat: no-repeat;
- background-position: center;
- background-size: 20%;
- background-color: transparent;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s ease-in;
- box-shadow: 0 0 10px 2px transparent;
- border-radius: 36px;
- border-style: none;
- margin: 10px;
-}
-
-button:focus {
- box-shadow: none;
- background-size : 20%;
-}
-
-button:hover {
- background-size: 50%;
- box-shadow: 0 0 10px 3px rgba(0,0,0,.4);
- /* background-color: @color6;*/
- background-color: rgba(24, 27, 32, 0);
- color: transparent;
- transition: all 0.3s cubic-bezier(.55, 0.0, .28, 1.682), box-shadow 0.5s ease-in;
-}
-
-#shutdown {
- background-image: image(url("./icons/power.png"));
-}
-#shutdown:hover {
- background-image: image(url("./icons/power-hover.png"));
-}
-
-#logout {
- background-image: image(url("./icons/logout.png"));
-
-}
-#logout:hover {
- background-image: image(url("./icons/logout-hover.png"));
-}
-
-#reboot {
- background-image: image(url("./icons/restart.png"));
-}
-#reboot:hover {
- background-image: image(url("./icons/restart-hover.png"));
-}
-
-#lock {
- background-image: image(url("./icons/lock.png"));
-}
-#lock:hover {
- background-image: image(url("./icons/lock-hover.png"));
-}
-
-#hibernate {
- background-image: image(url("./icons/hibernate.png"));
-}
-#hibernate:hover {
- background-image: image(url("./icons/hibernate-hover.png"));
-}
diff --git a/old/modules/home/wofi/default.nix b/old/modules/home/wofi/default.nix
deleted file mode 100644
index 462de94..0000000
--- a/old/modules/home/wofi/default.nix
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.wofi;
-in {
- options.hive.wofi = {
- enable = lib.mkEnableOption "Enable Wofi";
- };
- config = lib.mkIf cfg.enable {
- programs.wofi.enable = true;
- programs.wofi.settings = {
- location = "center";
- allow_images = true;
- allow_markup = true;
- key_expand = "Tab";
- key_up = "Ctrl-k";
- key_down = "Ctrl-j";
- key_left = "Ctrl-h";
- key_right = "Ctrl-l";
- insensitive = true;
- };
-
- programs.wofi.style = ''
- #window {
- border-radius: 15px;
- border-color: #33ccff;
- border-width: 2px;
- border-style: solid;
- background-color: rgba(0, 0, 0, 0.6);
- }
-
- #input {
- margin: 5px;
- border-radius: 15px;
- border-color: #33ccff;
- border-width: 2px;
- border-style: solid;
- background: transparent;
- color: white;
- }
-
- #input {
- margin: 5px;
- border-radius: 15px;
- border-color: #33ccff;
- border-width: 2px;
- border-style: solid;
- background: transparent;
- color: white;
- }
-
- #img {
- background-color: transparent;
- }
-
- #inner-box {
- background-color: transparent;
- }
-
- #outer-box {
- margin: 2px;
- padding: 10px;
- background: transparent;
- }
-
- #scroll {
- margin: 5px;
- }
-
- #text {
- padding: 4px;
- color: white;
- background: transparent;
- border: none;
- }
-
- #entry {
- background: transparent;
- border: none;
- }
-
- #entry:selected {
- border-radius: 15px;
- border-color: #33ccff;
- border-width: 2px;
- border-style: solid;
- background: transparent;
- }
-
- #expander {
- border-radius: 15px;
- border-color: #33ccff;
- border-width: 2px;
- border-style: solid;
- background: transparent;
- }
- '';
- };
-}
diff --git a/old/modules/home/yubikey.nix b/old/modules/home/yubikey.nix
deleted file mode 100644
index ea167ee..0000000
--- a/old/modules/home/yubikey.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.yubikey;
-in {
- options.hive.yubikey = with lib; {
- enable = mkEnableOption "Yubikey support";
- pinentry = mkOption {
- type = types.enum ["qt" "gnome3"];
- default = "qt";
- description = "The pinentry flavour to use";
- };
- withCCID = mkOption {
- type = types.bool;
- default = true;
- description = "Use stand-alone CCID (instead of a running pcscd service)";
- };
- };
-
- config = lib.mkIf cfg.enable {
- programs.gpg = {
- enable = true;
- mutableKeys = false;
- mutableTrust = false;
- publicKeys = [
- {
- source = ../../static/keys/my_pub.asc;
- trust = "ultimate";
- }
- ];
- scdaemonSettings = lib.mkIf (!cfg.withCCID) {
- disable-ccid = true;
- };
- };
- services.gpg-agent = {
- enable = true;
- enableSshSupport = true;
- enableZshIntegration = true;
- pinentry =
- if cfg.pinentry == "gnome3"
- then {
- package = pkgs.pinentry-gnome3;
- program = "pinentry-gnome3";
- }
- else if cfg.pinentry == "qt"
- then {
- package = pkgs.pinentry-qt;
- program = "pinentry-qt";
- }
- else {};
- sshKeys = [config.programs.git.signing.key];
- };
- home.sessionVariables = {
- SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh";
- };
- systemd.user.settings.Manager.DefaultEnvironment = {
- SSH_AUTH_SOCK = "/run/user/%U/gnupg/S.gpg-agent.ssh";
- };
- };
-}
diff --git a/old/modules/home/zsh/default.nix b/old/modules/home/zsh/default.nix
deleted file mode 100644
index 3c20d0c..0000000
--- a/old/modules/home/zsh/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.zsh;
- omz_custom = "${config.home.homeDirectory}/.config/omz_custom";
-in {
- options.hive.zsh = {
- enable = lib.mkEnableOption "Enable Zsh";
- };
-
- config = lib.mkIf cfg.enable {
- home.file."${omz_custom}" = {
- source = ./static/omz_custom;
- recursive = true;
- };
-
- # direnv
- programs.direnv = {
- enable = true;
- enableZshIntegration = true;
- nix-direnv.enable = true;
- };
-
- # fancy ls command
- programs.lsd = {
- enable = true;
- };
-
- # Zsh
- programs.zsh = {
- enable = true;
- enableCompletion = true;
- syntaxHighlighting.enable = true;
-
- history.size = 10000;
- history.path = "${config.xdg.dataHome}/zsh/history";
- oh-my-zsh = {
- enable = true;
- plugins = [
- "docker"
- "docker-compose"
- "fzf"
- "git"
- "pass"
- "poetry"
- "python"
- "rust"
- ];
- theme = "my_bureau";
- custom = omz_custom;
- };
- };
-
- home.packages = with pkgs; [
- bat
- fzf
- git
- htop
- killall
- mmtui
- nh
- nix-output-monitor
- nix-search-cli
- nix-tree
- nixpkgs-fmt
- pass
- pay-respects
- ranger
- unzip
- vim
- w3m
- wget
- yt-dlp
- zip
- ];
- };
-}
diff --git a/old/modules/home/zsh/static/omz_custom/themes/my_bureau.zsh-theme b/old/modules/home/zsh/static/omz_custom/themes/my_bureau.zsh-theme
deleted file mode 100644
index 874874a..0000000
--- a/old/modules/home/zsh/static/omz_custom/themes/my_bureau.zsh-theme
+++ /dev/null
@@ -1,154 +0,0 @@
-# oh-my-zsh Bureau Theme
-
-### NVM
-
-ZSH_THEME_NVM_PROMPT_PREFIX="%B⬡%b "
-ZSH_THEME_NVM_PROMPT_SUFFIX=""
-
-### Git [±master ▾●]
-
-ZSH_THEME_GIT_PROMPT_PREFIX="[%{$fg_bold[green]%}±%{$reset_color%}%{$fg_bold[white]%}"
-ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}]"
-ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✓%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg[cyan]%}▴%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[magenta]%}▾%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[yellow]%}●%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[red]%}●%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_STASHED="(%{$fg_bold[blue]%}✹%{$reset_color%})"
-
-bureau_nix_shell () {
- if [ -n "$IN_NIX_SHELL" ]; then
- if [ -n "$out" ]; then
- local name=$(basename $(realpath -mL "$out/../../"))
- echo -n "[nix-shell@$name]"
- else
- echo -n "[nix-shell]"
- fi
- else
- echo -n ""
- fi
-}
-
-bureau_nix_shell_prompt () {
- if [ -n "$IN_NIX_SHELL" ]; then
- echo -n "[nix]"
- else
- echo -n ""
- fi
-}
-
-bureau_git_info () {
- local ref
- ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
- ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
- echo "${ref#refs/heads/}"
-}
-
-bureau_git_status() {
- local result gitstatus
- gitstatus="$(command git status --porcelain -b 2>/dev/null)"
-
- # check status of files
- local gitfiles="$(tail -n +2 <<< "$gitstatus")"
- if [[ -n "$gitfiles" ]]; then
- if [[ "$gitfiles" =~ $'(^|\n)[AMRD]. ' ]]; then
- result+="$ZSH_THEME_GIT_PROMPT_STAGED"
- fi
- if [[ "$gitfiles" =~ $'(^|\n).[MTD] ' ]]; then
- result+="$ZSH_THEME_GIT_PROMPT_UNSTAGED"
- fi
- if [[ "$gitfiles" =~ $'(^|\n)\\?\\? ' ]]; then
- result+="$ZSH_THEME_GIT_PROMPT_UNTRACKED"
- fi
- if [[ "$gitfiles" =~ $'(^|\n)UU ' ]]; then
- result+="$ZSH_THEME_GIT_PROMPT_UNMERGED"
- fi
- else
- result+="$ZSH_THEME_GIT_PROMPT_CLEAN"
- fi
-
- # check status of local repository
- local gitbranch="$(head -n 1 <<< "$gitstatus")"
- if [[ "$gitbranch" =~ '^## .*ahead' ]]; then
- result+="$ZSH_THEME_GIT_PROMPT_AHEAD"
- fi
- if [[ "$gitbranch" =~ '^## .*behind' ]]; then
- result+="$ZSH_THEME_GIT_PROMPT_BEHIND"
- fi
- if [[ "$gitbranch" =~ '^## .*diverged' ]]; then
- result+="$ZSH_THEME_GIT_PROMPT_DIVERGED"
- fi
-
- # check if there are stashed changes
- if command git rev-parse --verify refs/stash &> /dev/null; then
- result+="$ZSH_THEME_GIT_PROMPT_STASHED"
- fi
-
- echo $result
-}
-
-bureau_git_prompt() {
- # ignore non git folders and hidden repos (adapted from lib/git.zsh)
- if ! command git rev-parse --git-dir &> /dev/null \
- || [[ "$(command git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then
- return
- fi
-
- # check git information
- local gitinfo=$(bureau_git_info)
- if [[ -z "$gitinfo" ]]; then
- return
- fi
-
- # quote % in git information
- local output="${gitinfo:gs/%/%%}"
-
- # check git status
- local gitstatus=$(bureau_git_status)
- if [[ -n "$gitstatus" ]]; then
- output+=" $gitstatus"
- fi
-
- echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${output}${ZSH_THEME_GIT_PROMPT_SUFFIX}"
-}
-
-
-_PATH="%{$fg_bold[white]%}%~%{$reset_color%}"
-
-if [[ $EUID -eq 0 ]]; then
- _USERNAME="%{$fg_bold[red]%}%n"
- _LIBERTY="%{$fg[red]%}#"
-else
- _USERNAME="%{$fg_bold[white]%}%n"
- _LIBERTY="%{$fg[green]%}$"
-fi
-_USERNAME="$_USERNAME%{$reset_color%}@%m"
-_LIBERTY="$_LIBERTY%{$reset_color%}"
-
-
-get_space () {
- local STR=$1$2
- local zero='%([BSUbfksu]|([FB]|){*})'
- local LENGTH=${#${(S%%)STR//$~zero/}}
- local SPACES=$(( COLUMNS - LENGTH - ${ZLE_RPROMPT_INDENT:-1} ))
-
- (( SPACES > 0 )) || return
- printf ' %.0s' {1..$SPACES}
-}
-
-_1LEFT="$_USERNAME $_PATH"
-_1RIGHT="[%*]"
-
-bureau_precmd () {
- _1SPACES=`get_space $_1LEFT $_1RIGHT`
- print
- print -rP "$_1LEFT$_1SPACES$_1RIGHT"
-}
-
-setopt prompt_subst
-PROMPT='$(bureau_nix_shell_prompt)> $_LIBERTY '
-RPROMPT='$(nvm_prompt_info) $(bureau_nix_shell) $(bureau_git_prompt)'
-
-autoload -U add-zsh-hook
-add-zsh-hook precmd bureau_precmd
diff --git a/old/modules/programs/creative.nix b/old/modules/programs/creative.nix
deleted file mode 100644
index 1becd41..0000000
--- a/old/modules/programs/creative.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.programs.creative;
- avidemux-wayland-fix = pkgs.avidemux.overrideAttrs (prev: {
- installPhase =
- (prev.installPhase or "")
- + ''
- wrapProgram $out/bin/avidemux3_qt5 \
- --add-flags "--platform" \
- --add-flags "xcb"
- '';
- });
-in {
- options.hive.programs.creative = {
- enable = lib.mkEnableOption "Enable creative programs (video/image editing, etc.)";
- image-management = lib.mkOption {
- type = lib.types.bool;
- default = true;
- description = ''
- Enable image management tools.
- '';
- };
- image-editing = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = ''
- Enable image editing tools.
- '';
- };
- image-raw-processing = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = ''
- Enable raw processing programs.
- '';
- };
- video-editing-light = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = ''
- Enable light video editing tools.
- '';
- };
- video-editing-heavy = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = ''
- Enable heavy video editing tools.
- '';
- };
- daws = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = ''
- Enable DAWs (currently bitwig beta)
- '';
- };
- };
-
- config = lib.mkIf cfg.enable {
- environment.systemPackages = with pkgs;
- lib.optionals cfg.image-editing [gimp krita drawio]
- ++ lib.optional cfg.image-management digikam
- ++ lib.optionals cfg.image-raw-processing [
- enblend-enfuse
- hdrmerge
- hugin
- rawtherapee
- unstable.darktable
- unstable.rapidraw
- ]
- ++ lib.optionals cfg.video-editing-light [
- avidemux-wayland-fix
- ffmpeg
- hive.bulk-transcode
- losslesscut-bin
- ]
- ++ lib.optionals cfg.video-editing-heavy [
- davinci-resolve
- kdePackages.kdenlive
- obs-studio
- ]
- ++ lib.optional cfg.daws bitwig-studio-latest;
- };
-}
diff --git a/old/modules/programs/spotify-shortcuts.nix b/old/modules/programs/spotify-shortcuts.nix
deleted file mode 100644
index 39214c3..0000000
--- a/old/modules/programs/spotify-shortcuts.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.programs.spotify-shortcuts;
-in {
- options.hive.programs.spotify-shortcuts = {
- enable = lib.mkEnableOption "Enable Spotify Shortcuts";
- clientIdSopsKey = lib.mkOption {
- type = lib.types.singleLineStr;
- description = "Spotify API Client ID sops secret name";
- };
- clientSecretSopsKey = lib.mkOption {
- type = lib.types.singleLineStr;
- description = "Spotify API Client Secret Path sops secret name";
- };
- };
-
- config = lib.mkIf cfg.enable {
- environment.systemPackages = [pkgs.hive.spotify-shortcuts];
- environment.variables = {
- SPOTIFY_SHORTCUTS_CONFIG = config.sops.templates."spotify-shortcuts-client.json".path;
- };
- sops.templates."spotify-shortcuts-client.json" = {
- mode = "444";
- content = ''
- {
- "clientId": "${config.sops.placeholder.${cfg.clientIdSopsKey}}",
- "clientSecret": "${config.sops.placeholder.${cfg.clientSecretSopsKey}}"
- }
- '';
- };
- };
-}
diff --git a/old/modules/programs/utils.nix b/old/modules/programs/utils.nix
deleted file mode 100644
index 3d1e410..0000000
--- a/old/modules/programs/utils.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.programs.utils;
-in {
- options.hive.programs.utils = {
- enable = lib.mkEnableOption "Enable utilities";
- camera = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = ''
- Camera utilities
- '';
- };
- };
-
- config = lib.mkIf cfg.enable {
- environment.systemPackages = lib.optionals cfg.camera [
- pkgs.cheese
- pkgs.obs-studio
- ];
- };
-}
diff --git a/old/modules/services/borg-server.nix b/old/modules/services/borg-server.nix
deleted file mode 100644
index 13248bc..0000000
--- a/old/modules/services/borg-server.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- lib,
- config,
- pkgs,
- ...
-}: let
- cfg = config.hive.borg-server;
-in {
- options.hive.borg-server = {
- enable = lib.mkEnableOption "Enable the borg server";
- package = lib.mkOption {
- type = lib.types.package;
- default = pkgs.borgbackup;
- example = "pkgs.borgbackup";
- description = "The borg package to use";
- };
- borg_user = lib.mkOption {
- type = lib.types.str;
- example = "borg";
- default = "borg";
- description = "The user for the borg repository home.";
- };
- repositories_path = lib.mkOption {
- type = lib.types.path;
- example = "/var/lib/borg-repositories";
- default = "/var/lib/borg-repositories";
- description = "The user for the borg repository home.";
- };
- repositories = lib.mkOption {
- type = lib.types.attrsOf (lib.types.submodule {
- options = {
- name = lib.mkOption {
- type = lib.types.nullOr (lib.types.strMatching "^[a-zA-Z0-9._-]+$");
- default = null;
- example = "borg-repo";
- description = "The name of the borg repository. If null, use key of attrset";
- };
- ssh_public_key = lib.mkOption {
- type = lib.types.singleLineStr;
- example = "ssh-rsa AAAA...";
- description = "The path to the public key for the borg repository.";
- };
- };
- });
- };
- };
-
- config = lib.mkIf cfg.enable {
- users.users.${cfg.borg_user} = {
- isNormalUser = true;
- description = "Borg user";
- home = cfg.repositories_path;
- createHome = true;
- extraGroups = ["borg"];
- openssh.authorizedKeys.keys =
- lib.attrsets.mapAttrsToList
- (key: repo: "command=\"${cfg.package}/bin/borg serve --restrict-to-path=${cfg.repositories_path}/${lib.defaultTo key repo.name}\",restrict ${repo.ssh_public_key}")
- cfg.repositories;
- };
- };
-}
diff --git a/old/modules/services/gitea-instance.nix b/old/modules/services/gitea-instance.nix
deleted file mode 100644
index 36e4987..0000000
--- a/old/modules/services/gitea-instance.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.gitea-instance;
-in {
- options.hive.gitea-instance = {
- enable = lib.mkEnableOption "Enable the Gitea instance";
-
- instanceFQDN = lib.mkOption {
- type = lib.types.singleLineStr;
- example = "git.example.com";
- description = "Fully qualified domain name of the Gitea instance";
- };
-
- databasePasswordFile = lib.mkOption {
- type = lib.types.path;
- example = "/etc/gitea-db-pass.txt";
- description = "Path to the file containing the Gitea database password";
- };
- nativeRunner = lib.mkOption {
- type = lib.types.bool;
- description = "Install a gitea act_runner using the native nix store";
- default = false;
- };
- };
-
- config = lib.mkIf cfg.enable {
- # Gitea instance
- services.gitea = {
- enable = true;
- lfs.enable = true;
- appName = "Git yourself some Tea!";
- database = {
- name = "gitea";
- type = "postgres";
- passwordFile = cfg.databasePasswordFile;
- };
- settings = {
- server.PROTOCOL = "http+unix";
- server.ROOT_URL = "https://${cfg.instanceFQDN}/";
- server.DOMAIN = cfg.instanceFQDN;
- service.DISABLE_REGISTRATION = true;
- };
- };
-
- # Fallback server with only 403
- services.nginx.virtualHosts.${config.networking.domain} = lib.mkDefault {
- default = true;
- locations."/".return = 403;
- forceSSL = true;
- enableACME = true;
- };
-
- # Virtual host for gitea
- services.nginx.virtualHosts."${cfg.instanceFQDN}" = {
- forceSSL = true;
- enableACME = true;
- locations."/" = {
- proxyPass = "http://unix:/run/gitea/gitea.sock";
- };
- };
-
- # Database setup
- services.postgresql = {
- enable = true;
- ensureDatabases = [config.services.gitea.user];
- ensureUsers = [
- {
- name = config.services.gitea.database.user;
- ensureDBOwnership = true;
- }
- ];
- };
-
- # act_runner
- services.gitea-actions-runner = lib.mkIf cfg.nativeRunner {
- instances.nixos-host = {
- enable = true;
- name = "nixos-host-runner";
- url = "https://${cfg.instanceFQDN}";
- tokenFile = "/var/lib/gitea-registration/nixos-host";
-
- labels = ["nixos:host"];
-
- settings = {
- runner = {
- capacity = 1;
- };
- };
- };
- };
- systemd.services.gitea-runner-nixos-host = lib.mkIf cfg.nativeRunner {
- after = ["gitea-runner-gen-token.service"];
- requires = ["gitea-runner-gen-token.service"];
- serviceConfig.Environment = ''
- PATH=/run/current-system/sw/bin:/usr/bin:/bin
- '';
- };
- systemd.services.gitea-runner-gen-token = lib.mkIf cfg.nativeRunner {
- wantedBy = ["multi-user.target"];
- after = ["gitea.service"];
- environment = {
- GITEA_CUSTOM = "/var/lib/gitea/custom";
- GITEA_WORK_DIR = "/var/lib/gitea";
- };
- script = ''
- set -euo pipefail
- token=$(${config.services.gitea.package}/bin/gitea actions generate-runner-token)
- echo "TOKEN=$token" > /var/lib/gitea-registration/nixos-host
- '';
- unitConfig.ConditionPathExists = ["!/var/lib/gitea-registration/nixos-host"];
- serviceConfig = {
- User = "gitea";
- Group = "gitea";
- StateDirectory = "gitea-registration";
- Type = "oneshot";
- RemainAfterExit = true;
- };
- };
- };
-}
diff --git a/old/modules/services/gotify-instance.nix b/old/modules/services/gotify-instance.nix
deleted file mode 100644
index 453a341..0000000
--- a/old/modules/services/gotify-instance.nix
+++ /dev/null
@@ -1,131 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.hive.gotify-instance;
- server-config = {
- server = {
- listenaddr = "localhost";
- port = 54545;
- ssl.enabled = false;
- ssl.redirecttohttps = false;
- cors.alloworigins = ["${cfg.instanceFQDN}"];
- stream.allowedorigins = ["${cfg.instanceFQDN}"];
- };
- database = {
- dialect = "postgres";
- connection = "host=/run/postgresql dbname=${cfg.user} user=${cfg.user}";
- };
- defaultuser = {
- name = "admin";
- pass = config.sops.placeholder.${cfg.adminPasswordSopsKey};
- };
- registration = false;
- };
- server-config-yaml = lib.generators.toYAML {} server-config;
-in {
- options.hive.gotify-instance = {
- enable = lib.mkEnableOption "Enable the Gotify instance";
- instanceFQDN = lib.mkOption {
- type = lib.types.singleLineStr;
- example = "gotify.example.com";
- description = "Fully qualified domain name of the Gotify instance";
- };
- user = lib.mkOption {
- type = lib.types.singleLineStr;
- default = "gotify";
- description = "The user to run the service as";
- };
- group = lib.mkOption {
- type = lib.types.singleLineStr;
- default = "gotify";
- description = "The group to run the service as";
- };
- adminPasswordSopsKey = lib.mkOption {
- type = lib.types.singleLineStr;
- description = "The SOPS key for the default admin user";
- };
- };
-
- config = lib.mkIf cfg.enable {
- services.gotify.enable = true;
-
- # Config setup
- sops.templates."gotify-server-config.yml" = {
- owner = cfg.user;
- content = server-config-yaml;
- };
- environment.etc."gotify/config.yml".source = config.sops.templates."gotify-server-config.yml".path;
-
- # User setup
- users.users = lib.mkIf (cfg.user == "gotify") {
- gotify = {
- description = "Gotify service";
- useDefaultShell = true;
- group = cfg.group;
- isSystemUser = true;
- };
- };
-
- users.groups = lib.mkIf (cfg.group == "gotify") {
- gotify = {};
- };
-
- # Configure gotify to run as the specified user (for postgres authentication)
- systemd.services.gotify-server = {
- serviceConfig = {
- DynamicUser = lib.mkForce false;
- User = cfg.user;
- RuntimeDirectory = "gotify";
- };
- };
-
- # Fallback server with only 403
- services.nginx.virtualHosts.${config.networking.domain} = lib.mkDefault {
- default = true;
- locations."/".return = 403;
- forceSSL = true;
- enableACME = true;
- };
-
- # Virtual host for gotify
- services.nginx.virtualHosts."${cfg.instanceFQDN}" = {
- forceSSL = true;
- enableACME = true;
- locations."/" = {
- proxyPass = "http://${server-config.server.listenaddr}:${toString server-config.server.port}";
- extraConfig = ''
- # Ensuring it can use websockets
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto http;
- proxy_redirect http:// $scheme://;
-
- # The proxy must preserve the host because gotify verifies the host with the origin
- # for WebSocket connections
- proxy_set_header Host $host;
-
- # These sets the timeout so that the websocket can stay alive
- proxy_connect_timeout 1m;
- proxy_send_timeout 1m;
- proxy_read_timeout 1m;
- '';
- };
- };
-
- # Database setup
- services.postgresql = {
- enable = true;
- ensureDatabases = [cfg.user];
- ensureUsers = [
- {
- name = cfg.user;
- ensureDBOwnership = true;
- }
- ];
- };
- };
-}
diff --git a/old/modules/services/kdeconnect.nix b/old/modules/services/kdeconnect.nix
deleted file mode 100644
index 80a46d2..0000000
--- a/old/modules/services/kdeconnect.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.services.kdeconnect;
-in {
- options.hive.services.kdeconnect = {
- enable = lib.mkEnableOption "KDE Connect system service (plasma6)";
- };
-
- config = lib.mkIf cfg.enable {
- programs.kdeconnect.enable = true;
- programs.kdeconnect.package = lib.mkForce pkgs.kdePackages.kdeconnect-kde;
- };
-}
diff --git a/old/modules/services/minecraft-server/default.nix b/old/modules/services/minecraft-server/default.nix
deleted file mode 100644
index 0e6069e..0000000
--- a/old/modules/services/minecraft-server/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}: let
- cfg = config.hive.minecraft-server;
-
- modpack = pkgs.callPackage ./loadCurseForge.nix {
- url = "https://mediafilez.forgecdn.net/files/7765/203/BMC3_Server_Pack_v44.zip";
- hash = "sha256-doqPzo9fhYM9ng/3RO6OPqhKA2ibfoaKx3Es7M0lpuU=";
- };
-
- mcVersion = modpack.variables.MINECRAFT_VERSION;
- loader = lib.toLower modpack.variables.MODLOADER;
- loaderVersion = modpack.variables.MODLOADER_VERSION;
- serverVersion = lib.replaceStrings ["."] ["_"] "${loader}-${mcVersion}";
-in {
- options.hive.minecraft-server = {
- enable = lib.mkEnableOption "Enable BMC3 server";
- };
-
- config = lib.mkIf cfg.enable {
- services.minecraft-servers = {
- enable = true;
- eula = true;
- openFirewall = true;
-
- servers.bmc3 = lib.optionalAttrs cfg.enable {
- enable = true;
- autoStart = false;
- package = pkgs."${loader}Servers".${serverVersion}.override {inherit loaderVersion;};
- jvmOpts = modpack.variables.JAVA_ARGS;
- symlinks = {
- "mods" = "${modpack.root}/mods";
- };
- serverProperties = {
- motd = "Woher kommt der Stein?";
- white-list = true;
- };
- };
- };
- };
-}
diff --git a/old/modules/services/minecraft-server/loadCurseForge.nix b/old/modules/services/minecraft-server/loadCurseForge.nix
deleted file mode 100644
index 32ba046..0000000
--- a/old/modules/services/minecraft-server/loadCurseForge.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- url ? null,
- hash ? null,
- pkgs,
- lib,
- ...
-}: let
- modpack = pkgs.fetchzip {
- inherit url hash;
- stripRoot = false;
- };
-
- variablesStr = builtins.readFile "${modpack}/variables.txt";
- variableLines =
- builtins.filter (l: l != "" && (lib.strings.elemAt (lib.stringToCharacters l) 0) != "#")
- (lib.strings.splitString "\n" variablesStr);
-
- stripQuotes = s:
- if builtins.match "^\".*\"$" s != null
- then builtins.substring 1 (builtins.stringLength s - 2) s
- else s;
-
- parseLine = line: let
- parts = lib.strings.splitString "=" line;
- in {
- name = builtins.elemAt parts 0;
- value = stripQuotes (builtins.concatStringsSep "=" (builtins.tail parts));
- };
-
- variables = builtins.listToAttrs (map parseLine variableLines);
-in {
- inherit variables;
- root = modpack;
- mods = "${modpack}/mods";
- config = "${modpack}/config";
-}
diff --git a/old/modules/services/nextcloud-instance.nix b/old/modules/services/nextcloud-instance.nix
deleted file mode 100644
index e110949..0000000
--- a/old/modules/services/nextcloud-instance.nix
+++ /dev/null
@@ -1,134 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.hive.nextcloud-instance;
-in {
- options.hive.nextcloud-instance = {
- enable = lib.mkEnableOption "Enable the Nextcloud instance";
-
- instanceFQDN = lib.mkOption {
- type = lib.types.str;
- example = "nextcloud.example.com";
- description = "Fully qualified domain name of the Nextcloud instance";
- };
-
- ssl = lib.mkOption {
- type = lib.types.bool;
- default = true;
- description = "Use SSL and auto-update certificates";
- };
-
- adminPasswordFile = lib.mkOption {
- type = lib.types.path;
- example = "/etc/nc-admin-pass.txt";
- description = "Path to the file containing the Nextcloud admin password";
- };
- };
-
- config = lib.mkIf cfg.enable {
- services.nextcloud = {
- # Instance
- enable = true;
- package = pkgs.nextcloud33;
- hostName = cfg.instanceFQDN;
- https = cfg.ssl;
- configureRedis = true;
-
- # DB
- config.dbtype = "pgsql";
- config.dbhost = "/run/postgresql";
- config.adminpassFile = cfg.adminPasswordFile;
-
- #Mail
- settings = {
- mail_smtpmode = "sendmail";
- mail_sendmailmode = "pipe";
- };
-
- # Apps
- extraAppsEnable = true;
- extraApps = {
- inherit
- (config.services.nextcloud.package.packages.apps)
- calendar
- contacts
- tasks
- ;
- drop_account = pkgs.fetchNextcloudApp {
- sha256 = "sha256-J+bZVNIb/MokuTYQu8RBKdnZFakh180pa1pW5KHlC80=";
- url = "https://packages.framasoft.org/projects/nextcloud-apps/drop-account/drop_account-3.0.0.tar.gz";
- license = "agpl3Only";
- };
- };
-
- # Raise Upload limit
- maxUploadSize = "20G";
-
- # Preview settings (video may be a security risk)
- settings = {
- enable_previews = true;
- enabledPreviewProviders = [
- "OC\\Preview\\BMP"
- "OC\\Preview\\GIF"
- "OC\\Preview\\JPEG"
- "OC\\Preview\\Krita"
- "OC\\Preview\\MarkDown"
- "OC\\Preview\\MP3"
- "OC\\Preview\\OpenDocument"
- "OC\\Preview\\PNG"
- "OC\\Preview\\TXT"
- "OC\\Preview\\XBitmap"
- "OC\\Preview\\Movie"
- "OC\\Preview\\MP4"
- "OC\\Preview\\AVI"
- "OC\\Preview\\MKV"
- ];
- preview_ffmpeg_path = "${pkgs.ffmpeg}/bin/ffmpeg";
- };
- };
-
- # Fallback server with only 403
- services.nginx.virtualHosts.${config.networking.domain} = lib.mkDefault {
- default = true;
- locations."/".return = 403;
- forceSSL = cfg.ssl;
- enableACME = cfg.ssl;
- };
-
- # Webserver setup with optional SSL
- services.nginx.virtualHosts.${cfg.instanceFQDN} =
- if cfg.ssl
- then {
- forceSSL = true;
- enableACME = true;
- }
- else {
- listen = [
- {
- addr = "0.0.0.0";
- port = 80;
- }
- ];
- };
- security.acme = lib.mkIf cfg.ssl {
- acceptTerms = true;
- defaults.email = "jonas.roeger+acme@gmail.com";
- };
- networking.firewall.allowedTCPPorts = [80] ++ lib.optional cfg.ssl 443;
-
- # DB setup
- services.postgresql = {
- enable = true;
- ensureDatabases = ["nextcloud"];
- ensureUsers = [
- {
- name = "nextcloud";
- ensureDBOwnership = true;
- }
- ];
- };
- };
-}
diff --git a/old/templates/cmake-c/.gitignore b/old/templates/cmake-c/.gitignore
deleted file mode 100644
index 378eac2..0000000
--- a/old/templates/cmake-c/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-build
diff --git a/old/templates/cmake-c/CMakeLists.txt b/old/templates/cmake-c/CMakeLists.txt
deleted file mode 100644
index 1f0e64f..0000000
--- a/old/templates/cmake-c/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-cmake_minimum_required(VERSION 3.15)
-
-project(Hello
- DESCRIPTION "Hello World"
- LANGUAGES C
-)
-
-add_executable(hello src/main.c)
-
-install(TARGETS hello)
diff --git a/old/templates/cmake-c/flake.nix b/old/templates/cmake-c/flake.nix
deleted file mode 100644
index 1a56dc3..0000000
--- a/old/templates/cmake-c/flake.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- description = "Cmake C Flake";
-
- inputs = {
- nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
- flake-parts.url = "github:hercules-ci/flake-parts";
- };
-
- outputs = inputs @ {
- self,
- flake-parts,
- ...
- }:
- flake-parts.lib.mkFlake {inherit inputs;} (
- top: {
- imports = [];
-
- flake = {
- overlays.default = final: prev: {
- my-derivation = final.callPackage ./nix/derivation.nix {};
- };
- };
-
- systems = [
- "x86_64-linux"
- ];
-
- perSystem = {
- self',
- pkgs,
- system,
- ...
- }: {
- _module.args.pkgs = import inputs.nixpkgs {
- inherit system;
- overlays = [self.overlays.default];
- };
-
- packages.default = pkgs.my-derivation;
-
- devShells.default = pkgs.mkShell {
- packages = [
- pkgs.cmake-language-server
- pkgs.cmake-format
- pkgs.clang-tools
- pkgs.gdb
- ];
- inputsFrom = [self'.packages.default];
- shellHook = ''
- export CMAKE_EXPORT_COMPILE_COMMANDS=ON
- '';
- };
- };
- }
- );
-}
diff --git a/old/templates/cmake-c/nix/derivation.nix b/old/templates/cmake-c/nix/derivation.nix
deleted file mode 100644
index c1d08b8..0000000
--- a/old/templates/cmake-c/nix/derivation.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- cmake,
- stdenv,
- ...
-}:
-stdenv.mkDerivation (finalAttrs: {
- pname = "my-derivation";
- version = "0.1.0";
- src = ../.;
- nativeBuildInputs = [cmake];
- buildInputs = [];
-
- meta = {
- description = "Hello World Binary";
- mainProgram = "hello";
- };
-})
diff --git a/old/templates/cmake-c/src/main.c b/old/templates/cmake-c/src/main.c
deleted file mode 100644
index 39ccd04..0000000
--- a/old/templates/cmake-c/src/main.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include
-
-int main() {
- puts("Hello, Flake!");
- return 0;
-}
diff --git a/old/templates/rust/.envrc b/old/templates/rust/.envrc
deleted file mode 100644
index 412cbef..0000000
--- a/old/templates/rust/.envrc
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-# ^ make editor happy
-
-#
-# Use https://direnv.net/ to automatically load the dev shell.
-#
-
-if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then
- source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4="
-fi
-
-watch_file nix/**
-watch_file -- **/*.nix
-# Adding files to git includes them in a flake
-# But it is also a bit much reloading.
-# watch_file .git/index .git/HEAD
-use flake . --show-trace
diff --git a/old/templates/rust/.gitignore b/old/templates/rust/.gitignore
deleted file mode 100644
index 80c4fce..0000000
--- a/old/templates/rust/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.direnv/
-target/
-result/
diff --git a/old/templates/rust/Cargo.toml b/old/templates/rust/Cargo.toml
deleted file mode 100644
index 9322e5e..0000000
--- a/old/templates/rust/Cargo.toml
+++ /dev/null
@@ -1,11 +0,0 @@
-[package]
-name = "hello"
-description = "A test rust binary"
-publish = false
-version = "0.1.0"
-
-edition = "2021"
-
-[[bin]]
-name = "hello"
-path = "src/main.rs"
diff --git a/old/templates/rust/flake.nix b/old/templates/rust/flake.nix
deleted file mode 100644
index 2d1b81a..0000000
--- a/old/templates/rust/flake.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- description = "Rust-Hello";
-
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
- rust-overlay = {
- url = "github:oxalica/rust-overlay";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- flake-utils.url = "github:numtide/flake-utils";
- crate2nix = {
- url = "github:nix-community/crate2nix";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- };
-
- outputs = inputs @ {
- crate2nix,
- flake-utils,
- nixpkgs,
- rust-overlay,
- ...
- }:
- flake-utils.lib.eachDefaultSystem (
- system: let
- # Overlay pkgs with rust-bin
- overlays = [(import rust-overlay)];
- pkgs = import nixpkgs {
- inherit system overlays;
- };
-
- # Use rust-bin to generate the toolchain from rust-toolchain.toml
- rust-toolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
-
- buildRustCrateForPkgs = _:
- pkgs.buildRustCrate.override {
- rustc = rust-toolchain; # Use rustc from toolchain
- cargo = rust-toolchain; # Use cargo from toolchain
- };
-
- # Cargo.nix for IFD
- generatedCargoNix = crate2nix.tools.${system}.generatedCargoNix {
- name = "rustnix";
- src = ./.;
- };
-
- cargoNix = import generatedCargoNix {
- inherit pkgs buildRustCrateForPkgs;
- };
- in {
- packages = rec {
- hello = cargoNix.rootCrate.build;
- default = hello;
- };
-
- devShell = pkgs.mkShell {
- buildInputs = [rust-toolchain];
- };
- }
- );
-}
diff --git a/old/templates/rust/rust-toolchain.toml b/old/templates/rust/rust-toolchain.toml
deleted file mode 100644
index 535db1f..0000000
--- a/old/templates/rust/rust-toolchain.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-[toolchain]
-channel = "1.85.0"
-components = [ "rustfmt", "rustc-dev", "rust-analyzer", "rust-src"]
diff --git a/old/templates/rust/src/main.rs b/old/templates/rust/src/main.rs
deleted file mode 100644
index ea5b5d8..0000000
--- a/old/templates/rust/src/main.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-fn main() {
- println!("{}", "Hello, world!");
-}