switch to hyprland from nixpkgs

This commit is contained in:
Adithya 2023-04-27 22:44:21 +05:30
parent e36d6e08c0
commit 1c881b385e
Signed by: adtya
GPG key ID: 48FC9915FFD326D0
5 changed files with 144 additions and 240 deletions

View file

@ -221,50 +221,6 @@
"type": "github" "type": "github"
} }
}, },
"hyprland": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"nixpkgs": [
"nixpkgs"
],
"wlroots": "wlroots",
"xdph": "xdph"
},
"locked": {
"lastModified": 1681907187,
"narHash": "sha256-9SE7RAHSCq1nAT/oZiqhtZT4cQVcLt/dfOdPro4++5s=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "6225591dbd77919beafc632e0795c6296e1da876",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1681065697,
"narHash": "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "4d29e48433270a2af06b8bc711ca1fe5109746cd",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"impermanence": { "impermanence": {
"locked": { "locked": {
"lastModified": 1682268411, "lastModified": 1682268411,
@ -477,7 +433,6 @@
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland",
"impermanence": "impermanence", "impermanence": "impermanence",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
@ -539,49 +494,6 @@
"repo": "flake-utils", "repo": "flake-utils",
"type": "github" "type": "github"
} }
},
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1680810405,
"narHash": "sha256-LmI/4Yp/pOOoI4RxLRx9I90NBsiqdRLVOfbATKlgpkg=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "7abda952d0000b72d240fe1d41457b9288f0b6e5",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
"type": "gitlab"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1681127512,
"narHash": "sha256-vklOOhBj5W8fii6yN4L2WY5ZeifBmsq3+mJ2wC1Pk9U=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "04f579377a32781ce57c9cf4ba2a5bcb7f53fa97",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -11,11 +11,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence = { impermanence = {
url = "github:nix-community/impermanence"; url = "github:nix-community/impermanence";
}; };
@ -31,7 +26,7 @@
}; };
}; };
outputs = { self, nixpkgs, home-manager, hyprland, impermanence, lanzaboote, nixos-hardware, nixvim }@inputs: { outputs = { self, nixpkgs, home-manager, impermanence, lanzaboote, nixos-hardware, nixvim }@inputs: {
formatter."x86_64-linux" = nixpkgs.legacyPackages."x86_64-linux".nixpkgs-fmt; formatter."x86_64-linux" = nixpkgs.legacyPackages."x86_64-linux".nixpkgs-fmt;
nixosConfigurations = { nixosConfigurations = {
Skipper = nixpkgs.lib.nixosSystem { Skipper = nixpkgs.lib.nixosSystem {
@ -39,7 +34,7 @@
specialArgs = inputs; specialArgs = inputs;
modules = [ modules = [
{ {
nixpkgs.overlays = [ (import ./packages) hyprland.overlays.default ]; nixpkgs.overlays = [ (import ./packages) ];
nixpkgs.hostPlatform = nixpkgs.lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = nixpkgs.lib.mkDefault "x86_64-linux";
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev; system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
} }

View file

@ -1,4 +1,4 @@
{ hyprland, impermanence, nixvim, pkgs, ... }: { impermanence, nixvim, pkgs, ... }:
let let
user = (import ../secrets.nix).users; user = (import ../secrets.nix).users;
in in
@ -11,7 +11,6 @@ in
imports = [ imports = [
impermanence.nixosModules.home-manager.impermanence impermanence.nixosModules.home-manager.impermanence
nixvim.homeManagerModules.nixvim nixvim.homeManagerModules.nixvim
hyprland.homeManagerModules.default
./gtk.nix ./gtk.nix
./persistence.nix ./persistence.nix

View file

@ -15,7 +15,7 @@
''; '';
profileExtra = '' profileExtra = ''
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ] ; then if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ] ; then
exec ${config.wayland.windowManager.hyprland.package}/bin/Hyprland exec ${pkgs.hyprland}/bin/Hyprland
fi fi
''; '';
shellAliases = { shellAliases = {

View file

@ -2,7 +2,7 @@
let let
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
grim = "${pkgs.grim}/bin/grim"; grim = "${pkgs.grim}/bin/grim";
hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl"; hyprctl = "${pkgs.hyprland}/bin/hyprctl";
kitty = "${config.programs.kitty.package}/bin/kitty"; kitty = "${config.programs.kitty.package}/bin/kitty";
playerctl = "${pkgs.playerctl}/bin/playerctl"; playerctl = "${pkgs.playerctl}/bin/playerctl";
rofi = "${config.programs.rofi.package}/bin/rofi"; rofi = "${config.programs.rofi.package}/bin/rofi";
@ -14,176 +14,174 @@ let
change-wallpaper = "${pkgs.scripts}/bin/chpaper \${HOME}/Pictures/Wallpapers"; change-wallpaper = "${pkgs.scripts}/bin/chpaper \${HOME}/Pictures/Wallpapers";
in in
{ {
wayland.windowManager.hyprland = { home.packages = with pkgs; [
enable = true; hyprland
systemdIntegration = true; ];
recommendedEnvironment = true; xdg.configFile."hypr/hyprland.conf".text = ''
extraConfig = '' monitor = eDP-1, 1920x1080, 0x0, 1
monitor = eDP-1, 1920x1080, 0x0, 1 monitor = , preferred, auto, 1
monitor = , preferred, auto, 1
general { general {
col.active_border = rgb(bd93f9) col.active_border = rgb(bd93f9)
col.inactive_border = rgba(44475aaa) col.inactive_border = rgba(44475aaa)
col.group_border = rgba(282a36dd) col.group_border = rgba(282a36dd)
col.group_border_active = rgb(bd93f9) col.group_border_active = rgb(bd93f9)
border_size = 1 border_size = 1
gaps_in = 2 gaps_in = 2
gaps_out = 4 gaps_out = 4
layout = master layout = master
}
decoration {
col.shadow = rgba(1E202966)
drop_shadow = yes
shadow_range = 60
shadow_offset = 1 2
shadow_render_power = 3
shadow_scale = 0.97
rounding = 5
dim_around = 0.6
}
input {
touchpad {
clickfinger_behavior = true
disable_while_typing = true
natural_scroll = true
tap-to-click = true
} }
}
decoration { misc {
col.shadow = rgba(1E202966) disable_hyprland_logo = true
drop_shadow = yes disable_splash_rendering = true
shadow_range = 60 }
shadow_offset = 1 2
shadow_render_power = 3
shadow_scale = 0.97
rounding = 5 master {
dim_around = 0.6 new_is_master = true
} new_on_top = true
mfact = 0.65
}
input { animation = windows,1,3,default,slide
touchpad { animation = fade,1,3,default
clickfinger_behavior = true animation = border,1,3,default
disable_while_typing = true animation = borderangle,1,3,default
natural_scroll = true animation = workspaces,1,3,default,slide
tap-to-click = true
}
}
misc { windowrulev2 = bordercolor rgb(ff5555),xwayland:1
disable_hyprland_logo = true
disable_splash_rendering = true
}
master { windowrulev2 = workspace 2,class:^(firefox)$,title:^(Mozilla Firefox)$
new_is_master = true
new_on_top = true
mfact = 0.65
}
animation = windows,1,3,default,slide windowrulev2 = float,class:^(firefox)$,title:^(Library)$
animation = fade,1,3,default
animation = border,1,3,default
animation = borderangle,1,3,default
animation = workspaces,1,3,default,slide
windowrulev2 = bordercolor rgb(ff5555),xwayland:1 windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox Sharing Indicator)$
windowrulev2 = float,class:^(firefox)$,title:^(Firefox Sharing Indicator)$
windowrulev2 = move 95% 50%,class:^(firefox)$,title:^(Firefox Sharing Indicator)$
windowrulev2 = workspace 2,class:^(firefox)$,title:^(Mozilla Firefox)$ windowrulev2 = float,class:^(pavucontrol)$,title:^(Volume Control)$
windowrulev2 = size 50% 50%,class:^(pavucontrol)$,title:^(Volume Control)$
windowrulev2 = center,class:^(pavucontrol)$,title:^(Volume Control)$
windowrulev2 = float,class:^(firefox)$,title:^(Library)$ windowrulev2 = float,class:^(.blueman-manager-wrapped)$
windowrulev2 = size 50% 50%,class:^(.blueman-manager-wrapped)$
windowrulev2 = center,class:^(.blueman-manager-wrapped)$
windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox Sharing Indicator)$ windowrulev2 = float,class:^(mpv)$
windowrulev2 = float,class:^(firefox)$,title:^(Firefox Sharing Indicator)$ windowrulev2 = size 90% 90%,class:^(mpv)$
windowrulev2 = move 95% 50%,class:^(firefox)$,title:^(Firefox Sharing Indicator)$ windowrulev2 = center,class:^(mpv)$
windowrulev2 = dimaround,class:^(mpv)$
windowrulev2 = float,class:^(pavucontrol)$,title:^(Volume Control)$ windowrulev2 = float,class:^(eog)$
windowrulev2 = size 50% 50%,class:^(pavucontrol)$,title:^(Volume Control)$ windowrulev2 = size 90% 90%,class:^(eog)$
windowrulev2 = center,class:^(pavucontrol)$,title:^(Volume Control)$ windowrulev2 = center,class:^(eog)$
windowrulev2 = dimaround,class:^(eog)$
windowrulev2 = float,class:^(.blueman-manager-wrapped)$ windowrulev2 = float,class:^(org.gnome.Nautilus)$
windowrulev2 = size 50% 50%,class:^(.blueman-manager-wrapped)$ windowrulev2 = center,class:^(org.gnome.Nautilus)$
windowrulev2 = center,class:^(.blueman-manager-wrapped)$ windowrulev2 = size 60% 60%,class:^(org.gnome.Nautilus)$
windowrulev2 = float,class:^(mpv)$ windowrulev2 = float,class:^(gnome-system-monitor)$
windowrulev2 = size 90% 90%,class:^(mpv)$ windowrulev2 = center,class:^(gnome-system-monitor)$
windowrulev2 = center,class:^(mpv)$ windowrulev2 = size 60% 50%,class:^(gnome-system-monitor)$
windowrulev2 = dimaround,class:^(mpv)$
windowrulev2 = float,class:^(eog)$ windowrulev2 = float,class:^(virt-manager)$
windowrulev2 = size 90% 90%,class:^(eog)$ windowrulev2 = size 25% 50%,class:^(virt-manager)$,title:^(Virtual Machine Manager)$
windowrulev2 = center,class:^(eog)$ windowrulev2 = move 5%% 10%,class:^(virt-manager)$,title:^(Virtual Machine Manager)$
windowrulev2 = dimaround,class:^(eog)$
windowrulev2 = float,class:^(org.gnome.Nautilus)$ windowrulev2 = float,class:^(.yubioath-flutter-wrapped)$
windowrulev2 = center,class:^(org.gnome.Nautilus)$ windowrulev2 = center,class:^(.yubioath-flutter-wrapped)$
windowrulev2 = size 60% 60%,class:^(org.gnome.Nautilus)$
windowrulev2 = float,class:^(gnome-system-monitor)$ windowrulev2 = float,class:^(yubico.org.)$
windowrulev2 = center,class:^(gnome-system-monitor)$ windowrulev2 = center,class:^(yubico.org.)$
windowrulev2 = size 60% 50%,class:^(gnome-system-monitor)$
windowrulev2 = float,class:^(virt-manager)$ windowrulev2 = dimaround,class:^(gcr-prompter)$
windowrulev2 = size 25% 50%,class:^(virt-manager)$,title:^(Virtual Machine Manager)$
windowrulev2 = move 5%% 10%,class:^(virt-manager)$,title:^(Virtual Machine Manager)$
windowrulev2 = float,class:^(.yubioath-flutter-wrapped)$ exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1
windowrulev2 = center,class:^(.yubioath-flutter-wrapped)$ exec-once = ${hyprctl} setcursor ${config.gtk.cursorTheme.name} 24
exec-once = ${change-wallpaper}
exec-once = ${pkgs.udiskie}/bin/udiskie --no-automount --tray
windowrulev2 = float,class:^(yubico.org.)$ bindm = SUPER,mouse:272, movewindow
windowrulev2 = center,class:^(yubico.org.)$ bindm = SUPER_SHIFT,mouse:272, resizewindow
windowrulev2 = dimaround,class:^(gcr-prompter)$ bind = SUPER_SHIFT,Q, killactive,
bind = SUPER_SHIFT,space, togglefloating,active
bind = SUPER_SHIFT,space, centerwindow
bind = SUPER_SHIFT,F, fullscreen,0
bind = SUPER_ALT,F, fullscreen,1
exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 bind = SUPER_SHIFT,C, exec, ${hyprctl} reload
exec-once = ${hyprctl} setcursor ${config.gtk.cursorTheme.name} 24 bind = SUPER_SHIFT,C, exec, systemctl --user restart swayidle.service
exec-once = ${change-wallpaper} bind = SUPER_SHIFT,C, exec, systemctl --user restart kanshi.service
exec-once = ${pkgs.udiskie}/bin/udiskie --no-automount --tray bind = SUPER_SHIFT,C, exec, systemctl --user reload waybar.service
bindm = SUPER,mouse:272, movewindow bind = SUPER,Return, exec, ${kitty} ${tmux} new
bindm = SUPER_SHIFT,mouse:272, resizewindow bind = SUPER_SHIFT,Return, exec, ${kitty}
bind = SUPER,d, exec, ${rofi} -show drun
bind = SUPER,escape, exec, ${swaylock} -f -i /tmp/lockpaper.jpg
bind = SUPER_SHIFT,W, exec, ${change-wallpaper}
bind = SUPER_SHIFT,escape, exec, ${pkgs.scripts}/bin/power-menu
bind = SUPER,f11, exec, ${pkgs.scripts}/bin/tmux-sessions
bind = SUPER_SHIFT,Q, killactive, bindr = ,print, exec, ${grim} "''$(${xdg-user-dir} PICTURES)/Screenshots/screenshot-''$(date +%Y-%m-%d-%H-%M-%S).png"
bind = SUPER_SHIFT,space, togglefloating,active bindr = SHIFT,print, exec, ${grim} -g "''$(${slurp})" "''$(${xdg-user-dir} PICTURES)/Screenshots/screenshot-''$(date +%Y-%m-%d-%H-%M-%S).png"
bind = SUPER_SHIFT,space, centerwindow
bind = SUPER_SHIFT,F, fullscreen,0
bind = SUPER_ALT,F, fullscreen,1
bind = SUPER_SHIFT,C, exec, ${hyprctl} reload bind = SUPER,1, workspace, 1
bind = SUPER_SHIFT,C, exec, systemctl --user restart swayidle.service bind = SUPER,2, workspace, 2
bind = SUPER_SHIFT,C, exec, systemctl --user restart kanshi.service bind = SUPER,3, workspace, 3
bind = SUPER_SHIFT,C, exec, systemctl --user reload waybar.service bind = SUPER,4, workspace, 4
bind = SUPER,5, workspace, 5
bind = SUPER,6, workspace, 6
bind = SUPER,7, workspace, 7
bind = SUPER,8, workspace, 8
bind = SUPER,9, workspace, 9
bind = SUPER,Return, exec, ${kitty} ${tmux} new bind = SUPER_SHIFT,1, movetoworkspace, 1
bind = SUPER_SHIFT,Return, exec, ${kitty} bind = SUPER_SHIFT,2, movetoworkspace, 2
bind = SUPER,d, exec, ${rofi} -show drun bind = SUPER_SHIFT,3, movetoworkspace, 3
bind = SUPER,escape, exec, ${swaylock} -f -i /tmp/lockpaper.jpg bind = SUPER_SHIFT,4, movetoworkspace, 4
bind = SUPER_SHIFT,W, exec, ${change-wallpaper} bind = SUPER_SHIFT,5, movetoworkspace, 5
bind = SUPER_SHIFT,escape, exec, ${pkgs.scripts}/bin/power-menu bind = SUPER_SHIFT,6, movetoworkspace, 6
bind = SUPER,f11, exec, ${pkgs.scripts}/bin/tmux-sessions bind = SUPER_SHIFT,7, movetoworkspace, 7
bind = SUPER_SHIFT,8, movetoworkspace, 8
bind = SUPER_SHIFT,9, movetoworkspace, 9
bindr = ,print, exec, ${grim} "''$(${xdg-user-dir} PICTURES)/Screenshots/screenshot-''$(date +%Y-%m-%d-%H-%M-%S).png" bind = SUPER,l, layoutmsg,cyclenext
bindr = SHIFT,print, exec, ${grim} -g "''$(${slurp})" "''$(${xdg-user-dir} PICTURES)/Screenshots/screenshot-''$(date +%Y-%m-%d-%H-%M-%S).png" bind = SUPER,h, layoutmsg,cycleprev
bind = SUPER,m, layoutmsg,focusmaster
bind = SUPER_SHIFT,m, layoutmsg,swapwithmaster
bind = SUPER,1, workspace, 1 binde = ,XF86MonBrightnessUp, exec, ${brightnessctl} set +5%
bind = SUPER,2, workspace, 2 binde = ,XF86MonBrightnessDown, exec, ${brightnessctl} set 5%-
bind = SUPER,3, workspace, 3 bind = ,XF86AudioMute, exec, ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = SUPER,4, workspace, 4 binde = ,XF86AudioRaiseVolume, exec, ${wpctl} set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bind = SUPER,5, workspace, 5 binde = ,XF86AudioLowerVolume, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%-
bind = SUPER,6, workspace, 6 bind = ,XF86AudioPlay, exec, ${playerctl} play-pause
bind = SUPER,7, workspace, 7 bind = ,XF86AudioNext, exec, ${playerctl} next
bind = SUPER,8, workspace, 8 bind = ,XF86AudioPrev, exec, ${playerctl} previous
bind = SUPER,9, workspace, 9 '';
bind = SUPER_SHIFT,1, movetoworkspace, 1
bind = SUPER_SHIFT,2, movetoworkspace, 2
bind = SUPER_SHIFT,3, movetoworkspace, 3
bind = SUPER_SHIFT,4, movetoworkspace, 4
bind = SUPER_SHIFT,5, movetoworkspace, 5
bind = SUPER_SHIFT,6, movetoworkspace, 6
bind = SUPER_SHIFT,7, movetoworkspace, 7
bind = SUPER_SHIFT,8, movetoworkspace, 8
bind = SUPER_SHIFT,9, movetoworkspace, 9
bind = SUPER,l, layoutmsg,cyclenext
bind = SUPER,h, layoutmsg,cycleprev
bind = SUPER,m, layoutmsg,focusmaster
bind = SUPER_SHIFT,m, layoutmsg,swapwithmaster
binde = ,XF86MonBrightnessUp, exec, ${brightnessctl} set +5%
binde = ,XF86MonBrightnessDown, exec, ${brightnessctl} set 5%-
bind = ,XF86AudioMute, exec, ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle
binde = ,XF86AudioRaiseVolume, exec, ${wpctl} set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
binde = ,XF86AudioLowerVolume, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%-
bind = ,XF86AudioPlay, exec, ${playerctl} play-pause
bind = ,XF86AudioNext, exec, ${playerctl} next
bind = ,XF86AudioPrev, exec, ${playerctl} previous
'';
};
} }