diff --git a/flake.nix b/flake.nix index 4ac10ac..1e5cda3 100644 --- a/flake.nix +++ b/flake.nix @@ -19,13 +19,14 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; - bemoji = { - url = "github:marty-oehme/bemoji"; - flake = false; - }; - bwmenu = { - url = "github:mattydebie/bitwarden-rofi"; - flake = false; + # quickshell = { + # url = "github:outfoxxed/quickshell"; + # inputs.nixpkgs.follows = "nixpkgs"; + # }; + noctalia = { + url = "github:noctalia-dev/noctalia-shell"; + inputs.nixpkgs.follows = "nixpkgs"; + # inputs.quickshell.follows = "quickshell"; }; }; diff --git a/home-manager/common.nix b/home-manager/common.nix index 538c05f..690ff29 100644 --- a/home-manager/common.nix +++ b/home-manager/common.nix @@ -5,6 +5,7 @@ inputs: all: { ... }: { imports = [ + inputs.noctalia.homeModules.default all ]; diff --git a/home-manager/modules/ezpcusr.nix b/home-manager/modules/ezpcusr.nix index 4d24c14..058778f 100644 --- a/home-manager/modules/ezpcusr.nix +++ b/home-manager/modules/ezpcusr.nix @@ -48,7 +48,7 @@ in { settings = { general = { - lock_cmd = "pidof hyprlock || hyprlock"; + lock_cmd = "noctalia-shell ipc call lockScreen lock"; before_sleep_cmd = "loginctl lock-session"; after_sleep_cmd = "hyperctl dispatch dpms on"; }; @@ -66,35 +66,6 @@ in { }; }; - programs.hyprlock = { - enable = true; - settings = { - general = { - hide_cursor = true; - }; - - animations = { - enabled = true; - fade_in = { - duration = 300; - bezier = "easeOutQuint"; - }; - fade_out = { - duration = 300; - bezier = "easeOutQuint"; - }; - }; - - background = lib.mkForce [ - { - path = "screenshot"; - blur_passes = 3; - blur_size = 8; - } - ]; - }; - }; - xdg.portal = { enable = true; xdgOpenUsePortal = true; @@ -120,20 +91,15 @@ in { hypr-dynamic-cursors ]; settings = { + exec-once = [ + "noctalia-shell" + ]; "plugin:dynamic-cursors" = { shake.enabled = false; }; "plugin:hy3" = { no_gaps_when_only = 1; }; - layerrule = [ - "blur, bar-.*" - "ignorezero, bar-.*" - "xray on, bar-.*" - # "blur, notifications-window" - # "blur, indicator" - # "ignorezero, indicator" - ]; ecosystem = { no_update_news = true; no_donation_nag = true; @@ -173,25 +139,24 @@ in { "$mod SHIFT, F, fullscreen, 1" "$mod, Space, togglefloating" "$mod SHIFT, SPACE, exec, hyprctl switchxkblayout all next" - "$mod, D, exec, ${config.programs.rofi.package}/bin/rofi -show drun -show-icons" + "$mod, D, exec, noctalia-shell ipc call launcher toggle" ", Print, exec, grim - | satty -f -" - "$mod, c, exec, ${config.services.cliphist.package}/bin/cliphist list | rofi -dmenu | cliphist decode | wl-copy" + "$mod, c, exec, noctalia-shell ipc call launcher clipboard" - "$mod, minus, exec, pamixer --decrease=5" - "$mod, equal, exec, pamixer --increase=5 --unmute" + "$mod, minus, exec, noctalia-shell ipc call volume decrease" + "$mod, equal, exec, noctalia-shell ipc call volume increase" + ", XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease" + ", XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase" - ", XF86AudioLowerVolume, exec, pamixer --decrease=5" - ", XF86AudioRaiseVolume, exec, pamixer --increase=5 --unmute" + ", XF86AudioMute, exec, noctalia-shell ipc call volume mute" + ", XF86AudioMicMute, exec, noctalia-shell ipc call volume muteInput" - ", XF86AudioMute, exec, pamixer --toggle-mute" - ", XF86AudioMicMute, exec, pamixer --toggle-mute --default-source" - - ", XF86MonBrightnessDown, exec, light -U 10" - ", XF86MonBrightnessUp, exec, light -A 10" - "$mod, semicolon, exec, light -U 10" - "$mod, apostrophe, exec, light -A 10" + ", XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease" + ", XF86MonBrightnessUp, exec, noctalia-shell ipc call brightness increase" + "$mod, semicolon, exec, noctalia-shell ipc call brightness decrease" + "$mod, apostrophe, exec, noctalia-shell ipc call brightness increase" # Previous/next but change the shuffle/random state before action (and change back afterwards) "$mod&SHIFT, bracketright, exec, ${pkgs.playerctl}/bin/playerctl shuffle Toggle && ${pkgs.playerctl}/bin/playerctl next && ${pkgs.playerctl}/bin/playerctl shuffle Toggle" @@ -199,26 +164,23 @@ in { "SHIFT, XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl shuffle Toggle && ${pkgs.playerctl}/bin/playerctl next && ${pkgs.playerctl}/bin/playerctl shuffle Toggle" # Previous/next - "$mod, bracketright, exec, ${pkgs.playerctl}/bin/playerctl next" - "$mod, bracketleft, exec, ${pkgs.playerctl}/bin/playerctl previous" - ", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" - ", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous" + "$mod, bracketright, exec, noctalia-shell ipc call media next" + "$mod, bracketleft, exec, noctalia-shell ipc call media previous" + ", XF86AudioNext, exec, noctalia-shell ipc call media next" + ", XF86AudioPrev, exec, noctalia-shell ipc call media previous" # Seek forward/back - "$mod&Control_L, bracketright, exec, ${pkgs.playerctl}/bin/playerctl position 5+" - "$mod&Control_L, bracketleft, exec, ${pkgs.playerctl}/bin/playerctl position 5-" - "Control_L, XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl position 5+" - "Control_L, XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl position 5-" + "$mod&Control_L, bracketleft, exec, noctalia-shell ipc call media seekRelative -5" + "$mod&Control_L, bracketright, exec, noctalia-shell ipc call media seekRelative 5" + "Control_L, XF86AudioPrev, exec, noctalia-shell ipc call media seekRelative -5" + "Control_L, XF86AudioNext, exec, noctalia-shell ipc call media seekRelative 5" # Toggle play/pause - ", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" - ", XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl play-pause" - "$mod, backslash, exec, ${pkgs.playerctl}/bin/playerctl play-pause" + ", XF86AudioPlay, exec, noctalia-shell ipc call media playPause" + ", XF86AudioPause, exec, noctalia-shell ipc call media playPause" + "$mod, backslash, exec, noctalia-shell ipc call media playPause" - # "$mod, p, exec, bash ${inputs.bwmenu}/bwmenu" - # "$mod, e, exec, bash ${inputs.bemoji}/bemoji -t" - - "Control_L&Alt_L, l, exec, ${pkgs.systemd}/bin/loginctl lock-session" + "Control_L&Alt_L, l, exec, noctalia-shell ipc call lockScreen lock" "$mod, left, hy3:movefocus, l" "$mod, right, hy3:movefocus, r" @@ -266,70 +228,107 @@ in { }; }; - programs.hyprpanel = { + programs.noctalia-shell = { enable = true; settings = { - bar.layouts = { - "*" = { - left = [ - "dashboard" - "workspaces" - "windowtitle" - ]; - middle = ["media"]; - right = [ - "systray" - "bluetooth" - "network" - "battery" - "volume" - "clock" - "notifications" - ]; - }; + appLauncher = { + terminalCommand = "${config.programs.foot.package}/bin/foot"; + enableClipboardHistory = true; + }; + general = { + compactLockScreen = true; + }; + location = { + weatherEnabled = false; + use12hourFormat = true; + }; + colorSchemes = { + generateTemplatesForPredefined = false; + }; + ui = { + fontDefault = config.stylix.fonts.sansSerif.name; + fontFixed = config.stylix.fonts.monospace.name; }; - bar = { - launcher.autoDetectIcon = true; - workspaces.show_numbered = true; - }; + floating = false; - menus.clock = { - time = { - military = false; - hideSeconds = true; - }; - # weather.unit = "metric"; - }; + backgroundOpacity = 0; - menus.dashboard = { - directories.enabled = false; - shortcuts.enabled = false; - stats.enable_gpu = false; - }; + widgets = { + left = [ + { + id = "Workspace"; + } + { + id = "ActiveWindow"; + width = 200; + } + ]; - theme = { - font.weight = 100; - # osd.opacity = 60; - # notification.opacity = 60; - bar = { - transparent = true; - outer_spacing = "0"; - buttons = { - background_opacity = 60; - padding_x = "0.4rem"; - padding_y = "0.1rem"; - y_margins = "0.2em"; - }; + center = [ + { + id = "MediaMini"; + maxWidth = 400; + scrollingMode = "always"; + showVisualizer = true; + } + { + id = "Clock"; + } + ]; + + right = [ + { + id = "Tray"; + } + { + id = "NotificationHistory"; + } + { + id = "Battery"; + displayMode = "alwaysShow"; + warningThreshold = 20; + } + { + id = "PowerProfile"; + } + { + id = "Volume"; + displayMode = "alwaysShow"; + } + { + id = "WiFi"; + } + { + id = "Bluetooth"; + } + { + id = "ControlCenter"; + } + ]; }; }; }; + colors = with config.lib.stylix.colors; { + mError = "#${base08}"; + mOnError = "#${base00}"; + mOnPrimary = "#${base00}"; + mOnSecondary = "#${base00}"; + mOnSurface = "#${base04}"; + mOnSurfaceVariant = "#${base04}"; + mOnTertiary = "#${base00}"; + mOutline = "#${base02}"; + mPrimary = "#${base0B}"; + mSecondary = "#${base0A}"; + mShadow = "#${base00}"; + mSurface = "#${base00}"; + mSurfaceVariant = "#${base01}"; + mTertiary = "#${base0D}"; + }; }; programs.librewolf.enable = true; - services.blueman-applet.enable = lib.mkDefault cfg.bluetooth; - services.mpris-proxy.enable = lib.mkDefault true; services.playerctld.enable = lib.mkDefault true; @@ -372,15 +371,11 @@ in { maim slop xorg.xhost - pamixer sway-contrib.grimshot grim - ]; - programs.rofi = { - enable = lib.mkDefault true; - terminal = lib.mkDefault "${config.programs.foot.package}/bin/foot"; - }; + inputs.noctalia.packages.${pkgs.system}.default + ]; programs.satty = { enable = true;