diff --git a/configuration.nix b/configuration.nix index 7bc2e0b..3d74d8c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -26,7 +26,6 @@ initrd = { systemd.enable = true; luks.devices."crypted" = { - preLVM = lib.mkForce false; crypttabExtraOpts = [ "fido2-device=auto" ]; device = "/dev/disk/by-partlabel/disk-main-luks"; }; diff --git a/flake.nix b/flake.nix index 2441904..20ee421 100644 --- a/flake.nix +++ b/flake.nix @@ -26,14 +26,14 @@ hyprland = { url = "github:hyprwm/Hyprland/v0.41.2"; }; - split-monitor-workspaces = { - url = "github:Duckonaut/split-monitor-workspaces"; + hyprsplit = { + url = "github:shezdy/hyprsplit"; inputs.hyprland.follows = "hyprland"; }; flatpaks.url = "github:GermanBread/declarative-flatpak/stable"; }; - outputs = inputs@{ nixpkgs, home-manager, hyprland, split-monitor-workspaces, flatpaks, ... }: { + outputs = inputs@{ nixpkgs, home-manager, hyprland, hyprsplit, flatpaks, ... }: { nixosConfigurations = { "ziltis-desktop" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; diff --git a/home.nix b/home.nix index 20e16e3..189adf4 100644 --- a/home.nix +++ b/home.nix @@ -77,7 +77,7 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }: # ./chicken/chicken.nix ]; - home.stateVersion = "23.11"; + home.stateVersion = "24.05"; programs.home-manager.enable = true; home.sessionPath = [ "${config.home.homeDirectory}/.config/emacs/bin" "${config.home.homeDirectory}/.local/bin" ]; @@ -101,11 +101,6 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }: # size = 32; # }; - home.file.".config/sway/config" = { - enable = true; - text = builtins.readFile ./swayfx/config.in; - }; - accounts = { # calendar = { # basePath = "${config.home.homeDirectory}/calendars"; @@ -409,10 +404,10 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }: }; }; - services.nextcloud-client = { - enable = true; - startInBackground = true; - }; + # services.nextcloud-client = { + # enable = true; + # startInBackground = true; + # }; # programs.swaylock = { # enable = true; @@ -428,6 +423,52 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }: # }; # }; +programs.hyprlock = { + enable = true; + settings = { + general = { + grace = 3; + }; + background = { + path = "screenshot"; + blur_passes = 2; + blur_size = 5; + noise = 0.0117; + contrast = 0.8916; + brightness = 0.8172; + vibrancy = 0.1696; + vibrancy_darkness = 0.0; + }; + input-field = { + size = "200, 50"; + outline_thickness = 3; + dots_size = 0.33; + dots_spacing = 0.15; + dots_center = true; + dots_rounding = -1; + outer_color = "rgb(151515)"; + inner_color = "rgb(200,200,200)"; + font_color = "rgb(10,10,10)"; + fade_on_empty = true; + fade_timeout = 1000; + placeholder_text = "Input Password..."; + hide_input = false; + rounding = -1; + check_color = "rgb(204,136,34)"; + fail_color = "rgb(204,34,34)"; + fail_text = "$FAIL ($ATTEMPTS)"; + fail_transition = 300; + capslock_color = -1; + numlock_color = -1; + bothlock_color = -1; + invert_numlock = false; + position = "0, -20"; + halign = "center"; + valign = "center"; + }; + }; +}; + # services.swayidle = { # enable = true; # events = [ ]; @@ -437,6 +478,26 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }: # }]; # }; +services.hypridle = { + enable = true; + settings = { + general = { + after_sleep_cmd = "hyprctl dispatch dpms on"; + lock_cmd = "pgrep hyprlock || hyprlock"; + }; + listener = [ + { + timeout = 300; + on-timeout = "$lock_cmd"; + } + { + timeout = 1200; + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + ]; + }; +}; + # services.mako = { # enable = true; # defaultTimeout = 5000; @@ -451,6 +512,15 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }: # }; # }; + + services.swaync = { + enable = true; + # https://github.com/ErikReider/SwayNotificationCenter/blob/main/src/configSchema.json + settings = { + notification-inline-replies = true; + }; + }; + programs.wlogout = { enable = true; }; programs.fuzzel = { @@ -467,25 +537,6 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }: }; }; -# home.file.tofi-conf = { -# enable = true; -# target = ".config/tofi/config"; -# text = '' -# drun-launch = true -# font = Victor Mono Nerd Font -# font-size = 12 -# text-cursor = true -# terminal = kitty -# width = 1200 -# height = 720 -# '' + (builtins.readFile (pkgs.fetchFromGitHub { -# owner = "catppuccin"; -# repo = "tofi"; -# rev = "2e74ddba0c582b2ca2d9d06f67f5a902c3a093fb"; -# sha256 = "sha256-XUwixvy2WyfaSRHM8cTnOn8lKv+vbhheDA1Z47ap+Mc="; -# } + /catppuccin-latte)); -# }; - qt = { enable = true; style.name = "breeze"; diff --git a/hyprland/hyprland.nix b/hyprland/hyprland.nix index 56f224a..f65167f 100644 --- a/hyprland/hyprland.nix +++ b/hyprland/hyprland.nix @@ -1,17 +1,17 @@ -{ config, lib, pkgs, hyprland, wayland, split-monitor-workspaces, ... }: +{ config, lib, pkgs, hyprland, wayland, hyprsplit, ... }: { - home.file.hyprland-catppuccino = let flavour = "frappe"; - in { - enable = true; - target = ".config/hypr/catppuccino.conf"; - text = builtins.readFile (pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "hyprland"; - rev = "99a88fd21fac270bd999d4a26cf0f4a4222c58be"; - sha256 = "sha256-07B5QmQmsUKYf38oWU3+2C6KO4JvinuTwmW1Pfk8CT8="; - } + /themes/${flavour}.conf); + # home.file.hyprland-catppuccino = let flavour = "frappe"; + # in { + # enable = true; + # target = ".config/hypr/catppuccino.conf"; + # text = builtins.readFile (pkgs.fetchFromGitHub { + # owner = "catppuccin"; + # repo = "hyprland"; + # rev = "99a88fd21fac270bd999d4a26cf0f4a4222c58be"; + # sha256 = "sha256-07B5QmQmsUKYf38oWU3+2C6KO4JvinuTwmW1Pfk8CT8="; + # } + /themes/${flavour}.conf); }; wayland.windowManager.hyprland = { @@ -19,11 +19,14 @@ systemd.enable = true; package = hyprland.packages.${pkgs.system}.hyprland; plugins = [ - split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces + hyprsplit.packages.${pkgs.system}.hyprsplit ]; settings = { source = - [ "~/.config/hypr/monitors.conf" "~/.config/hypr/catppuccino.conf" ]; + [ + "~/.config/hypr/monitors.conf" + #"~/.config/hypr/catppuccino.conf" + ]; input = { kb_layout = "de"; kb_options = "caps:swapescape"; @@ -33,14 +36,17 @@ }; general = { gaps_in = 15; - gaps_out = 15; - border_size = 1; + gaps_out = 20; + border_size = 2; resize_on_border = true; "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; "col.inactive_border" = "rgba(595959aa)"; layout = "master"; + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false; }; misc = { + force_default_wallpaper = -1; vfr = true; vrr = 1; animate_manual_resizes = true; @@ -51,7 +57,11 @@ shadow_range = 4; shadow_render_power = 3; "col.shadow" = "rgba(1a1a1aee)"; - blur = { enabled = true; }; + blur = { + enabled = true; + size = 3; + passes = 1; + }; }; animations = { enabled = true; @@ -74,6 +84,7 @@ master = { new_is_master = false; orientation = "center"; + workspace = "w[g2] layoutopt:orientation:left"; always_center_master = true; mfact = 0.5; special_scale_factor = 0.8; @@ -86,12 +97,10 @@ bind = [ "$mainMod, Q, exec, ${pkgs.kitty}/bin/kitty" "$mainMod, C, killactive," - #"$mainMod, M, exit," "$mainMod, M, exec, ${pkgs.wlogout}/bin/wlogout" "$mainMod, E, exec, dolphin" "$mainMod, V, togglefloating," "$mainMod, R, exec, ${pkgs.fuzzel}/bin/fuzzel" - #"$mainMod, R, exec, ${pkgs.tofi}/bin/tofi-drun" "$mainMod, P, pseudo," # dwindle "$mainMod, J, togglesplit," # dwindle "$mainMod, T, togglegroup," @@ -102,7 +111,9 @@ # Screenshots #"SHIFT, PRINT, exec, hyprshot -m region" '' - SHIFT, PRINT, exec, ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -'' + PRINT, exec, ${pkgs.grim}/bin/grim -l 9 -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -'' + '' + SHIFT, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 - | ${pkgs.swappy}/bin/swappy -f -'' "$mainMod SHIFT, L, exec, $lockscreen" # Move focus "$mainMod, left, movefocus, l" @@ -119,31 +130,31 @@ "$mainMod SHIFT, T, lockactivegroup, toggle" # Switch workspaces - "$mainMod, 1, split-workspace, 1" - "$mainMod, 2, split-workspace, 2" - "$mainMod, 3, split-workspace, 3" - "$mainMod, 4, split-workspace, 4" - "$mainMod, 5, split-workspace, 5" - "$mainMod, 6, split-workspace, 6" - "$mainMod, 7, split-workspace, 7" - "$mainMod, 8, split-workspace, 8" - "$mainMod, 9, split-workspace, 9" + "$mainMod, 1, split:workspace, 1" + "$mainMod, 2, split:workspace, 2" + "$mainMod, 3, split:workspace, 3" + "$mainMod, 4, split:workspace, 4" + "$mainMod, 5, split:workspace, 5" + "$mainMod, 6, split:workspace, 6" + "$mainMod, 7, split:workspace, 7" + "$mainMod, 8, split:workspace, 8" + "$mainMod, 9, split:workspace, 9" # Move windows to workspaces - "$mainMod SHIFT, 1, split-movetoworkspace, 1" - "$mainMod SHIFT, 2, split-movetoworkspace, 2" - "$mainMod SHIFT, 3, split-movetoworkspace, 3" - "$mainMod SHIFT, 4, split-movetoworkspace, 4" - "$mainMod SHIFT, 5, split-movetoworkspace, 5" - "$mainMod SHIFT, 6, split-movetoworkspace, 6" - "$mainMod SHIFT, 7, split-movetoworkspace, 7" - "$mainMod SHIFT, 8, split-movetoworkspace, 8" - "$mainMod SHIFT, 9, split-movetoworkspace, 9" - "$mainMod SHIFT, ß, split-movetoworkspace, special" + "$mainMod SHIFT, 1, split:movetoworkspace, 1" + "$mainMod SHIFT, 2, split:movetoworkspace, 2" + "$mainMod SHIFT, 3, split:movetoworkspace, 3" + "$mainMod SHIFT, 4, split:movetoworkspace, 4" + "$mainMod SHIFT, 5, split:movetoworkspace, 5" + "$mainMod SHIFT, 6, split:movetoworkspace, 6" + "$mainMod SHIFT, 7, split:movetoworkspace, 7" + "$mainMod SHIFT, 8, split:movetoworkspace, 8" + "$mainMod SHIFT, 9, split:movetoworkspace, 9" # Scroll through workspaces "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" # Special workspace "SHIFT ALT, RETURN, togglespecialworkspace" + "SHIFT, S, movetoworkspace, special" ]; # Mouse bindings