diff --git a/shared/gtk.nix b/shared/gtk.nix index 95dc686..b60b429 100644 --- a/shared/gtk.nix +++ b/shared/gtk.nix @@ -1,9 +1,19 @@ -{ pkgs, ...}: +{ pkgs, ... }: +let + bibata-modern-ice = pkgs.runCommand "bibata-modern-ice" { } '' + mkdir -p $out/share/icons + ln -s ${pkgs.fetchzip { + url = "https://github.com/ful1e5/Bibata_Cursor/releases/download/v2.0.7/Bibata-Modern-Ice.tar.xz"; + hash = "sha256-SG/NQd3K9DHNr9o4m49LJH+UC/a1eROUjrAQDSn3TAU="; + }} $out/share/icons/Bibata-Modern-Ice + ''; +in { - gtk = { - enable = true; - cursorTheme = { - name = "Bibata Modern Ice"; - }; - }; + home.pointerCursor = { + package = bibata-modern-ice; + name = "Bibata-Modern-Ice"; + size = 48; + gtk.enable = true; + x11.enable = true; + }; } diff --git a/shared/hyprland.nix b/shared/hyprland.nix new file mode 100644 index 0000000..a0845dc --- /dev/null +++ b/shared/hyprland.nix @@ -0,0 +1,144 @@ +{ host +, config +, pkgs +, ... +}: +let +in +{ + home.packages = with pkgs; [ + swww + grim + slurp + wl-clipboard + swappy + ydotool + hyprpolkitagent + hyprland-qtutils # needed for banners and ANR messages + ]; + systemd.user.targets.hyprland-session.Unit.Wants = [ + "xdg-desktop-autostart.target" + ]; + wayland.windowManager.hyprland = { + enable = true; + package = pkgs.hyprland; + systemd = { + enable = true; + enableXdgAutostart = true; + variables = [ "--all" ]; + }; + xwayland = { + enable = true; + }; + settings = { + input = { + kb_layout = "se"; + kb_options = [ + "caps:esc" + ]; + numlock_by_default = true; + repeat_delay = 300; + follow_mouse = 1; + float_switch_override_focus = 0; + sensitivity = 0; + touchpad = { + natural_scroll = true; + disable_while_typing = true; + scroll_factor = 0.8; + }; + }; + + gestures = { + workspace_swipe = 1; + workspace_swipe_fingers = 3; + workspace_swipe_distance = 500; + workspace_swipe_invert = 1; + workspace_swipe_min_speed_to_force = 30; + workspace_swipe_cancel_ratio = 0.5; + workspace_swipe_create_new = 1; + workspace_swipe_forever = 1; + }; + + general = { + "$modifier" = "SUPER"; + layout = "dwindle"; + gaps_in = 6; + gaps_out = 8; + border_size = 2; + resize_on_border = true; + }; + + misc = { + layers_hog_keyboard_focus = true; + initial_workspace_tracking = 0; + mouse_move_enables_dpms = true; + key_press_enables_dpms = false; + disable_hyprland_logo = true; + disable_splash_rendering = true; + enable_swallow = false; + vfr = true; # Variable Frame Rate + vrr = 2; #Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES + # Screen flashing to black momentarily or going black when app is fullscreen + # Try setting vrr to 0 + + # Application not responding (ANR) settings + enable_anr_dialog = true; + anr_missed_pings = 15; + }; + + dwindle = { + pseudotile = true; + preserve_split = true; + force_split = 2; + }; + + decoration = { + rounding = 10; + blur = { + enabled = true; + size = 5; + passes = 3; + ignore_opacity = false; + new_optimizations = true; + }; + shadow = { + enabled = true; + range = 4; + render_power = 3; + color = "rgba(1a1a1aee)"; + }; + }; + + ecosystem = { + no_donation_nag = true; + no_update_news = false; + }; + + cursor = { + sync_gsettings_theme = true; + no_hardware_cursors = 2; # change to 1 if want to disable + enable_hyprcursor = false; + warp_on_change_workspace = 2; + no_warps = true; + }; + + render = { + # Disabling as no longer supported + #explicit_sync = 1; # Change to 1 to disable + #explicit_sync_kms = 1; + direct_scanout = 0; + }; + + master = { + new_status = "master"; + new_on_top = 1; + mfact = 0.5; + }; + + # Ensure Xwayland windows render at integer scale; compositor scales them + xwayland = { + force_zero_scaling = true; + }; + }; + }; +}