hyprexpo 1

This commit is contained in:
Lennart J. Kurzweg (Nx2)
2024-04-11 14:59:16 +02:00
parent 111b46f442
commit b070616b6b
4 changed files with 321 additions and 75 deletions

233
flake.lock generated
View File

@@ -21,19 +21,148 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": { "locked": {
"lastModified": 1712588820, "lastModified": 1712434681,
"narHash": "sha256-y31s5idk3jMJMAVE4Ud9AdI7HT3CgTAeMTJ0StqKN7Y=", "narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=",
"owner": "NixOS", "owner": "hyprwm",
"repo": "nixpkgs", "repo": "hyprcursor",
"rev": "d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167", "rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "owner": "hyprwm",
"ref": "nixos-23.11", "repo": "hyprcursor",
"type": "indirect" "type": "github"
}
},
"hyprland": {
"inputs": {
"hyprcursor": "hyprcursor",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"nixpkgs": "nixpkgs",
"systems": "systems",
"wlroots": "wlroots",
"xdph": "xdph"
},
"locked": {
"lastModified": 1712797985,
"narHash": "sha256-2WS5zErQC7DuGUoVIiWUqQPXsIpdYBqFJip5XSpCVrU=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "ac0f3411c18497a39498b756b711e092512de9e0",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-plugins": {
"inputs": {
"hyprland": [
"hyprland"
],
"systems": [
"hyprland-plugins",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1712420644,
"narHash": "sha256-h2X8qhN5RKYQXzT1kxKgUz1u1QthqOrP9xk800mTM6E=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "5ec0140d4aeca42b8a33e7f335f979e376d1b549",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-plugins",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1691753796,
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1711671891,
"narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "c1402612146ba06606ebf64963a02bc1efe11e74",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1712439257,
"narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
@@ -51,12 +180,96 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs_2": {
"locked": {
"lastModified": 1712588820,
"narHash": "sha256-y31s5idk3jMJMAVE4Ud9AdI7HT3CgTAeMTJ0StqKN7Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.11",
"type": "indirect"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs-unstable": "nixpkgs-unstable"
} }
},
"systems": {
"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"
}
},
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1709983277,
"narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
"type": "gitlab"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1709299639,
"narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "2d2fb547178ec025da643db57d40a971507b82fe",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@@ -4,11 +4,23 @@
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-23.11"; nixpkgs.url = "nixpkgs/nixos-23.11";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/release-23.11"; home-manager = {
home-manager.inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }: hyprland = {
url = "github:hyprwm/Hyprland";
# inputs.nixpkgs.follows = "nixpkgs";
};
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
};
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }@inputs:
# outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, hyprland, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
@@ -84,40 +96,28 @@
in in
{ {
nixosConfigurations = { nixosConfigurations = {
NxXPS = NxXPS = let host = "NxXPS"; in nixpkgs.lib.nixosSystem {
let
host = "NxXPS";
in
nixpkgs.lib.nixosSystem {
inherit system; inherit system;
modules = [ modules = [ ./configuration.nix ];
./configuration.nix specialArgs = { inherit inputs user host pkgs-unstable allowed secrets rice nvidia; };
];
specialArgs = { inherit user host pkgs-unstable allowed secrets rice nvidia; };
}; };
NxNORTH = NxNORTH = let host = "NxNORTH"; in nixpkgs.lib.nixosSystem {
let
host = "NxNORTH";
in
nixpkgs.lib.nixosSystem {
inherit system; inherit system;
modules = [ modules = [ ./configuration.nix ];
./configuration.nix specialArgs = { inherit inputs user host pkgs-unstable allowed secrets rice nvidia; };
];
specialArgs = { inherit user host pkgs-unstable allowed secrets rice nvidia; };
}; };
}; };
homeConfigurations = { homeConfigurations = {
NxXPS = home-manager.lib.homeManagerConfiguration { NxXPS = let host = "NxXPS"; in home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
modules = [ ./home.nix ]; modules = [ ./home.nix ];
extraSpecialArgs = let host = "NxXPS"; in { inherit system user host allowed secrets pkgs-unstable rice nvidia; }; extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; };
}; };
NxNORTH = home-manager.lib.homeManagerConfiguration { NxNORTH = let host = "NxNORTH"; in home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
modules = [ ./home.nix ]; modules = [ ./home.nix ];
extraSpecialArgs = let host = "NxNORTH"; in { inherit system user host allowed secrets pkgs-unstable rice nvidia; }; extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; };
}; };
}; };
}; };

View File

