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"
}
},
"nixpkgs": {
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1712588820,
"narHash": "sha256-y31s5idk3jMJMAVE4Ud9AdI7HT3CgTAeMTJ0StqKN7Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167",
"lastModified": 1712434681,
"narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.11",
"type": "indirect"
"owner": "hyprwm",
"repo": "hyprcursor",
"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": {
@@ -51,12 +180,96 @@
"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": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins",
"nixpkgs": "nixpkgs_2",
"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",

View File

@@ -4,11 +4,23 @@
inputs = {
nixpkgs.url = "nixpkgs/nixos-23.11";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/release-23.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager = {
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
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
@@ -84,40 +96,28 @@
in
{
nixosConfigurations = {
NxXPS =
let
host = "NxXPS";
in
nixpkgs.lib.nixosSystem {
NxXPS = let host = "NxXPS"; in nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./configuration.nix
];
specialArgs = { inherit user host pkgs-unstable allowed secrets rice nvidia; };
modules = [ ./configuration.nix ];
specialArgs = { inherit inputs user host pkgs-unstable allowed secrets rice nvidia; };
};
NxNORTH =
let
host = "NxNORTH";
in
nixpkgs.lib.nixosSystem {
NxNORTH = let host = "NxNORTH"; in nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./configuration.nix
];
specialArgs = { inherit user host pkgs-unstable allowed secrets rice nvidia; };
modules = [ ./configuration.nix ];
specialArgs = { inherit inputs user host pkgs-unstable allowed secrets rice nvidia; };
};
};
homeConfigurations = {
NxXPS = home-manager.lib.homeManagerConfiguration {
NxXPS = let host = "NxXPS"; in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
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;
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
animation-speed = "2";
transparency = rice.transparency;
@@ -90,13 +90,14 @@ in
wayland.windowManager.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
xwayland.enable = true;
systemd.enable = true;
# plugins = [];
plugins = let plugins = inputs.hyprland-plugins.packages.${pkgs.system}; in with plugins; [
hyprexpo
];
settings = {
# source = /home/nx2/.config/hypr/hyprland-nosync.conf;
monitor =
if host == "NxXPS" then [
"${monitors.xps.main.name}, ${monitors.xps.main.resolution}, ${monitors.xps.main.position}, ${monitors.xps.main.scale}"
@@ -112,10 +113,10 @@ in
d1 = if host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
d2 = if host == "NxXPS" then monitors.xps.second.name else monitors.north.left.name;
d3 = if host == "NxXPS" then monitors.xps.main.name else monitors.north.right.name;
compact = ",gapsin:0,gapsout:0,rounding:0,bordersize:0";
compact = ",gapsin:0, gapsout:0, rounding:0, bordersize:0";
in
[
"${d1}, 11"
"${d1}, 11, default:true"
"${d1}, 12"
"${d1}, 13"
"${d1}, 14"
@@ -124,9 +125,9 @@ in
"${d1}, 17"
"${d1}, 18"
"${d1}, 19"
"${d1}, 10${compact}"
"${d1}, 100${compact}"
"${d2}, 21${compact}"
"${d1}, 10 ${compact}"
"${d1}, 100 ${compact}"
"${d2}, 21 ${compact}"
"${d2}, 22"
"${d2}, 23"
"${d2}, 24"
@@ -136,7 +137,7 @@ in
"${d2}, 28"
"${d2}, 29"
"${d2}, 20"
"${d3}, 31"
"${d3}, 31, default:true"
"${d3}, 32"
"${d3}, 33"
"${d3}, 34"
@@ -145,12 +146,12 @@ in
"${d3}, 37"
"${d3}, 38"
"${d3}, 39"
"${d3}, 30"
"${d3}, 30 ${compact}"
];
"device:logitech-wireless-mouse-mx-master-1" = {
sensitivity = -0.2;
};
# "device:logitech-wireless-mouse-mx-master-1" = {
# sensitivity = -0.2;
# };
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.83, 0, 0.17, 1"; # io
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"
"border, 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:
#bind = SUPER, TAB, hycov:toggleoverview
"SUPER, TAB, hyprexpo:expo, toggle"
"ALT, TAB, focuscurrentorlast"
"SUPER, Q, killactive"
"SUPER, W, exec, waybar_mode set '󰈹 '"
@@ -407,7 +409,6 @@ in
"SUPER, A, execr, waybar_mode set ' 󰹑 '"
"SUPER, A, submap, scrL"
"SUPER, S, exec, spotify"
# "SUPER, D, exec, discord "
"SUPER, D, exec, vesktop"
"SUPER, F, fullscreen"
"SUPER, G, exec, xrandr --verbose --output 'DP-1' --primary && lutris"
@@ -495,6 +496,21 @@ in
bindl = [
# ",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, 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 = [
./home-modules/vscode.nix
@@ -61,6 +61,7 @@
element sssnake pipes
nodejs
gnumake
speedtest-go