| author | |
| committer | |
| log | 36e4e6ca3f07e272adc9d2e19f6d350abce70737 |
| tree | 4843d1da738f2ecde08ed2b14a432fd4221e2087 |
| parent | e05f1a7805da3c9821ab73276e873e55148061be |
| signature | Commit is signed but in an unrecognized format. |
12 files changed, 630 insertions(+), 1 deletions(-)
modules/nixos/services.nix+17| ... | ... | @@ -22,6 +22,23 @@ |
| 22 | 22 | }; |
| 23 | 23 | }; |
| 24 | 24 | |
| 25 | gvfs.enable = true; | |
| 26 | ||
| 27 | gnome = { | |
| 28 | tinysparql.enable = true; | |
| 29 | gnome-keyring.enable = true; | |
| 30 | }; | |
| 31 | ||
| 32 | fstrim.enable = true; | |
| 33 | ||
| 34 | dbus = { | |
| 35 | enable = true; | |
| 36 | packages = [ | |
| 37 | pkgs.gcr | |
| 38 | pkgs.gnome-settings-daemon | |
| 39 | ]; | |
| 40 | }; | |
| 41 | ||
| 25 | 42 | # Auto mount devices |
| 26 | 43 | udisks2 = { |
| 27 | 44 | enable = true; |
users/natalie/desktop/configuration.nix+23-1| ... | ... | @@ -35,7 +35,19 @@ |
| 35 | 35 | |
| 36 | 36 | steam = { |
| 37 | 37 | enable = true; |
| 38 | package = with pkgs; steam.override { extraPkgs = pkgs: [ attr ]; }; | |
| 38 | remotePlay.openFirewall = true; | |
| 39 | ||
| 40 | gamescopeSession.enable = true; | |
| 41 | extraCompatPackages = [ pkgs.proton-ge-bin ]; | |
| 42 | }; | |
| 43 | ||
| 44 | gamescope = { | |
| 45 | enable = true; | |
| 46 | capSysNice = true; | |
| 47 | args = [ | |
| 48 | "--rt" | |
| 49 | "--expose-wayland" | |
| 50 | ]; | |
| 39 | 51 | }; |
| 40 | 52 | |
| 41 | 53 | git = { |
| ... | ... | @@ -60,6 +72,15 @@ |
| 60 | 72 | |
| 61 | 73 | xdg.portal = { |
| 62 | 74 | enable = true; |
| 75 | xdgOpenUsePortal = true; | |
| 76 | config = { | |
| 77 | common.default = [ "gtk" ]; | |
| 78 | hyprland.default = [ | |
| 79 | "gtk" | |
| 80 | "hyprland" | |
| 81 | ]; | |
| 82 | }; | |
| 83 | ||
| 63 | 84 | extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; |
| 64 | 85 | }; |
| 65 | 86 | virtualisation = { |
| ... | ... | @@ -85,6 +106,7 @@ |
| 85 | 106 | hibernate.enable = false; |
| 86 | 107 | hybrid-sleep.enable = false; |
| 87 | 108 | }; |
| 109 | settings.Manager.DefaultTimeoutStopSec = "10s"; | |
| 88 | 110 | |
| 89 | 111 | services.monitord.wantedBy = [ "multi-user.target" ]; |
| 90 | 112 | }; |
users/natalie/home/default.nix+1| ... | ... | @@ -2,5 +2,6 @@ |
| 2 | 2 | { |
| 3 | 3 | imports = [ |
| 4 | 4 | ./tmux.nix |
| 5 | ./hyprland | |
| 5 | 6 | ]; |
| 6 | 7 | } |
users/natalie/home/hyprland/binds.nix created+154| ... | ... | @@ -0,0 +1,154 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland.settings = { | |
| 4 | binds = { | |
| 5 | movefocus_cycles_fullscreen = true; | |
| 6 | }; | |
| 7 | ||
| 8 | bind = [ | |
| 9 | # show keybinds list | |
| 10 | "$mainMod, F1, exec, show-keybinds" | |
| 11 | ||
| 12 | # keybindings | |
| 13 | "$mainMod, Return, exec, ghostty --gtk-single-instance=true" | |
| 14 | "$mainMod, P, pseudo," | |
| 15 | "$mainMod, C, killactive," | |
| 16 | "$mainMod, M, exit, " | |
| 17 | "$mainMod, E, exec, $fileManager" | |
| 18 | "$mainMod, V, togglefloating," | |
| 19 | "$mainMod, R, exec, $menu " | |
| 20 | "$mainMod, J, togglesplit " | |
| 21 | # "ALT, Return, exec, [float; size 1111 700] ghostty" | |
| 22 | # "$mainMod SHIFT, Return, exec, [fullscreen] ghostty" | |
| 23 | # "$mainMod, B, exec, [workspace 1 silent] zen-beta" | |
| 24 | # "$mainMod, Q, killactive," | |
| 25 | # "$mainMod, F, fullscreen, 0" | |
| 26 | # "$mainMod SHIFT, F, fullscreen, 1" | |
| 27 | # "$mainMod, Space, exec, toggle-float" | |
| 28 | # "$mainMod, D, exec, vicinae vicinae://toggle" | |
| 29 | # "$mainMod SHIFT, D, exec, webcord --enable-features=UseOzonePlatform --ozone-platform=wayland" | |
| 30 | # "$mainMod SHIFT, S, exec, hyprctl dispatch exec '[workspace 5 silent] SoundWireServer'" | |
| 31 | # "$mainMod, Escape, exec, swaylock" | |
| 32 | # "ALT, Escape, exec, hyprlock" | |
| 33 | # "$mainMod SHIFT, Escape, exec, power-menu" | |
| 34 | # "$mainMod, X, togglesplit," | |
| 35 | # "$mainMod, T, exec, toggle-oppacity" | |
| 36 | # "$mainMod, E, exec, nemo" | |
| 37 | # "ALT, E, exec, hyprctl dispatch exec '[float; size 1111 700] nemo'" | |
| 38 | # "$mainMod SHIFT, B, exec, toggle-waybar" | |
| 39 | # "$mainMod, C ,exec, hyprpicker -a" | |
| 40 | # "$mainMod, W,exec, wallpaper-picker" | |
| 41 | # "$mainMod SHIFT, W,exec, hyprctl dispatch exec '[float; size 925 615] waypaper'" | |
| 42 | # "$mainMod, N, exec, swaync-client -t -sw" | |
| 43 | # "CTRL SHIFT, Escape, exec, hyprctl dispatch exec '[workspace 9] missioncenter'" | |
| 44 | # "$mainMod, equal, exec, woomer" | |
| 45 | # "$mainMod SHIFT, W, exec, vm-start" | |
| 46 | ||
| 47 | # screenshot | |
| 48 | ",Print, exec, screenshot --copy" | |
| 49 | "$mainMod, Print, exec, screenshot --save" | |
| 50 | "$mainMod SHIFT, Print, exec, screenshot --swappy" | |
| 51 | ||
| 52 | # switch focus | |
| 53 | "$mainMod, left, movefocus, l" | |
| 54 | "$mainMod, right, movefocus, r" | |
| 55 | "$mainMod, up, movefocus, u" | |
| 56 | "$mainMod, down, movefocus, d" | |
| 57 | "$mainMod, h, movefocus, l" | |
| 58 | "$mainMod, j, movefocus, d" | |
| 59 | "$mainMod, k, movefocus, u" | |
| 60 | "$mainMod, l, movefocus, r" | |
| 61 | ||
| 62 | "$mainMod, left, alterzorder, top" | |
| 63 | "$mainMod, right, alterzorder, top" | |
| 64 | "$mainMod, up, alterzorder, top" | |
| 65 | "$mainMod, down, alterzorder, top" | |
| 66 | "$mainMod, h, alterzorder, top" | |
| 67 | "$mainMod, j, alterzorder, top" | |
| 68 | "$mainMod, k, alterzorder, top" | |
| 69 | "$mainMod, l, alterzorder, top" | |
| 70 | ||
| 71 | "CTRL ALT, up, exec, hyprctl dispatch focuswindow floating" | |
| 72 | "CTRL ALT, down, exec, hyprctl dispatch focuswindow tiled" | |
| 73 | ||
| 74 | # switch workspace | |
| 75 | "$mainMod, 1, workspace, 1" | |
| 76 | "$mainMod, 2, workspace, 2" | |
| 77 | "$mainMod, 3, workspace, 3" | |
| 78 | "$mainMod, 4, workspace, 4" | |
| 79 | "$mainMod, 5, workspace, 5" | |
| 80 | "$mainMod, 6, workspace, 6" | |
| 81 | "$mainMod, 7, workspace, 7" | |
| 82 | "$mainMod, 8, workspace, 8" | |
| 83 | "$mainMod, 9, workspace, 9" | |
| 84 | "$mainMod, 0, workspace, 10" | |
| 85 | ||
| 86 | # same as above, but switch to the workspace | |
| 87 | "$mainMod SHIFT, 1, movetoworkspacesilent, 1" # movetoworkspacesilent | |
| 88 | "$mainMod SHIFT, 2, movetoworkspacesilent, 2" | |
| 89 | "$mainMod SHIFT, 3, movetoworkspacesilent, 3" | |
| 90 | "$mainMod SHIFT, 4, movetoworkspacesilent, 4" | |
| 91 | "$mainMod SHIFT, 5, movetoworkspacesilent, 5" | |
| 92 | "$mainMod SHIFT, 6, movetoworkspacesilent, 6" | |
| 93 | "$mainMod SHIFT, 7, movetoworkspacesilent, 7" | |
| 94 | "$mainMod SHIFT, 8, movetoworkspacesilent, 8" | |
| 95 | "$mainMod SHIFT, 9, movetoworkspacesilent, 9" | |
| 96 | "$mainMod SHIFT, 0, movetoworkspacesilent, 10" | |
| 97 | "$mainMod CTRL, c, movetoworkspace, empty" | |
| 98 | ||
| 99 | # window control | |
| 100 | "$mainMod SHIFT, left, movewindow, l" | |
| 101 | "$mainMod SHIFT, right, movewindow, r" | |
| 102 | "$mainMod SHIFT, up, movewindow, u" | |
| 103 | "$mainMod SHIFT, down, movewindow, d" | |
| 104 | "$mainMod SHIFT, h, movewindow, l" | |
| 105 | "$mainMod SHIFT, j, movewindow, d" | |
| 106 | "$mainMod SHIFT, k, movewindow, u" | |
| 107 | "$mainMod SHIFT, l, movewindow, r" | |
| 108 | ||
| 109 | "$mainMod CTRL, left, resizeactive, -80 0" | |
| 110 | "$mainMod CTRL, right, resizeactive, 80 0" | |
| 111 | "$mainMod CTRL, up, resizeactive, 0 -80" | |
| 112 | "$mainMod CTRL, down, resizeactive, 0 80" | |
| 113 | "$mainMod CTRL, h, resizeactive, -80 0" | |
| 114 | "$mainMod CTRL, j, resizeactive, 0 80" | |
| 115 | "$mainMod CTRL, k, resizeactive, 0 -80" | |
| 116 | "$mainMod CTRL, l, resizeactive, 80 0" | |
| 117 | ||
| 118 | "$mainMod ALT, left, moveactive, -80 0" | |
| 119 | "$mainMod ALT, right, moveactive, 80 0" | |
| 120 | "$mainMod ALT, up, moveactive, 0 -80" | |
| 121 | "$mainMod ALT, down, moveactive, 0 80" | |
| 122 | "$mainMod ALT, h, moveactive, -80 0" | |
| 123 | "$mainMod ALT, j, moveactive, 0 80" | |
| 124 | "$mainMod ALT, k, moveactive, 0 -80" | |
| 125 | "$mainMod ALT, l, moveactive, 80 0" | |
| 126 | ||
| 127 | # media and volume controls | |
| 128 | # ",XF86AudioMute,exec, pamixer -t" | |
| 129 | ",XF86AudioPlay,exec, playerctl play-pause" | |
| 130 | ",XF86AudioNext,exec, playerctl next" | |
| 131 | ",XF86AudioPrev,exec, playerctl previous" | |
| 132 | ",XF86AudioStop,exec, playerctl stop" | |
| 133 | ||
| 134 | "$mainMod, mouse_down, workspace, e-1" | |
| 135 | "$mainMod, mouse_up, workspace, e+1" | |
| 136 | ||
| 137 | # clipboard manager | |
| 138 | "$mainMod, V, exec, vicinae vicinae://extensions/vicinae/clipboard/history" | |
| 139 | ]; | |
| 140 | ||
| 141 | bindel = [ | |
| 142 | ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" | |
| 143 | ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" | |
| 144 | ",XF86AudioMute, exec, pctl set-mute @DEFAULT_AUDIO_SINK@ toggle" | |
| 145 | ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" | |
| 146 | ]; | |
| 147 | ||
| 148 | # mouse binding | |
| 149 | bindm = [ | |
| 150 | "$mainMod, mouse:272, movewindow" | |
| 151 | "$mainMod, mouse:273, resizewindow" | |
| 152 | ]; | |
| 153 | }; | |
| 154 | } |
users/natalie/home/hyprland/default.nix created+13| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | imports = [ | |
| 4 | ./hyprland.nix | |
| 5 | ./exec-once.nix | |
| 6 | ./monitors.nix | |
| 7 | ./settings.nix | |
| 8 | ./binds.nix | |
| 9 | # ./windowrules.nix | |
| 10 | ./hyprlock.nix | |
| 11 | # ./variables.nix | |
| 12 | ]; | |
| 13 | } |
users/natalie/home/hyprland/exec-once.nix created+25| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland.settings.exec-once = [ | |
| 4 | # "hash dbus-update-activation-environment 2>/dev/null" | |
| 5 | "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" | |
| 6 | "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" | |
| 7 | ||
| 8 | "hyprlock" | |
| 9 | ||
| 10 | # "nm-applet &" | |
| 11 | # "poweralertd &" | |
| 12 | # "wl-clip-persist --clipboard both &" | |
| 13 | # "wl-paste --watch cliphist store &" | |
| 14 | # "waybar &" | |
| 15 | # "swaync &" | |
| 16 | # "vicinae server &" | |
| 17 | # "udiskie --automount --notify --smart-tray &" | |
| 18 | # "hyprctl setcursor Bibata-Modern-Ice 24 &" | |
| 19 | # "init-wallpaper &" | |
| 20 | # | |
| 21 | # "ghostty --gtk-single-instance=true --quit-after-last-window-closed=false --initial-window=false" | |
| 22 | # "[workspace 1 silent] zen-beta" | |
| 23 | # "[workspace 2 silent] ghostty" | |
| 24 | ]; | |
| 25 | } |
users/natalie/home/hyprland/hyprland.nix created+30| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | home.packages = with pkgs; [ | |
| 4 | swww | |
| 5 | grimblast | |
| 6 | hyprpicker | |
| 7 | grim | |
| 8 | slurp | |
| 9 | wl-clip-persist | |
| 10 | cliphist | |
| 11 | wf-recorder | |
| 12 | glib | |
| 13 | wayland | |
| 14 | direnv | |
| 15 | playerctl | |
| 16 | ]; | |
| 17 | systemd.user.targets.hyprland-session.Unit.Wants = [ | |
| 18 | "xdg-desktop-autostart.target" | |
| 19 | ]; | |
| 20 | wayland.windowManager.hyprland = { | |
| 21 | enable = true; | |
| 22 | package = null; | |
| 23 | portalPackage = null; | |
| 24 | ||
| 25 | xwayland = { | |
| 26 | enable = true; | |
| 27 | }; | |
| 28 | systemd.enable = true; | |
| 29 | }; | |
| 30 | } |
users/natalie/home/hyprland/hyprlock.nix created+112| ... | ... | @@ -0,0 +1,112 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | programs.hyprlock = { | |
| 4 | enable = true; | |
| 5 | ||
| 6 | settings = { | |
| 7 | general = { | |
| 8 | hide_cursor = true; | |
| 9 | ignore_empty_input = true; | |
| 10 | fractional_scaling = 0; | |
| 11 | }; | |
| 12 | ||
| 13 | background = [ | |
| 14 | { | |
| 15 | color = "rgba(29, 32, 33, 255)"; | |
| 16 | blur_passes = 2; | |
| 17 | vibrancy_darkness = 0.0; | |
| 18 | } | |
| 19 | ]; | |
| 20 | # | |
| 21 | # shape = [ | |
| 22 | # # User box | |
| 23 | # { | |
| 24 | # size = "300, 50"; | |
| 25 | # | |
| 26 | # rounding = 0; | |
| 27 | # border_size = 2; | |
| 28 | # color = "rgba(102, 92, 84, 0.33)"; | |
| 29 | # border_color = "rgba(168, 153, 132, 0.95)"; | |
| 30 | # | |
| 31 | # position = "0, ${if host == "laptop" then "120" else "270"}"; | |
| 32 | # halign = "center"; | |
| 33 | # valign = "bottom"; | |
| 34 | # } | |
| 35 | # ]; | |
| 36 | # | |
| 37 | # label = [ | |
| 38 | # # Time | |
| 39 | # { | |
| 40 | # text = ''cmd[update:1000] echo "$(date +'%k:%M')"''; | |
| 41 | # | |
| 42 | # font_size = 115; | |
| 43 | # font_family = "Maple Mono Bold"; | |
| 44 | # | |
| 45 | # shadow_passes = 3; | |
| 46 | # color = "rgba(235, 219, 178, 0.9)"; | |
| 47 | # | |
| 48 | # position = "0, ${if host == "laptop" then "-25" else "-150"}"; | |
| 49 | # halign = "center"; | |
| 50 | # valign = "top"; | |
| 51 | # } | |
| 52 | # # Date | |
| 53 | # { | |
| 54 | # text = ''cmd[update:1000] echo "- $(date +'%A, %B %d') -" ''; | |
| 55 | # | |
| 56 | # font_size = 18; | |
| 57 | # font_family = "Maple Mono"; | |
| 58 | # | |
| 59 | # shadow_passes = 3; | |
| 60 | # color = "rgba(235, 219, 178, 0.9)"; | |
| 61 | # | |
| 62 | # position = "0, ${if host == "laptop" then "-225" else "-350"}"; | |
| 63 | # halign = "center"; | |
| 64 | # valign = "top"; | |
| 65 | # } | |
| 66 | # # Username | |
| 67 | # { | |
| 68 | # text = " $USER"; | |
| 69 | # | |
| 70 | # font_size = 15; | |
| 71 | # font_family = "Maple Mono Bold"; | |
| 72 | # | |
| 73 | # color = "rgba(235, 219, 178, 1)"; | |
| 74 | # | |
| 75 | # position = "0, ${if host == "laptop" then "134" else "284"}"; | |
| 76 | # halign = "center"; | |
| 77 | # valign = "bottom"; | |
| 78 | # } | |
| 79 | # ]; | |
| 80 | # | |
| 81 | # input-field = [ | |
| 82 | # { | |
| 83 | # size = "300, 50"; | |
| 84 | # rounding = 0; | |
| 85 | # outline_thickness = 2; | |
| 86 | # | |
| 87 | # dots_spacing = 0.4; | |
| 88 | # | |
| 89 | # font_color = "rgba(235, 219, 178, 0.9)"; | |
| 90 | # font_family = "Maple Mono Bold"; | |
| 91 | # | |
| 92 | # outer_color = "rgba(168, 153, 132, 0.95)"; | |
| 93 | # inner_color = "rgba(102, 92, 84, 0.33)"; | |
| 94 | # check_color = "rgba(152, 151, 26, 0.95)"; | |
| 95 | # fail_color = "rgba(204, 36, 29, 0.95)"; | |
| 96 | # capslock_color = "rgba(215, 153, 33, 0.95)"; | |
| 97 | # bothlock_color = "rgba(215, 153, 33, 0.95)"; | |
| 98 | # | |
| 99 | # hide_input = false; | |
| 100 | # fade_on_empty = false; | |
| 101 | # placeholder_text = ''<i><span foreground="##fbf1c7">Enter Password</span></i>''; | |
| 102 | # | |
| 103 | # position = "0, ${if host == "laptop" then "50" else "200"}"; | |
| 104 | # halign = "center"; | |
| 105 | # valign = "bottom"; | |
| 106 | # } | |
| 107 | # ]; | |
| 108 | # | |
| 109 | # animation = [ "inputFieldColors, 0" ]; | |
| 110 | }; | |
| 111 | }; | |
| 112 | } |
users/natalie/home/hyprland/monitors.nix created+15| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland = { | |
| 4 | settings.monitor = [ ",preferred,auto,auto" ]; | |
| 5 | ||
| 6 | extraConfig = '' | |
| 7 | # hyprlang noerror true | |
| 8 | source = ~/.config/hypr/monitors.conf | |
| 9 | source = ~/.config/hypr/workspaces.conf | |
| 10 | # hyprlang noerror false | |
| 11 | ''; | |
| 12 | }; | |
| 13 | ||
| 14 | home.packages = with pkgs; [ nwg-displays ]; | |
| 15 | } |
users/natalie/home/hyprland/settings.nix created+120| ... | ... | @@ -0,0 +1,120 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland.settings = { | |
| 4 | # see: https://wiki.hypr.land/Configuring/Variables/#input | |
| 5 | input = { | |
| 6 | kb_layout = "us"; | |
| 7 | repeat_delay = 300; | |
| 8 | follow_mouse = 1; | |
| 9 | }; | |
| 10 | # https://wiki.hypr.land/Configuring/Variables/#general | |
| 11 | general = { | |
| 12 | "$mainMod" = "SUPER"; | |
| 13 | layout = "dwindle"; | |
| 14 | no_border_on_floating = false; | |
| 15 | ||
| 16 | }; | |
| 17 | # https://wiki.hypr.land/Configuring/Variables/#misc | |
| 18 | misc = { | |
| 19 | disable_hyprland_logo = true; | |
| 20 | always_follow_on_dnd = true; | |
| 21 | layers_hog_keyboard_focus = true; | |
| 22 | animate_manual_resizes = false; | |
| 23 | enable_swallow = true; | |
| 24 | swallow_regex = "^(ghostty)$"; | |
| 25 | focus_on_activate = true; | |
| 26 | new_window_takes_over_fullscreen = 2; | |
| 27 | middle_click_paste = false; | |
| 28 | }; | |
| 29 | ||
| 30 | # https://wiki.hypr.land/Configuring/Dwindle-Layout/ | |
| 31 | dwindle = { | |
| 32 | psuedotile = false; | |
| 33 | force_split = 2; | |
| 34 | preserve_split = true; | |
| 35 | }; | |
| 36 | # https://wiki.hypr.land/Configuring/Variables/#decoration | |
| 37 | decoration = { | |
| 38 | rounding = 0; | |
| 39 | rounding_power = 2.0; | |
| 40 | active_opacity = 1.0; | |
| 41 | inactive_opacity = 1.0; | |
| 42 | fullscreen_opacity = 1.0; | |
| 43 | dim_modal = true; | |
| 44 | dim_inactive = false; | |
| 45 | dim_strength = 0.5; | |
| 46 | dim_special = 0.2; | |
| 47 | dim_around = 0.4; | |
| 48 | screen_shader = ""; | |
| 49 | border_part_of_window = true; | |
| 50 | blur = { | |
| 51 | enabled = true; | |
| 52 | size = 8; | |
| 53 | passes = 1; | |
| 54 | brightness = 0.8172; | |
| 55 | contrast = 0.8916; | |
| 56 | ignore_opacity = true; | |
| 57 | noise = 0.0117; | |
| 58 | new_optimizations = true; | |
| 59 | xray = true; | |
| 60 | vibrancy = 0.1696; | |
| 61 | vibrancy_darkness = 0.0; | |
| 62 | special = false; | |
| 63 | popups = false; | |
| 64 | popups_ignorealpha = 0.2; | |
| 65 | input_methods = false; | |
| 66 | input_methods_ignorealpha = 0.2; | |
| 67 | }; | |
| 68 | ||
| 69 | shadow = { | |
| 70 | enabled = true; | |
| 71 | range = 4; | |
| 72 | render_power = 3; | |
| 73 | sharp = false; | |
| 74 | ignore_window = true; | |
| 75 | color = "0xee1a1a1a"; | |
| 76 | offset = "0 2"; | |
| 77 | scale = 1.0; | |
| 78 | }; | |
| 79 | ||
| 80 | }; | |
| 81 | # https://wiki.hypr.land/Configuring/Animations/ | |
| 82 | animations = { | |
| 83 | enabled = true; | |
| 84 | ||
| 85 | bezier = [ | |
| 86 | "easeOutQuint, 0.23, 1, 0.32, 1" | |
| 87 | "easeInOutCubic, 0.65, 0.05, 0.36, 1" | |
| 88 | "linear, 0, 0, 1, 1" | |
| 89 | "almostLinear, 0.5, 0.5, 0.75, 1" | |
| 90 | "quick, 0.15, 0, 0.1, 1" | |
| 91 | ]; | |
| 92 | ||
| 93 | animation = [ | |
| 94 | "global, 1, 10, default" | |
| 95 | "border, 1, 5.39, easeOutQuint" | |
| 96 | "windows, 1, 4.79, easeOutQuint" | |
| 97 | "windowsIn, 1, 4.1, easeOutQuint, popin 87%" | |
| 98 | "windowsOut, 1, 1.49, linear, popin 87%" | |
| 99 | "fadeIn, 1, 1.73, almostLinear" | |
| 100 | "fadeOut, 1, 1.46, almostLinear" | |
| 101 | "fade, 1, 3.03, quick" | |
| 102 | "layers, 1, 3.81, easeOutQuint" | |
| 103 | "layersIn, 1, 4, easeOutQuint, fade" | |
| 104 | "layersOut, 1, 1.5, linear, fade" | |
| 105 | "fadeLayersIn, 1, 1.79, almostLinear" | |
| 106 | "fadeLayersOut, 1, 1.39, almostLinear" | |
| 107 | "workspaces, 1, 1.94, almostLinear, fade" | |
| 108 | "workspacesIn, 1, 1.21, almostLinear, fade" | |
| 109 | "workspacesOut, 1, 1.94, almostLinear, fade" | |
| 110 | "zoomFactor, 1, 7, quick" | |
| 111 | ]; | |
| 112 | ||
| 113 | }; | |
| 114 | # https://wiki.hypr.land/Configuring/XWayland/ | |
| 115 | xwayland = { | |
| 116 | force_zero_scaling = true; | |
| 117 | }; | |
| 118 | }; | |
| 119 | ||
| 120 | } |
users/natalie/home/hyprland/variables.nix created+29| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | home.sessionVariables = { | |
| 4 | NIXOS_OZONE_WL = 1; | |
| 5 | __GL_GSYNC_ALLOWED = 0; | |
| 6 | __GL_VRR_ALLOWED = 0; | |
| 7 | # SSH_AUTH_SOCK = "/run/user/1000/ssh-agent"; | |
| 8 | DISABLE_QT5_COMPAT = 0; | |
| 9 | GDK_BACKEND = "wayland"; | |
| 10 | # ANKI_WAYLAND = 1; | |
| 11 | WLR_DRM_NO_ATOMIC = 1; | |
| 12 | # QT_AUTO_SCREEN_SCALE_FACTOR = 1; | |
| 13 | # QT_WAYLAND_DISABLE_WINDOWDECORATION = 1; | |
| 14 | QT_QPA_PLATFORM = "wayland"; | |
| 15 | QT_QPA_PLATFORMTHEME = "qt5ct"; | |
| 16 | # QT_STYLE_OVERRIDE = "kvantum"; | |
| 17 | MOZ_ENABLE_WAYLAND = 1; | |
| 18 | WLR_BACKEND = "vulkan"; | |
| 19 | WLR_RENDERER = "vulkan"; | |
| 20 | WLR_NO_HARDWARE_CURSORS = 1; | |
| 21 | XDG_CURRENT_DESKTOP = "Hyprland"; | |
| 22 | XDG_SESSION_TYPE = "wayland"; | |
| 23 | XDG_SESSION_DESKTOP = "Hyprland"; | |
| 24 | SDL_VIDEODRIVER = "wayland"; | |
| 25 | CLUTTER_BACKEND = "wayland"; | |
| 26 | # GTK_THEME = "Colloid-Green-Dark-Gruvbox"; | |
| 27 | # GRIMBLAST_HIDE_CURSOR = 0; | |
| 28 | }; | |
| 29 | } |
users/natalie/home/hyprland/windowrules.nix created+91| ... | ... | @@ -0,0 +1,91 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland.settings = { | |
| 4 | # https://wiki.hypr.land/Configuring/Window-Rules/#layer-rules | |
| 5 | windowrule = [ | |
| 6 | "float,class:^(mpv)$" | |
| 7 | "pin,class:^(rofi)$" | |
| 8 | "pin,class:^(waypaper)$" | |
| 9 | "float,title:^(Volume Control)$" | |
| 10 | ||
| 11 | # "float,title:^(Firefox — Sharing Indicator)$" | |
| 12 | # "move 0 0,title:^(Firefox — Sharing Indicator)$" | |
| 13 | # "size 700 450,title:^(Volume Control)$" | |
| 14 | # "move 40 55%,title:^(Volume Control)$" | |
| 15 | #"float, title:^(Picture-in-Picture)$" | |
| 16 | # "opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$" | |
| 17 | # "pin, title:^(Picture-in-Picture)$" | |
| 18 | # "opacity 1.0 override 1.0 override, title:^(.*imv.*)$" | |
| 19 | # "opacity 1.0 override 1.0 override, title:^(.*mpv.*)$" | |
| 20 | # "opacity 1.0 override 1.0 override, class:(Aseprite)" | |
| 21 | # "opacity 1.0 override 1.0 override, class:(Unity)" | |
| 22 | # "opacity 1.0 override 1.0 override, class:(zen)" | |
| 23 | # "opacity 1.0 override 1.0 override, class:(evince)" | |
| 24 | # "workspace 1, class:^(zen-beta)$" | |
| 25 | # "workspace 3, class:^(evince)$" | |
| 26 | # "workspace 4, class:^(Gimp-2.10)$" | |
| 27 | # "workspace 4, class:^(Aseprite)$" | |
| 28 | # "workspace 5, class:^(Audacious)$" | |
| 29 | # "workspace 5, class:^(Spotify)$" | |
| 30 | # "workspace 8, class:^(com.obsproject.Studio)$" | |
| 31 | # "workspace 10, class:^(discord)$" | |
| 32 | # "workspace 10, class:^(WebCord)$" | |
| 33 | # "idleinhibit focus, class:^(mpv)$" | |
| 34 | # "idleinhibit fullscreen, class:^(firefox)$" | |
| 35 | # "float,class:^(org.gnome.Calculator)$" | |
| 36 | # "float,class:^(waypaper)$" | |
| 37 | # "float,class:^(zenity)$" | |
| 38 | # "size 850 500,class:^(zenity)$" | |
| 39 | # "size 725 330,class:^(SoundWireServer)$" | |
| 40 | # "float,class:^(org.gnome.FileRoller)$" | |
| 41 | # "float,class:^(org.pulseaudio.pavucontrol)$" | |
| 42 | # "float,class:^(SoundWireServer)$" | |
| 43 | # "float,class:^(.sameboy-wrapped)$" | |
| 44 | # "float,class:^(file_progress)$" | |
| 45 | # "float,class:^(confirm)$" | |
| 46 | # "float,class:^(dialog)$" | |
| 47 | # "float,class:^(download)$" | |
| 48 | # "float,class:^(notification)$" | |
| 49 | # "float,class:^(error)$" | |
| 50 | # "float,class:^(confirmreset)$" | |
| 51 | # "float,title:^(Open File)$" | |
| 52 | # "float,title:^(File Upload)$" | |
| 53 | # "float,title:^(branchdialog)$" | |
| 54 | # "float,title:^(Confirm to replace files)$" | |
| 55 | # "float,title:^(File Operation Progress)$" | |
| 56 | # | |
| 57 | # "opacity 0.0 override,class:^(xwaylandvideobridge)$" | |
| 58 | # "noanim,class:^(xwaylandvideobridge)$" | |
| 59 | # "noinitialfocus,class:^(xwaylandvideobridge)$" | |
| 60 | # "maxsize 1 1,class:^(xwaylandvideobridge)$" | |
| 61 | # "noblur,class:^(xwaylandvideobridge)$" | |
| 62 | # | |
| 63 | # # No gaps when only | |
| 64 | # "bordersize 0, floating:0, onworkspace:w[t1]" | |
| 65 | # "rounding 0, floating:0, onworkspace:w[t1]" | |
| 66 | # "bordersize 0, floating:0, onworkspace:w[tg1]" | |
| 67 | # "rounding 0, floating:0, onworkspace:w[tg1]" | |
| 68 | # "bordersize 0, floating:0, onworkspace:f[1]" | |
| 69 | # "rounding 0, floating:0, onworkspace:f[1]" | |
| 70 | # Remove context menu transparency in chromium based apps | |
| 71 | # "opaque,class:^()$,title:^()$" | |
| 72 | # "noshadow,class:^()$,title:^()$" | |
| 73 | # "noblur,class:^()$,title:^()$" | |
| 74 | ]; | |
| 75 | ||
| 76 | # https://wiki.hypr.land/Configuring/Window-Rules/#layer-rules | |
| 77 | layerrule = [ | |
| 78 | "dimaround, vicinae" | |
| 79 | "dimaround, rofi" | |
| 80 | "dimaround, swaync-control-center" | |
| 81 | ]; | |
| 82 | ||
| 83 | # https://wiki.hypr.land/Configuring/Workspace-Rules/ | |
| 84 | # No gaps when only | |
| 85 | workspace = [ | |
| 86 | "w[t1], gapsout:0, gapsin:0" | |
| 87 | "w[tg1], gapsout:0, gapsin:0" | |
| 88 | "f[1], gapsout:0, gapsin:0" | |
| 89 | ]; | |
| 90 | }; | |
| 91 | } |