diff --git a/hosts/thalassa/aoife/default.nix b/hosts/thalassa/aoife/default.nix index 59dabf2c..22b10902 100644 --- a/hosts/thalassa/aoife/default.nix +++ b/hosts/thalassa/aoife/default.nix @@ -6,7 +6,6 @@ inputs, lib, pkgs, - modulesPath, ... }: { @@ -24,8 +23,6 @@ users.users.vivian.extraGroups = [ "adbusers" ]; - services.flatpak.enable = true; - # Bootloader. boot = { kernelParams = [ @@ -48,36 +45,44 @@ }; home-manager.users.vivian = import ./home; + programs = { + nix-ld.enable = true; + nix-ld.libraries = with pkgs; [ + # Add any missing dynamic libraries for unpackaged programs - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; [ - # Add any missing dynamic libraries for unpackaged programs + # here, NOT in environment.systemPackages + ]; - # here, NOT in environment.systemPackages - ]; - - programs.hyprland = { - enable = true; - withUWSM = true; + hyprland = { + enable = true; + withUWSM = true; + }; + hyprlock.enable = true; }; - services.gnome.gnome-keyring.enable = true; + services = { + hypridle.enable = true; - services.ollama = { - enable = true; - acceleration = "rocm"; - rocmOverrideGfx = "10.3.4"; - }; + flatpak.enable = true; - services.interception-tools = { - enable = true; - plugins = [ pkgs.interception-tools-plugins.caps2esc ]; - udevmonConfig = '' - - JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.caps2esc}/bin/caps2esc | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE" - DEVICE: - EVENTS: - EV_KEY: [KEY_CAPSLOCK, KEY_ESC] - ''; + gnome.gnome-keyring.enable = true; + + ollama = { + enable = true; + acceleration = "rocm"; + rocmOverrideGfx = "10.3.4"; + }; + + interception-tools = { + enable = true; + plugins = [ pkgs.interception-tools-plugins.caps2esc ]; + udevmonConfig = '' + - JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.caps2esc}/bin/caps2esc | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE" + DEVICE: + EVENTS: + EV_KEY: [KEY_CAPSLOCK, KEY_ESC] + ''; + }; }; # Enable Ozone rendering for Chromium and Electron apps. diff --git a/hosts/thalassa/aoife/home/hyprland.nix b/hosts/thalassa/aoife/home/hyprland.nix index 3797b4cf..bd1642fb 100644 --- a/hosts/thalassa/aoife/home/hyprland.nix +++ b/hosts/thalassa/aoife/home/hyprland.nix @@ -19,32 +19,117 @@ in inputs.hyprland-qtutils.packages.${pkgs.system}.default ]; - services = { - mako = { - enable = true; - defaultTimeout = 5000; - }; - }; - programs = { rofi = { enable = true; package = pkgs.rofi-wayland; }; + hyprlock = { + enable = true; + settings = + let + color = "rgba(242, 243, 244, 0.75)"; + in + { + auth.fingerprint.enabled = true; + + background = { + path = "screenshot"; + blur_passes = 3; + }; + + input-field = { + size = "500, 100"; + outline_thickness = 0; + dots_size = 0.25; # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.55; # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true; + dots_rounding = -1; + outer_color = "rgba(242, 243, 244, 0)"; + inner_color = "rgba(242, 243, 244, 0)"; + font_color = "rgba(242, 243, 244, 0.75)"; + fade_on_empty = false; + placeholder_text = "Start typing or scan fingerprint"; # Text rendered in the input box when it's empty. + hide_input = false; + check_color = "rgba(204, 136, 34, 0)"; + fail_color = "rgba(204, 34, 34, 0)"; # if authentication failed, changes outer_color and fail message color + fail_text = "$FAIL ($ATTEMPTS)"; # can be set to empty + fail_transition = 300; # transition time in ms between normal outer_color and fail_color + capslock_color = -1; + numlock_color = -1; + bothlock_color = -1; # when both locks are active. -1 means don't change outer color (same for above) + invert_numlock = false; # change color if numlock is off + swap_font_color = false; # see below + # position = "0, -468"; + position = "0, -900"; + halign = "center"; + valign = "center"; + }; + + label = [ + { + text = "$TIME"; + inherit color; + shadow_passes = 1; + shadow_boost = 0.5; + font_size = 120; + # position = "0, 900"; + halign = "center"; + valign = "center"; + } + ]; + }; + }; + # eww = { # enable = true; # configDir = ./eww; # }; }; - # Hack to ensure graphical dependent services start _after_ hyprland starts - # Needed as these services normally start after graphical-session-pre - systemd.user.services.hyprpaper.Unit.After = lib.mkForce "graphical-session.target"; - systemd.user.services.waybar.Unit.After = lib.mkForce "graphical-session.target"; - services = { gnome-keyring.enable = true; + + mako = { + enable = true; + defaultTimeout = 5000; + }; + + hypridle = { + enable = true; + + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; + before_sleep_cmd = "loginctl lock-session"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + + listener = [ + { + timeout = 150; # 2.5 mins + on-timeout = "${pkgs.brightnessctl}/bin/brightnessctl -s set 10"; + on-resume = "${pkgs.brightnessctl}/bin/brightnessctl -r"; + } + { + timeout = 150; # 2.5 mins + on-timeout = "${pkgs.brightnessctl}/bin/brightnessctl -sd tpacpi:kbd_backlight set 0"; + on-resume = "${pkgs.brightnessctl}/bin/brightnessctl -rd tpacpi::kbd_backlight"; + } + { + timeout = 300; # 5 mins + on-timeout = "loginctl lock-session"; + } + { + timeout = 600; # 10 mins + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + ]; + }; + }; + hyprpaper = let wallpaper = ../../../../assets/wallpaper-nix-pink.png; @@ -59,8 +144,14 @@ in ipc = "off"; }; }; + }; + # Hack to ensure graphical dependent services start _after_ hyprland starts + # Needed as these services normally start after graphical-session-pre + systemd.user.services.hyprpaper.Unit.After = lib.mkForce "graphical-session.target"; + systemd.user.services.waybar.Unit.After = lib.mkForce "graphical-session.target"; + wayland.windowManager.hyprland = let toggle_mirror = pkgs.writeScriptBin "toggle_mirror.sh" '' @@ -210,6 +301,8 @@ in "$mod, J, togglesplit, # dwindle" "$mod,m,fullscreen" + "$mod, L, exec, loginctl lock-session" + "$mod, space, hyprexpo:expo, toggle" # Move focus with arrow keys