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!"); -}