diff --git a/home/programs/default.nix b/home/programs/default.nix index b0b0cec..0ca7760 100644 --- a/home/programs/default.nix +++ b/home/programs/default.nix @@ -5,7 +5,6 @@ ./mpv.nix ./neovim.nix ./nixcord.nix - ./kodi.nix ./other.nix ]; } diff --git a/home/programs/kodi.nix b/home/programs/kodi.nix deleted file mode 100644 index b956d0c..0000000 --- a/home/programs/kodi.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - home.packages = [ - (pkgs.kodi-wayland.withPackages (exts: [exts.inputstream-adaptive exts.inputstreamhelper])) - ]; -} diff --git a/home/programs/neovim.nix b/home/programs/neovim.nix index 12f2780..780994c 100644 --- a/home/programs/neovim.nix +++ b/home/programs/neovim.nix @@ -41,12 +41,11 @@ providers.wl-copy.enable = true; registers = "unnamedplus"; }; - - options.shiftwidth = 2; binds = { whichKey.enable = true; cheatsheet.enable = true; }; + options.shiftwidth = 2; languages = { enableFormat = true; #You can also manually overwrite each language. enableTreesitter = true; @@ -121,16 +120,7 @@ colorizer.enable = true; smartcolumn. enable = true; }; - utility = { - vim-wakatime.enable = true; - motion.leap = { - enable = true; - mappings = { - leapForwardTo = "f"; - leapBackwardTo = "F"; - }; - }; - }; + utility.vim-wakatime.enable = true; visuals = { nvim-web-devicons.enable = true; nvim-cursorline.enable = true; diff --git a/home/shell/default.nix b/home/shell/default.nix index 4c4c4f6..e301aab 100644 --- a/home/shell/default.nix +++ b/home/shell/default.nix @@ -2,12 +2,11 @@ imports = [ ./direnv.nix ./fish.nix - ./git.nix ./other.nix ./repl ./starship.nix - ./transfer.nix ./yazi.nix ./zoxide.nix + ./transfer.nix ]; } diff --git a/home/shell/git.nix b/home/shell/git.nix deleted file mode 100644 index ac2f019..0000000 --- a/home/shell/git.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - programs = { - git = { - enable = true; - userEmail = "jurnwubben@gmail.com"; - userName = "Jurn Wubben"; - extraConfig.push.autoSetupRemote = true; - }; - git-credential-oauth = true; - }; -} diff --git a/home/shell/other.nix b/home/shell/other.nix index f90f855..029dc2b 100644 --- a/home/shell/other.nix +++ b/home/shell/other.nix @@ -7,6 +7,7 @@ }: { home.packages = [ + pkgs.gh pkgs.ripgrep pkgs.p7zip pkgs.usbutils @@ -22,7 +23,7 @@ ++ lib.optionals osConfig.niksos.bluetooth [ pkgs.ear2ctl ] - ++ lib.optionals osConfig.niksos.portable.enable [ + ++ lib.optionals osConfig.niksos.portable [ inputs.somcli.defaultPackage.${pkgs.system} ]; } diff --git a/home/style/background.png b/home/style/background.png index 91b0e96..65736a4 100644 Binary files a/home/style/background.png and b/home/style/background.png differ diff --git a/home/wayland/hyprland/binds.nix b/home/wayland/hyprland/binds.nix index 69d0e0c..10c3fa0 100644 --- a/home/wayland/hyprland/binds.nix +++ b/home/wayland/hyprland/binds.nix @@ -115,9 +115,8 @@ in { "Super, s, exec, ${torzu}" "Super, d, exec, ${dolphin}" ]) - ++ lib.optionals portable.enable [ + ++ lib.optionals portable [ "$m Shift, S, exec, ${somcli}" - ", XF86AudioMedia, exec, powermode toggle" ]; bindl = [ diff --git a/home/wayland/hyprland/default.nix b/home/wayland/hyprland/default.nix index 98d05ad..6baaa62 100644 --- a/home/wayland/hyprland/default.nix +++ b/home/wayland/hyprland/default.nix @@ -21,12 +21,10 @@ in { "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "NIXOS_OZONE_WL,1" ]; - exec-once = - [ - "${uwsm} finalize" - "${hyprlock}" # Lock screen - ] - ++ lib.optional osConfig.niksos.portable.enable "powermode sync"; + exec-once = [ + "${uwsm} finalize" + "${hyprlock}" # Lock screen + ]; }; }; } diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index 3b8f8aa..9028eee 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -1,57 +1,46 @@ { + pkgs, + lib, + inputs, + ... +}: let + uwsm = lib.getExe pkgs.uwsm; + foot = lib.getExe pkgs.foot; +in { imports = [ ./hardware-configuration.nix ./virt.nix - ./wluma.nix ]; - services.printing = { - enable = true; - startWhenNeeded = true; - }; - hardware.printers = { - ensureDefaultPrinter = "Broeder"; - ensurePrinters = [ - { - deviceUri = "ipp://192.168.1.33/ipp"; - location = "home"; - name = "Broeder"; - model = "everywhere"; - } - ]; - }; - - # programs.evolution.enable = true; # FIXME: move to appropiate place. niksos = { - joycond = false; #NOTE: enable when game night lol fingerprint = true; bluetooth = true; - portable = { - enable = true; - hyprland = { - powerSaver = '' - hyprctl keyword monitor eDP-1,2880x1920@60,0x0,1.5,vrr,1 - ''; - performance = '' - hyprctl keyword monitor eDP-1,2880x1920@120,0x0,1.5,vrr,1 - ''; - }; - }; + portable = true; neovim = true; games = true; desktop = { enable = true; hyprland = true; - kde = true; + kde = false; }; }; home-manager.users.jsw.wayland.windowManager.hyprland.settings.monitor = ["eDP-1,2880x1920@120,0x0,1.5,vrr,1"]; - services.udev.extraRules = '' - # Ethernet expansion card support - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20" - ''; + services = { + usbmuxd.enable = true; + joycond.enable = true; + udev.extraRules = '' + # Ethernet expansion card support + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20" + ''; + logind.extraConfig = '' + # donβt shutdown when power button is short-pressed + HandlePowerKey=ignore + ''; + }; + hardware.sensor.iio.enable = true; # brightness sensor + boot.kernelParams = [ # There seems to be an issue with panel self-refresh (PSR) that # causes hangs for users. diff --git a/hosts/laptop/wluma.nix b/hosts/laptop/wluma.nix deleted file mode 100644 index 593c1c1..0000000 --- a/hosts/laptop/wluma.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - hardware.sensor.iio.enable = true; # brightness sensor - home-manager.users.jsw.services.wluma = { - enable = true; - settings = { - als.iio = { - path = "/sys/bus/iio/devices"; - thresholds = { - "0" = "night"; - "10" = "dark"; - "100" = "normal"; - "20" = "dim"; - "200" = "bright"; - "500" = "outdoors"; - }; - }; - output.backlight = [ - { - capturer = "none"; - name = "eDP-1"; - path = "/sys/class/backlight/amdgpu_bl1"; - } - { - capturer = "none"; - name = "keyboard"; - path = "/sys/bus/platform/devices/cros-keyboard-leds.5.auto/leds/chromeos::kbd_backlight"; - } - ]; - }; - }; -} diff --git a/hosts/minimal/default.nix b/hosts/minimal/default.nix index 4d05acd..408b1d2 100644 --- a/hosts/minimal/default.nix +++ b/hosts/minimal/default.nix @@ -23,13 +23,7 @@ nvidia = false; }; neovim = false; - portable = { - enable = false; - hyprland = { - powerSaver = ""; - performance = ""; - }; - }; + portable = false; server = false; }; diff --git a/secrets/default.nix b/secrets/default.nix index 12e4986..20be83e 100644 --- a/secrets/default.nix +++ b/secrets/default.nix @@ -1,6 +1,4 @@ -{config, ...}: let - serviceUser = x: config.systemd.services.${x}.serviceConfig.User; -in { +{config, ...}: { age.secrets = { transferSh = { file = ./transfer-sh.age; @@ -10,7 +8,7 @@ in { file = ./dcbot.age; owner = if config.niksos.server - then serviceUser "dcbot" # "dcbot" doesn't exist on e.g laptop. + then "dcbot" # "dcbot" doesn't exist on e.g laptop. else "root"; }; password.file = ./password.age; @@ -23,10 +21,10 @@ in { }; cloudflare-acme.file = ./cloudflare-acme.age; mail-admin = { - # owner = #FIXME: revert when stopped using docker for stalwart. - # if config.niksos.server - # then serviceUser "stalwart-mail" - # else "root"; + owner = + if config.niksos.server + then "stalwart-mail" + else "root"; file = ./mail-admin.age; }; }; diff --git a/secrets/mail-admin.age b/secrets/mail-admin.age index 494156f..457b7cd 100644 Binary files a/secrets/mail-admin.age and b/secrets/mail-admin.age differ diff --git a/system/desktop/greetd.nix b/system/desktop/greetd.nix index 5cb4982..1350659 100644 --- a/system/desktop/greetd.nix +++ b/system/desktop/greetd.nix @@ -2,12 +2,14 @@ config, lib, ... -}: { - config = lib.mkIf config.niksos.desktop.enable { +}: let + cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland; +in { + config = lib.mkIf cfg { # greetd display manager services.greetd = let session = { - command = lib.mkDefault "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop"; + command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop"; user = "jsw"; }; in { @@ -20,6 +22,6 @@ }; }; - programs.uwsm.enable = config.niksos.desktop.hyprland; + programs.uwsm.enable = true; }; } diff --git a/system/desktop/plasma6.nix b/system/desktop/plasma6.nix index cca4cce..8f36529 100644 --- a/system/desktop/plasma6.nix +++ b/system/desktop/plasma6.nix @@ -6,23 +6,28 @@ }: let cfg = config.niksos.desktop.enable && config.niksos.desktop.kde; in { - specialisation.de.configuration = lib.mkIf cfg { + config = lib.mkIf cfg { niksos.desktop.hyprland = lib.mkForce false; - services = { - greetd = let - session.command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland"; - in { - enable = true; - settings = { - terminal.vt = 1; - default_session = session; - initial_session = session; + specialisation.de.configuration = { + services = { + greetd = let + session = { + command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland"; + user = "jsw"; + }; + in { + enable = true; + settings = { + terminal.vt = 1; + default_session = session; + initial_session = session; + }; }; + + desktopManager.plasma6.enable = true; }; - desktopManager.plasma6.enable = true; + home-manager.users.jsw.stylix.autoEnable = false; }; - - home-manager.users.jsw.stylix.autoEnable = false; }; } diff --git a/system/hardware/default.nix b/system/hardware/default.nix index f513c91..36678f4 100644 --- a/system/hardware/default.nix +++ b/system/hardware/default.nix @@ -3,10 +3,8 @@ imports = [ ./bluetooth.nix + ./graphics.nix ./fingerprint.nix ./fwupd.nix - ./graphics.nix - ./joycond.nix - ./power.nix ]; } diff --git a/system/hardware/fingerprint.nix b/system/hardware/fingerprint.nix index f3a16fc..69b18ed 100644 --- a/system/hardware/fingerprint.nix +++ b/system/hardware/fingerprint.nix @@ -11,16 +11,10 @@ in { options.niksos.fingerprint = mkEnableOption "fingerprint support."; config = mkIf fingerprint { - services = { - fprintd.enable = true; - logind.extraConfig = mkIf desktop.hyprland '' - # donβt shutdown when power button is short-pressed - HandlePowerKey=ignore - ''; - }; + services.fprintd.enable = true; home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf desktop.hyprland { - bind = [ + bind = mkIf fingerprint [ ", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'" ]; windowrule = [ diff --git a/system/hardware/joycond.nix b/system/hardware/joycond.nix deleted file mode 100644 index a87d760..0000000 --- a/system/hardware/joycond.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - ... -}: { - options.niksos.joycond = lib.mkEnableOption "support for nintendo switch controllers."; - - config.services = lib.mkIf config.niksos.joycond { - usbmuxd.enable = true; - joycond.enable = true; - }; -} diff --git a/system/hardware/power.nix b/system/hardware/power.nix deleted file mode 100644 index 0f22c63..0000000 --- a/system/hardware/power.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (config) niksos; - cfg = niksos.portable; -in { - options.niksos.portable = { - enable = lib.mkEnableOption "battery optimisers"; - hyprland = let - gen = mode: - lib.mkOption { - default = ""; - description = "Shell commands to run when switching to ${mode} mode."; - type = lib.types.lines; - }; - in { - powerSaver = gen "power-saver"; - performance = gen "performance"; - }; - }; - config = { - services = lib.mkIf cfg.enable { - logind = { - powerKey = "suspend-then-hibernate"; - powerKeyLongPress = "poweroff"; - }; - upower.enable = true; - power-profiles-daemon.enable = true; - }; - - environment.systemPackages = lib.mkIf niksos.desktop.hyprland [ - (pkgs.writeScriptBin "powermode" '' - #!/usr/bin/env bash - - function sync() { - if [ "$(powerprofilesctl get)" = "power-saver" ]; then - hyprctl --batch "\ - keyword animations:enabled 0;\ - keyword decoration:shadow:enabled 0;\ - keyword decoration:blur:enabled 0;\ - keyword general:gaps_in 0;\ - keyword general:gaps_out 0;\ - keyword general:border_size 1;\ - keyword decoration:rounding 0" - - ${cfg.hyprland.powerSaver} - else - ${cfg.hyprland.performance} - hyprctl reload - fi - - } - function toggle() { - if [ "$(powerprofilesctl get)" = "power-saver" ]; then - powerprofilesctl set performance - else - powerprofilesctl set power-saver - fi - - sync - } - - if [ "$#" -ne 1 ]; then - echo "Usage: $0 {toggle|sync}" - exit 1 - fi - - case "$1" in - toggle) - toggle - ;; - sync) - sync - ;; - *) - echo "Invalid option: $1" - echo "Usage: $0 {toggle|sync}" - exit 1 - ;; - esac - '') - ]; - }; -} diff --git a/system/nix/substituters.nix b/system/nix/substituters.nix index 17ac1a8..69845fa 100644 --- a/system/nix/substituters.nix +++ b/system/nix/substituters.nix @@ -3,7 +3,7 @@ substituters = [ # high priority since it's almost always used "https://cache.nixos.org?priority=10" - # "https://cache.garnix.io" + "https://cache.garnix.io" # "https://anyrun.cachix.org" # "https://fufexan.cachix.org" @@ -16,7 +16,7 @@ trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - # "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g= " + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g= " # "anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s=" # "fufexan.cachix.org-1:LwCDjCJNJQf5XD2BV+yamQIMZfcKWR9ISIFy5curUsY=" diff --git a/system/server/default.nix b/system/server/default.nix index 5cd7cdd..e04a03e 100644 --- a/system/server/default.nix +++ b/system/server/default.nix @@ -1,4 +1,4 @@ {lib, ...}: { - imports = [./caddy.nix ./index ./seafile.nix ./bot.nix ./immich.nix ./matrix.nix ./mail.nix]; + imports = [./caddy.nix ./transfer-sh.nix ./seafile.nix ./bot.nix ./immich.nix ./matrix.nix ./mail.nix]; options.niksos.server = lib.mkEnableOption "server servcies (such as caddy)."; #TODO: per service option. } diff --git a/system/server/index/default.nix b/system/server/index/default.nix deleted file mode 100644 index 2cfd6f7..0000000 --- a/system/server/index/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - ... -}: { - services.caddy.virtualHosts."jsw.tf" = lib.mkIf config.niksos.server { - extraConfig = '' - header Content-Type text/html - respond < - - - -
- - -Hello! I'm jsw, a frontend web developer with experience in Svelte + TS, Nix(OS) and currently learning Rust. This site is still under development, so please bear with me. In the meantime, feel free to reach out via email or explore my projects on GitHub.
-π§ info@jsw.tf
-π GitHub
-