Compare commits

..

No commits in common. "571d8216195ce0b16c91dc71f0d40eb9941cc60b" and "394dfac8382e5f6f9df6868abc6dc5dbca69eee1" have entirely different histories.

4 changed files with 369 additions and 136 deletions

View file

@ -1,4 +1,4 @@
{ config, ... }: { config, pkgs, ... }:
{ {
imports = [ ../common/home.nix ]; imports = [ ../common/home.nix ];
@ -13,41 +13,156 @@
}; };
}; };
programs.niri.settings = { wayland.windowManager.hyprland = {
input = { settings = {
keyboard.xkb.layout = "fr"; "$col_accentdark" = "rgb(00ff00)";
touchpad = { "$col_accentlight" = "rgb(80ff80)";
tap = true; "$col_inactive" = "rgba(80808040)";
natural-scroll = true; "$col_urgent" = "rgb(ffd966)";
accel-profile = "flat";
animations = { enabled = false; };
decoration = {
inactive_opacity = 1.0;
drop_shadow = false;
blur.enabled = false;
}; };
gestures.workspace_swipe = true;
input.kb_layout = "fr";
input.touchpad = {
disable_while_typing = false;
natural_scroll = true;
};
misc.animate_manual_resizes = false;
bindel = [
", XF86AudioRaiseVolume, exec, swayosd-client --output-volume=raise"
", XF86AudioLowerVolume, exec, swayosd-client --output-volume=lower"
", XF86AudioMute, exec, swayosd-client --output-volume=mute-toggle"
", XF86MonBrightnessUp, exec, swayosd-client --brightness=raise"
", XF86MonBrightnessDown, exec, swayosd-client --brightness=lower"
];
}; };
outputs."eDP-1".scale = 1; };
layout.border.active.color = "#35f835e5";
binds = with config.lib.niri.actions; { programs.niri = {
"XF86AudioRaiseVolume" = { enable = true;
allow-when-locked = true; package = pkgs.niri;
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; settings = {
input = {
keyboard = {
xkb.layout = "fr";
xkb.options = "compose:rctrl";
repeat-delay = 300;
repeat-rate = 100;
};
touchpad = {
tap = true;
natural-scroll = true;
accel-profile = "flat";
};
mouse.accel-profile = "flat";
warp-mouse-to-focus = true;
focus-follows-mouse.enable = true;
}; };
"XF86AudioLowerVolume" = { outputs."eDP-1" = { scale = 1; };
allow-when-locked = true; layout = {
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; gaps = 10;
default-column-width.proportion = 0.5;
preset-window-heights = [{ proportion = 1.0 / 2.0; }];
focus-ring.enable = false;
border = {
enable = true;
width = 2;
active.color = "#35f835e5";
inactive.color = "#80808080";
};
}; };
"XF86AudioMute" = { workspaces = {
allow-when-locked = true; w1.name = "admin";
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; w2.name = "everything";
w3.name = "apps";
}; };
"XF86MonBrightnessDown" = { window-rules = [
allow-when-locked = true; {
action = spawn "brightnessctl" "set" "10-"; matches =
[{ app-id = "^(im\\.riot\\.Riot|WebCord|@joplin/app-desktop)$"; }];
open-on-workspace = "apps";
}
{
geometry-corner-radius = {
top-left = 10.0;
top-right = 10.0;
bottom-right = 10.0;
bottom-left = 10.0;
};
clip-to-geometry = true;
}
];
prefer-no-csd = true;
screenshot-path = "~/screenshots/%Y%m%d%H%m%N.png";
binds = with config.lib.niri.actions; {
"Mod+Space".action = spawn "alacritty";
"Mod+Shift+Space".action = spawn "alacritty -e sudo -i";
"Mod+F1".action = spawn "anyrun";
"Mod+L".action = spawn "hyprlock";
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
};
"XF86AudioMute" = {
allow-when-locked = true;
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
};
"XF86MonBrightnessDown" = {
allow-when-locked = true;
action = spawn "brightnessctl" "set" "10-";
};
"XF86MonBrightnessUp" = {
allow-when-locked = true;
action = spawn "brightnessctl" "set" "+10";
};
"Mod+Shift+Q".action = close-window;
"Mod+A".action = focus-column-left;
"Mod+Z".action = focus-window-or-workspace-up;
"Mod+S".action = focus-window-or-workspace-down;
"Mod+D".action = focus-column-right;
"Mod+Shift+A".action = move-column-left;
"Mod+Shift+Z".action = move-window-up-or-to-workspace-up;
"Mod+Shift+S".action = move-window-down-or-to-workspace-down;
"Mod+Shift+D".action = move-column-right;
"Mod+Page_Up".action = focus-workspace-up;
"Mod+Page_Down".action = focus-workspace-down;
"Mod+WheelScrollDown".action = focus-column-right;
"Mod+WheelScrollUp".action = focus-column-left;
"Mod+Shift+WheelScrollDown".action = move-column-right;
"Mod+Shift+WheelScrollUp".action = move-column-left;
"Alt+TouchpadScrollDown".action = spawn "brightnessctl" "set" "10-";
"Alt+TouchpadScrollUp".action = spawn "brightnessctl" "set" "+10";
"Mod+ampersand".action = focus-workspace 1;
"Mod+eacute".action = focus-workspace 2;
"Mod+quotedbl".action = focus-workspace 3;
"Mod+apostrophe".action = focus-workspace 4;
"Mod+Shift+ampersand".action = move-column-to-workspace 1;
"Mod+Shift+eacute".action = move-column-to-workspace 2;
"Mod+Shift+quotedbl".action = move-column-to-workspace 3;
"Mod+Shift+apostrophe".action = move-column-to-workspace 4;
"Mod+Tab".action = focus-workspace-previous;
"Mod+F".action = maximize-column;
"Mod+W".action = set-column-width "-10%";
"Mod+X".action = set-column-width "+10%";
"Mod+Shift+W".action = set-window-height "-10%";
"Mod+Shift+X".action = set-window-height "+10%";
"Print".action = screenshot-screen;
"Shift+Print".action = screenshot;
"Alt+Print".action = screenshot-window;
"Mod+Shift+Backspace" = {
action = quit { skip-confirmation = true; };
};
"XF86Display".action = power-off-monitors;
}; };
"XF86MonBrightnessUp" = {
allow-when-locked = true;
action = spawn "brightnessctl" "set" "+10";
};
"Alt+TouchpadScrollDown".action = spawn "brightnessctl" "set" "10-";
"Alt+TouchpadScrollUp".action = spawn "brightnessctl" "set" "+10";
"XF86Display".action = power-off-monitors;
}; };
}; };
} }

