feat: add ability to set specific layout per workspace.

This commit is contained in:
CronyAkatsuki 2026-02-04 11:41:22 +01:00
parent 0209a1bb0b
commit 7c380cc923
3 changed files with 81 additions and 28 deletions

92
flake.lock generated
View file

@ -1004,6 +1004,27 @@
"type": "github"
}
},
"hyprWorkspaceLayouts": {
"inputs": {
"hyprland": [
"hyprland"
],
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1766170967,
"narHash": "sha256-MolprWAgKsYwRSsat5T1VtLGLgfVFQdwNs/BNi/K7+4=",
"owner": "zakk4223",
"repo": "hyprWorkspaceLayouts",
"rev": "d90c6c37d3d2b51b774aa3914b0b2e00c5c57771",
"type": "github"
},
"original": {
"owner": "zakk4223",
"repo": "hyprWorkspaceLayouts",
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
@ -1102,7 +1123,7 @@
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"pre-commit-hooks": "pre-commit-hooks_3",
"systems": "systems_5",
"xdph": "xdph"
@ -1256,7 +1277,7 @@
"hyprlang": "hyprlang_2",
"hyprutils": "hyprutils_2",
"hyprwayland-scanner": "hyprwayland-scanner_2",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"systems": "systems_6"
},
"locked": {
@ -1566,7 +1587,7 @@
"cachyos-kernel-patches": "cachyos-kernel-patches",
"flake-compat": "flake-compat_9",
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_7"
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1770055712,
@ -1625,7 +1646,7 @@
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_8"
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1768062066,
@ -1784,6 +1805,22 @@
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1770115704,
"narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1719082008,
"narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=",
@ -1832,6 +1869,22 @@
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1758198701,
"narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1769461804,
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
@ -1847,7 +1900,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1766070988,
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
@ -1863,7 +1916,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1759070547,
"narHash": "sha256-JVZl8NaVRYb0+381nl7LvPE+A774/dRpif01FKLrYFQ=",
@ -1879,7 +1932,7 @@
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_8": {
"locked": {
"lastModified": 1770030960,
"narHash": "sha256-b9kW8RiZYQjSYKcFRYwc2vPB08F8xjaTS85tv+lP0YA=",
@ -1895,7 +1948,7 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_9": {
"locked": {
"lastModified": 1767364772,
"narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=",
@ -1911,22 +1964,6 @@
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1770115704,
"narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nmd": {
"flake": false,
"locked": {
@ -2118,7 +2155,7 @@
"inputs": {
"flake-compat": "flake-compat_8",
"gitignore": "gitignore_6",
"nixpkgs": "nixpkgs_6"
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1760663237,
@ -2137,7 +2174,7 @@
"pyprland": {
"inputs": {
"flake-compat": "flake-compat_10",
"nixpkgs": "nixpkgs_10",
"nixpkgs": "nixpkgs_11",
"pyproject-nix": "pyproject-nix",
"systems": "systems_10"
},
@ -2188,6 +2225,7 @@
"git-hooks": "git-hooks",
"hb-downloader": "hb-downloader",
"home-manager": "home-manager_2",
"hyprWorkspaceLayouts": "hyprWorkspaceLayouts",
"hyprland": "hyprland",
"hyprlock": "hyprlock",
"lanzaboote": "lanzaboote",
@ -2199,7 +2237,7 @@
"nix-gaming": "nix-gaming",
"nix-index-database": "nix-index-database",
"nix-on-droid": "nix-on-droid",
"nixpkgs": "nixpkgs_9",
"nixpkgs": "nixpkgs_10",
"note": "note",
"pyprland": "pyprland",
"secrets": "secrets",

View file

@ -125,6 +125,12 @@
# Pyland for hyprland plugins
pyprland.url = "github:hyprland-community/pyprland";
# Hyprland layout per workspace
hyprWorkspaceLayouts = {
url = "github:zakk4223/hyprWorkspaceLayouts";
inputs.hyprland.follows = "hyprland"; # to make sure that the plugin is built for the correct version of hyprland
};
# AAGL
aagl.url = "github:ezKEa/aagl-gtk-on-nix";
aagl.inputs.nixpkgs.follows = "nixpkgs";

View file

@ -107,6 +107,8 @@ in {
systemd.enable = false; # Using USWM globally
plugins = [inputs.hyprWorkspaceLayouts.packages.${pkgs.stdenv.hostPlatform.system}.default];
settings = {
"$mod" = "SUPER";
"$menu" = "tofi";
@ -123,6 +125,13 @@ in {
"hyprctl monitors | grep 'HDMI' && hyprctl keyword monitor 'eDP-1, disable'"
];
# Setup plugins
plugin = {
wslayout = {
default_layout = "master";
};
};
cursor = {
no_break_fs_vrr = 1;
no_hardware_cursors = 1;
@ -168,7 +177,7 @@ in {
border_size = 1;
gaps_in = 3;
gaps_out = 6;
layout = "master";
layout = "workspacelayout";
allow_tearing = true;
};