@@ -1,4 +1,4 @@
{ config, pkgs, pkgs-unstable, host, nvidia, rice, lib, ... }: { config, pkgs, pkgs-unstable, inputs, host, nvidia, rice, lib, ... }:
let let
animation-speed = "2"; animation-speed = "2";
transparency = rice.transparency; transparency = rice.transparency;
@@ -90,13 +90,14 @@ in
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
xwayland.enable = true; xwayland.enable = true;
systemd.enable = true; systemd.enable = true;
# plugins = []; plugins = let plugins = inputs.hyprland-plugins.packages.${pkgs.system}; in with plugins; [
hyprexpo
];
settings = { settings = {
# source = /home/nx2/.config/hypr/hyprland-nosync.conf;
monitor = monitor =
if host == "NxXPS" then [ if host == "NxXPS" then [
"${monitors.xps.main.name}, ${monitors.xps.main.resolution}, ${monitors.xps.main.position}, ${monitors.xps.main.scale}" "${monitors.xps.main.name}, ${monitors.xps.main.resolution}, ${monitors.xps.main.position}, ${monitors.xps.main.scale}"
@@ -115,7 +116,7 @@ in
compact = ",gapsin:0, gapsout:0, rounding:0, bordersize:0"; compact = ",gapsin:0, gapsout:0, rounding:0, bordersize:0";
in in
[ [
"${d1}, 11" "${d1}, 11, default:true"
"${d1}, 12" "${d1}, 12"
"${d1}, 13" "${d1}, 13"
"${d1}, 14" "${d1}, 14"
@@ -136,7 +137,7 @@ in
"${d2}, 28" "${d2}, 28"
"${d2}, 29" "${d2}, 29"
"${d2}, 20" "${d2}, 20"
"${d3}, 31" "${d3}, 31, default:true"
"${d3}, 32" "${d3}, 32"
"${d3}, 33" "${d3}, 33"
"${d3}, 34" "${d3}, 34"
@@ -145,12 +146,12 @@ in
"${d3}, 37" "${d3}, 37"
"${d3}, 38" "${d3}, 38"
"${d3}, 39" "${d3}, 39"
"${d3}, 30" "${d3}, 30 ${compact}"
]; ];
"device:logitech-wireless-mouse-mx-master-1" = { # "device:logitech-wireless-mouse-mx-master-1" = {
sensitivity = -0.2; # sensitivity = -0.2;
}; # };
env = if nvidia.enable == true then [ env = if nvidia.enable == true then [
@@ -216,11 +217,11 @@ in
# bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o # bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
# bezier = "myBezier, 0.83, 0, 0.17, 1"; # io # bezier = "myBezier, 0.83, 0, 0.17, 1"; # io
bezier = "myBezier, 0.33, 1, 0.68, 1"; bezier = "myBezier, 0.33, 1, 0.68, 1";
animation = [ animation = let direction = if host == "NxXPS" then "slide" else "slidevert"; in [
"windows, 1, ${animation-speed}, myBezier, slide" "windows, 1, ${animation-speed}, myBezier, slide"
"border, 1, ${animation-speed}, myBezier" "border, 1, ${animation-speed}, myBezier"
"fade, 1, ${animation-speed}, myBezier" "fade, 1, ${animation-speed}, myBezier"
"workspaces, 1, ${animation-speed}, myBezier, slide" "workspaces, 1, ${animation-speed}, myBezier, ${direction}"
]; ];
}; };
@@ -382,6 +383,7 @@ in
## ROW 2: ## ROW 2:
#bind = SUPER, TAB, hycov:toggleoverview #bind = SUPER, TAB, hycov:toggleoverview
"SUPER, TAB, hyprexpo:expo, toggle"
"ALT, TAB, focuscurrentorlast" "ALT, TAB, focuscurrentorlast"
"SUPER, Q, killactive" "SUPER, Q, killactive"
"SUPER, W, exec, waybar_mode set '󰈹 '" "SUPER, W, exec, waybar_mode set '󰈹 '"
@@ -407,7 +409,6 @@ in
"SUPER, A, execr, waybar_mode set ' 󰹑 '" "SUPER, A, execr, waybar_mode set ' 󰹑 '"
"SUPER, A, submap, scrL" "SUPER, A, submap, scrL"
"SUPER, S, exec, spotify" "SUPER, S, exec, spotify"
# "SUPER, D, exec, discord "
"SUPER, D, exec, vesktop" "SUPER, D, exec, vesktop"
"SUPER, F, fullscreen" "SUPER, F, fullscreen"
"SUPER, G, exec, xrandr --verbose --output 'DP-1' --primary && lutris" "SUPER, G, exec, xrandr --verbose --output 'DP-1' --primary && lutris"
@@ -495,6 +496,21 @@ in
bindl = [ bindl = [
# ",switch:on:Lid Switch, exec, hyprlock &" # ",switch:on:Lid Switch, exec, hyprlock &"
]; ];
# plugin = {
# hyprexpo = {
# columns = 1;
# gap_size = gap-size;
# bg_col = "rgb(ff1111)";
# workspace_method = "center current"; # [center/first] [workspace] e.g. first 1 or center m+1
# enable_gesture = true; # laptop touchpad, 4 fingers
# gesture_distance = "300"; # how far is the "max"
# gesture_positive = true; # positive = swipe down. Negative = swipe up.
# };
# };
}; };
@@ -787,6 +803,22 @@ in
bind = , Escape, execr, waybar_mode unset bind = , Escape, execr, waybar_mode unset
bind = , Escape, submap, reset bind = , Escape, submap, reset
submap = reset submap = reset
plugin {
hyprexpo {
columns = 3
gap_size = ${builtins.toString gap-size}
bg_col = rgb(${rice.color.background})
workspace_method = [10] # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad, 4 fingers
gesture_distance = 300 # how far is the "max"
gesture_positive = true # positive = swipe down. Negative = swipe up.
}
}
''; '';
}; };

View File

@@ -1,4 +1,4 @@
{ config, pkgs, lib, system, host, user, allowed, secrets, ... }: { config, pkgs, lib, system, inputs, host, user, allowed, secrets, ... }:
{ {
imports = [ imports = [
./home-modules/vscode.nix ./home-modules/vscode.nix
@@ -61,6 +61,7 @@
element sssnake pipes element sssnake pipes
nodejs nodejs
gnumake
speedtest-go speedtest-go