View file

@ -11,9 +11,21 @@
}; };
}; };
programs.niri.settings = { wayland.windowManager.hyprland = {
input.keyboard.xkb.layout = "us"; settings = {
outputs."HDMI-1".scale = 1; "$col_accentdark" = "rgb(9933ff)";
layout.border.active.color = "#d966ff"; "$col_accentlight" = "rgb(d966ff)";
"$col_inactive" = "rgba(80808080)";
animations.enabled = true;
decoration = {
inactive_opacity = 0.9;
drop_shadow = true;
blur.enabled = true;
};
input.kb_layout = "us";
gestures.workspace_swipe = false;
misc.animate_manual_resizes = true;
};
}; };
} }

View file

@ -40,8 +40,8 @@
services.libinput.enable = true; services.libinput.enable = true;
services.flatpak.enable = true; services.flatpak.enable = true;
programs.hyprland.enable = true;
programs.zsh.enable = true; programs.zsh.enable = true;
programs.dconf.enable = true;
virtualisation.libvirtd = { virtualisation.libvirtd = {
enable = true; enable = true;
@ -61,9 +61,6 @@
}; };
}; };
systemd.services.libvirtd.wantedBy = lib.mkForce [ ]; systemd.services.libvirtd.wantedBy = lib.mkForce [ ];
systemd.services.libvirt-guests.wantedBy = lib.mkForce [ ];
programs.hyprland.enable = true;
users.users.ahurac = { users.users.ahurac = {
isNormalUser = true; isNormalUser = true;

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
home.username = "ahurac"; home.username = "ahurac";
@ -31,6 +31,7 @@
texliveFull texliveFull
bash-language-server bash-language-server
shfmt shfmt
hyprnotify
libnotify libnotify
ldns ldns
@ -51,10 +52,7 @@
}; };
}; };
xdg.portal = { xdg.portal.config.common.default = [ "gtk" "gnome" ];
enable = true;
config.common.default = [ "gnome" "gtk" ];
};
services.ssh-agent.enable = true; services.ssh-agent.enable = true;
@ -176,7 +174,210 @@
''; '';
}; };
programs.swaylock = { enable = true; }; wayland.windowManager.hyprland = {
enable = true;
plugins = [ pkgs.hyprlandPlugins.hy3 ];
settings = {
monitor = ", highrr, 0x0, 1";
"$col_urgent" = "rgb(ffd966)";
"$terminal" = "kitty";
"$browser" = "firefox";
"$locker" = "hyprlock";
"$launcher" = "anyrun";
"$joplin" = "flatpak run net.cozic.joplin_desktop";
"$matrix_client" = "flatpak run im.riot.Riot";
"$discord" = "flatpak run io.github.spacingbat3.webcord";
"$deezer" = "flatpak run dev.aunetx.deezer";
exec-once = [ "swayosd-server" "hyprnotify" ];
binds = {
scroll_event_delay = 0;
workspace_back_and_forth = false;
allow_workspace_cycles = false;
workspace_center_on = 1;
focus_preferred_method = 1;
movefocus_cycles_fullscreen = false;
};
decoration = {
dim_inactive = false;
rounding = 10;
active_opacity = 1.0;
fullscreen_opacity = 1.0;
};
general = {
border_size = 2;
"col.inactive_border" = "$col_inactive";
"col.nogroup_border" = "$col_inactive";
"col.active_border" = "$col_accentdark $col_accentlight 90deg";
resize_on_border = false;
gaps_in = 5;
gaps_out = 10;
gaps_workspaces = 0;
layout = "hy3";
no_focus_fallback = true;
};
input = {
numlock_by_default = true;
repeat_rate = 75;
repeat_delay = 300;
kb_options = "compose:rctrl";
sensitivity = 0.0;
accel_profile = "flat";
};
misc = {
disable_hyprland_logo = false;
disable_splash_rendering = false;
layers_hog_keyboard_focus = true;
mouse_move_focuses_monitor = true;
enable_swallow = false;
close_special_on_empty = true;
new_window_takes_over_fullscreen = 2;
};
plugin.hy3 = {
no_gaps_when_only = false;
node_collapse_policy = 0;
tabs = {
height = 5;
padding = 5;
from_top = true;
rounding = 4;
render_text = false;
"col.active" = "$col_accentdark";
"col.urgent" = "$col_urgent";
"col.inactive" = "$col_inactive";
};
autotile.enable = true;
};
xwayland = { force_zero_scaling = true; };
env = [
"QT_QPA_PLATFORM, wayland"
"QT_AUTO_SCREEN_SCALE_FACTOR, 1"
"QT_WAYLAND_DISABLE_WINDOWDECORATION, 1"
"CLUTTER_BACKEND, wayland"
"SDL_VIDEODRIVER, wayland"
"ELM_DISPLAY, wl"
"_JAVA_AWT_WM_NONREPARENTING, 1"
"XDG_SESSION_DESKTOP, Hyprland"
"ELECTRON_OZONE_PLATFORM_HINT, auto"
"HYPRCURSOR_THEME, bibata_modern_ice-hyprcursor"
];
bind = [
"SUPER, Space, exec, $terminal"
"SUPER SHIFT, Space, exec, $terminal -e sudo -i"
"SUPER, 10, workspace, 1"
"SUPER, 11, workspace, 2"
"SUPER, 12, workspace, 3"
"SUPER, 13, workspace, 4"
"SUPER, R, workspace, 5"
"SUPER, F, workspace, 6"
"SUPER, V, workspace, 7"
"SUPER, C, workspace, 8"
"SUPER, X, workspace, 9"
"SUPER, W, workspace, 10"
"SUPER, mouse_down, workspace, e-1"
"SUPER, mouse_up, workspace, e+1"
"SUPER SHIFT, Q, hy3:killactive"
"SUPER SHIFT, 10, movetoworkspacesilent, 1"
"SUPER SHIFT, 11, movetoworkspacesilent, 2"
"SUPER SHIFT, 12, movetoworkspacesilent, 3"
"SUPER SHIFT, 13, movetoworkspacesilent, 4"
"SUPER SHIFT, R, movetoworkspacesilent, 5"
"SUPER SHIFT, F, movetoworkspacesilent, 6"
"SUPER SHIFT, V, movetoworkspacesilent, 7"
"SUPER SHIFT, C, movetoworkspacesilent, 8"
"SUPER SHIFT, X, movetoworkspacesilent, 9"
"SUPER SHIFT, W, movetoworkspacesilent, 10"
"SUPER SHIFT, A, hy3:movewindow, l"
"SUPER SHIFT, Z, hy3:movewindow, u"
"SUPER SHIFT, S, hy3:movewindow, d"
"SUPER SHIFT, D, hy3:movewindow, r"
"SUPER SHIFT, Return, togglefloating"
"SUPER Alt_L, F, fullscreen"
"SUPER, A, hy3:movefocus, l"
"SUPER, Z, hy3:movefocus, u"
"SUPER, S, hy3:movefocus, d"
"SUPER, D, hy3:movefocus, r"
"SUPER, Q, hy3:makegroup, tab, force_ephemeral"
"SUPER, E, hy3:changegroup, opposite"
"SUPER, B, hy3:changegroup, toggletab"
"SUPER SHIFT, BackSpace, exit"
"SUPER, F1, exec, $launcher"
"SUPER, F2, exec, $joplin"
"SUPER, F3, exec, $matrix_client"
"SUPER, F4, exec, $discord"
"SUPER, F5, exec, $deezer"
"SUPER, G, exec, $browser"
"SUPER, L, exec, $locker"
];
bindm =
[ "SUPER, mouse:272, movewindow" "SUPER, mouse:273, resizewindow" ];
bindn = [
", mouse:272, hy3:focustab, mouse"
", mouse_up, hy3:focustab, r, require_hovered, wrap"
", mouse_down, hy3:focustab, l, require_hovered, wrap"
];
};
extraConfig = ''
submap = resize
bind = , escape, submap, reset
bind = SUPER Alt_L, R, submap, reset
binde = , A, resizeactive, -25 0
binde = , Z, resizeactive, 0 -25
binde = , S, resizeactive, 0 25
binde = , D, resizeactive, 25 0
submap = reset
bind = SUPER Alt_L, R, submap, resize
'';
};
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
hide_cursor = true;
grace = 0;
no_fade_in = true;
no_fade_out = true;
ignore_empty_input = true;
text_trim = true;
fractional_scaling = 2;
};
label = {
monitor = "";
halign = "left";
valign = "bottom";
position = "50, 50";
font_size = 64;
font_family = "Noto Sans";
text =
''cmd[update:1000] printf '<b>%s</b>' "$(date +%Y-%m-%d%n%H:%M:%S)"'';
};
background = {
monitor = "";
path = "screenshot";
blur_passes = 5;
blur_size = 1;
};
input-field = {
monitor = "";
size = "700, 50";
outline_thickness = 5;
outer_color = "rgba(0, 0, 0, 0)";
dots_size = 0.5;
placeholder_text = "";
fail_text = "";
};
};
};
programs.anyrun = { programs.anyrun = {
enable = true; enable = true;
@ -286,96 +487,4 @@
}; };
Install = { WantedBy = [ "graphical-session.target" ]; }; Install = { WantedBy = [ "graphical-session.target" ]; };
}; };
programs.niri = {
enable = true;
package = pkgs.niri;
settings = {
input = {
keyboard = {
xkb.options = "compose:rctrl";
repeat-delay = 300;
repeat-rate = 100;
};
mouse.accel-profile = "flat";
warp-mouse-to-focus = true;
focus-follows-mouse.enable = true;
};
layout = {
gaps = 10;
default-column-width.proportion = 0.5;
preset-window-heights = [{ proportion = 1.0 / 2.0; }];
focus-ring.enable = false;
border = {
enable = true;
width = 2;
inactive.color = "#80808080";
};
};
workspaces = {
w1.name = "admin";
w2.name = "everything";
w3.name = "apps";
};
window-rules = [
{
matches =
[{ app-id = "^(im\\.riot\\.Riot|WebCord|@joplin/app-desktop)$"; }];
open-on-workspace = "apps";
}
{
geometry-corner-radius = {
top-left = 10.0;
top-right = 10.0;
bottom-right = 10.0;
bottom-left = 10.0;
};
clip-to-geometry = true;
}
];
prefer-no-csd = true;
screenshot-path = "~/screenshots/%Y%m%d%H%m%N.png";
binds = with config.lib.niri.actions; {
"Mod+Space".action = spawn "alacritty";
"Mod+Shift+Space".action = spawn "alacritty -e sudo -i";
"Mod+F1".action = spawn "anyrun";
"Mod+L".action = spawn "swaylock";
"Mod+Shift+Q".action = close-window;
"Mod+A".action = focus-column-left;
"Mod+Z".action = focus-window-or-workspace-up;
"Mod+S".action = focus-window-or-workspace-down;
"Mod+D".action = focus-column-right;
"Mod+Shift+A".action = move-column-left;
"Mod+Shift+Z".action = move-window-up-or-to-workspace-up;
"Mod+Shift+S".action = move-window-down-or-to-workspace-down;
"Mod+Shift+D".action = move-column-right;
"Mod+Page_Up".action = focus-workspace-up;
"Mod+Page_Down".action = focus-workspace-down;
"Mod+WheelScrollDown".action = focus-column-right;
"Mod+WheelScrollUp".action = focus-column-left;
"Mod+Shift+WheelScrollDown".action = move-column-right;
"Mod+Shift+WheelScrollUp".action = move-column-left;
"Mod+ampersand".action = focus-workspace 1;
"Mod+eacute".action = focus-workspace 2;
"Mod+quotedbl".action = focus-workspace 3;
"Mod+apostrophe".action = focus-workspace 4;
"Mod+Shift+ampersand".action = move-column-to-workspace 1;
"Mod+Shift+eacute".action = move-column-to-workspace 2;
"Mod+Shift+quotedbl".action = move-column-to-workspace 3;
"Mod+Shift+apostrophe".action = move-column-to-workspace 4;
"Mod+Tab".action = focus-workspace-previous;
"Mod+F".action = maximize-column;
"Mod+W".action = set-column-width "-10%";
"Mod+X".action = set-column-width "+10%";
"Mod+Shift+W".action = set-window-height "-10%";
"Mod+Shift+X".action = set-window-height "+10%";
"Print".action = screenshot-screen;
"Shift+Print".action = screenshot;
"Alt+Print".action = screenshot-window;
"Mod+Shift+Backspace" = {
action = quit { skip-confirmation = true; };
};
};
};
};
} }