From 8254443cddf89930251b9417de01b45ba83c929b Mon Sep 17 00:00:00 2001 From: punkfairie Date: Sat, 11 Jan 2025 21:11:41 -0800 Subject: [PATCH] feat(home): Cursor improvements --- flake.lock | 113 +++++++++++++++++++++- flake.nix | 1 + modules/home/appearance/gtk/default.nix | 8 +- modules/home/wayland/hyprland/default.nix | 21 +++- 4 files changed, 135 insertions(+), 8 deletions(-) diff --git a/flake.lock b/flake.lock index a1d0f7f..1d93cb6 100644 --- a/flake.lock +++ b/flake.lock @@ -272,7 +272,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_3" + "systems": "systems_5" }, "locked": { "lastModified": 1694529238, @@ -290,7 +290,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_4" + "systems": "systems_6" }, "locked": { "lastModified": 1731533236, @@ -514,6 +514,28 @@ "type": "github" } }, + "hyprlang": { + "inputs": { + "nixpkgs": [ + "rose-pine-hyprcursor", + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1709914708, + "narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, "libpng": { "flake": false, "locked": { @@ -814,6 +836,22 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1710272261, + "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": "flake-parts_5", @@ -880,6 +918,7 @@ "rofi-themes": "rofi-themes", "rose-pine": "rose-pine", "rose-pine-amfora": "rose-pine-amfora", + "rose-pine-hyprcursor": "rose-pine-hyprcursor", "rose-pine-qt5ct": "rose-pine-qt5ct", "snowfall-lib": "snowfall-lib", "unstable": "unstable", @@ -917,6 +956,26 @@ "type": "github" } }, + "rose-pine-hyprcursor": { + "inputs": { + "hyprlang": "hyprlang", + "nixpkgs": "nixpkgs_4", + "utils": "utils" + }, + "locked": { + "lastModified": 1733265112, + "narHash": "sha256-FdO+2X7TeIAW73hiyFKZbCjlAskb4xMmYYPX97mo9RE=", + "owner": "ndom91", + "repo": "rose-pine-hyprcursor", + "rev": "89dc9e347ce8da26766ad421b0899536f9f87639", + "type": "github" + }, + "original": { + "owner": "ndom91", + "repo": "rose-pine-hyprcursor", + "type": "github" + } + }, "rose-pine-qt5ct": { "flake": false, "locked": { @@ -1007,6 +1066,21 @@ } }, "systems_3": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1021,7 +1095,22 @@ "type": "github" } }, - "systems_4": { + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_6": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1117,6 +1206,24 @@ "type": "github" } }, + "utils": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "wezterm": { "inputs": { "flake-utils": "flake-utils_5", diff --git a/flake.nix b/flake.nix index 0599e9a..1b104c4 100644 --- a/flake.nix +++ b/flake.nix @@ -94,6 +94,7 @@ url = "github:piperbly/rose-pine-qt5ct"; flake = false; }; + rose-pine-hyprcursor.url = "github:ndom91/rose-pine-hyprcursor"; # Rofi rofi-themes = { diff --git a/modules/home/appearance/gtk/default.nix b/modules/home/appearance/gtk/default.nix index d853ef9..c1d43da 100644 --- a/modules/home/appearance/gtk/default.nix +++ b/modules/home/appearance/gtk/default.nix @@ -2,18 +2,18 @@ lib, config, ... -}: -let +}: let inherit (lib) mkEnableOption mkIf; inherit (lib.marleyos) enabled; cfg = config.marleyos.appearance.gtk; inherit (config.marleyos.theme) colors; -in -{ +in { options.marleyos.appearance.gtk.enable = mkEnableOption "gtk"; config = mkIf cfg.enable { + home.pointerCursor.gtk.enable = true; + gtk = { enable = true; diff --git a/modules/home/wayland/hyprland/default.nix b/modules/home/wayland/hyprland/default.nix index 30d4785..88023b8 100644 --- a/modules/home/wayland/hyprland/default.nix +++ b/modules/home/wayland/hyprland/default.nix @@ -6,7 +6,10 @@ pkgs, ... }: let + inherit (lib.marleyos) enabled; + cfg = config.marleyos.wayland.hyprland; + inherit (config.marleyos.theme) colors; in { options.marleyos.wayland.hyprland = { enable = lib.mkEnableOption "hyprland"; @@ -35,14 +38,22 @@ in { ''; } ]; + marleyos.programs.wofi.enable = true; + home.pointerCursor.hyprcursor.enable = true; + home.packages = [ + inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default + ]; + wayland.windowManager.hyprland = { enable = true; systemd.enable = true; xwayland.enable = true; + rose-pine = lib.mkIf colors.isRosePine enabled; + settings = let numMonitors = lib.length (lib.attrNames (cfg.monitors or {})); workspaces = lib.range 1 10; @@ -102,10 +113,18 @@ in { else 2; in [ "[workspace 1 silent] $terminal" - # TODO: Change once waterfox is set up "[workspace ${toString browserWs} silent] $browser" ]; + # Fix WM thinking the cursor is bigger than it is, causing the pointer + # to be offset. + env = + [ + "XCURSOR_SIZE,24" + "HYPRCURSOR_SIZE,24" + ] + ++ (lib.optional colors.isRosePine "HYPRCURSOR_THEME,rose-pine-hyprcursor"); + workspace = lib.mkIf (cfg ? monitors) (map