diff --git a/configuration.nix b/configuration.nix index 70dadd0..6565fe7 100644 --- a/configuration.nix +++ b/configuration.nix @@ -70,104 +70,118 @@ backupFileExtension = "not-nix"; # Add this line users.jeremy = { pkgs, ... }: { home.stateVersion = "25.11"; - wayland.windowManager.hyprland = { # Configure hyprland - enable = true; - settings = { - general = { - gaps_in = 0; - gaps_out = 0; - border_size = 2; - }; - decoration = { - rounding = 10; - # active_opacity = 0.9; - # inactive_opacity = 0.8; - # blur = { - # enabled = true; - # size = 10; - # passes = 3; - # vibrancy = 1; - # new_optimizations = true; - # ignore_opacity = true; - # noise = 0; - # brightness = 0.9; - # }; - }; - misc = { - key_press_enables_dpms = true; - mouse_move_enables_dpms = true; - }; - "$mainMod" = "SUPER"; - bind = [ - "$mainMod, C, exec, alacritty" - "$mainMod, Q, killactive," - "$mainMod, grave, exec, rofi -show drun" - "$mainMod, F, fullscreen" - "$mainMod, V, togglefloating," - ",F4, exec, rofi -show combi -combi-modes 'drun,filebrowser'" - "$mainMod, A, togglesplit" - ", PRINT, exec, hyprshot -zm region -o ~/pics/screenshots/" - "SHIFT, PRINT, exec, hyprshot -zm window -o ~/pics/screenshots/" - "SUPER, PRINT, exec, hyprshot -zm output -o ~/pics/screenshots/" - "$mainMod, N, exec, codium ~/etc/nixos/configuration.nix" - "$mainMod, L, exec, sleep 1s; hyprctl dispatch dpms off" # screen off + # wayland.windowManager.hyprland = { # Configure hyprland + # enable = true; + # settings = { + # general = { + # gaps_in = 0; + # gaps_out = 0; + # border_size = 2; + # }; + # decoration = { + # rounding = 10; + # # active_opacity = 0.9; + # # inactive_opacity = 0.8; + # # blur = { + # # enabled = true; + # # size = 10; + # # passes = 3; + # # vibrancy = 1; + # # new_optimizations = true; + # # ignore_opacity = true; + # # noise = 0; + # # brightness = 0.9; + # # }; + # }; + # misc = { + # key_press_enables_dpms = true; + # mouse_move_enables_dpms = true; + # }; + # "$mainMod" = "SUPER"; + # bind = [ + # "$mainMod, C, exec, alacritty" + # "$mainMod, Q, killactive," + # "$mainMod, grave, exec, rofi -show drun" + # "$mainMod, F, fullscreen" + # "$mainMod, V, togglefloating," + # ",F4, exec, rofi -show combi -combi-modes 'drun,filebrowser'" + # "$mainMod, A, togglesplit" + # ", PRINT, exec, hyprshot -zm region -o ~/pics/screenshots/" + # "SHIFT, PRINT, exec, hyprshot -zm window -o ~/pics/screenshots/" + # "SUPER, PRINT, exec, hyprshot -zm output -o ~/pics/screenshots/" + # "$mainMod, N, exec, codium ~/etc/nixos/configuration.nix" + # "$mainMod, L, exec, sleep 1s; hyprctl dispatch dpms off" # screen off - # Move between windows - "$mainMod, h, movefocus, l" - "$mainMod, j, movefocus, d" - "$mainMod, k, movefocus, u" - "$mainMod, l, movefocus, r" + # # Move between windows + # "$mainMod, h, movefocus, l" + # "$mainMod, j, movefocus, d" + # "$mainMod, k, movefocus, u" + # "$mainMod, l, movefocus, r" - # Switch workspaces with mainMod + [0-9] - "$mainMod, 1, workspace, 1" - "$mainMod, 2, workspace, 2" - "$mainMod, 3, workspace, 3" - "$mainMod, 4, workspace, 4" - "$mainMod, 5, workspace, 5" - "$mainMod, 6, workspace, 6" - "$mainMod, 7, workspace, 7" - "$mainMod, 8, workspace, 8" - "$mainMod, 9, workspace, 9" - "$mainMod, 0, workspace, 10" + # # Switch workspaces with mainMod + [0-9] + # "$mainMod, 1, workspace, 1" + # "$mainMod, 2, workspace, 2" + # "$mainMod, 3, workspace, 3" + # "$mainMod, 4, workspace, 4" + # "$mainMod, 5, workspace, 5" + # "$mainMod, 6, workspace, 6" + # "$mainMod, 7, workspace, 7" + # "$mainMod, 8, workspace, 8" + # "$mainMod, 9, workspace, 9" + # "$mainMod, 0, workspace, 10" - # Move active window to a workspace with mainMod + SHIFT + [0-9] - "$mainMod SHIFT, 1, movetoworkspace, 1" - "$mainMod SHIFT, 2, movetoworkspace, 2" - "$mainMod SHIFT, 3, movetoworkspace, 3" - "$mainMod SHIFT, 4, movetoworkspace, 4" - "$mainMod SHIFT, 5, movetoworkspace, 5" - "$mainMod SHIFT, 6, movetoworkspace, 6" - "$mainMod SHIFT, 7, movetoworkspace, 7" - "$mainMod SHIFT, 8, movetoworkspace, 8" - "$mainMod SHIFT, 9, movetoworkspace, 9" - "$mainMod SHIFT, 0, movetoworkspace, 10" - ]; - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - binde = [ - ", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-" - ]; - bindl = [ - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ]; - monitor = [ - "DP-2, 2560x1440@170, 0x0, 1" - "HDMI-A-1, 2560x1440@144, 2560x0, 1" - ]; - windowrulev2 = [ - "tile, initialClass:^(Godot)$, initialTitle: ^(Godot)$" - "float, class:^(Godot)$, title:^(?!(.*Godot)).*$" - "float, initialTitle:^(Godot)$, class:^(?!(Godot)).*$" - ]; - exec-once = [ - "swaybg -i ~/.wallpaper -m fill" - "nextcloud --background" + # # Move active window to a workspace with mainMod + SHIFT + [0-9] + # "$mainMod SHIFT, 1, movetoworkspace, 1" + # "$mainMod SHIFT, 2, movetoworkspace, 2" + # "$mainMod SHIFT, 3, movetoworkspace, 3" + # "$mainMod SHIFT, 4, movetoworkspace, 4" + # "$mainMod SHIFT, 5, movetoworkspace, 5" + # "$mainMod SHIFT, 6, movetoworkspace, 6" + # "$mainMod SHIFT, 7, movetoworkspace, 7" + # "$mainMod SHIFT, 8, movetoworkspace, 8" + # "$mainMod SHIFT, 9, movetoworkspace, 9" + # "$mainMod SHIFT, 0, movetoworkspace, 10" + # ]; + # bindm = [ + # "$mainMod, mouse:272, movewindow" + # "$mainMod, mouse:273, resizewindow" + # ]; + # binde = [ + # ", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+" + # ", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-" + # ]; + # bindl = [ + # ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + # ]; + # monitor = [ + # "DP-2, 2560x1440@170, 0x0, 1" + # "HDMI-A-1, 2560x1440@144, 2560x0, 1" + # ]; + # windowrulev2 = [ + # "tile, initialClass:^(Godot)$, initialTitle: ^(Godot)$" + # "float, class:^(Godot)$, title:^(?!(.*Godot)).*$" + # "float, initialTitle:^(Godot)$, class:^(?!(Godot)).*$" + # ]; + # exec-once = [ + # "swaybg -i ~/.wallpaper -m fill" + # "nextcloud --background" + # ]; + # }; + # }; + + wayland.windowManager.sway = { + enable = true; + config = rec { + modifier = "Mod4"; + # Use kitty as default terminal + terminal = "kitty"; + startup = [ + # Launch Firefox on start + {command = "firefox";} ]; }; }; + programs.neovim = { # Configure nvim enable = true; extraConfig = '' @@ -199,60 +213,60 @@ } ]; }; - programs.rofi = { # Rofi config - enable = true; - theme = "dmenu"; - font = "sans-serif"; - package = pkgs.rofi; - modes = [ - "drun" - "run" - "window" - "ssh" - ]; - extraConfig = { - show-icons = true; - display-drun = ""; - drun-display-format = "{name}"; - }; - }; - programs.waybar.enable = true; - programs.waybar.settings.main = { - layer = "top"; - position = "top"; - reload_style_on_change = true; - modules-left = []; - modules-center = ["hyprland/workspaces"]; - modules-right = [ - "tray" - "bluetooth" - "network" - "clock" - ]; - }; - home.pointerCursor = - let - getFrom = url: hash: name: { - gtk.enable = true; - x11.enable = true; - name = name; - size = 48; - package = - pkgs.runCommand "moveUp" {} '' - mkdir -p $out/share/icons - ln -s ${pkgs.fetchzip { - url = url; - hash = hash; - }} $out/share/icons/${name} - ''; - }; - in - getFrom - "https://github.com/ful1e5/fuchsia-cursor/releases/download/v2.0.0/Fuchsia-Pop.tar.gz" - "sha256-BvVE9qupMjw7JRqFUj1J0a4ys6kc9fOLBPx2bGaapTk=" - "Fuchsia-Pop"; - }; + # programs.rofi = { # Rofi config + # enable = true; + # theme = "dmenu"; + # font = "sans-serif"; + # package = pkgs.rofi; + # modes = [ + # "drun" + # "run" + # "window" + # "ssh" + # ]; + # extraConfig = { + # show-icons = true; + # display-drun = ""; + # drun-display-format = "{name}"; + # }; + # }; + # programs.waybar.enable = true; + # programs.waybar.settings.main = { + # layer = "top"; + # position = "top"; + # reload_style_on_change = true; + # modules-left = []; + # modules-center = ["hyprland/workspaces"]; + # modules-right = [ + # "tray" + # "bluetooth" + # "network" + # "clock" + # ]; + # }; + # home.pointerCursor = + # let + # getFrom = url: hash: name: { + # gtk.enable = true; + # x11.enable = true; + # name = name; + # size = 48; + # package = + # pkgs.runCommand "moveUp" {} '' + # mkdir -p $out/share/icons + # ln -s ${pkgs.fetchzip { + # url = url; + # hash = hash; + # }} $out/share/icons/${name} + # ''; + # }; + # in + # getFrom + # "https://github.com/ful1e5/fuchsia-cursor/releases/download/v2.0.0/Fuchsia-Pop.tar.gz" + # "sha256-BvVE9qupMjw7JRqFUj1J0a4ys6kc9fOLBPx2bGaapTk=" + # "Fuchsia-Pop"; }; + }; # Enable touchpad support (enabled default in most desktopManager). # services.libinput.enable = true; @@ -283,7 +297,7 @@ ollama-rocm python3 direnv # develop projects in custom environments - hyprshot # screenshots + # hyprshot # screenshots typst # typst compilation tinymist # typst previews binaryninja-free # broke ahh cracker @@ -316,8 +330,20 @@ pavucontrol # PulseAudio Volume Control bluez # Bluetooth support bluez-tools # Bluetooth tools + + grim # screenshot functionality + slurp # screenshot functionality + wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout + mako # notification system developed by swaywm maintainer ]; + + programs.sway = { + enable = true; + wrapperFeatures.gtk = true; + }; + # services.gnome.gnome-keyring.enable = true; + boot.initrd.kernelModules = [ "amdgpu" ]; environment.sessionVariables = { @@ -356,7 +382,7 @@ }; services.udisks2.enable = true; # Enable gnome-disks services.displayManager.sddm.enable = true; # Enable display manager - services.displayManager.sddm.wayland.enable = true; # Wayland - hyprland + services.displayManager.sddm.wayland.enable = true; # Wayland services.mullvad-vpn.package = pkgs.mullvad-vpn; # arr services.resolved.enable = true; # for mullvad