added hyprscroller.nix

This commit is contained in:
KaitoTLex 2025-05-27 11:44:46 -07:00
parent 10f377c490
commit 34055eb96b
No known key found for this signature in database
GPG key ID: 8AB934746F475D0B
6 changed files with 237 additions and 182 deletions

111
flake.lock generated
View file

@ -70,17 +70,17 @@
"cpu-microcodes": { "cpu-microcodes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1746370478, "lastModified": 1747081695,
"narHash": "sha256-3mpvHkDiQcpXrAS1lNJe2oYbKLTQnCbAkSmIWNF5l98=", "narHash": "sha256-nnim3432n3+iwD2alY1cigQE7GKnI8BkyZDJTzood+E=",
"owner": "platomav", "owner": "platomav",
"repo": "CPUMicrocodes", "repo": "CPUMicrocodes",
"rev": "71092548b863438bf630ba54290002694da05655", "rev": "2bcc2d8cb648c3397ea7381ca6887a9e3fdd6164",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "platomav", "owner": "platomav",
"repo": "CPUMicrocodes", "repo": "CPUMicrocodes",
"rev": "71092548b863438bf630ba54290002694da05655", "rev": "2bcc2d8cb648c3397ea7381ca6887a9e3fdd6164",
"type": "github" "type": "github"
} }
}, },
@ -171,7 +171,6 @@
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"stylix", "stylix",
"nur",
"nixpkgs" "nixpkgs"
] ]
}, },
@ -189,27 +188,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": [
"stylix",
"systems"
]
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -299,16 +277,16 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1732369855, "lastModified": 1744584021,
"narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "dadd58f630eeea41d645ee225a63f719390829dc", "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "GNOME", "owner": "GNOME",
"ref": "47.2", "ref": "48.1",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "github" "type": "github"
} }
@ -320,11 +298,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747367409, "lastModified": 1748227609,
"narHash": "sha256-JUcfcXCsoerQNQDhujj6LNBI/9LOkjUrLNR0tjcU0Gc=", "narHash": "sha256-SaSdslyo6UGDpPUlmrPA4dWOEuxCy2ihRN9K6BnqYsA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a1a72d18ee75ce4559b5f59296a7b2d37f608c1c", "rev": "d23d20f55d49d8818ac1f1b2783671e8a6725022",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -341,11 +319,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747279714, "lastModified": 1747763032,
"narHash": "sha256-UdxlE8yyrKiGq3bgGyJ78AdFwh+fuRAruKtyFY5Zq5I=", "narHash": "sha256-9j3oCbemeH7bTVXJ3pDWxOptbxDx2SdK1jY2AHpjQiw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "954615c510c9faa3ee7fb6607ff72e55905e69f2", "rev": "29dda415f5b2178278283856c6f9f7b48a2a4353",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -354,6 +332,22 @@
"type": "github" "type": "github"
} }
}, },
"hyprscroller-src": {
"flake": false,
"locked": {
"lastModified": 1748269327,
"narHash": "sha256-UfkU8YJCIp5NwW6e+qoRgxZVJYcc6+aRVTdSaHvskTQ=",
"owner": "cpiber",
"repo": "hyprscroller",
"rev": "5b3cdd1fc26be1a0b1936fc36065b2eba84948f4",
"type": "github"
},
"original": {
"owner": "cpiber",
"repo": "hyprscroller",
"type": "github"
}
},
"lanzaboote": { "lanzaboote": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
@ -427,11 +421,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1747179050, "lastModified": 1748190013,
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "rev": "62b852f6c6742134ade1abdd2a21685fd617a291",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -480,7 +474,10 @@
}, },
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [ "nixpkgs": [
"stylix", "stylix",
"nixpkgs" "nixpkgs"
@ -563,6 +560,7 @@
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprscroller-src": "hyprscroller-src",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixvim": "nixvim", "nixvim": "nixvim",
@ -602,11 +600,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1747355848, "lastModified": 1748147548,
"narHash": "sha256-WpOTfGuObhpaI38+uHgaOwnMAjHMrdLrfs6D35fKwjk=", "narHash": "sha256-9IaAQkgyF4PFtVyui8vF6oJah0iVcO9DaOefjdTMthE=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "spicetify-nix", "repo": "spicetify-nix",
"rev": "a2bc0d49449fc61ca2eb364d6189179059394483", "rev": "f0595e3b59260457042450749eaec00a5a47db35",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -623,7 +621,7 @@
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-utils": "flake-utils", "flake-parts": "flake-parts_2",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
@ -639,11 +637,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1747365543, "lastModified": 1748369100,
"narHash": "sha256-r5HRe9CRFe6qvy7KLkTX9WySTqkNmvlobTR8g5AHLHA=", "narHash": "sha256-rZO2WC1cVIpmwtBKxkex4lJAM7zqut3+5QKZltBkG5U=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "7566bc015064ed3eb50b436f2225ddab06132beb", "rev": "dedf5de5792af6c16560f9cc8864be73ae535251",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -702,17 +700,16 @@
"tinted-kitty": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716423189, "lastModified": 1735730497,
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8", "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github" "type": "github"
} }
}, },
@ -791,11 +788,11 @@
"cpu-microcodes": "cpu-microcodes" "cpu-microcodes": "cpu-microcodes"
}, },
"locked": { "locked": {
"lastModified": 1746447632, "lastModified": 1747656938,
"narHash": "sha256-h/9skHfT2+bHBUXX0CGZROknobw7/+X8bAa+kDv0rkE=", "narHash": "sha256-LE5jjWIN3xzL24ph8U2CwzTPrCxS+uGzXCpSh6b+UPk=",
"owner": "e-tho", "owner": "e-tho",
"repo": "ucodenix", "repo": "ucodenix",
"rev": "355238cbd87e5bf9cbc23ae65b90740eb10e8d56", "rev": "86d47e4b5790cc68b3af14ec9969ef8128524d43",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -827,11 +824,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747282003, "lastModified": 1748059546,
"narHash": "sha256-UlCfXNncIYwUvPxHngoH6pY4fiZlU8Z2Ve/gUEn6h+o=", "narHash": "sha256-e0jy8RU8ofOdeS5gF9Hir+M5Wn0q7D8MkpeQXsOJdu4=",
"owner": "youwen5", "owner": "youwen5",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "952ca99903f19a7096a3709f2938d9c7840a5f91", "rev": "716a5af28d686d67146d01b14112c919b6133a84",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -32,6 +32,10 @@
lanzaboote = { lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2"; url = "github:nix-community/lanzaboote/v0.4.2";
}; };
hyprscroller-src = {
url = "github:cpiber/hyprscroller";
flake = false;
};
}; };
outputs = outputs =

