232 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			232 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   pkgs,
 | |
|   lib,
 | |
|   ...
 | |
| }:
 | |
| {
 | |
|   options.hyprland.enable = lib.mkEnableOption "Hyprland";
 | |
|   config = {
 | |
|     home.packages = with pkgs; [
 | |
|       dunst
 | |
|       # hyprlock
 | |
|       hyprpaper
 | |
|       rofi
 | |
|       slurp
 | |
|       swww
 | |
|       waybar
 | |
|       wl-clipboard
 | |
|       catppuccin-cursors.macchiatoLavender
 | |
|       bibata-cursors
 | |
|       # For potentially fixing some issues
 | |
|       libsForQt5.qt5.qtwayland
 | |
|       libsForQt5.qt5ct
 | |
|     ];
 | |
| 
 | |
|     services.hyprpaper = {
 | |
|       enable = true;
 | |
|       settings = {
 | |
|         splash = false;
 | |
|       };
 | |
|     };
 | |
| 
 | |
|     services.hypridle = {
 | |
|       enable = true;
 | |
|       settings = {
 | |
|         general = {
 | |
|           lock_cmd = "${pkgs.hyprlock}/bin/hyprlock";
 | |
|           before_sleep_cmd = "${pkgs.hyprlock}/bin/hyprlock";
 | |
|           ignore_dbus_inhibit = false;
 | |
|         };
 | |
|         listener = {
 | |
|           timeout = 240;
 | |
|           on-timeout = "${pkgs.hyprlock}/bin/hyprlock";
 | |
|         };
 | |
|       };
 | |
|     };
 | |
| 
 | |
|     programs.hyprlock = {
 | |
|       enable = true;
 | |
|       settings = {
 | |
|         background = [
 | |
|           {
 | |
|             monitor = "";
 | |
|             path = "screenshot";
 | |
|             color = "rgba(17, 17, 17, 1.0)";
 | |
|             blur_passes = 3;
 | |
|             contrast = 0.8916;
 | |
|             brightness = 0.8172;
 | |
|             vibrancy = 0.1696;
 | |
|             vibrancy_darkness = 0.0;
 | |
|           }
 | |
|         ];
 | |
| 
 | |
|         general = {
 | |
|           grace = 0;
 | |
|         };
 | |
| 
 | |
|         input-field = [
 | |
|           {
 | |
|             size = "250, 60";
 | |
|             outline_thickness = 2;
 | |
|             dots_size = 0.2;
 | |
|             dots_spacing = 0.2;
 | |
|             dots_center = true;
 | |
|             outer_color = "rgba(0, 0, 0, 0)";
 | |
|             inner_color = "rgba(0, 0, 0, 0.5)";
 | |
|             font_color = "rgb(200, 200, 200)";
 | |
|             fade_on_empty = false;
 | |
|             font_family = "JetBrains Mono Nerd Font Mono";
 | |
|             placeholder_text = "<i><span foreground=\"##cdd6f4\">Input Password...</span></i>";
 | |
|             hide_input = false;
 | |
|             position = "0, -120";
 | |
|             halign = "center";
 | |
|             valign = "center";
 | |
|           }
 | |
|         ];
 | |
| 
 | |
|         label = [
 | |
|           {
 | |
|             text = "cmd[update:2000] echo \"$(date +\"%b %d %H:%M\")\"";
 | |
|             color = "rgba(255, 255, 255, 0.6)";
 | |
|             font_size = 120;
 | |
|             font_family = "JetBrains Mono Nerd Font Mono ExtraBold";
 | |
|             position = "0, -300";
 | |
|             halign = "center";
 | |
|             valign = "top";
 | |
|           }
 | |
|         ];
 | |
|       };
 | |
|     };
 | |
| 
 | |
|     wayland.windowManager.hyprland = {
 | |
|       enable = true;
 | |
|       package = pkgs.hyprland;
 | |
|       settings = {
 | |
|         "$mainMod" = "SUPER";
 | |
|         "$shiftMainMod" = "SUPER_SHIFT";
 | |
|         "$term" = "kitty";
 | |
| 
 | |
|         monitor = [ "eDP-1,1920x1080@60,0x0,1" ];
 | |
|         input = {
 | |
|           kb_layout = "no";
 | |
|           follow_mouse = 1;
 | |
|         };
 | |
| 
 | |
|         env = [ "XDG_SESSION_TYPE,wayland" ];
 | |
| 
 | |
|         decoration = {
 | |
|           rounding = 10;
 | |
|           blur = {
 | |
|             enabled = true;
 | |
|             size = 3;
 | |
|             passes = 1;
 | |
|             xray = true;
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         general = {
 | |
|           gaps_in = 4;
 | |
|           gaps_out = 10;
 | |
|           border_size = 2;
 | |
|           layout = "dwindle";
 | |
|         };
 | |
| 
 | |
|         animations = {
 | |
|           enabled = true;
 | |
|           bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
 | |
|           animation = [
 | |
|             "windows, 1, 7, myBezier"
 | |
|             "windowsOut, 1, 7, default, popin 80%"
 | |
|             "border, 1, 10, default"
 | |
|             "borderangle, 1, 8, default"
 | |
|             "fade, 1, 7, default"
 | |
|             "workspaces, 1, 6, default"
 | |
|             "specialWorkspace, 1, 4, default, fade"
 | |
|           ];
 | |
|         };
 | |
|         dwindle = {
 | |
|           pseudotile = true;
 | |
|           preserve_split = true;
 | |
|           special_scale_factor = 0.85;
 | |
|         };
 | |
|         master = {
 | |
|           new_status = "master";
 | |
|         };
 | |
|         misc = {
 | |
|           force_default_wallpaper = 0;
 | |
|           disable_hyprland_logo = true;
 | |
|         };
 | |
| 
 | |
|         ecosystem = {
 | |
|           no_update_news = true;
 | |
|         };
 | |
| 
 | |
|         windowrulev2 = [
 | |
|           "opacity 0.95 override 0.7 override,class:^(Alacritty)$"
 | |
|           "opacity 0.95 override 0.7 override,class:^(kitty)$"
 | |
|         ];
 | |
| 
 | |
|         workspace = [
 | |
|           "special:special, on-created-empty:kitty, rounding:true, decorate:false, border:false"
 | |
|         ];
 | |
| 
 | |
|         bindm = [
 | |
|           "$mainMod,mouse:272,movewindow"
 | |
|           "$shiftMainMod,mouse:272,resizewindow"
 | |
|         ];
 | |
| 
 | |
|         bindr = [
 | |
|         ];
 | |
| 
 | |
|         bind = [
 | |
|           # term
 | |
|           "$mainMod,Return,exec,$term"
 | |
| 
 | |
|           # rofi
 | |
|           "$mainMod,D,exec,rofi-launcher"
 | |
|           "$mainMod,P,exec,rofi-rbw"
 | |
| 
 | |
|           # hyprlock
 | |
|           "$shiftMainMod,l,exec,${pkgs.hyprlock}/bin/hyprlock"
 | |
| 
 | |
|           # hyprland
 | |
|           "$mainMod,Q,killactive,"
 | |
|           "CTRLALT,Delete,exit,"
 | |
|           "$mainMod,Space,togglefloating,"
 | |
|           "$mainMod,F,fullscreen,"
 | |
| 
 | |
|           # focus
 | |
|           "$mainMod,l,movefocus,l"
 | |
|           "$mainMod,h,movefocus,r"
 | |
|           "$mainMod,k,movefocus,u"
 | |
|           "$mainMod,j,movefocus,d"
 | |
| 
 | |
|           # move
 | |
|           "$mainMod,h,movewindow,l"
 | |
|           "$mainMod,l,movewindow,r"
 | |
|           "$mainMod,k,movewindow,u"
 | |
|           "$mainMod,j,movewindow,d"
 | |
| 
 | |
|           # Force opacity
 | |
|           "$shiftMainMod,o,exec, hl-no-opacity"
 | |
| 
 | |
|           # worspace switching
 | |
|           "$mainMod,1,workspace,1"
 | |
|           "$mainMod,2,workspace,2"
 | |
|           "$mainMod,3,workspace,3"
 | |
|           "$mainMod,4,workspace,4"
 | |
|           "$mainMod,5,workspace,5"
 | |
|           "$mainMod,6,workspace,6"
 | |
| 
 | |
|           # Special workspace
 | |
|           "$mainMod,c,togglespecialworkspace"
 | |
|           "$shiftMainMod,c,movetoworkspace, special"
 | |
|         ];
 | |
| 
 | |
|         exec-once = [
 | |
|         ];
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |