135 lines
4.3 KiB
Nix
135 lines
4.3 KiB
Nix
{ 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");
|
|
};
|
|
};
|
|
}
|