diff --git a/flake.lock b/flake.lock index fafb3a7..ef5deb5 100755 --- a/flake.lock +++ b/flake.lock @@ -294,11 +294,11 @@ ] }, "locked": { - "lastModified": 1754451631, - "narHash": "sha256-xstEcMQWmT43VcTibcOvOd7naoZkA/jJoxWFvvI7CKg=", + "lastModified": 1754457347, + "narHash": "sha256-QN9yZ1L5EmR16NNM+hNNzMjARk+FPjUeSE/ds4Kms0E=", "owner": "nix-community", "repo": "home-manager", - "rev": "8f02266b8e49c1c6bbe122b5602e1c877e42c5be", + "rev": "ad5d2b4aa770fdc74c80fd682fee0b00a8ad7991", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 9aa86f4..1b89e8f 100755 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,10 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + # hyprdots = { + # url = "github:JaKooLit/Hyprland-Dots"; + # flake = false; + # }; # nixvim = { # url = "github:xbazzi/nixvim"; @@ -75,6 +79,23 @@ ./system/default.nix lanzaboote.nixosModules.lanzaboote + # Link Hyprland-Dots configs + # { + # home.file = { + # ".config/hypr".source = "${hyprdots}/hypr"; + # ".config/waybar".source = "${hyprdots}/waybar"; + # ".config/rofi".source = "${hyprdots}/rofi"; + # ".config/swww".source = "${hyprdots}/swww"; + # ".config/wallust".source = "${hyprdots}/wallust"; + # }; + + # # Install extra tools from Hyprland-Dots requirements + # home.packages = with pkgs; [ + # waybar rofi-wayland swww wallust + # grim slurp wl-clipboard + # ]; + # } + ({ pkgs, lib, ... }: { environment.systemPackages = [ @@ -109,7 +130,7 @@ home-manager.useGlobalPkgs = true; home-manager.users.xbazzi = { - nixpkgs.config.allowUnfree = true; + nixpkgs.config.allowUnfree = true; #home.packages = [ #]; }; diff --git a/home/dconf.nix b/home/dconf.nix index a5a2f77..028ebfa 100644 --- a/home/dconf.nix +++ b/home/dconf.nix @@ -3,103 +3,103 @@ { dconf = { enable = true; - settings = { - "org/gnome/settings-daemon/plugins/media-keys" = { - custom-keybindings = [ - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8/" - ]; - }; + # settings = { + # "org/gnome/settings-daemon/plugins/media-keys" = { + # custom-keybindings = [ + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/" + # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8/" + # ]; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { - binding = "k"; - command = "kitty"; - name = "open-terminal"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + # binding = "k"; + # command = "kitty"; + # name = "open-terminal"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { - binding = "c"; - command = "code"; - name = "open-vscode"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { + # binding = "c"; + # command = "code"; + # name = "open-vscode"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { - binding = "e"; - command = "thunderbird"; - name = "open-thunderbird"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { + # binding = "e"; + # command = "thunderbird"; + # name = "open-thunderbird"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = { - binding = "f"; - command = "kitty -- zsh -c 'exec yazi; exec zsh'"; - name = "open-yazi"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = { + # binding = "f"; + # command = "kitty -- zsh -c 'exec yazi; exec zsh'"; + # name = "open-yazi"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = { - binding = "b"; - command = "kitty -- zsh -c 'btop; exec zsh'"; - name = "open-btop"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = { + # binding = "b"; + # command = "kitty -- zsh -c 'btop; exec zsh'"; + # name = "open-btop"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5" = { - binding = "i"; - command = "brave"; - name = "open-brave"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5" = { + # binding = "i"; + # command = "brave"; + # name = "open-brave"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6" = { - binding = "y"; - command = "kitty --start-as=normal -- zsh -ic 'repos'"; - name = "open-projects"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6" = { + # binding = "y"; + # command = "kitty --start-as=normal -- zsh -ic 'repos'"; + # name = "open-projects"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7" = { - binding = "q"; - command = "true"; - name = "disable-ctrl-q"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7" = { + # binding = "q"; + # command = "true"; + # name = "disable-ctrl-q"; + # }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8" = { - binding = "u"; - command = "kitty --start-as=normal -- zsh -ic 'home'"; - name = "open-home"; - }; + # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8" = { + # binding = "u"; + # command = "kitty --start-as=normal -- zsh -ic 'home'"; + # name = "open-home"; + # }; - "org/gnome/shell" = { - disable-user-extensions = false; # enables user extensions - enabled-extensions = [ - # Put UUIDs of extensions that you want to enable here. - # If the extension you want to enable is packaged in nixpkgs, - # you can easily get its UUID by accessing its extensionUuid - # field (look at the following example). - pkgs.gnomeExtensions.gsconnect.extensionUuid - pkgs.gnomeExtensions.blur-my-shell.extensionUuid - pkgs.gnomeExtensions.pop-shell.extensionUuid - pkgs.gnomeExtensions.tactile.extensionUuid - pkgs.gnomeExtensions.pop-shell.extensionUuid - pkgs.gnomeExtensions.space-bar.extensionUuid - pkgs.gnomeExtensions.undecorate.extensionUuid - pkgs.gnomeExtensions.pastafarian-holy-days.extensionUuid - pkgs.gnomeExtensions.just-perfection.extensionUuid - ]; - }; + # "org/gnome/shell" = { + # disable-user-extensions = false; # enables user extensions + # enabled-extensions = [ + # # Put UUIDs of extensions that you want to enable here. + # # If the extension you want to enable is packaged in nixpkgs, + # # you can easily get its UUID by accessing its extensionUuid + # # field (look at the following example). + # pkgs.gnomeExtensions.gsconnect.extensionUuid + # pkgs.gnomeExtensions.blur-my-shell.extensionUuid + # pkgs.gnomeExtensions.pop-shell.extensionUuid + # pkgs.gnomeExtensions.tactile.extensionUuid + # pkgs.gnomeExtensions.pop-shell.extensionUuid + # pkgs.gnomeExtensions.space-bar.extensionUuid + # pkgs.gnomeExtensions.undecorate.extensionUuid + # pkgs.gnomeExtensions.pastafarian-holy-days.extensionUuid + # pkgs.gnomeExtensions.just-perfection.extensionUuid + # ]; + # }; - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - }; + # "org/gnome/desktop/interface" = { + # color-scheme = "prefer-dark"; + # }; - # Configure individual extensions - "org/gnome/shell/extensions/blur-my-shell" = { - brightness = 0.75; - noise-amount = 0; - }; - }; + # # Configure individual extensions + # "org/gnome/shell/extensions/blur-my-shell" = { + # brightness = 0.75; + # noise-amount = 0; + # }; + # }; }; } diff --git a/home/default.nix b/home/default.nix index 7751915..3fbb84c 100755 --- a/home/default.nix +++ b/home/default.nix @@ -9,8 +9,9 @@ ./starship.nix #./vscode.nix ./packages.nix + ./hyprlock.nix ./waybar.nix - ./dconf.nix + # ./dconf.nix ./git.nix ./hyprland.nix ./zsh.nix diff --git a/home/gtk.nix b/home/gtk.nix index 58d3d6e..0af9b2a 100644 --- a/home/gtk.nix +++ b/home/gtk.nix @@ -1,7 +1,6 @@ { inputs, pkgs, lib, config, ... }: { - gtk = { enable = true; theme = { diff --git a/home/hypridle.nix b/home/hypridle.nix new file mode 100644 index 0000000..87c7da7 --- /dev/null +++ b/home/hypridle.nix @@ -0,0 +1,30 @@ +{ inputs, pkgs, lib, config, ... }: + +{ + programs.hypridle = { + enable = true; + + settings = { + general = { + lock_cmd = "hyprctl dispatch exec 'hyprlock --immediate'"; + before_sleep_cmd = "hyprctl dispatch exec 'hyprlock --immediate'"; + after_sleep_cmd = "notify-send 'πŸ’‘ Welcome back, badman!'"; + }; + + listener = [ + { + timeout = 270; # 4.5 min β€” warn before lock + on-timeout = "notify-send 'πŸ”’ Locking in 30s...'"; + } + { + timeout = 300; # 5 min β€” lock screen + on-timeout = "hyprctl dispatch exec 'hypelock --immediate'"; + } + { + timeout = 900; # 15 min β€” suspend + on-timeout = "systemctl suspend"; + } + ]; + }; + }; +} diff --git a/home/hyprland.nix b/home/hyprland.nix index d10d3b6..9a65cdb 100644 --- a/home/hyprland.nix +++ b/home/hyprland.nix @@ -1,106 +1,170 @@ { config, pkgs, inputs, ... }: { - wayland.windowManager.hyprland.settings = { - "$mod" = "SUPER"; + wayland.windowManager.hyprland = { + settings = { + "$mod" = "SUPER"; - monitor = [ - "DP-1, 1920x1080@144, 0x0, 1" - "DP-3, 2560x1440@240, 1920x0, 1" - "HMDI-A-1, 3440x1440@160, 4480x0, 1" - # "DP-3,addreserved,30,0,0,0" - ]; + monitor = [ + "DP-1, 1920x1080@144, 0x0, 1" + "DP-3, 2560x1440@240, 1920x0, 1" + "HMDI-A-1, 3440x1440@160, 4480x0, 1" + # "DP-3,addreserved,30,0,0,0" + ]; - bind = - [ - # "$mod, k, exec, kitty" - "$mod, h, movefocus, l" - "$mod, l, movefocus, r" - "$mod, k, movefocus, u" - "$mod, j, movefocus, d" - "$mod, q, killactive" + bind = + [ + # "$mod, k, exec, kitty" + "$mod, h, movefocus, l" + "$mod, l, movefocus, r" + "$mod, k, movefocus, u" + "$mod, j, movefocus, d" + "$mod, q, killactive" - "$mod, f, fullscreen, 0" - - "$mod, d, exec, wofi --show drun" - - "$mod, t, exec, kitty --single-instance" - "$mod, c, exec, code" - "$mod SHIFT, l, movewindow, mon:-1" - "$mod SHIFT, h, movewindow, mon:+1" - - ", Print, exec, grimblast copy area" - - "$mod, e, exec, thunderbird" - "$mod, r, exec, kitty -- zsh -c 'exec yazi; exec zsh'" - "$mod, b, exec, kitty -- zsh -c 'btop; exec zsh'" - "$mod, y, exec, kitty --start-as=normal -- zsh -ic 'repos'" - "$mod, i, exec, brave" - "$mod, u, exec, kitty --start-as=normal -- zsh -ic 'home'" - - "$mod, s, togglespecialworkspace, special1" - "$mod, v, togglespecialworkspace, special2" - - "$mod, p, swapwindow, l" - - # Log out - # "$mod, -, exec, hyprctl dispatch exit" - "$mod, _, exec, hyprctl dispatch exit" + "$mod, 0, layoutmsg, rollnext" - # Shift+Print β†’ select area and copy - "SHIFT, Print, exec, grimblast copy area" + "$mod, f, fullscreen, 0" - # Ctrl+Print β†’ select window and copy - "CTRL, Print, exec, grimblast copy active" - ] - ++ ( - # workspaces - # binds $mod + [shift +] {1..9} to [move to] workspace {1..9} - builtins.concatLists (builtins.genList (i: - let ws = i + 1; - in [ - "$mod, code:1${toString i}, workspace, ${toString ws}" - "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" - ] - ) + "$mod, d, exec, wofi --show drun" + + "$mod, t, exec, kitty --single-instance" + "$mod, c, exec, code" + "$mod SHIFT, l, movewindow, mon:-1" + "$mod SHIFT, h, movewindow, mon:+1" + + ", Print, exec, grimblast copy area" + + "$mod, e, exec, thunderbird" + "$mod, r, exec, kitty -- zsh -c 'exec yazi; exec zsh'" + "$mod, b, exec, kitty -- zsh -c 'btop; exec zsh'" + "$mod SHIFT, n, exec, kitty --start-as=normal -- zsh -ic 'code ~/nixos-config && exit'" + + "$mod, i, exec, brave" + "$mod, u, exec, kitty --start-as=normal -- zsh -ic 'home'" + "$mod, y, exec, kitty --start-as=normal -- zsh -ic 'repos'" + + "$mod, s, togglespecialworkspace, special1" + "$mod, v, togglespecialworkspace, special2" + + "$mod, p, swapwindow, l" + + # Mouse stuff (Ew... I know) + # "$mod, mouse:272, movewindow" + # "$mod, mouse:273, resizewindow" + # "ALT, mouse:272, resizewindow" + + # Log out + # "$mod, -, exec, hyprctl dispatch exit" + "$mod SHIFT ALT, x, exec, hyprctl dispatch exit" + + "$mod ALT, L, exec, hyprlock --immediate" + + # Shift+Print β†’ select area and copy + "SHIFT, Print, exec, grimblast copy area" + + # Ctrl+Print β†’ select window and copy + "CTRL, Print, exec, grimblast copy active" + ] + ++ ( + # workspaces + # binds $mod + [shift +] {1..9} to [move to] workspace {1..9} + builtins.concatLists (builtins.genList (i: + let ws = i + 1; + in [ + "$mod, code:1${toString i}, workspace, ${toString ws}" + "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" + ] + ) 9) - ); + ); - decoration = { - active_opacity = 1.0; - inactive_opacity = 0.85; - rounding = 5; - # blur = { - # enabled = true; - # size = 9; - # passes = 1; - # }; - shadow = { - enabled = true; - color = "rgba(2e3440aa)"; - range = 4; - render_power = 3; + general = { + layout = "master"; }; - # border_size = 3; - }; - animations = { - enabled = true; - animation = "fade, 1, 5, default"; - }; + decoration = { + active_opacity = 1.0; + inactive_opacity = 1.0; + rounding = 5; - general = { - # allow_reserved_areas = true; - }; + blur = { + enabled = true; + size = 3; + passes = 2; + brightness = 1; + contrast = 1.4; + ignore_opacity = true; + noise = 0; + new_optimizations = true; + xray = true; + }; + + shadow = { + enabled = true; + + ignore_window = true; + offset = "0 2"; + range = 20; + render_power = 3; + color = "rgba(00000055)"; + }; + }; + + animations = { + enabled = true; + + bezier = [ + "fluent_decel, 0, 0.2, 0.4, 1" + "easeOutCirc, 0, 0.55, 0.45, 1" + "easeOutCubic, 0.33, 1, 0.68, 1" + "fade_curve, 0, 0.55, 0.45, 1" + ]; + + animation = [ + # name, enable, speed, curve, style + + # Windows + "windowsIn, 0, 4, easeOutCubic, popin 20%" # window open + "windowsOut, 0, 4, fluent_decel, popin 80%" # window close. + "windowsMove, 1, 2, fluent_decel, slide" # everything in between, moving, dragging, resizing. + + # Fade + "fadeIn, 1, 3, fade_curve" # fade in (open) -> layers and windows + "fadeOut, 1, 3, fade_curve" # fade out (close) -> layers and windows + "fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity + "fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows + "fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows + # "border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed + # "borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop + "workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert + ]; + }; + + exec-once = [ + "sleep 2 && waybar &" + "hypridle &" + # "waybar &" + "eval $(gnome-keyring-daemon --start --components=secrets,ssh,gpg)" + # "hash dbus-update-activation-environment 2>/dev/null" + "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + + "nm-applet &" + "poweralertd &" + # "wl-clip-persist --clipboard both &" + # "wl-paste --watch cliphist store &" + # "waybar &" + # "swaync &" + # "hyprctl setcursor Bibata-Modern-Ice 24 &" + # "swww-daemon &" + + # "hyprlock" + ]; + + plugins = [ + # inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars + ]; + }; }; - - wayland.windowManager.hyprland.settings.exec-once = [ - "sleep 2 && waybar" - "eval $(gnome-keyring-daemon --start --components=secrets,ssh,gpg)" - ]; - - wayland.windowManager.hyprland.plugins = [ - # inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars - ]; -} +} \ No newline at end of file diff --git a/home/hyprlock.nix b/home/hyprlock.nix new file mode 100644 index 0000000..33f87a8 --- /dev/null +++ b/home/hyprlock.nix @@ -0,0 +1,108 @@ +{ inputs, pkgs, ... }: + +{ + programs.hyprlock = { + enable = true; + + # package = inputs.hyprlock.packages.${pkgs.system}.hyprlock; + + settings = { + general = { + hide_cursor = true; + no_fade_in = false; + disable_loading_bar = true; + ignore_empty_input = true; + fractional_scaling = 0; + }; + + background = [ + { + monitor = ""; + path = "${./wallpapers/world_map_of_cpp_STL_algorithms.png}"; + blur_passes = 2; + contrast = 0.8916; + brightness = 0.8172; + vibrancy = 0.1696; + vibrancy_darkness = 0.0; + } + ]; + + shape = [ + # User box + { + monitor = ""; + size = "300, 50"; + color = "rgba(102, 92, 84, 0.33)"; + rounding = 10; + border_color = "rgba(255, 255, 255, 0)"; + position = "0, 281"; + halign = "center"; + valign = "bottom"; + } + ]; + + label = [ + # Time + { + monitor = ""; + text = ''cmd[update:1000] echo "$(date +'%k:%M')"''; + color = "rgba(235, 219, 178, 0.9)"; + font_size = 115; + font_family = "Maple Mono Bold"; + shadow_passes = 3; + position = "0, 281"; + halign = "center"; + valign = "top"; + } + # Date + { + monitor = ""; + text = ''cmd[update:1000] echo "- $(date +'%A, %B %d') -" ''; + color = "rgba(235, 219, 178, 0.9)"; + font_size = 18; + font_family = "Maple Mono"; + shadow_passes = 3; + position = "0, 281"; + halign = "center"; + valign = "top"; + } + # Username + { + monitor = ""; + text = " $USER"; + color = "rgba(235, 219, 178, 1)"; + font_size = 15; + font_family = "Maple Mono Bold"; + # position = "0, ${if host == "laptop" then "131" else "281"}"; + position = "0, 281"; + halign = "center"; + valign = "bottom"; + } + ]; + + input-field = [ + { + monitor = ""; + size = "300, 50"; + outline_thickness = 1; + rounding = 10; + dots_size = 0.25; + dots_spacing = 0.4; + dots_center = true; + outer_color = "rgba(102, 92, 84, 0.33)"; + inner_color = "rgba(102, 92, 84, 0.33)"; + color = "rgba(235, 219, 178, 0.9)"; + font_color = "rgba(235, 219, 178, 0.9)"; + font_size = 14; + font_family = "Maple Mono Bold"; + fade_on_empty = false; + placeholder_text = ''Enter Password''; + hide_input = false; + position = "0, 281"; + halign = "center"; + valign = "bottom"; + } + ]; + }; + }; +} \ No newline at end of file diff --git a/home/hyprlock.nix.bak b/home/hyprlock.nix.bak new file mode 100644 index 0000000..ddb4d09 --- /dev/null +++ b/home/hyprlock.nix.bak @@ -0,0 +1,26 @@ +{ config, pkgs, inputs, ... }: + +{ + programs.hyprlock = { + enable = true; + settings = { + # minimal, visible UI so yuh nuh think it freeze + general = { disable_loading_bar = false; }; + background = [{ + color = "rgba(0, 0, 0, 0.7)"; # darken so desktop not peeking through + blur_passes = 0; + }]; + input-field = [{ + size = "300, 50"; + outline_thickness = 2; + placeholder_text = "Type password…"; + position = "0, -100"; + }]; + label = [{ + text = "οŒƒ Locked"; + font_size = 20; + position = "0, -170"; + }]; + }; + }; +} diff --git a/home/packages.nix b/home/packages.nix index 03ebc13..6e86206 100755 --- a/home/packages.nix +++ b/home/packages.nix @@ -1,19 +1,21 @@ -{ inputs, pkgs, lib, config, ... }: +{ inputs, pkgs, ... }: { home.packages = with pkgs; [ hello tmux - gnomeExtensions.appindicator + # gnomeExtensions.appindicator wofi waybar # eww - gnome-keyring + # gnome-keyring libsecret grim # for screenshots slurp # for selecting area grimblast # easier syntax for grim+slurp wl-clipboard # copy screenshot to clipboard + hypridle + hyprlock # (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) #zsh-powerlevel10k diff --git a/home/wallpapers/world_map_of_cpp_STL_algorithms.png b/home/wallpapers/world_map_of_cpp_STL_algorithms.png new file mode 100644 index 0000000..990ad20 Binary files /dev/null and b/home/wallpapers/world_map_of_cpp_STL_algorithms.png differ diff --git a/home/waybar.nix b/home/waybar.nix index b562881..25728d5 100644 --- a/home/waybar.nix +++ b/home/waybar.nix @@ -3,24 +3,30 @@ { programs.waybar = { enable = true; + # settings = [ + # { + # main.modules-right = ["clock"]; + # layer = "top"; + # position = "top"; + # modules-left = [ "hyprland/workspaces" "clock" ]; + # modules-center = [ "window" ]; + # modules-right = [ "battery" "pulseaudio" "network" ]; + # } + # ]; + # style = '' + # * { + # font-family: "JetBrainsMono Nerd Font", monospace; + # font-size: 12px; + # } + # #workspaces button.active { + # background-color: #ff5555; + # } + # ''; + # settings = [ ./waybar/config.jsonc ]; settings = [ - { - main.modules-right = ["clock"]; - layer = "top"; - position = "top"; - modules-left = [ "hyprland/workspaces" "clock" ]; - modules-center = [ "window" ]; - modules-right = [ "battery" "pulseaudio" "network" ]; - } + (builtins.fromJSON (builtins.readFile ./waybar/config.json)) ]; - style = '' - * { - font-family: "JetBrainsMono Nerd Font", monospace; - font-size: 12px; - } - #workspaces button.active { - background-color: #ff5555; - } - ''; + + style = ./waybar/style.css; }; } \ No newline at end of file diff --git a/home/waybar/config.json b/home/waybar/config.json new file mode 100644 index 0000000..f5e3b90 --- /dev/null +++ b/home/waybar/config.json @@ -0,0 +1,34 @@ +{ + "layer": "top", + "position": "top", + "height": 32, + "spacing": 8, + + "modules-left": ["hyprland/workspaces", "custom/windowtitle"], + "modules-center": ["clock"], + "modules-right": ["cpu", "memory", "temperature", "pulseaudio", "network", "tray"], + + "hyprland/workspaces": { + "format": "{icon}", + "format-icons": { + "1": "ο„ ", + "2": "", + "3": "ο„‘", + "4": "ο†Ό", + "5": "ο€½" + } + }, + + "custom/windowtitle": { + "format": "{}", + "exec": "hyprctl activewindow -j | jq -r .title", + "interval": 1 + }, + + "clock": { "format": "ο€— %H:%M %d/%m/%Y" }, + "cpu": { "format": "ο‹› {usage}%" }, + "memory": { "format": " {used:0.1f}G" }, + "temperature": { "hwmon-path": "/sys/class/thermal/thermal_zone0/temp", "format": " {temperatureC}Β°C" }, + "pulseaudio": { "format": "{icon} {volume}%", "format-icons": ["", "ο€§", ""] }, + "network": { "format-wifi": " {essid} {signalStrength}%", "format-ethernet": "σ°ˆ€ {ifname}", "format-disconnected": "σ°–ͺ" } +} diff --git a/home/waybar/config.jsonc b/home/waybar/config.jsonc new file mode 100644 index 0000000..f5e3b90 --- /dev/null +++ b/home/waybar/config.jsonc @@ -0,0 +1,34 @@ +{ + "layer": "top", + "position": "top", + "height": 32, + "spacing": 8, + + "modules-left": ["hyprland/workspaces", "custom/windowtitle"], + "modules-center": ["clock"], + "modules-right": ["cpu", "memory", "temperature", "pulseaudio", "network", "tray"], + + "hyprland/workspaces": { + "format": "{icon}", + "format-icons": { + "1": "ο„ ", + "2": "", + "3": "ο„‘", + "4": "ο†Ό", + "5": "ο€½" + } + }, + + "custom/windowtitle": { + "format": "{}", + "exec": "hyprctl activewindow -j | jq -r .title", + "interval": 1 + }, + + "clock": { "format": "ο€— %H:%M %d/%m/%Y" }, + "cpu": { "format": "ο‹› {usage}%" }, + "memory": { "format": " {used:0.1f}G" }, + "temperature": { "hwmon-path": "/sys/class/thermal/thermal_zone0/temp", "format": " {temperatureC}Β°C" }, + "pulseaudio": { "format": "{icon} {volume}%", "format-icons": ["", "ο€§", ""] }, + "network": { "format-wifi": " {essid} {signalStrength}%", "format-ethernet": "σ°ˆ€ {ifname}", "format-disconnected": "σ°–ͺ" } +} diff --git a/home/waybar/style.css b/home/waybar/style.css new file mode 100644 index 0000000..1fdccb1 --- /dev/null +++ b/home/waybar/style.css @@ -0,0 +1,37 @@ +* { + font-family: "JetBrainsMono Nerd Font"; + font-size: 13px; + font-weight: 500; + border: none; +} + +window#waybar { + background: rgba(46, 52, 64, 0.6); /* Nord dark + transparency */ + border-radius: 12px; + padding: 4px 8px; +} + +#workspaces button { + padding: 0 10px; + border-radius: 8px; + background: transparent; + color: #d8dee9; +} + +#workspaces button.active { + background: rgba(136, 192, 208, 0.4); + color: #eceff4; +} + +#workspaces button:hover { + background: rgba(94, 129, 172, 0.5); +} + +#clock, #cpu, #memory, #temperature, #pulseaudio, #network, #custom-windowtitle { + padding: 0 8px; + color: #eceff4; +} + +#tray { + padding-left: 6px; +} diff --git a/system/configuration.nix b/system/configuration.nix index 74fdc3b..41a1b01 100755 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -17,11 +17,38 @@ # Hyprland programs.hyprland.enable = true; + programs.hyprlock.enable = true; programs.waybar.enable = true; + security.pam.services.hyprlock = {}; + services.gnome.gnome-keyring.enable = true; + security.pam.services.hyprlock.enableGnomeKeyring = true; + services.greetd.enable = true; + services.greetd.settings = { + default_session = { + # GUI greeter + #command = "${pkgs.greetd.gtkgreet}/bin/gtkgreet -c hyprland"; + command = "${pkgs.greetd.gtkgreet}/bin/gtkgreet -c 'Hyprland'"; + # TUI greeter + # command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember \ + # --cmd 'dbus-run-session ${pkgs.hyprland}/bin/Hyprland'"; + # user = "greeter"; + }; + }; + + nix.settings = { + substituters = ["https://hyprland.cachix.org"]; + trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; + }; + + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; + }; # Bootloader. boot.loader.systemd-boot.enable = true; + boot.loader.timeout = 5; boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot"; @@ -47,11 +74,11 @@ }; # Enable the X11 windowing system. - services.xserver.enable = true; + # services.xserver.enable = true; # Enable the GNOME Desktop Environment. - services.xserver.displayManager.gdm.enable = true; - services.xserver.desktopManager.gnome.enable = true; + # services.xserver.displayManager.gdm.enable = true; + # services.xserver.desktopManager.gnome.enable = true; # Configure keymap in X11 services.xserver.xkb = { diff --git a/system/default.nix b/system/default.nix index 25f8d1a..1f4b70b 100755 --- a/system/default.nix +++ b/system/default.nix @@ -8,7 +8,7 @@ ./ssh.nix # ./openrgb.nix # ./stylix.nix - ./gnome.nix + # ./gnome.nix # ./lanzaboote.nix ./yazi.nix ./nvidia.nix diff --git a/system/gnome.nix b/system/gnome.nix index 49f1601..9f837f7 100755 --- a/system/gnome.nix +++ b/system/gnome.nix @@ -5,8 +5,8 @@ services.xserver.enable = true; # Enable the GNOME Desktop Environment. - services.xserver.displayManager.gdm.enable = true; - services.xserver.desktopManager.gnome.enable = true; + # services.xserver.displayManager.gdm.enable = true; + # services.xserver.desktopManager.gnome.enable = true; environment.systemPackages = (with pkgs.gnomeExtensions; [ blur-my-shell @@ -22,7 +22,7 @@ #vimix-cursors # breeze-icons tokyonight-gtk-theme - gnome-tweaks + # gnome-tweaks # adwaita-icon-theme ]); } diff --git a/system/packages.nix b/system/packages.nix index 2cc65cb..1e96d04 100755 --- a/system/packages.nix +++ b/system/packages.nix @@ -53,6 +53,17 @@ # firefox direnv jq + + # Hyprland Ecosystem + hyprpaper + hyprpicker + hyprpolkitagent + hyprsunset + + (pkgs.hyprland.override { + enableXWayland = true; + withSystemd = true; + }) ]; programs.nix-ld.enable = true; diff --git a/system/services.nix b/system/services.nix index b834077..c0d9862 100755 --- a/system/services.nix +++ b/system/services.nix @@ -7,5 +7,5 @@ enable = true; forwardX11 = true; }; - services.udev.packages = [ pkgs.gnome-settings-daemon ]; + # services.udev.packages = [ pkgs.gnome-settings-daemon ]; }