168 lines
5.1 KiB
Nix
168 lines
5.1 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: let
|
|
modifier = config.windowManager.modifierKey;
|
|
in {
|
|
imports = [
|
|
(import ./swaylock.nix)
|
|
(import ./swayidle.nix)
|
|
(import ./waybar.nix)
|
|
(import ./hycov.nix)
|
|
];
|
|
xdg.portal = {
|
|
enable = true;
|
|
configPackages = [pkgs.hyprland];
|
|
extraPortals = [pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk];
|
|
};
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
systemd.enable = true;
|
|
settings = {
|
|
input = {
|
|
touchpad = {
|
|
natural_scroll = true;
|
|
scroll_factor = 0.5;
|
|
};
|
|
kb_options = lib.mkDefault "caps:escape";
|
|
kb_layout = lib.mkDefault "gb";
|
|
numlock_by_default = true;
|
|
};
|
|
gestures = {
|
|
workspace_swipe = true;
|
|
workspace_swipe_numbered = true;
|
|
};
|
|
decoration = {
|
|
rounding = 5;
|
|
drop_shadow = false;
|
|
};
|
|
bezier = [
|
|
"overshot, 0.05, 0.9, 0.1, 1.1"
|
|
"linear, 0.0, 0.0, 1.0, 1.0"
|
|
];
|
|
animations = {
|
|
enabled = true;
|
|
animation = [
|
|
"windows, 1, 1, default, popin"
|
|
"border, 1, 1, default"
|
|
"fade, 1, 1, default"
|
|
"workspaces, 1, 3, overshot"
|
|
"borderangle,1, 50, linear, loop"
|
|
];
|
|
};
|
|
bind = [
|
|
"${modifier}, h, movefocus,l"
|
|
"${modifier}, l, movefocus,r"
|
|
"${modifier}, j, layoutmsg,cyclenext"
|
|
"${modifier}, k, layoutmsg,cycleprev"
|
|
"${modifier}, space, layoutmsg,swapwithmaster master"
|
|
"${modifier}, F, fullscreen,"
|
|
"${modifier}, V, togglefloating,"
|
|
"${modifier}, W, layoutmsg, orientationprev"
|
|
"${modifier}_SHIFT, W, layoutmsg, orientationnext"
|
|
"${modifier}_SHIFT, V, togglegroup,"
|
|
"${modifier}_SHIFT, h, changegroupactive,b"
|
|
"${modifier}_SHIFT, h, moveintogroup,l"
|
|
"${modifier}_SHIFT, l, moveintogroup,r"
|
|
"${modifier}_SHIFT, l, changegroupactive,f"
|
|
"${modifier}, Y, togglespecialworkspace"
|
|
"${modifier}_SHIFT, Y, movetoworkspace, special"
|
|
"${modifier}_SHIFT, X, killactive"
|
|
"${modifier}, slash, focuswindow, brave-browser"
|
|
"${modifier}, n, focuswindow, Logseq"
|
|
"${modifier}, R, submap, resize"
|
|
"${modifier},1,workspace,1"
|
|
"${modifier},2,workspace,2"
|
|
"${modifier},3,workspace,3"
|
|
"${modifier},4,workspace,4"
|
|
"${modifier},5,workspace,5"
|
|
"${modifier},6,workspace,6"
|
|
"${modifier},7,workspace,7"
|
|
"${modifier},8,workspace,8"
|
|
"${modifier},9,workspace,9"
|
|
"${modifier},0,workspace,10"
|
|
"${modifier},left,workspace,r-1"
|
|
"${modifier},right,workspace,r+1"
|
|
"${modifier}_SHIFT,1,movetoworkspace,1"
|
|
"${modifier}_SHIFT,2,movetoworkspace,2"
|
|
"${modifier}_SHIFT,3,movetoworkspace,3"
|
|
"${modifier}_SHIFT,4,movetoworkspace,4"
|
|
"${modifier}_SHIFT,5,movetoworkspace,5"
|
|
"${modifier}_SHIFT,6,movetoworkspace,6"
|
|
"${modifier}_SHIFT,7,movetoworkspace,7"
|
|
"${modifier}_SHIFT,8,movetoworkspace,8"
|
|
"${modifier}_SHIFT,9,movetoworkspace,9"
|
|
"${modifier}_SHIFT,0,movetoworkspace,10"
|
|
];
|
|
bindm = [
|
|
"${modifier}, mouse:272, movewindow"
|
|
"${modifier}, mouse:273, resizewindow"
|
|
];
|
|
env = [
|
|
"GDK_BACKEND,wayland,x11"
|
|
"QT_QPA_PLATFORM,wayland;xcb"
|
|
"SDL_VIDEODRIVER,wayland"
|
|
"CLUTTER_BACKEND,wayland"
|
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
|
"XDG_SESSION_TYPE,wayland"
|
|
"XDG_SESSION_DESKTOP,Hyprland"
|
|
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
|
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
|
"NIXOS_OZONE_WL,1"
|
|
"WLR_NO_HARDWARE_CURSORS,1"
|
|
];
|
|
windowrule = [
|
|
"float, title:wlogout"
|
|
"idleinhibit always, vrmonitor"
|
|
"idleinhibit focus, steam_app"
|
|
];
|
|
workspace = [
|
|
"11, default:true"
|
|
];
|
|
general = {
|
|
gaps_out = 10;
|
|
resize_on_border = true;
|
|
layout = "master";
|
|
# "col.active_border" = "rgb(FFFF00) rgb(00FFFF) rgb(FF00FF)";
|
|
border_size = lib.mkDefault 5;
|
|
};
|
|
master = {
|
|
mfact = 0.7;
|
|
new_on_top = true;
|
|
};
|
|
misc = {
|
|
vrr = 2;
|
|
focus_on_activate = true;
|
|
};
|
|
};
|
|
# https://wiki.hyprland.org/Configuring/Variables/
|
|
extraConfig = ''
|
|
submap = resize
|
|
binde = ,right,resizeactive,10 0
|
|
binde = ,left,resizeactive,-10 0
|
|
binde = ,up,resizeactive,0 -10
|
|
binde = ,down,resizeactive,0 10
|
|
binde = ,k,resizeactive,0 -10
|
|
binde = ,j,resizeactive,0 10
|
|
binde = ,l,splitratio,0.05
|
|
binde = ,h,splitratio,-0.05
|
|
binde = SHIFT,l,splitratio,0.3
|
|
binde = SHIFT,h,splitratio,-0.3
|
|
|
|
bind = , escape, submap,reset
|
|
bind = , enter, submap,reset
|
|
bind = ${modifier}, R, submap,reset
|
|
bind = CONTROL, C, submap,reset
|
|
submap = reset
|
|
'';
|
|
};
|
|
|
|
services.mako = {
|
|
enable = true;
|
|
};
|
|
|
|
programs.waybar.settings.mainBar.modules-left = ["hyprland/workspaces" "hyprland/window"];
|
|
}
|