mirror of
https://github.com/JulienMalka/snowfield.git
synced 2025-03-25 21:30:52 +01:00
171 lines
4.5 KiB
Nix
171 lines
4.5 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
let
|
|
cfg = config.luj.programs.hyprland;
|
|
terminal = "${pkgs.kitty}/bin/kitty";
|
|
menu = "${pkgs.rofi-wayland}/bin/rofi -no-lazy-grab -show drun";
|
|
in
|
|
with lib;
|
|
{
|
|
options.luj.programs.hyprland = {
|
|
enable = mkEnableOption "Enable HyprLand";
|
|
};
|
|
|
|
config = mkIf cfg.enable
|
|
{
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
package = pkgs.unstable.hyprland;
|
|
systemd = {
|
|
enable = true;
|
|
variables = [ "WLR_NO_HARDWARE_CURSORS=1" ];
|
|
};
|
|
settings = {
|
|
# Variables
|
|
"$mod" = "ALT_L";
|
|
"$term" = terminal;
|
|
"$launcher" = menu;
|
|
|
|
|
|
general = {
|
|
gaps_in = "6";
|
|
gaps_out = "10";
|
|
};
|
|
input = {
|
|
kb_layout = "fr";
|
|
follow_mouse = 1;
|
|
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
|
};
|
|
misc = {
|
|
disable_hyprland_logo = true;
|
|
disable_splash_rendering = true;
|
|
};
|
|
decoration = {
|
|
rounding = 6;
|
|
};
|
|
animations.enabled = true;
|
|
|
|
xwayland = {
|
|
force_zero_scaling = true;
|
|
};
|
|
|
|
workspace = [
|
|
"1,monitor:DP-3"
|
|
"2,monitor:HDM1-A-1"
|
|
];
|
|
|
|
exec = [
|
|
"hyprpaper"
|
|
];
|
|
|
|
env = [
|
|
"LIBVA_DRIVER_NAME, nvidia"
|
|
"WLR_NO_HARDWARE_CURSORS, 1"
|
|
"WLR_DRM_DEVICES,/dev/dri/card0"
|
|
];
|
|
|
|
monitor = [
|
|
"DP-3, 2560x1440@60, 0x0, 1"
|
|
"HDM1-A-1, 2560x1440@60, 2560x0, 1"
|
|
];
|
|
|
|
bind = [
|
|
"$mod, RETURN, exec, kitty"
|
|
"$mod, SPACE, exec, $launcher"
|
|
"$mod, w, exec, swaylock"
|
|
|
|
# Window management
|
|
"$mod, Q, killactive"
|
|
"$mod, F, fullscreen"
|
|
# Focus
|
|
"$mod, left, movefocus, l"
|
|
"$mod, right, movefocus, r"
|
|
"$mod, up, movefocus, u"
|
|
"$mod, down, movefocus, d"
|
|
# Move
|
|
"$mod SHIFT, left, movewindow, l"
|
|
"$mod SHIFT, right, movewindow, r"
|
|
"$mod SHIFT, up, movewindow, u"
|
|
"$mod SHIFT, down, movewindow, d"
|
|
|
|
# Switch workspaces
|
|
"$mod, code:10, workspace, 1"
|
|
"$mod, code:11, workspace, 2"
|
|
"$mod, code:12, workspace, 3"
|
|
"$mod, code:13, workspace, 4"
|
|
"$mod, code:14, workspace, 5"
|
|
"$mod, code:15, workspace, 6"
|
|
"$mod, code:16, workspace, 7"
|
|
"$mod, code:17, workspace, 8"
|
|
"$mod, code:18, workspace, 9"
|
|
"$mod, code:19, workspace, 10"
|
|
|
|
"$mod SHIFT, code:10, movetoworkspace, 1"
|
|
"$mod SHIFT, code:11, movetoworkspace, 2"
|
|
"$mod SHIFT, code:12, movetoworkspace, 3"
|
|
"$mod SHIFT, code:13, movetoworkspace, 4"
|
|
"$mod SHIFT, code:14, movetoworkspace, 5"
|
|
"$mod SHIFT, code:15, movetoworkspace, 6"
|
|
"$mod SHIFT, code:16, movetoworkspace, 7"
|
|
"$mod SHIFT, code:17, movetoworkspace, 8"
|
|
"$mod SHIFT, code:18, movetoworkspace, 9"
|
|
"$mod SHIFT, code:19, movetoworkspace, 10"
|
|
|
|
];
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
|
preload = ${../../machines/x2100/wallpaper.jpg}
|
|
wallpaper = ,${../../machines/x2100/wallpaper.jpg}
|
|
'';
|
|
|
|
|
|
services.swayidle = {
|
|
enable = true;
|
|
systemdTarget = "hyprland-session.target";
|
|
events = [
|
|
{ event = "before-sleep"; command = "${pkgs.swaylock-effects}/bin/swaylock --config /home/julien/.config/swaylock/config"; }
|
|
];
|
|
};
|
|
|
|
|
|
programs.swaylock =
|
|
{
|
|
enable = true;
|
|
package = pkgs.swaylock-effects;
|
|
settings = {
|
|
screenshots = true;
|
|
clock = true;
|
|
indicator = true;
|
|
indicator-radius = 200;
|
|
indicator-thickness = 20;
|
|
grace = 0;
|
|
grace-no-mouse = true;
|
|
grace-no-touch = true;
|
|
line-uses-ring = false;
|
|
ignore-empty-password = true;
|
|
show-failed-attempts = false;
|
|
|
|
font = "Fira Code";
|
|
timestr = "%H:%M";
|
|
datestr = "";
|
|
effect-blur = "8x5";
|
|
effect-vignette = "0.5:0.5";
|
|
color = "00000000";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
home.packages = with pkgs;
|
|
[ qt6.qtwayland libsForQt5.qt5.qtwayland hyprpaper ];
|
|
|
|
};
|
|
}
|
|
|