View file

@ -4,7 +4,7 @@
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland --asterisks"; command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland --asterisks --remember";
# --remember tuigreet --time --cmd Hyprland --remember --asterisks --greeting 'Access granted for those who don't touch grass' # --remember tuigreet --time --cmd Hyprland --remember --asterisks --greeting 'Access granted for those who don't touch grass'
user = "greeter"; user = "greeter";
}; };

View file

@ -0,0 +1,48 @@
{
lib,
hyprland,
pkg-config,
cmake,
src,
version,
}:
let
mkHyprlandPlugin =
hyprland:
args@{ pluginName, ... }:
hyprland.stdenv.mkDerivation (
args
// {
pname = "${pluginName}";
nativeBuildInputs = [ pkg-config ] ++ args.nativeBuildInputs or [ ];
buildInputs = [ hyprland ] ++ hyprland.buildInputs ++ (args.buildInputs or [ ]);
meta = args.meta // {
description = args.meta.description or "";
longDescription =
(args.meta.longDescription or "")
+ "\n\nPlugins can be installed via a plugin entry in the Hyprland NixOS or Home Manager options.";
};
}
);
in
mkHyprlandPlugin hyprland {
inherit src version;
pluginName = "hyprscroller";
nativeBuildInputs = [ cmake ];
installPhase = ''
runHook preInstall
mkdir -p $out/lib
mv hyprscroller.so $out/lib/libhyprscroller.so
runHook postInstall
'';
meta = {
homepage = "https://github.com/cpiber/hyprscroller";
description = "Hyprland layout plugin providing a scrolling layout like PaperWM";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ youwen5 ];
platforms = lib.platforms.linux;
};
}

View file

@ -6,6 +6,6 @@
./desktop-environment ./desktop-environment
]; ];
liminalOS.formFactor = "desktop"; liminalOS.formFactor = "laptop";
liminalOS.powersave = false; liminalOS.powersave = false;
} }

View file

@ -3,6 +3,7 @@
config, config,
lib, lib,
osConfig, osConfig,
inputs,
... ...
}: }:
let let
@ -98,20 +99,25 @@ in
hyprland-qtutils hyprland-qtutils
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland =
enable = true; let
plugins = [ hyprscroller = pkgs.callPackage ./pkgs/vendored/hyprscroller.nix {
(pkgs.hyprlandPlugins.hyprscroller.overrideAttrs { src = inputs.hyprscroller-src;
version = "0-unstable-2025-03-28"; version = inputs.hyprscroller-src.lastModified;
src = pkgs.fetchFromGitHub {
owner = "dawsers";
repo = "hyprscroller";
rev = "3f86916f3e9a583154b1be0af4e8a1ef1f7435b2";
hash = "sha256-mgYq3vc4JtIzVuAKTWdALOynImYyNZEXh7tiVPvMZg4=";
}; };
}) in
]; {
enable = true;
plugins = [ hyprscroller ];
settings = { settings = {
input.touchpad = lib.mkIf (config.liminalOS.formFactor == "laptop") {
natural_scroll = true;
disable_while_typing = true;
clickfinger_behavior = true;
tap-to-click = false;
scroll_factor = 0.15;
};
exec-once = [ exec-once = [
"hyprctl dispatch workspace 100000" "hyprctl dispatch workspace 100000"
]; ];
@ -221,16 +227,16 @@ in
}; };
}; };
wayland.windowManager.hyprland.settings.input.touchpad = # wayland.windowManager.hyprland.settings.input.touchpad =
lib.mkIf (config.liminalOS.formFactor == "laptop") # lib.mkIf (config.liminalOS.formFactor == "laptop")
{ # {
natural_scroll = true; # natural_scroll = true;
disable_while_typing = true; # disable_while_typing = true;
clickfinger_behavior = true; # clickfinger_behavior = true;
tap-to-click = false; # tap-to-click = false;
scroll_factor = 0.15; # scroll_factor = 0.15;
}; # };
#
assertions = [ assertions = [
{ {
assertion = assertion =