Add Hyprland WM
This commit is contained in:
parent
f558b472f7
commit
b07c41205f
11 changed files with 225 additions and 22 deletions
76
flake.lock
76
flake.lock
|
@ -10,11 +10,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666678027,
|
"lastModified": 1666957671,
|
||||||
"narHash": "sha256-TYLiybC/wqJ30PhvzdasULBXvc54tiARF1PopP9puVM=",
|
"narHash": "sha256-QmFXa7AToYu1/xyo4jxo7wKpy0Ec6IYWVsQjKz4WqlM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "6ad04079d54ca9ae6770dc72b51184537c8e768b",
|
"rev": "c5a67519099ded10354a96c268a9bdef8087161d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -76,11 +76,11 @@
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666649150,
|
"lastModified": 1666903647,
|
||||||
"narHash": "sha256-kINnLxC0KFalUk4tVO/H5hUU7FVAOYYcUSWrsBpnl+I=",
|
"narHash": "sha256-sFI1Gh9DTGzHnBINondupUGYbe+T0wZcpcZjkW0qffM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7dc4e4ebd71280842b4d30975439980baaac9db8",
|
"rev": "213a06295dff96668a1d673b9fd1c03ce1de6745",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -89,6 +89,27 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hyprland": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"wlroots": "wlroots"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1667132917,
|
||||||
|
"narHash": "sha256-0b1kVcyDOrkluCSIkKmz3FO/cN4/Amz1uIU3EyvojPA=",
|
||||||
|
"owner": "Hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"rev": "9f1d7f7fc709ae3360f7ec229e9fd1e32b894ace",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"naersk": {
|
"naersk": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -132,11 +153,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666016402,
|
"lastModified": 1666812839,
|
||||||
"narHash": "sha256-Cm/nrdUMXwXiFQforG1Mv8OA4o8yhuVx6E1eDFH4rew=",
|
"narHash": "sha256-0nBDgjPU+iDsvz89W+cDEyhnFGSwCJmwDl/gMGqYiU0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "688db42a1eb34853f050267ff65c975f664312f0",
|
"rev": "41f3518bc194389df22a3d198215eae75e6b5ab9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -147,11 +168,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1665987993,
|
"lastModified": 1666873549,
|
||||||
"narHash": "sha256-MvlaIYTRiqefG4dzI5p6vVCfl+9V8A1cPniUjcn6Ngc=",
|
"narHash": "sha256-a6Eu1Qv/EndjepSMja5SvcG+4vM5Rl2gzJD7xscRHss=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "0e6593630071440eb89cd97a52921497482b22c6",
|
"rev": "419dcc0ec767803182ed01a326f134230578bf60",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -162,11 +183,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666539104,
|
"lastModified": 1666869603,
|
||||||
"narHash": "sha256-jeuC+d375wHHxMOFLgu7etseCQVJuPNKoEc9X9CsErg=",
|
"narHash": "sha256-3V53or4Vpu4+LrGfGSh3T2V8+qf5RP6nRuex9GywkwE=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0e6df35f39651504249a05191f9a78d251707e22",
|
"rev": "2001e2b31c565bcdf7bc13062b8d7cfccaca05b8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -225,6 +246,7 @@
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"ha-now-playing": "ha-now-playing",
|
"ha-now-playing": "ha-now-playing",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"hyprland": "hyprland",
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
@ -245,11 +267,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666667027,
|
"lastModified": 1666925689,
|
||||||
"narHash": "sha256-MUJa0T8j5cy3eE70hoL1KW52VfTcXm4VbwvdF5scs1g=",
|
"narHash": "sha256-X2n+i2efiXcniDPDbvMsJVrPd7epu3+6pS/Pwu3OkHg=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "79b6e66bb76537c96707703f08630765e46148d1",
|
"rev": "4b1fcd5766db910c07c871d1454b1fe296e4547c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -317,6 +339,24 @@
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"wlroots": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"host": "gitlab.freedesktop.org",
|
||||||
|
"lastModified": 1666466001,
|
||||||
|
"narHash": "sha256-ZjxAnqtcGmHQHKL1Z9sIraDnzIqrJleWcJXfPtzAm74=",
|
||||||
|
"owner": "wlroots",
|
||||||
|
"repo": "wlroots",
|
||||||
|
"rev": "c2d2773df57750081b16d56da13b5015d752cbd7",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"host": "gitlab.freedesktop.org",
|
||||||
|
"owner": "wlroots",
|
||||||
|
"repo": "wlroots",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
|
@ -40,6 +40,11 @@
|
||||||
inputs.flake-utils.follows = "flake-utils";
|
inputs.flake-utils.follows = "flake-utils";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hyprland = {
|
||||||
|
url = "github:Hyprwm/Hyprland";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
ha-now-playing = {
|
ha-now-playing = {
|
||||||
url = "git+https://git.datarift.nl/erwin/ha-now-playing.git?ref=main";
|
url = "git+https://git.datarift.nl/erwin/ha-now-playing.git?ref=main";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
135
home-manager/modules/hyprland/default.nix
Normal file
135
home-manager/modules/hyprland/default.nix
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.eboskma.programs.hyprland;
|
||||||
|
|
||||||
|
terminal = "${pkgs.foot}/bin/foot";
|
||||||
|
dmenu = "${pkgs.rofi}/bin/rofi -show drun -no-lazy-grab";
|
||||||
|
menu = "${pkgs.rofi}/bin/rofi -show run -no-lazy-grab";
|
||||||
|
rofiPower = pkgs.writeShellScriptBin "rofi-power" (builtins.readFile ../sway/powermenu.sh);
|
||||||
|
powerMenu = "${rofiPower}/bin/rofi-power";
|
||||||
|
|
||||||
|
wallpapers = {
|
||||||
|
hd = ./wallpapers/river-1920.png;
|
||||||
|
qhd = ./wallpapers/river-2560.png;
|
||||||
|
uhd = ./wallpapers/river-3840.png;
|
||||||
|
};
|
||||||
|
swaylockcmd = "${pkgs.swaylock-effects}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --clock --image ${wallpapers.qhd} --fade-in 0.5 --scaling fill";
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.eboskma.programs.hyprland = { enable = mkEnableOption "Hyprland"; };
|
||||||
|
|
||||||
|
config = mkIf (cfg.enable) {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
monitor = DP-2,2560x1440@165,0x0,1
|
||||||
|
|
||||||
|
general {
|
||||||
|
gaps_out = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
rounding = 5
|
||||||
|
inactive_opacity = 0.9
|
||||||
|
dim_inactive = true
|
||||||
|
dim_strength = 0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_options = lv3:ralt_switch,eurosign:5
|
||||||
|
natural_scroll = true
|
||||||
|
}
|
||||||
|
|
||||||
|
misc {
|
||||||
|
no_vfr = false
|
||||||
|
focus_on_activate = false
|
||||||
|
}
|
||||||
|
|
||||||
|
binds {
|
||||||
|
workspace_back_and_forth = true
|
||||||
|
}
|
||||||
|
|
||||||
|
$mod = Mod4
|
||||||
|
|
||||||
|
bind = $mod,Return,exec,${terminal}
|
||||||
|
bind = $mod_SHIFT,Q,killactive
|
||||||
|
bind = $mod,S,exec,${dmenu}
|
||||||
|
bind = $mod_SHIFT,S,exec,${menu}
|
||||||
|
|
||||||
|
bind = $mod,N,movefocus,l
|
||||||
|
bind = $mod,E,movefocus,d
|
||||||
|
bind = $mod,I,movefocus,u
|
||||||
|
bind = $mod,O,movefocus,r
|
||||||
|
|
||||||
|
bind = $mod_SHIFT,N,movewindow,l
|
||||||
|
bind = $mod_SHIFT,E,movewindow,d
|
||||||
|
bind = $mod_SHIFT,O,movewindow,r
|
||||||
|
bind = $mod_SHIFT,I,movewindow,u
|
||||||
|
|
||||||
|
bind = $mod_SHIFT,Space,togglefloating,active
|
||||||
|
|
||||||
|
bind = $mod,T,togglefullscreen,0
|
||||||
|
bind = $mod_SHIFT,T,togglefullscreen,1
|
||||||
|
|
||||||
|
bind = $mod,1,workspace,1
|
||||||
|
bind = $mod,2,workspace,2
|
||||||
|
bind = $mod,3,workspace,3
|
||||||
|
bind = $mod,4,workspace,4
|
||||||
|
bind = $mod,5,workspace,5
|
||||||
|
bind = $mod,6,workspace,6
|
||||||
|
bind = $mod,7,workspace,7
|
||||||
|
bind = $mod,8,workspace,8
|
||||||
|
bind = $mod,9,workspace,9
|
||||||
|
bind = $mod,0,workspace,10
|
||||||
|
|
||||||
|
bind = $mod_SHIFT,1,movetoworkspacesilent,1
|
||||||
|
bind = $mod_SHIFT,2,movetoworkspacesilent,2
|
||||||
|
bind = $mod_SHIFT,3,movetoworkspacesilent,3
|
||||||
|
bind = $mod_SHIFT,4,movetoworkspacesilent,4
|
||||||
|
bind = $mod_SHIFT,5,movetoworkspacesilent,5
|
||||||
|
bind = $mod_SHIFT,6,movetoworkspacesilent,6
|
||||||
|
bind = $mod_SHIFT,7,movetoworkspacesilent,7
|
||||||
|
bind = $mod_SHIFT,8,movetoworkspacesilent,8
|
||||||
|
bind = $mod_SHIFT,9,movetoworkspacesilent,9
|
||||||
|
bind = $mod_SHIFT,0,movetoworkspacesilent,10
|
||||||
|
|
||||||
|
bind = $mod_SHIFT,Minus,movetoworkspacesilent,special
|
||||||
|
bind = $mod,Minus,togglespecialworkspace
|
||||||
|
|
||||||
|
bind = $mod_SHIFT,C,exec,hyprctl reload
|
||||||
|
|
||||||
|
bind = $mod_SHIFT,F,exec,${powerMenu}
|
||||||
|
bind = $mod,L,exec,${swaylockcmd}
|
||||||
|
|
||||||
|
bind = $mod,Print,exec,${pkgs.grim}/bin/grim
|
||||||
|
bind = $mod_SHIFT,Print,exec,${pkgs.grim}/bin/grim | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png -f
|
||||||
|
|
||||||
|
bind = ,XF86AudioRaiseVolume,exec,${pkgs.pamedia}/bin/pamedia up
|
||||||
|
bind = ,XF86AudioLowerVolume,exec,${pkgs.pamedia}/bin/pamedia down
|
||||||
|
bind = ,XF86AudioMute,exec,${pkgs.pamedia}/bin/pamedia mute
|
||||||
|
bind = ,XF86Calculator,exec,${pkgs.gnome.gnome-calculator}/bin/gnome-calculator
|
||||||
|
|
||||||
|
bind = $mod,D,exec,${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw
|
||||||
|
|
||||||
|
bind = $mod,W,togglegroup
|
||||||
|
|
||||||
|
bindm = ALT,mouse:272,movewindow
|
||||||
|
bindm = ALT,mouse:273,resizewindow
|
||||||
|
|
||||||
|
windowrulev2 = workspace 1,^(firefox)$
|
||||||
|
windowrulev2 = workspace 2,^(foot)$
|
||||||
|
windowrulev2 = workspace 3,^(emacs)$
|
||||||
|
|
||||||
|
exec = ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator
|
||||||
|
|
||||||
|
exec-once = ${pkgs.swaybg}/bin/swaybg -i ${wallpapers.qhd} -m fill
|
||||||
|
exec-once = ${cfg.package}/bin/hyprctl setcursor Nordzy-cursors 24
|
||||||
|
'' +
|
||||||
|
(lib.optionalString config.eboskma.programs.emacs.enable "bind = $mod,C,exec,${config.eboskma.programs.emacs.package}/bin/emacsclient -c");
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -111,7 +111,7 @@ in
|
||||||
};
|
};
|
||||||
"DP-2" = {
|
"DP-2" = {
|
||||||
bg = "${wallpapers.qhd} fill";
|
bg = "${wallpapers.qhd} fill";
|
||||||
mode = "2560x1440@144Hz";
|
mode = "2560x1440@165Hz";
|
||||||
adaptive_sync = "on";
|
adaptive_sync = "on";
|
||||||
max_render_time = "2";
|
max_render_time = "2";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
confirm() {
|
confirm() {
|
||||||
rofi -dmenu \
|
rofi -dmenu \
|
||||||
-i \
|
-i \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, nixpkgs, nixos-hardware, ... }:
|
{ self, nixpkgs, nixos-hardware, hyprland, ... }:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||||
in
|
in
|
||||||
|
@ -9,6 +9,8 @@ in
|
||||||
nixos-hardware.nixosModules.common-gpu-amd
|
nixos-hardware.nixosModules.common-gpu-amd
|
||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
|
hyprland.nixosModules.default
|
||||||
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../users/erwin
|
../../users/erwin
|
||||||
../../users/root
|
../../users/root
|
||||||
|
|
|
@ -40,6 +40,14 @@ in
|
||||||
swaynotificationcenter
|
swaynotificationcenter
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hyprland = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Required when also using the Home Manager module
|
||||||
|
# See the wiki: https://wiki.hyprland.org/Nix/#modules-mixnmatch
|
||||||
|
package = null;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
|
|
|
@ -45,6 +45,7 @@ in
|
||||||
"greetd/environments" = {
|
"greetd/environments" = {
|
||||||
text = ''
|
text = ''
|
||||||
${pkgs.sway}/bin/sway
|
${pkgs.sway}/bin/sway
|
||||||
|
${hyprland}/bin/Hyprland
|
||||||
${pkgs.bash}/bin/bash
|
${pkgs.bash}/bin/bash
|
||||||
'';
|
'';
|
||||||
user = "greeter";
|
user = "greeter";
|
||||||
|
|
|
@ -51,11 +51,13 @@ in
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://marcus7070.cachix.org"
|
"https://marcus7070.cachix.org"
|
||||||
|
"https://hyprland.cachix.org"
|
||||||
];
|
];
|
||||||
|
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"marcus7070.cachix.org-1:JawxHSgnYsgNYJmNqZwvLjI4NcOwrcEZDToWlT3WwXw="
|
"marcus7070.cachix.org-1:JawxHSgnYsgNYJmNqZwvLjI4NcOwrcEZDToWlT3WwXw="
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -17,4 +17,15 @@ final: prev: rec {
|
||||||
});
|
});
|
||||||
|
|
||||||
bl3auto = prev.pkgs.callPackage ../pkgs/bl3auto { inherit (prev.pkgs) lib buildGoModule fetchFromGitHub; };
|
bl3auto = prev.pkgs.callPackage ../pkgs/bl3auto { inherit (prev.pkgs) lib buildGoModule fetchFromGitHub; };
|
||||||
|
|
||||||
|
waybar = prev.pkgs.waybar.overrideAttrs (prevAttrs: {
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "Alexays";
|
||||||
|
repo = "Waybar";
|
||||||
|
rev = "ebdf575d45c0e4f8c6f6ce484fbbf5375ed8dbba";
|
||||||
|
sha256 = "WTdy9zGhidk56CjmSuFDigfa64O9ZNd5GpfpCVrL8i0=";
|
||||||
|
};
|
||||||
|
buildInputs = prevAttrs.buildInputs ++ [ prev.wayland-protocols prev.libappindicator-gtk3 prev.libinput prev.jack2 ];
|
||||||
|
mesonFlags = prevAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -226,6 +226,7 @@ in
|
||||||
inputs.emacs-overlay.overlay
|
inputs.emacs-overlay.overlay
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
inputs.hyprland.homeManagerModules.default
|
||||||
] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules)));
|
] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules)));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue