From 70e8a34da08c50844a53e3d60c678bfd3032aea8 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 5 Aug 2025 21:54:49 -0400 Subject: [PATCH 01/55] Hyprland --- home-manager/arch/hypridle.nix | 28 ++++ home-manager/arch/hyprland.nix | 286 +++++++++++++++++++++++++++++++++ home-manager/arch/hyprlock.nix | 99 ++++++++++++ 3 files changed, 413 insertions(+) create mode 100644 home-manager/arch/hypridle.nix create mode 100644 home-manager/arch/hyprland.nix create mode 100644 home-manager/arch/hyprlock.nix diff --git a/home-manager/arch/hypridle.nix b/home-manager/arch/hypridle.nix new file mode 100644 index 0000000..ad00b6a --- /dev/null +++ b/home-manager/arch/hypridle.nix @@ -0,0 +1,28 @@ +{ ... }: { + services.hypridle = { + enable = true; + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; + before_sleep_cmd = "loginctl lock-session"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + listener = [ + { + timeout = 300; + on-timeout = "loginctl lock-session"; + } + { + timeout = 330; + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + { + + timeout = 1800; # 30min + on-timeout = "systemctl suspend"; # suspend pc + } + ]; + }; + }; +} diff --git a/home-manager/arch/hyprland.nix b/home-manager/arch/hyprland.nix new file mode 100644 index 0000000..7cf9471 --- /dev/null +++ b/home-manager/arch/hyprland.nix @@ -0,0 +1,286 @@ +{ pkgs, ... }: + +{ + wayland.windowManager.hyprland = { + enable = true; + package = pkgs.hyprland; + settings = { + xwayland = { force_zero_scaling = true; }; + + # Set programs that you use + "$terminal " = "wezterm"; + "$browser " = "firefox"; + "$fileManager " = "dolphin"; + "$appMenu " = "rofi -show drun"; + + env = [ + "XCURSOR_SIZE,10" + "HYPRCURSOR_SIZE,10" + "LIBVA_DRIVER_NAME,nvidia" + "__GLX_VENDOR_LIBRARY_NAME,nvidia" + # Force all apps to use Wayland + "GDK_BACKEND,wayland" + "QT_QPA_PLATFORM,wayland" + "QT_STYLE_OVERRIDE,kvantum" + "SDL_VIDEODRIVER,wayland" + "MOZ_ENABLE_WAYLAND,1" + "ELECTRON_OZONE_PLATFORM_HINT,wayland" + "OZONE_PLATFORM,wayland" + + # Make Chromium use XCompose and all Wayland + '' + CHROMIUM_FLAGS,"--enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4"'' + + ]; + + misc = { + # Set to 0 or 1 to disable the anime mascot wallpapers + force_default_wallpaper = 0; + # If true disables the random hyprland logo / anime girl background. :( + disable_hyprland_logo = true; + initial_workspace_tracking = 1; + }; + + input = { + kb_layout = "us"; + kb_variant = ""; + kb_model = ""; + kb_options = ""; + kb_rules = ""; + + follow_mouse = 1; + # -1.0 - 1.0, 0 means no modification. + sensitivity = 0; + + touchpad = { natural_scroll = true; }; + }; + + gestures = { + workspace_swipe = true; + workspace_swipe_distance = 100; + workspace_swipe_forever = true; + workspace_swipe_fingers = 4; + }; + + general = { + gaps_in = 4; + gaps_out = "8, 4, 4, 4"; + + border_size = 0; + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = "rgba(FFFFFF40)"; + col.inactive_border = "rgba(59595940)"; + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = true; + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false; + + layout = "dwindle"; + + no_focus_fallback = true; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#decoration + decoration = { + rounding = 8; + rounding_power = 1; + + # Change transparency of focused and unfocused windows + active_opacity = 1.0; + inactive_opacity = 1.0; + + dim_inactive = true; + dim_strength = 0.15; + + shadow = { + enabled = false; + range = 4; + render_power = 3; + color = "rgba(1 a1a1aee)"; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur = { + enabled = false; + size = 4; + passes = 1; + }; + }; + + # https://wiki.hyprland.org/Configuring/Variables/#animations + animations = { + enabled = true; + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = [ + "easeOutQuint,0.23,1,0.32,1" + "easeInOutCubic,0.65,0.05,0.36,1" + "linear,0,0,1,1" + "almostLinear,0.5,0.5,0.75,1.0" + "quick,0.15,0,0.1,1" + ]; + + animation = [ + + "global, 1, 10, default" + "border, 1, 5.39, easeOutQuint" + "windows, 1, 4.79, easeOutQuint" + "windowsIn, 1, 4.1, easeOutQuint, popin 87%" + "windowsOut, 1, 1.49, linear, popin 87%" + "fadeIn, 1, 1.73, almostLinear" + "fadeOut, 1, 1.46, almostLinear" + "fade, 1, 3.03, quick" + "layers, 1, 3.81, easeOutQuint" + "layersIn, 1, 4, easeOutQuint, fade" + "layersOut, 1, 1.5, linear, fade" + "fadeLayersIn, 1, 1.79, almostLinear" + "fadeLayersOut, 1, 1.39, almostLinear" + "workspaces, 1, 1.94, almostLinear, fade" + "workspacesIn, 1, 1.21, almostLinear, fade" + "workspacesOut, 1, 1.94, almostLinear, fade" + ]; + + }; + + dwindle = { + # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + pseudotile = true; + preserve_split = true; + }; + + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + master = { new_status = "master"; }; + + exec-once = [ + "hypridle" + "swww-daemon &" + "./wallpapers.sh" + "waybar " + "dunst" + + # Bluetooth autoconnect + "bluetoothctl trust D0:56:FB:42:9F:5A" + "bluetoothctl power on" + "bluetoothctl connect D0:56:FB:42:9F:5A" + + ]; + + # Sets "Windows" key as main modifier + "$mainMod" = "SUPER"; + # Sets "Alt" key as secondary modifier + "$secondaryMod" = "Alt"; + + binds = { + workspace_back_and_forth = true; + allow_workspace_cycles = true; + }; + bind = [ + + "$mainMod, Q, exec, $terminal" + "$mainMod, T, exec, $terminal start btop" + "$mainMod, B, exec, $browser" + "$mainMod, C, killactive" + "$mainMod, Escape, exec, hyprlock" + "$mainMod, M, exit" + "$mainMod, E, exec, $fileManager" + "$mainMod, V, togglefloating" + "$mainMod, V, centerwindow, 1" + "ALT, space, exec, $appMenu" + "$mainMod, P, pseudo, # dwindle" + "$mainMod, J, togglesplit, # dwindle" + + # Move focus with mainMod + arrow keys + "$secondaryMod, h, movefocus, l" + "$secondaryMod, j, movefocus, d" + "$secondaryMod, k, movefocus, u" + "$secondaryMod, l, movefocus, r" + + "$mainMod, h, movewindow, l" + "$mainMod, l, movewindow, r" + "$mainMod, j, movewindow, d" + "$mainMod, k, movewindow, u" + + # 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, movetoworkspacesilent, 1" + "$mainMod SHIFT, 2, movetoworkspacesilent, 2" + "$mainMod SHIFT, 3, movetoworkspacesilent, 3" + "$mainMod SHIFT, 4, movetoworkspacesilent, 4" + "$mainMod SHIFT, 5, movetoworkspacesilent, 5" + "$mainMod SHIFT, 6, movetoworkspacesilent, 6" + "$mainMod SHIFT, 7, movetoworkspacesilent, 7" + "$mainMod SHIFT, 8, movetoworkspacesilent, 8" + "$mainMod SHIFT, 9, movetoworkspacesilent, 9" + "$mainMod SHIFT, 0, movetoworkspacesilent, 10" + + # Example special workspace (scratchpad) + "$mainMod, S, togglespecialworkspace, magic" + "$mainMod SHIFT, S, movetoworkspacesilent, special:magic" + + # Scroll through existing workspaces with mainMod + scroll + "$secondaryMod, TAB, cyclenext, hist next" + "$secondaryMod, TAB, alterzorder, top" + + "$secondaryMod SHIFT, TAB, cyclenext, hist prev " + "$secondaryMod SHIFT, TAB, alterzorder, top " + + "$mainMod, TAB, workspace, e+1" + "$mainMod SHIFT, TAB, workspace, e-1" + + "$mainMod SHIFT, up, fullscreenstate, 1" + "$mainMod SHIFT, left, resizeactive, exact 100% 100%" + "$mainMod SHIFT, left, moveactive, exact 0 4" + "$mainMod SHIFT, right, resizeactive, exact 100% 100%" + "$mainMod SHIFT, right, moveactive, exact 0 4" + + "$mainMod, P, pin" + ]; + + bindm = [ + # Move/resize windows with mainMod + LMB/RMB and dragging + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + + bindel = [ + # Laptop multimedia keys for volume and LCD brightness + ",XF86AudioRaiseVolume, exec, sh $HOME/.config/hypr/volume.sh up" + ",XF86AudioLowerVolume, exec, sh $HOME/.config/hypr/volume.sh down" + ",XF86AudioMute, exec, sh $HOME/.config/hypr/volume.sh mute" + ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + ",XF86MonBrightnessUp, exec, sh $HOME/.config/hypr/brightness.sh up" + ",XF86MonBrightnessDown, exec, sh $HOME/.config/hypr/brightness.sh down" + ]; + + bindl = [ + ", XF86AudioNext, exec, playerctl next" + ", XF86AudioPause, exec, playerctl play-pause" + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioPrev, exec, playerctl previous" + ]; + + windowrule = [ + # Ignore maximize requests from apps. You'll probably like this. + "suppressevent maximize, class:.*" + # Fix some dragging issues with XWayland + "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" + ]; + + }; + }; +} diff --git a/home-manager/arch/hyprlock.nix b/home-manager/arch/hyprlock.nix new file mode 100644 index 0000000..6e3f5d4 --- /dev/null +++ b/home-manager/arch/hyprlock.nix @@ -0,0 +1,99 @@ +{ ... }: { + programs.hyprlock = { + enable = true; + + settings = { + "$font" = "Monospace"; + + general = { + hide_cursor = false; + fail_timeout = 500; + }; + + # uncomment to enable fingerprint authentication + auth = { + fingerprint = { + enabled = true; + ready_message = "Scan fingerprint to unlock"; + present_message = "Scanning..."; + retry_delay = 250; # in milliseconds + }; + }; + + background = { + monitor = ""; + path = "screenshot"; + blur_passes = 3; + }; + + input-field = { + monitor = ""; + size = "20%, 5%"; + outline_thickness = 2; + inner_color = "rgba(0, 0, 0, 0.0)"; # no fill + + outer_color = "rgba(d65d0eee)"; + check_color = "rgba(cc241dee)"; + fail_color = "rgba(98971aee)"; + + font_color = "rgb(143, 143, 143)"; + fade_on_empty = false; + rounding = 8; + + font_family = "$font"; + placeholder_text = "Input password..."; + fail_text = "$PAMFAIL"; + + # uncomment to use a letter instead of a dot to indicate the typed password + # dots_text_format = * + # dots_size = 0.4 + dots_spacing = 0.3; + + # uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator) + # hide_input = true + + position = "0, -20"; + halign = "center"; + valign = "center"; + }; + + # TIME + label = [ + { + monitor = ""; + text = + "$TIME12"; # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution + font_size = 90; + font_family = "$font"; + + position = "-30, 0"; + halign = "right"; + valign = "top"; + } + { + monitor = ""; + text = '' + cmd[update:60000] date +"%A, %d %B %Y"''; # update every 60 seconds + font_size = 25; + font_family = "$font"; + + position = "-30, -150"; + halign = "right"; + valign = "top"; + } + { + monitor = ""; + text = "$LAYOUT[en,ru]"; + font_size = 24; + onclick = "hyprctl switchxkblayout all next"; + + position = "250, -20"; + halign = "center"; + valign = "center"; + } + ]; + + }; + + }; +} From 8a60d30239ecff0aa785ed91c3259c6a13ce15f6 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 5 Aug 2025 21:56:33 -0400 Subject: [PATCH 02/55] Add multi user to flake. Clean up --- home-manager/flake.nix | 54 ++++++++++++++++++++++----- home-manager/home/home.nix | 10 ++--- home-manager/home/packages.nix | 3 +- home-manager/home/programs/neovim.nix | 5 ++- 4 files changed, 53 insertions(+), 19 deletions(-) diff --git a/home-manager/flake.nix b/home-manager/flake.nix index 3fecf22..19db113 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -12,10 +12,22 @@ }; - outputs = { nixpkgs, home-manager, ... }@inputs: + # nix = { settings.experimental-features = [ "nix-command" "flakes" ]; }; + + outputs = { self, nixpkgs, home-manager, ... }@inputs: let system = "x86_64-linux"; + inherit (self) outputs; pkgs = import nixpkgs { inherit system; }; + + HomeConfiguration = args: + home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ ./home/home.nix ]; + extraSpecialArgs = { + inherit (args) nixpkgs; + } // args.extraSpecialArgs; + }; in { nix.extraOptions = '' @@ -23,15 +35,39 @@ experimental-features = nix-command flakes ''; - homeConfigurations."dev-rb" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; + homeConfigurations = { + "arch" = HomeConfiguration { + extraSpecialArgs = { + vars = { + name = "arch"; + username = "devrb"; + }; + inherit inputs outputs; + }; + services.pipewire.enable = true; + services.pipewire.audio.enable = true; + services.pipewire.pulse.enable = true; + services.pipewire.alsa.enable = true; + services.pipewire.wireplumber.enable = true; + modules = [ + (./arch/hyprland.nix) + (./arch/hypridle.nix) + (./arch/hyprlock.nix) + ]; + }; - # Specify your home configuration modules here, for example, - # the path to your home.nix. - modules = [ ./home/home.nix ]; - - # Optionally use extraSpecialArgs - # to pass through arguments to home.nix + "wsl" = HomeConfiguration { + extraSpecialArgs = { + vars = { + name = "wsl"; + username = "dev-rb"; + }; + }; + modules = [ ]; + }; }; + + inherit home-manager; + inherit (home-manager) packages; }; } diff --git a/home-manager/home/home.nix b/home-manager/home/home.nix index 42d8642..5cc4caf 100644 --- a/home-manager/home/home.nix +++ b/home-manager/home/home.nix @@ -1,10 +1,10 @@ -{ config, pkgs, ... }: +{ vars, ... }: { # Home Manager needs a bit of information about you and the paths it should # manage. - home.username = "dev-rb"; - home.homeDirectory = "/home/dev-rb"; + home.username = vars.username; + home.homeDirectory = "/home/${vars.username}"; # This value determines the Home Manager release that your configuration is # compatible with. This helps avoid breakage when a new Home Manager release @@ -55,9 +55,7 @@ # # /etc/profiles/per-user/dev-rb/etc/profile.d/hm-session-vars.sh # - home.sessionVariables = { - EDITOR = "nvim"; - }; + home.sessionVariables = { EDITOR = "nvim"; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; diff --git a/home-manager/home/packages.nix b/home-manager/home/packages.nix index 0aa0af5..775138d 100644 --- a/home-manager/home/packages.nix +++ b/home-manager/home/packages.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ inputs, pkgs, ... }: { programs.bat.enable = true; @@ -22,7 +22,6 @@ wget # javascript/typescript - pnpm fnm # LSPs diff --git a/home-manager/home/programs/neovim.nix b/home-manager/home/programs/neovim.nix index d29925c..314eba0 100644 --- a/home-manager/home/programs/neovim.nix +++ b/home-manager/home/programs/neovim.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ ... }: { programs.neovim.enable = true; @@ -8,7 +8,8 @@ source = ../../../nvim; recursive = true; force = true; - onChange = "install -Dm777 ~/dotfiles/nvim/lua/chadrc.lua ~/.config/nvim/lua/chadrc.lua"; + onChange = + "install -Dm777 ~/dotfiles/nvim/lua/chadrc.lua ~/.config/nvim/lua/chadrc.lua"; }; }; } From f3270da5590a602c39c9eaaa78504b7b47745319 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 5 Aug 2025 21:58:02 -0400 Subject: [PATCH 03/55] Update zsh --- home-manager/home/programs/zsh.nix | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index e05df00..1662eb7 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ vars, ... }: { programs.zsh = { @@ -29,8 +29,8 @@ ls = "eza --icons=always"; cat = "bat"; # Windows path for explorer - explorer = "/mnt/c/Windows/explorer.exe"; - wezterm = "/mnt/c/Program\\ Files/WezTerm/wezterm.exe"; + # explorer = "/mnt/c/Windows/explorer.exe"; + # wezterm = "/mnt/c/Program\\ Files/WezTerm/wezterm.exe"; gcf = "git checkout $(git branch --list | fzf)"; gs = "git status"; }; @@ -39,30 +39,34 @@ # zprof.enable = true; - completionInit = " + completionInit = '' autoload -Uz compinit for dump in ~/.zcompdump(N.mh+24); do compinit done compinit -C - "; + ''; - initExtra = '' + initContent = '' eval "$(oh-my-posh init zsh --config ~/dotfiles/pure.omp.json)" bindkey '^p' history-search-backward bindkey '^n' history-search-forward - export GOPATH="/home/dev-rb/go" + export GOPATH="/home/${vars.username}/go" - export PATH="/home/dev-rb/.local/share/fnm:$PATH" + export PATH="/home/${vars.username}/.local/share/fnm:$PATH" export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin - export PATH=$PATH:"/mnt/c/Program Files/WezTerm/" + export BUN_INSTALL="$HOME/.bun" + export PAGER=cat + export PATH="$BUN_INSTALL/bin:$PATH" + + # export PATH=$PATH:"/mnt/c/Program Files/WezTerm/" eval "`fnm env`" - export PNPM_HOME="/home/dev-rb/.local/share/pnpm" + export PNPM_HOME="/home/${vars.username}/.local/share/pnpm" case ":$PATH:" in *":$PNPM_HOME:"*) ;; *) export PATH="$PNPM_HOME:$PATH" ;; From da5be144a44e570056314f6c8b9d0c8813c686d4 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 5 Aug 2025 22:27:27 -0400 Subject: [PATCH 04/55] Add waybar files, scripts, update config --- home-manager/arch/hyprland.nix | 15 +- home-manager/arch/waybar.nix | 12 + home-manager/flake.nix | 9 +- home-manager/home/programs/general.nix | 2 +- hyprland/brightness.sh | 18 ++ hyprland/volume.sh | 36 +++ hyprland/wallpapers.sh | 13 + waybar/colors.css | 20 ++ waybar/config.jsonc | 30 +++ waybar/modules.jsonc | 318 +++++++++++++++++++++++++ waybar/other.css | 107 +++++++++ waybar/reload.sh | 4 + waybar/style.css | 179 ++++++++++++++ 13 files changed, 753 insertions(+), 10 deletions(-) create mode 100644 home-manager/arch/waybar.nix create mode 100644 hyprland/brightness.sh create mode 100644 hyprland/volume.sh create mode 100644 hyprland/wallpapers.sh create mode 100644 waybar/colors.css create mode 100644 waybar/config.jsonc create mode 100644 waybar/modules.jsonc create mode 100644 waybar/other.css create mode 100644 waybar/reload.sh create mode 100644 waybar/style.css diff --git a/home-manager/arch/hyprland.nix b/home-manager/arch/hyprland.nix index 7cf9471..b032523 100644 --- a/home-manager/arch/hyprland.nix +++ b/home-manager/arch/hyprland.nix @@ -1,10 +1,19 @@ { pkgs, ... }: { + home.file = { + ".config/hypr/" = { + source = ../../hyprland; + recursive = true; + force = true; + }; + }; + wayland.windowManager.hyprland = { enable = true; package = pkgs.hyprland; settings = { + monitor = ",1920x1200,auto,1,bitdepth,8"; xwayland = { force_zero_scaling = true; }; # Set programs that you use @@ -69,8 +78,8 @@ border_size = 0; # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors - col.active_border = "rgba(FFFFFF40)"; - col.inactive_border = "rgba(59595940)"; + "col.active_border" = "rgba(FFFFFF40)"; + "col.inactive_border" = "rgba(59595940)"; # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = true; @@ -99,7 +108,7 @@ enabled = false; range = 4; render_power = 3; - color = "rgba(1 a1a1aee)"; + color = "rgba(1a1a1aee)"; }; # https://wiki.hyprland.org/Configuring/Variables/#blur diff --git a/home-manager/arch/waybar.nix b/home-manager/arch/waybar.nix new file mode 100644 index 0000000..562b411 --- /dev/null +++ b/home-manager/arch/waybar.nix @@ -0,0 +1,12 @@ +{ ... }: + +{ + home.file = { + ".config/waybar/" = { + source = ../../waybar; + recursive = true; + }; + }; + + programs.waybar.enable = true; +} diff --git a/home-manager/flake.nix b/home-manager/flake.nix index 19db113..f63827c 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -23,7 +23,7 @@ HomeConfiguration = args: home-manager.lib.homeManagerConfiguration { inherit pkgs; - modules = [ ./home/home.nix ]; + modules = [ ./home/home.nix ] ++ args.modules or [ ]; extraSpecialArgs = { inherit (args) nixpkgs; } // args.extraSpecialArgs; @@ -49,11 +49,8 @@ services.pipewire.pulse.enable = true; services.pipewire.alsa.enable = true; services.pipewire.wireplumber.enable = true; - modules = [ - (./arch/hyprland.nix) - (./arch/hypridle.nix) - (./arch/hyprlock.nix) - ]; + modules = + [ ./arch/hyprland.nix ./arch/hypridle.nix ./arch/hyprlock.nix ]; }; "wsl" = HomeConfiguration { diff --git a/home-manager/home/programs/general.nix b/home-manager/home/programs/general.nix index c762f8b..bcdccd1 100644 --- a/home-manager/home/programs/general.nix +++ b/home-manager/home/programs/general.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ ... }: { programs.zoxide.enable = true; diff --git a/hyprland/brightness.sh b/hyprland/brightness.sh new file mode 100644 index 0000000..22d60ac --- /dev/null +++ b/hyprland/brightness.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +send_notification() { + brightness=$(printf "%.0f\n" "$(brillo -G)") + space=$(printf "%64s"); + dunstify -a "Backlight" -u low -r 9992 -h int:value:"$brightness" -i "brightness" "Brightness $space $brightness%" "\n" -t 1000 +} + +case $1 in + up) + brillo -q -A 2 + send_notification "$1" + ;; + down) + brillo -q -U 2 + send_notification "$1" + ;; +esac diff --git a/hyprland/volume.sh b/hyprland/volume.sh new file mode 100644 index 0000000..be83846 --- /dev/null +++ b/hyprland/volume.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +case $1 in + up) + wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 + wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 5%+ + ;; + down) + wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 + wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 5%- + ;; + mute) + wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + ;; +esac + +VOLUME=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | tr -dc '0-9' | sed 's/^0*//') + +space=$(printf "%70s"); + +send_notification() { + if [ "$1" = "mute" ]; then ICON="mute"; elif [ "$VOLUME" -lt 33 ]; then ICON="low"; elif [ "$VOLUME" -lt 66 ]; then ICON="medium"; else ICON="high"; fi + if [ "$1" = "mute" ]; then TEXT="Muted"; else TEXT="$space ${VOLUME}%"; fi + + dunstify -a "Volume" -u low -r 9993 -h int:value:"$VOLUME" -i "volume-$ICON" "Volume $TEXT" -t 2000 +} + +case $1 in + mute) + case "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" in + *MUTED* ) send_notification mute;; + * ) send_notification;; + esac;; + *) + send_notification;; +esac diff --git a/hyprland/wallpapers.sh b/hyprland/wallpapers.sh new file mode 100644 index 0000000..8a27950 --- /dev/null +++ b/hyprland/wallpapers.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Favorites +# wallhaven-vq7ve5.jpg +# wallhaven-ly93ry.png +# wallhaven-3qkggv.jpg +# wallhaven-ex5jql.jpg +# wallhaven-3lvgg6.jpg + +dir=${HOME}/wallpapers +img=wallhaven-3qkggv.jpg + +swww img ${dir}/$img --transition-type=wipe diff --git a/waybar/colors.css b/waybar/colors.css new file mode 100644 index 0000000..2e02451 --- /dev/null +++ b/waybar/colors.css @@ -0,0 +1,20 @@ +@define-color foreground #D9E0EE; +@define-color background #0B0A10; +@define-color cursor #D9E0EE; + +@define-color color0 #1E1E2E; +@define-color color1 #F28FAD; +@define-color color2 #ABE9B3; +@define-color color3 #F9E2AF; +@define-color color4 #A7C7E7; +@define-color color5 #F5BDE6; +@define-color color6 #B5E8E0; +@define-color color7 #D9E0EE; +@define-color color8 #6E6A86; +@define-color color9 #F28FAD; +@define-color color10 #ABE9B3; +@define-color color11 #F9E2AF; +@define-color color12 #A7C7E7; +@define-color color13 #F5BDE6; +@define-color color14 #B5E8E0; +@define-color color15 #C0CAF5; diff --git a/waybar/config.jsonc b/waybar/config.jsonc new file mode 100644 index 0000000..2f284cd --- /dev/null +++ b/waybar/config.jsonc @@ -0,0 +1,30 @@ +{ + "layer": "bottom", + "position": "top", + "margin": "0 0 0 0", + "fixed-center": true, + "reload_style_on_change": true, + // "mode": "overlay", + "passtrough": true, + + "include": ["~/.config/waybar/modules.jsonc"], + + "modules-left": [ + "hyprland/window", + "group/apps" + + ], + + "modules-center": [ + // "group/info", + "hyprland/workspaces" + // "group/utils" + + ], + + "modules-right": [ + "group/video", + "clock", + "group/power" + ] + } diff --git a/waybar/modules.jsonc b/waybar/modules.jsonc new file mode 100644 index 0000000..c5745e0 --- /dev/null +++ b/waybar/modules.jsonc @@ -0,0 +1,318 @@ +{ + "hyprland/window": { + "format": "", + + "format-alt": "{title}", + "max-length": 80, + "separate-outputs": false, + "rewrite": { + "^.*( — Firefox|Firefox)$": "󰈹 Firefox", + "^.*( — Chromium|Chromium)$": "󰈹 Chromium", + "^.*v( .*|$)": " Neovim", + "^.*(- Spotify|Spotify)$": "󰏤 Spotify" + } + }, + + "hyprland/workspaces": { + "format": "{icon}", + "on-click": "activate", + "all-outputs": true, + "format-icons": { + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "10": "0" + + } + }, + + "clock": { + "format": "{:%I:%M %p}", + "format-alt": "{:%A %d.%m}", + "tooltip-format": "{calendar}", + "calendar": { + "mode": "month", + "on-scroll": 1, + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "mode", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + } + }, + + "group/info": { + "orientation": "inherit", + "drawer": { "transition-duration": 300, "transition-left-to-right": true }, + "modules": [ + "custom/arrow-left", + "custom/playerlabel", + "custom/updates" + ] + }, + + "group/apps": { + "orientation": "inherit", + "drawer": { "transition-duration": 300, "transition-left-to-right": true }, + "modules": [ + "custom/arrow-right", + // "wlr/taskbar", + "cpu", + "memory", + "disk" + ] + }, + + "group/video": { + "orientation": "inherit", + "drawer": { "transition-duration": 300, "transition-left-to-right": false }, + "modules": [ + "custom/arrow-left", + // "custom/record", + // "custom/section", + // "custom/stop", + "group/control-center" + ] + }, + + "group/control-center": { + "orientation": "inherit", + "modules": ["group/audio", "group/connection"] + }, + + "group/audio": { + "orientation": "inherit", + "drawer": { "transition-duration": 300, "transition-left-to-right": false }, + "modules": ["pulseaudio"] // "pulseaudio/slider" + }, + + "group/connection": { + "orientation": "inherit", + "modules": ["group/network"] + }, + + "group/network": { + "orientation": "inherit", + "drawer": { "transition-duration": 10000, "transition-left-to-right": true }, + "modules": ["network"] + }, + + "group/bluetooth": { + "orientation": "inherit", + "drawer": { "transition-duration": 300, "transition-left-to-right": true }, + "modules": ["bluetooth", "bluetooth#status"] + }, + + "group/utils": { + "orientation": "inherit", + "drawer": { "transition-duration": 300, "transition-left-to-right": false }, + "modules": [ + "custom/arrow-right", + "tray", + "custom/notifications", + "custom/weather" + ] + }, + + "group/power": { + "orientation": "inherit", + "drawer": { "transition-duration": 300, "transition-left-to-right": false }, + "modules": ["battery", "power-profiles-daemon"] + }, + + "cpu": { "format": "󰘚 {usage}󱉸" }, + "memory": { "format": " {:2}󱉸" }, + "disk": { "interval": 600, "format": "󰆼 {percentage_used}󱉸", "path": "/" }, + + "battery": { + "states": { "good": 95, "warning": 30, "critical": 15 }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% {icon}", + "format-full": "{capacity}% {icon}", + "format-icons": ["","","","",""], + "tooltip-format": "{timeTo} {capacity} % | {power} W" + }, + + "pulseaudio": { + "format": "{volume}% {icon}", + "format-bluetooth": "{icon}", + "format-muted": "󰖁", + "tooltip": false, + "format-icons": { + "headphones": "󰋌","handsfree": "󰋌","headset": "󰋌", + "phone": "","portable": "","car": " ", + "default": ["󰕿","󰖀","󰕾"] + }, + "on-click": "changevolume mute", + "on-click-middle": "pavucontrol", + "on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +5%", + "on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -5%", + "smooth-scrolling-threshold": 1 + }, + + "network": { + "format": "{icon} ", + "format-icons": { "wifi": ["󰤨"], "ethernet": ["󰈁"], "disconnected": [""] }, + "format-wifi": "󰤨", + "format-ethernet": "󰈁", + "format-disconnected": "󰖪", + "interval": 5, + "tooltip": true, + "tooltip-format": "{ipaddr}", + "tooltip-format-wifi": "{essid} ({signalStrength}%) \n{ipaddr} | {frequency} MHz{icon}", + "tooltip-format-ethernet": "{ifname} 󰈀\n{ipaddr} | {frequency} MHz{icon}", + "tooltip-format-disconnected": "Not Connected to any type of Network", + "on-click": "python ~/.config/rofi/network/network.py" + }, + + "network#speed": { + "format": "{bandwidthDownBits} ", + "interval": 5, + "tooltip": false + }, + + "bluetooth": { + "format":"", + "format-on": "", + "format-off": "󰂲", + "format-disabled": "", + "format-connected": "", + "tooltip": false, + "on-click": "bash ~/.config/rofi/bluetooth/bluetooth.sh" + }, + + "bluetooth#status": { + "format-connected": "{num_connections}", + "format-connected-battery": "{device_battery_percentage}%", + "tooltip-format": "{controller_alias} {controller_address}\n\n{num_connections} connected", + "tooltip-format-connected": "{controller_alias} {controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", + "tooltip-format-enumerate-connected": "{device_alias} {device_address}", + "tooltip-format-enumerate-connected-battery": "{device_alias} {device_address} {device_battery_percentage}%", + "on-click": "rofi-bluetooth -config ~/.config/rofi/menu.d/network.rasi -i" + }, + + //"custom/arrow-left": { "format": "󰁒", "tooltip": false }, + //"custom/arrow-right": { "format": "󰁙", "tooltip": false }, + + "custom/arrow-left": { "format": "<", "tooltip": false }, + "custom/arrow-right": { "format": ">", "tooltip": false }, + + "custom/updates": { + "format": "󱧕 {}", + "tooltip": true, + "interval": 43200, // 12 h + "exec": "~/.config/hypr/scripts/check_updates.sh", + "return-type": "json" + }, + + "custom/playerlabel": { + "format": "{}", + "return-type": "json", + "max-length": 50, + "exec": "playerctl -p spotify metadata --format '{\"text\": \"{{artist}} : {{markup_escape(title)}}\", \"tooltip\": \"Spotify : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F", + "on-click": "bash -c 'player=$(playerctl -l | grep -E \"spotify|cider\" | head -n 1); playerctl -p \"$player\" previous'", + "on-click-middle": "bash -c 'player=$(playerctl -l | grep -E \"spotify|cider\" | head -n 1); playerctl -p \"$player\" play-pause'", + "on-click-right": "bash -c 'player=$(playerctl -l | grep -E \"spotify|cider\" | head -n 1); playerctl -p \"$player\" next'", + "tooltip": false + }, + + "custom/record": { + "format": "", + "tooltip": true, + "tooltip-format": "Record Screen", + "on-click": "bash ~/.config/hypr/scripts/record.sh fullscreen" + }, + "custom/stop": { + "format": "󰻃", + "tooltip": true, + "tooltip-format": "Stop Recording", + "on-click": "bash ~/.config/hypr/scripts/record.sh stop" + }, + "custom/section": { + "format": "", + "tooltip": true, + "tooltip-format": "Record Section", + "on-click": "bash ~/.config/hypr/scripts/record.sh section" + }, + + "custom/notifications": { + "format": "{} {icon}", + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true, + "tooltip": false, + "format-icons": { + "notification": "󱅫", + "dnd-notification": "󰂛", + "none": "󰂚", + "dnd-none": "󰂛", + "inhibited-notification": "󰂚", + "inhibited-none": "󰂚", + "dnd-inhibited-notification": "󰂛", + "dnd-inhibited-none": "󰂛" + } + }, + + "custom/weather": { + "format": "{}", + "tooltip": true, + "interval": 3600, + "exec": "wttrbar --custom-indicator '{ICON}{temp_C}°C'", + "return-type": "json" + }, + + "custom/theme-switcher": { + "format": "󰏘", + "tooltip": false, + "on-click": "~/.config/hypr/scripts/toggle_theme.sh" + }, + + "custom/cava": { + "format": "{}", + "exec": "bash ~/.config/hypr/scripts/cava.sh" + }, + + "custom/icon": { "format": "󰣇" }, + +/* ─────────────── TASKBAR AND POWER PROFILES ───────────────────────────────── */ + + "wlr/taskbar": { + "format": "{icon}", + "icon-size": 20, + "all-outputs": true, + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close", + "ignore-list": ["wofi", "rofi", "swaylock"] + }, + + "power-profiles-daemon": { + "format": "{icon}", + "tooltip": true, + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "format-icons": { + "default": "", + "balanced": "", + "power-saver": "" + } + }, + + "tray": { "spacing": 8 } +} + diff --git a/waybar/other.css b/waybar/other.css new file mode 100644 index 0000000..ad743eb --- /dev/null +++ b/waybar/other.css @@ -0,0 +1,107 @@ +@define-color foreground #e2e2e2; +@define-color back #131313; +@define-color cursor #D9E0EE; + +/*-----All Colors--------*/ + +@define-color background #131313; + +@define-color error #ffb4ab; + +@define-color error_container #93000a; + +@define-color inverse_on_surface #303030; + +@define-color inverse_primary #5e5e5e; + +@define-color inverse_surface #e2e2e2; + +@define-color on_background #e2e2e2; + +@define-color on_error #690005; + +@define-color on_error_container #ffdad6; + +@define-color on_primary #1b1b1b; + +@define-color on_primary_container #000000; + +@define-color on_primary_fixed #ffffff; + +@define-color on_primary_fixed_variant #e2e2e2; + +@define-color on_secondary #1b1b1b; + +@define-color on_secondary_container #e2e2e2; + +@define-color on_secondary_fixed #1b1b1b; + +@define-color on_secondary_fixed_variant #3b3b3b; + +@define-color on_surface #e2e2e2; + +@define-color on_surface_variant #c6c6c6; + +@define-color on_tertiary #1b1b1b; + +@define-color on_tertiary_container #000000; + +@define-color on_tertiary_fixed #ffffff; + +@define-color on_tertiary_fixed_variant #e2e2e2; + +@define-color outline #919191; + +@define-color outline_variant #474747; + +@define-color primary #ffffff; + +@define-color primary_container #d4d4d4; + +@define-color primary_fixed #5e5e5e; + +@define-color primary_fixed_dim #474747; + +@define-color scrim #000000; + +@define-color secondary #c6c6c6; + +@define-color secondary_container #474747; + +@define-color secondary_fixed #c6c6c6; + +@define-color secondary_fixed_dim #ababab; + +@define-color shadow #000000; + +@define-color source_color #6b242f; + +@define-color surface #131313; + +@define-color surface_bright #393939; + +@define-color surface_container #1f1f1f; + +@define-color surface_container_high #2a2a2a; + +@define-color surface_container_highest #353535; + +@define-color surface_container_low #1b1b1b; + +@define-color surface_container_lowest #0e0e0e; + +@define-color surface_dim #131313; + +@define-color surface_tint #c6c6c6; + +@define-color surface_variant #474747; + +@define-color tertiary #e2e2e2; + +@define-color tertiary_container #919191; + +@define-color tertiary_fixed #5e5e5e; + +@define-color tertiary_fixed_dim #474747; + + diff --git a/waybar/reload.sh b/waybar/reload.sh new file mode 100644 index 0000000..10b7699 --- /dev/null +++ b/waybar/reload.sh @@ -0,0 +1,4 @@ +#!/bin/bash +waybar& +trap "killall waybar" EXIT +while inotifywait -r -e create,modify ~/.config/waybar/*; do killall -SIGUSR2 waybar; done diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..4c7b701 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,179 @@ + @import "./other.css"; + + * { + font: bold 10px "JetBrainsMono Nerd Font Propo"; + border: none; + border-radius: 0px; + box-shadow: none; + text-shadow: none; + } + + window#waybar { + background: alpha(@surface_container_lowest, 0); + /* border: 1px solid alpha(@secondary, 0.25); */ + /* border-radius: 4px; */ + } + + tooltip { + background: alpha(@surface_container_lowest, 0.8); + border: 2px solid alpha(@primary_fixed_dim, 1); + border-radius: 10px; + color: @on_tertiary_container; + } + + tooltip label { + color: @foreground; + } + + #window { + margin: 0px 0px 2px 0px; + padding: 2px 0px 2px 10px; + background: transparent; + border-radius: 10px; + color: lighter(@main-color); + } + + #custom-arrow-right, + #custom-arrow-left { + margin: 0px 4px 2px 4px; + color: alpha(@on_secondary_container, .3); + } + + #cpu, + #memory, + #disk, + #custom-updates, + #custom-playerlabel, + #custom-cava, + #custom-notifications, + #tray, + #custom-theme-switcher, + #power-profiles-daemon, + #control-center { + margin: 6px 4px; + /* 6 vertical, 4 horizontal */ + padding: 0px 8px; + background: alpha(@tertiary_container, 0.8); + color: @on_tertiary_container; + border-radius: 10px; + } + + #custom-section, + #custom-stop, + #custom-record { + margin: 6px 0px; + /* 6 vertical, 4 horizontal */ + padding: 0px 8px; + background: alpha(@tertiary_container, 0.8); + color: @on_tertiary_container; + border-radius: 10px; + } + + #custom-section { + border-radius: 0 0 0 0; + } + + #custom-stop { + border-radius: 0 10px 10px 0; + } + + #custom-record { + border-radius: 10px 0 0 10px; + } + + #workspaces { + margin: 0px 8px 0px 8px; + padding: 0px 12px 0px 12px; + background: black; + color: alpha(@on_secondary_container, 1); + border-radius: 0 0 10px 10px; + } + + #workspaces button { + font-size: 20px; + margin: 0 4px; + padding: 0 0px; + color: alpha(@on_secondary_container, 0.45); + border-radius: 10px; + } + + #workspaces button.active { + margin: 0 4px; + background: alpha(@primary, 0); + color: alpha(@primary, 1); + } + + + + #workspaces button:hover, + #workspaces button.urgent { + background: alpha(@background, 0.5); + color: alpha(@primary, 1); + } + + /* ======= Audio ======= */ + #pulseaudio, + #network, + #bluetooth { + margin: 0 2px; + padding: 0 4px; + background: alpha(@surface_container_highest, 0); + color: @on_tertiary_container; + border-radius: 10px; + } + + #pulseaudio-slider { + margin: 10px; + } + + #pulseaudio-slider slider, + #pulseaudio-slider highlight { + background: transparent; + border: none; + box-shadow: none; + border-radius: 8px; + } + + #clock { + margin: 0px 4px 2px 4px; + padding: 0; + background: alpha(@background, 0); + border-radius: 10px; + color: lighter(@main-color); + } + + #power { + margin: 0px 4px 2px 4px; + background: transparent; + color: @on_surface; + border-radius: 10px; + } + + #battery { + margin: 0px 4px 0px 4px; + padding: 0 8px; + } + + #taskbar { + margin: 0 4px; + padding: 0 8px; + border-radius: 10px; + background: transparent; + color: @on_tertiary_container; + } + + #taskbar button:hover { + background: alpha(@tertiary_container, 0.8); + } + + #taskbar button.active { + background: transparent; + } + + #custom-weather { + padding: 0 4px; + } + + #bluetooth { + margin-left: 7px; + } From 68bfe0746dae32e616575ddb6ca93f7df26d6f99 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 5 Aug 2025 22:36:55 -0400 Subject: [PATCH 05/55] Update zoxide conf --- home-manager/home/programs/general.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/home-manager/home/programs/general.nix b/home-manager/home/programs/general.nix index bcdccd1..bc9f503 100644 --- a/home-manager/home/programs/general.nix +++ b/home-manager/home/programs/general.nix @@ -1,7 +1,10 @@ { ... }: { - programs.zoxide.enable = true; + programs.zoxide = { + enable = true; + enableZshIntegration = true; + }; programs.wezterm.enableZshIntegration = true; } From 1844685ba02e350da2c054b6698ec63f20b8ac7b Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 6 Sep 2025 23:04:41 -0400 Subject: [PATCH 06/55] Fix hyprland --- home-manager/arch/hyprland.nix | 4 +++- home-manager/flake.nix | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/home-manager/arch/hyprland.nix b/home-manager/arch/hyprland.nix index b032523..94e7f62 100644 --- a/home-manager/arch/hyprland.nix +++ b/home-manager/arch/hyprland.nix @@ -11,7 +11,7 @@ wayland.windowManager.hyprland = { enable = true; - package = pkgs.hyprland; + package = null; settings = { monitor = ",1920x1200,auto,1,bitdepth,8"; xwayland = { force_zero_scaling = true; }; @@ -27,6 +27,7 @@ "HYPRCURSOR_SIZE,10" "LIBVA_DRIVER_NAME,nvidia" "__GLX_VENDOR_LIBRARY_NAME,nvidia" + "AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1" # Force all apps to use Wayland "GDK_BACKEND,wayland" "QT_QPA_PLATFORM,wayland" @@ -35,6 +36,7 @@ "MOZ_ENABLE_WAYLAND,1" "ELECTRON_OZONE_PLATFORM_HINT,wayland" "OZONE_PLATFORM,wayland" + "QT_QPA_PLATFORMTHEME,qt6ct" # for Qt apps# Theme # Make Chromium use XCompose and all Wayland '' diff --git a/home-manager/flake.nix b/home-manager/flake.nix index f63827c..fc50715 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -10,6 +10,13 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + hyprland = { + type = "git"; + url = "https://github.com/hyprwm/hyprland"; + submodules = true; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; # nix = { settings.experimental-features = [ "nix-command" "flakes" ]; }; From de06a82f5efb9cbb11056eea03abf3b17be17384 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 6 Sep 2025 23:04:55 -0400 Subject: [PATCH 07/55] Flake update --- home-manager/flake.lock | 414 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 414 insertions(+) diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 18ba42e..c7f5738 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -1,5 +1,76 @@ { "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753216019, + "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "be166e11d86ba4186db93e10c54a141058bdce49", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -20,6 +91,269 @@ "type": "github" } }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1752149140, + "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1754583328, + "narHash": "sha256-1BsOxbpoMdtdeWv0OYtY3g3GmI+KWBOP+ldM7SEse0U=", + "ref": "refs/heads/main", + "rev": "afbd8796859775a50687daacb254cdd1ba22328f", + "revCount": 6354, + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/hyprland" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/hyprland" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753819801, + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753622892, + "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753800567, + "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1751897909, + "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1748460289, @@ -36,11 +370,91 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", + "hyprland": "hyprland", "nixpkgs": "nixpkgs" } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753633878, + "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } } }, "root": "root", From 499a2a4a69e92ffef949d3a20845ff134813b2e2 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 6 Sep 2025 23:05:33 -0400 Subject: [PATCH 08/55] Remove window anim. Add android env vars --- home-manager/arch/hyprland.nix | 4 ++-- home-manager/home/programs/zsh.nix | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/home-manager/arch/hyprland.nix b/home-manager/arch/hyprland.nix index 94e7f62..3d28bde 100644 --- a/home-manager/arch/hyprland.nix +++ b/home-manager/arch/hyprland.nix @@ -140,8 +140,8 @@ "global, 1, 10, default" "border, 1, 5.39, easeOutQuint" "windows, 1, 4.79, easeOutQuint" - "windowsIn, 1, 4.1, easeOutQuint, popin 87%" - "windowsOut, 1, 1.49, linear, popin 87%" + "windowsIn, 0, 4.1, easeOutQuint, popin 87%" + "windowsOut, 0, 1.49, linear, popin 87%" "fadeIn, 1, 1.73, almostLinear" "fadeOut, 1, 1.46, almostLinear" "fade, 1, 3.03, quick" diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index 1662eb7..aefa948 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -62,6 +62,12 @@ export PAGER=cat export PATH="$BUN_INSTALL/bin:$PATH" + export ANDROID_HOME="$HOME/Android/Sdk" + export PATH=$PATH:$ANDROID_HOME/emulator + export PATH=$PATH:$ANDROID_HOME/platform-tools + + + # export PATH=$PATH:"/mnt/c/Program Files/WezTerm/" eval "`fnm env`" From ad28cb86f14f3691b2e69c67743fb49e8718ad0d Mon Sep 17 00:00:00 2001 From: dev-rb Date: Thu, 18 Sep 2025 20:56:42 -0400 Subject: [PATCH 09/55] Add and setup niri. Make separate scripts folder and move --- home-manager/arch/niri.nix | 14 +++ home-manager/arch/scripts.nix | 9 ++ home-manager/flake.lock | 124 +++++++++++++++++++++- home-manager/flake.nix | 14 ++- niri/config.kdl | 159 ++++++++++++++++++++++++++++ {hyprland => scripts}/brightness.sh | 0 {hyprland => scripts}/volume.sh | 0 {hyprland => scripts}/wallpapers.sh | 0 8 files changed, 316 insertions(+), 4 deletions(-) create mode 100644 home-manager/arch/niri.nix create mode 100644 home-manager/arch/scripts.nix create mode 100644 niri/config.kdl rename {hyprland => scripts}/brightness.sh (100%) rename {hyprland => scripts}/volume.sh (100%) rename {hyprland => scripts}/wallpapers.sh (100%) diff --git a/home-manager/arch/niri.nix b/home-manager/arch/niri.nix new file mode 100644 index 0000000..abccb5d --- /dev/null +++ b/home-manager/arch/niri.nix @@ -0,0 +1,14 @@ +{ pkgs, config, ... }: + +{ + programs.niri.enable = true; + + home.file = { + ".config/niri/" = { + source = ../../niri; + recursive = true; + force = true; + }; + }; + +} diff --git a/home-manager/arch/scripts.nix b/home-manager/arch/scripts.nix new file mode 100644 index 0000000..b411e47 --- /dev/null +++ b/home-manager/arch/scripts.nix @@ -0,0 +1,9 @@ +{ + home.file = { + ".config/scripts/" = { + source = ../../scripts; + recursive = true; + force = true; + }; + }; +} diff --git a/home-manager/flake.lock b/home-manager/flake.lock index c7f5738..77642af 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -354,7 +354,95 @@ "type": "github" } }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": "nixpkgs", + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1757183725, + "narHash": "sha256-oZaONTM5A7AhRaXvGr8PNyVL7qbFNIZpMXpsYdTOPmc=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "32d7f54892a516be2060a1e106cde7b47a733c62", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.08", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1756926064, + "narHash": "sha256-5/1vyFRLvJWxhBgpPaV2orC0pjSgIny6JM6+joLyZok=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "c69464c1288789020d9a086f86c970a7dc49b8c7", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1756787288, + "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1757020766, + "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1748460289, "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", @@ -397,7 +485,8 @@ "inputs": { "home-manager": "home-manager", "hyprland": "hyprland", - "nixpkgs": "nixpkgs" + "niri": "niri", + "nixpkgs": "nixpkgs_2" } }, "systems": { @@ -455,6 +544,39 @@ "repo": "xdg-desktop-portal-hyprland", "type": "github" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.7", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1757179758, + "narHash": "sha256-TIvyWzRt1miQj6Cf5Wy8Qz43XIZX7c4vTVwRLAT5S4Y=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "970728d0d9d1eada342bb8860af214b601139e58", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } } }, "root": "root", diff --git a/home-manager/flake.nix b/home-manager/flake.nix index fc50715..c42d89a 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -17,11 +17,13 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + niri.url = "github:sodiboo/niri-flake"; + }; # nix = { settings.experimental-features = [ "nix-command" "flakes" ]; }; - outputs = { self, nixpkgs, home-manager, ... }@inputs: + outputs = { self, nixpkgs, niri, home-manager, ... }@inputs: let system = "x86_64-linux"; inherit (self) outputs; @@ -56,8 +58,14 @@ services.pipewire.pulse.enable = true; services.pipewire.alsa.enable = true; services.pipewire.wireplumber.enable = true; - modules = - [ ./arch/hyprland.nix ./arch/hypridle.nix ./arch/hyprlock.nix ]; + modules = [ + niri.homeModules.niri + ./arch/hyprland.nix + ./arch/hypridle.nix + ./arch/hyprlock.nix + ./arch/niri.nix + ./arch/scripts.nix + ]; }; "wsl" = HomeConfiguration { diff --git a/niri/config.kdl b/niri/config.kdl new file mode 100644 index 0000000..76c6397 --- /dev/null +++ b/niri/config.kdl @@ -0,0 +1,159 @@ +spawn-at-startup "waybar" +spawn-at-startup "dunst" +spawn-at-startup "swww-daemon" +spawn-sh-at-startup "vicinae server" +spawn-sh-at-startup "gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'" // for GTK4 apps +spawn-sh-at-startup "gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3'" // for GTK3 apps +spawn-sh-at-startup "~/.config/scripts/wallpapers.sh" + + +prefer-no-csd +hotkey-overlay { + skip-at-startup +} +input { + keyboard { + xkb { + layout "" + model "" + rules "" + variant "" + } + repeat-delay 300 + repeat-rate 50 + track-layout "global" + } + touchpad { + left-handed + tap + dwt + natural-scroll + click-method "clickfinger" + } + mouse { left-handed; } + trackpoint { left-handed; } + trackball { left-handed; } + focus-follows-mouse +} +output "eDP-1" { + scale 1.0 + transform "normal" +} +layout { + gaps 16 + struts { + left 0 + right 0 + top 0 + bottom 0 + } + focus-ring { + width 2; + active-color "rgba(255 255 255 0.4)"; + inactive-color "rgba(59 59 59 0.4)"; + } + border { off; } + default-column-width + center-focused-column "never" +} +cursor { + xcursor-theme "default" + xcursor-size 24 + hide-after-inactive-ms 5000 +} +binds { + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+B { spawn "firefox"; } + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + Mod+C { center-column; } + Mod+Comma { consume-window-into-column; } + Mod+Ctrl+Down { focus-monitor-down; } + Mod+Ctrl+H { focus-monitor-left; } + Mod+Ctrl+J { focus-monitor-down; } + Mod+Ctrl+K { focus-monitor-up; } + Mod+Ctrl+L { focus-monitor-right; } + Mod+Ctrl+Left { focus-monitor-left; } + Mod+Ctrl+R { reset-window-height; } + Mod+Ctrl+Right { focus-monitor-right; } + Mod+Ctrl+Shift+Down { move-column-to-monitor-down; } + Mod+Ctrl+Shift+H { move-column-to-monitor-left; } + Mod+Ctrl+Shift+J { move-column-to-monitor-down; } + Mod+Ctrl+Shift+K { move-column-to-monitor-up; } + Mod+Ctrl+Shift+L { move-column-to-monitor-right; } + Mod+Ctrl+Shift+Left { move-column-to-monitor-left; } + Mod+Ctrl+Shift+Right { move-column-to-monitor-right; } + Mod+Ctrl+Shift+Up { move-column-to-monitor-up; } + Mod+Ctrl+Up { focus-monitor-up; } + Mod+Down { focus-window-or-workspace-down; } + Mod+E { spawn "bash" "-c" "tofi-run | xargs niri msg action spawn --"; } + Mod+Equal { set-column-width "+10%"; } + Mod+F { maximize-column; } + Mod+H { focus-column-left; } + Mod+I { focus-workspace-up; } + Mod+J { focus-window-or-workspace-down; } + Mod+K { focus-window-or-workspace-up; } + Mod+L { focus-column-right; } + Mod+Left { focus-column-left; } + Mod+Minus { set-column-width "-10%"; } + Mod+Period { expel-window-from-column; } + Mod+Q { close-window; } + Mod+R { switch-preset-column-width; } + Mod+Return { spawn "wezterm"; } + Mod+Right { focus-column-right; } + Mod+Shift+1 { move-column-to-workspace 1; } + Mod+Shift+2 { move-column-to-workspace 2; } + Mod+Shift+3 { move-column-to-workspace 3; } + Mod+Shift+4 { move-column-to-workspace 4; } + Mod+Shift+5 { move-column-to-workspace 5; } + Mod+Shift+6 { move-column-to-workspace 6; } + Mod+Shift+7 { move-column-to-workspace 7; } + Mod+Shift+8 { move-column-to-workspace 8; } + Mod+Shift+9 { move-column-to-workspace 9; } + Mod+Shift+Ctrl+R { reset-window-height; } + Mod+Shift+Down { move-window-down-or-to-workspace-down; } + Mod+Shift+E { quit; } + Mod+Shift+Equal { set-window-height "+10%"; } + Mod+Shift+F { fullscreen-window; } + Mod+Shift+H { move-column-left; } + Mod+Shift+I { move-column-to-workspace-up; } + Mod+Shift+J { move-window-down-or-to-workspace-down; } + Mod+Shift+K { move-window-up-or-to-workspace-up; } + Mod+Shift+L { move-column-right; } + Mod+Shift+Left { move-column-left; } + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Shift+Right { move-column-right; } + Mod+Shift+Slash { show-hotkey-overlay; } + Mod+Shift+U { move-column-to-workspace-down; } + Mod+Shift+Up { move-window-up-or-to-workspace-up; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + Mod+Shift+WheelScrollDown { focus-window-or-workspace-down; } + Mod+Shift+WheelScrollUp { focus-window-or-workspace-up; } + Mod+Tab { toggle-overview; } + Mod+U { focus-workspace-down; } + Mod+Up { focus-window-or-workspace-up; } + Mod+V { toggle-window-floating; } + Mod+W { toggle-column-tabbed-display; } + Mod+WheelScrollDown { focus-column-right; } + Mod+WheelScrollUp { focus-column-left; } + Mod+Escape { spawn "hyprlock"; } + Alt+Space { spawn "vicinae"; } + Print { screenshot-screen; } + Shift+Print { screenshot; } + XF86AudioLowerVolume { spawn-sh "sh $HOME/.config/scripts/volume.sh down"; } + XF86AudioRaiseVolume { spawn-sh "sh $HOME/.config/scripts/volume.sh up"; } + XF86AudioMute { spawn-sh "$HOME/.config/scripts/volume.sh mute"; } + XF86Favorites { toggle-overview; } + XF86HangupPhone { toggle-overview; } + XF86MonBrightnessDown { spawn-sh "sh $HOME/.config/scripts/brightness.sh down"; } + XF86MonBrightnessUp { spawn-sh "sh $HOME/.config/scripts/brightness.sh up"; } +} diff --git a/hyprland/brightness.sh b/scripts/brightness.sh similarity index 100% rename from hyprland/brightness.sh rename to scripts/brightness.sh diff --git a/hyprland/volume.sh b/scripts/volume.sh similarity index 100% rename from hyprland/volume.sh rename to scripts/volume.sh diff --git a/hyprland/wallpapers.sh b/scripts/wallpapers.sh similarity index 100% rename from hyprland/wallpapers.sh rename to scripts/wallpapers.sh From fce2c269321c9321793bc581f4a916e57664f5ad Mon Sep 17 00:00:00 2001 From: dev-rb Date: Thu, 18 Sep 2025 20:57:45 -0400 Subject: [PATCH 10/55] Disable hyprland --- home-manager/arch/hyprland.nix | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/home-manager/arch/hyprland.nix b/home-manager/arch/hyprland.nix index 3d28bde..93d73e3 100644 --- a/home-manager/arch/hyprland.nix +++ b/home-manager/arch/hyprland.nix @@ -1,16 +1,8 @@ { pkgs, ... }: { - home.file = { - ".config/hypr/" = { - source = ../../hyprland; - recursive = true; - force = true; - }; - }; - wayland.windowManager.hyprland = { - enable = true; + enable = false; package = null; settings = { monitor = ",1920x1200,auto,1,bitdepth,8"; @@ -167,9 +159,17 @@ master = { new_status = "master"; }; exec-once = [ + #for libadwaita gtk4 apps you can use this command: + "gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'" # for GTK4 apps + + #for gtk3 apps you need to install adw-gtk3 theme (in arch linux sudo pacman -S adw-gtk-theme) + "gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3'" # for GTK3 apps + + #for kde apps you need to install: sudo pacman -S qt5ct qt6ct kvantum kvantum breeze-icons + #you will need to set dark theme for qt apps from kde more difficult thans with gnome :D: "hypridle" "swww-daemon &" - "./wallpapers.sh" + "$HOME/.config/scripts/wallpapers.sh" "waybar " "dunst" @@ -270,12 +270,12 @@ bindel = [ # Laptop multimedia keys for volume and LCD brightness - ",XF86AudioRaiseVolume, exec, sh $HOME/.config/hypr/volume.sh up" - ",XF86AudioLowerVolume, exec, sh $HOME/.config/hypr/volume.sh down" - ",XF86AudioMute, exec, sh $HOME/.config/hypr/volume.sh mute" + ",XF86AudioRaiseVolume, exec, sh $HOME/.config/scripts/volume.sh up" + ",XF86AudioLowerVolume, exec, sh $HOME/.config/scripts/volume.sh down" + ",XF86AudioMute, exec, sh $HOME/.config/scripts/volume.sh mute" ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" - ",XF86MonBrightnessUp, exec, sh $HOME/.config/hypr/brightness.sh up" - ",XF86MonBrightnessDown, exec, sh $HOME/.config/hypr/brightness.sh down" + ",XF86MonBrightnessUp, exec, sh $HOME/.config/scripts/brightness.sh up" + ",XF86MonBrightnessDown, exec, sh $HOME/.config/scripts/brightness.sh down" ]; bindl = [ From 75fc5808644f2318081ebf278430ddf413cda67c Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:03:09 -0500 Subject: [PATCH 11/55] Clean up home --- home-manager/home/home.nix | 39 +++----------------------------------- 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/home-manager/home/home.nix b/home-manager/home/home.nix index 5cc4caf..c74e5f3 100644 --- a/home-manager/home/home.nix +++ b/home-manager/home/home.nix @@ -1,8 +1,6 @@ { vars, ... }: { - # Home Manager needs a bit of information about you and the paths it should - # manage. home.username = vars.username; home.homeDirectory = "/home/${vars.username}"; @@ -15,23 +13,6 @@ # release notes. home.stateVersion = "24.05"; # Please read the comment before changing. - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # users.users.defaultUserShell = pkgs.zsh; - imports = [ ./packages.nix ./programs/general.nix @@ -39,23 +20,9 @@ ./programs/neovim.nix ]; - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/dev-rb/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { EDITOR = "nvim"; }; + home.sessionVariables = { + EDITOR = "nvim"; + }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; From ce69e40a85b147347d7aa9fbf1d001f8cd3392d5 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:03:28 -0500 Subject: [PATCH 12/55] Clean up and add packages --- home-manager/home/packages.nix | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/home-manager/home/packages.nix b/home-manager/home/packages.nix index 775138d..e7848b8 100644 --- a/home-manager/home/packages.nix +++ b/home-manager/home/packages.nix @@ -1,4 +1,4 @@ -{ inputs, pkgs, ... }: +{ pkgs, ... }: { programs.bat.enable = true; @@ -20,33 +20,23 @@ jless ripgrep wget + jq # javascript/typescript fnm + bun # LSPs lua-language-server tailwindcss-language-server #unocss-language-server typescript-language-server + nil # formatters nixfmt-rfc-style stylua - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - + biome ]; } From 468c3ef343043d6d8eec6d50354d0fa157df696a Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:04:23 -0500 Subject: [PATCH 13/55] Remove plugins list. Update gcf to sort by commit date. Clean up --- home-manager/home/programs/zsh.nix | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index aefa948..587784e 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -14,24 +14,10 @@ ignoreSpace = true; }; - plugins = [ - # { - # name = "fzf-tab"; - # src = pkgs.fetchFromGitHub { - # owner = "Aloxaf"; - # repo = "fzf-tab"; - # rev = "v1.1.2"; - # sha256 = "7fed01afba9392b6392408b9a0cf888522ed7a10"; - # }; - # } - ]; shellAliases = { ls = "eza --icons=always"; cat = "bat"; - # Windows path for explorer - # explorer = "/mnt/c/Windows/explorer.exe"; - # wezterm = "/mnt/c/Program\\ Files/WezTerm/wezterm.exe"; - gcf = "git checkout $(git branch --list | fzf)"; + gcf = "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; gs = "git status"; }; From d28e5d872af3e8744cd5fef0007217dcd790b5f8 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:04:39 -0500 Subject: [PATCH 14/55] Add explorer and wezterm paths conditionally --- home-manager/home/programs/zsh.nix | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index 587784e..a55390e 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -14,12 +14,24 @@ ignoreSpace = true; }; - shellAliases = { - ls = "eza --icons=always"; - cat = "bat"; - gcf = "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; - gs = "git status"; - }; + shellAliases = + { + ls = "eza --icons=always"; + cat = "bat"; + gcf = "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; + gs = "git status"; + } + // ( + if vars.name == "wsl" then + { + + # Windows path for explorer + explorer = "/mnt/c/Windows/explorer.exe"; + wezterm = "/mnt/c/Program\\ Files/WezTerm/wezterm.exe"; + } + else + { } + ); defaultKeymap = "emacs"; From e09d1e999fb0b784d022a2f030fc2caa48f3edb0 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:04:47 -0500 Subject: [PATCH 15/55] Clean up paths --- home-manager/home/programs/zsh.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index a55390e..036567d 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -51,9 +51,9 @@ bindkey '^p' history-search-backward bindkey '^n' history-search-forward - export GOPATH="/home/${vars.username}/go" + export GOPATH="$HOME/go" - export PATH="/home/${vars.username}/.local/share/fnm:$PATH" + export PATH="$HOME/.local/share/fnm:$PATH" export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin export BUN_INSTALL="$HOME/.bun" @@ -66,11 +66,11 @@ - # export PATH=$PATH:"/mnt/c/Program Files/WezTerm/" + export PATH="$BUN_INSTALL/bin:$PATH" eval "`fnm env`" - export PNPM_HOME="/home/${vars.username}/.local/share/pnpm" + export PNPM_HOME="$HOME/.local/share/pnpm" case ":$PATH:" in *":$PNPM_HOME:"*) ;; *) export PATH="$PNPM_HOME:$PATH" ;; From 9f2333fa34196f5fd03dcb1f497f6e9ecd4a005f Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:05:02 -0500 Subject: [PATCH 16/55] Remove manual base46 plugin add --- nvim/init.lua | 5 ----- 1 file changed, 5 deletions(-) diff --git a/nvim/init.lua b/nvim/init.lua index 447946a..1a8e0d9 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -21,11 +21,6 @@ require("lazy").setup({ branch = "v2.5", import = "nvchad.plugins", }, - { - "NvChad/base46", - lazy = false, - branch = "v3.0", - }, { import = "plugins" }, }, lazy_config) From 671fd22c431ee783c43bc819d0b80bb69bfaa8f4 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:06:44 -0500 Subject: [PATCH 17/55] Add resize command and binds. Add lsp binds --- nvim/lua/autocmd.lua | 19 +++++++++++++++++++ nvim/lua/mappings.lua | 14 ++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/nvim/lua/autocmd.lua b/nvim/lua/autocmd.lua index 2110dd5..2c2df98 100644 --- a/nvim/lua/autocmd.lua +++ b/nvim/lua/autocmd.lua @@ -13,3 +13,22 @@ vim.api.nvim_create_autocmd("VimEnter", { end, nested = true, }) + +-- Resizes +vim.api.nvim_create_user_command("Vr", function(opts) + local usage = "Usage: [VerticalResize] :Vr {number (%)}" + if not opts.args or not string.len(opts.args) == 2 then + print(usage) + return + end + vim.cmd(":vertical resize " .. vim.opt.columns:get() * (opts.args / 100.0)) +end, { nargs = "*" }) + +vim.api.nvim_create_user_command("Hr", function(opts) + local usage = "Usage: [HorizontalResize] :Hr {number (%)}" + if not opts.args or not string.len(opts.args) == 2 then + print(usage) + return + end + vim.cmd(":resize " .. ((vim.opt.lines:get() - vim.opt.cmdheight:get()) * (opts.args / 100.0))) +end, { nargs = "*" }) diff --git a/nvim/lua/mappings.lua b/nvim/lua/mappings.lua index 26fe1fc..d5f2841 100644 --- a/nvim/lua/mappings.lua +++ b/nvim/lua/mappings.lua @@ -52,3 +52,17 @@ map("n", "zn", function() require("focus").toggle {} require("focus").toggle_zen {} end) + +map("n", "ca", vim.lsp.buf.code_action) +map("n", "gr", vim.lsp.buf.references) +map("n", "K", vim.lsp.buf.hover) + +map("n", "1", " Vr 10 ") +map("n", "2", " Vr 20 ") +map("n", "3", " Vr 30 ") +map("n", "4", " Vr 40 ") +map("n", "5", " Vr 50 ") +map("n", "6", " Vr 60 ") +map("n", "7", " Vr 70 ") +map("n", "8", " Vr 80 ") +map("n", "9", " Vr 90 ") From 2016e231bec8cbc0537e60113042208f8e48fd5f Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:07:13 -0500 Subject: [PATCH 18/55] Update NormalFloat hl --- nvim/lua/chadrc.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/nvim/lua/chadrc.lua b/nvim/lua/chadrc.lua index f2f96d7..17f3e66 100755 --- a/nvim/lua/chadrc.lua +++ b/nvim/lua/chadrc.lua @@ -9,6 +9,7 @@ M.base46 = { theme = "onedark", hl_override = { + NormalFloat = { bg = "darker_black" }, IblScopeChar = { underline = false, link = "Visual" }, }, hl_add = { From fb0ccd3209599ecf3c914a31a25f814e47a9fcf3 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:08:38 -0500 Subject: [PATCH 19/55] Use native nvim lsp config. Add additional servers --- nvim/lua/configs/lspconfig.lua | 163 +++++++++++++++------------------ 1 file changed, 74 insertions(+), 89 deletions(-) diff --git a/nvim/lua/configs/lspconfig.lua b/nvim/lua/configs/lspconfig.lua index ffc59af..d6e4bbd 100644 --- a/nvim/lua/configs/lspconfig.lua +++ b/nvim/lua/configs/lspconfig.lua @@ -1,43 +1,24 @@ --- load defaults i.e lua_lsp require("nvchad.configs.lspconfig").defaults() -local lspconfig = require "lspconfig" - --- EXAMPLE -local servers = { "html", "cssls", "gopls" } -local nvlsp = require "nvchad.configs.lspconfig" - --- lsps with default config -for _, lsp in ipairs(servers) do - lspconfig[lsp].setup { - on_attach = nvlsp.on_attach, - on_init = nvlsp.on_init, - capabilities = nvlsp.capabilities, - } -end - --- configuring single server, example: typescript -lspconfig.ts_ls.setup { - enabled = false, +local servers = { + -- "basedpyright", + "biome", + "cssls", + "gopls", + "html", + "jsonls", + "nil_ls", + "prettierd", + "pylsp", + "tailwindcss", + "unocss", + "vtsls", } -lspconfig.jsonls.setup { - on_attach = nvlsp.on_attach, - on_init = nvlsp.on_init, - capabilities = nvlsp.capabilities, -} - --- lspconfig.tsserver.setup { --- enabled = false, --- } - -- https://github.com/yioneko/vtsls -- npm install -g @vtsls/language-server -- pnpm add -g @vtsls/language-server -lspconfig.vtsls.setup { - on_attach = nvlsp.on_attach, - on_init = nvlsp.on_init, - capabilities = nvlsp.capabilities, +vim.lsp.config.vtsls = { filetypes = { "javascript", "javascriptreact", @@ -48,24 +29,32 @@ lspconfig.vtsls.setup { }, settings = { typescript = { + tsdk = "./node_modules/typescript/lib", maxTsServerMemory = 8192, useSeparateSyntaxServer = false, useSyntaxServer = "never", - }, - vtsls = { - experimental = { - completion = { - enableServerSideFuzzyMatch = true, + preferences = { + importModuleSpecifier = "non-relative", + updateImportsOnFileMove = { + enabled = "always", + }, + suggest = { + completeFunctionCalls = true, }, }, }, + -- vtsls = { + -- autoUseWorkspaceTsdk = true, + -- experimental = { + -- completion = { + -- enableServerSideFuzzyMatch = true, + -- }, + -- }, + -- }, }, } -lspconfig.tailwindcss.setup { - on_attach = nvlsp.on_attach, - on_init = nvlsp.on_init, - capabilities = nvlsp.capabilities, +vim.lsp.config.tailwindcss = { settings = { tailwindCSS = { experimental = { @@ -77,54 +66,50 @@ lspconfig.tailwindcss.setup { }, }, } +-- +vim.lsp.config.eslint = { + settings = { + codeAction = { + disableRuleComment = { + enable = true, + location = "separateLine", + }, + showDocumentation = { + enable = true, + }, + }, + experimental = { + useFlatConfig = false, + }, + format = false, + nodePath = "", + onIgnoredFiles = "off", + problems = { + shortenToSingleLine = false, + }, + quiet = false, + rulesCustomizations = {}, + run = "onSave", + useESLintClass = false, + validate = "on", + workingDirectory = { + mode = "location", + }, + }, +} --- lspconfig.eslint.setup { --- on_init = nvlsp.on_init, --- capabilities = nvlsp.capabilities, --- on_attach = nvlsp.on_attach, --- settings = { --- codeAction = { --- disableRuleComment = { --- enable = true, --- location = "separateLine", --- }, --- showDocumentation = { --- enable = true, --- }, --- }, --- experimental = { --- useFlatConfig = false, --- }, --- format = false, --- nodePath = "", --- onIgnoredFiles = "off", --- problems = { --- shortenToSingleLine = false, --- }, --- quiet = false, --- rulesCustomizations = {}, --- run = "onSave", --- useESLintClass = false, --- validate = "on", --- workingDirectory = { --- mode = "location", --- }, --- }, --- } - -lspconfig.unocss.setup { - on_attach = nvlsp.on_attach, - on_init = nvlsp.on_init, - capabilities = nvlsp.capabilities, +vim.lsp.config.unocss = { filetypes = { "html", "javascriptreact", "rescript", "typescriptreact", "vue", "svelte", "typescript.tsx" }, - root_dir = function(fname) - return require("lspconfig.util").root_pattern( - "unocss.config.js", - "unocss.config.ts", - "uno.config.js", - "uno.config.ts" - )(fname) - end, + settings = { + root_dir = function(fname) + return require("vim.lsp.config.util").root_pattern( + "unocss.config.js", + "unocss.config.ts", + "uno.config.js", + "uno.config.ts" + )(fname) + end, + }, } -lspconfig.biome.setup {} +vim.lsp.enable(servers) From b31408cc70b85f6bdb67bec1b26f6ff5b0203357 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:09:46 -0500 Subject: [PATCH 20/55] Add nvchad blink. Remove unused plugins --- nvim/lua/plugins/init.lua | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index 99e0fe5..a2296ab 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -1,4 +1,5 @@ return { + { import = "nvchad.blink.lazyspec" }, { "stevearc/conform.nvim", event = "BufWritePre", -- uncomment for format on save @@ -31,16 +32,6 @@ return { }, }, - { - "cdmill/focus.nvim", - cmd = { "Focus", "Zen", "Narrow" }, - opts = { - -- your configuration comes here - -- or leave it empty to use the default settings - -- refer to the configuration section below - }, - }, - { "mrjones2014/smart-splits.nvim", lazy = false, @@ -68,8 +59,6 @@ return { config = require("configs.ufo").setup, }, - { "akinsho/git-conflict.nvim", version = "*", config = true }, - { "numToStr/Comment.nvim", event = "BufReadPre", From b777eb99d07e70662dd5ab60d7d5c2760ab92a70 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:10:22 -0500 Subject: [PATCH 21/55] Add markview --- nvim/lua/plugins/init.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index a2296ab..2ef5c99 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -1,4 +1,9 @@ return { + { + "OXY2DEV/markview.nvim", + lazy = false, + dependencies = { "saghen/blink.cmp" }, + }, { import = "nvchad.blink.lazyspec" }, { "stevearc/conform.nvim", From c658ec92a199e0f682d7fd7a443b885e7d062b7f Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 15 Nov 2025 19:11:36 -0500 Subject: [PATCH 22/55] Replace vim-illuminate with mini.cursorword --- nvim/lua/chadrc.lua | 4 +--- nvim/lua/plugins/init.lua | 33 ++++----------------------------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/nvim/lua/chadrc.lua b/nvim/lua/chadrc.lua index 17f3e66..f7799d9 100755 --- a/nvim/lua/chadrc.lua +++ b/nvim/lua/chadrc.lua @@ -13,9 +13,7 @@ M.base46 = { IblScopeChar = { underline = false, link = "Visual" }, }, hl_add = { - ["IlluminatedWordText"] = { link = "Visual", underline = false }, - ["IlluminatedWordRead"] = { link = "Visual", underline = false }, - ["IlluminatedWordWrite"] = { link = "Visual", underline = false }, + MiniCursorword = { link = "Visual", underline = false }, }, } diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index 2ef5c99..ea544ac 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -149,36 +149,11 @@ return { end, }, { - "RRethy/vim-illuminate", - event = { "CursorHold", "CursorHoldI" }, - dependencies = "nvim-treesitter", + "nvim-mini/mini.nvim", + lazy = false, + version = false, config = function() - require("illuminate").configure { - under_cursor = true, - max_file_lines = nil, - delay = 100, - providers = { - "lsp", - "treesitter", - "regex", - }, - filetypes_denylist = { - "NvimTree", - "Trouble", - "Outline", - "TelescopePrompt", - "Empty", - "dirvish", - "fugitive", - "alpha", - "packer", - "neogitstatus", - "spectre_panel", - "toggleterm", - "DressingSelect", - "aerial", - }, - } + require("mini.cursorword").setup() end, }, } From f3575dbcef2e74b0fc7477e67b695e4be7213f77 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 14:58:41 -0500 Subject: [PATCH 23/55] Add btop --- home-manager/home/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home-manager/home/packages.nix b/home-manager/home/packages.nix index e7848b8..90a2655 100644 --- a/home-manager/home/packages.nix +++ b/home-manager/home/packages.nix @@ -21,6 +21,7 @@ ripgrep wget jq + btop # javascript/typescript fnm From 21039f2a597bab878d88fe735109146e84ac0c19 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 14:59:07 -0500 Subject: [PATCH 24/55] Make wezterm path alias set for wsl dynamic --- home-manager/home/programs/zsh.nix | 51 ++++++++++++++++-------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index 036567d..509a73f 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -27,7 +27,7 @@ # Windows path for explorer explorer = "/mnt/c/Windows/explorer.exe"; - wezterm = "/mnt/c/Program\\ Files/WezTerm/wezterm.exe"; + wezterm = "$WEZTERM"; } else { } @@ -46,40 +46,43 @@ compinit -C ''; - initContent = '' - eval "$(oh-my-posh init zsh --config ~/dotfiles/pure.omp.json)" - bindkey '^p' history-search-backward - bindkey '^n' history-search-forward + initContent = + '' + eval "$(oh-my-posh init zsh --config ~/dotfiles/pure.omp.json)" + bindkey '^p' history-search-backward + bindkey '^n' history-search-forward - export GOPATH="$HOME/go" - export PATH="$HOME/.local/share/fnm:$PATH" - export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin + export GOPATH="$HOME/go" - export BUN_INSTALL="$HOME/.bun" - export PAGER=cat - export PATH="$BUN_INSTALL/bin:$PATH" + export PATH="$HOME/.local/share/fnm:$PATH" + export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin - export ANDROID_HOME="$HOME/Android/Sdk" - export PATH=$PATH:$ANDROID_HOME/emulator - export PATH=$PATH:$ANDROID_HOME/platform-tools + export BUN_INSTALL="$HOME/.bun" + export PAGER=cat + export PATH="$BUN_INSTALL/bin:$PATH" + export ANDROID_HOME="$HOME/Android/Sdk" + export PATH=$PATH:$ANDROID_HOME/emulator + export PATH=$PATH:$ANDROID_HOME/platform-tools - export PATH="$BUN_INSTALL/bin:$PATH" - eval "`fnm env`" + export PATH="$BUN_INSTALL/bin:$PATH" - export PNPM_HOME="$HOME/.local/share/pnpm" - case ":$PATH:" in - *":$PNPM_HOME:"*) ;; - *) export PATH="$PNPM_HOME:$PATH" ;; - esac + eval "`fnm env`" - alias air='$(go env GOPATH)/bin/air' - source ~/wezterm.sh + export PNPM_HOME="$HOME/.local/share/pnpm" + case ":$PATH:" in + *":$PNPM_HOME:"*) ;; + *) export PATH="$PNPM_HOME:$PATH" ;; + esac - ''; + alias air='$(go env GOPATH)/bin/air' + source ~/wezterm.sh + + '' + + (if vars.name == "wsl" then ''export WEZTERM="$(fd wezterm.exe /mnt --max-results 1)"'' else ""); }; programs.oh-my-posh = { From 149cf2c4de3e539a99e0943d0ca3d40e8d0957e1 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 15:01:43 -0500 Subject: [PATCH 25/55] Add mini ai, move, cursorword as standalone. Remove lspconfig. Change lazy event --- nvim/lua/plugins/init.lua | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index ea544ac..180e938 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -1,7 +1,7 @@ return { { "OXY2DEV/markview.nvim", - lazy = false, + event = "VeryLazy", dependencies = { "saghen/blink.cmp" }, }, { import = "nvchad.blink.lazyspec" }, @@ -10,14 +10,6 @@ return { event = "BufWritePre", -- uncomment for format on save config = require("configs.conform").setup, }, - - -- These are some examples, uncomment them if you want to see them work! - { - "neovim/nvim-lspconfig", - config = function() - require "configs.lspconfig" - end, - }, { "kylechui/nvim-surround", version = "*", -- Use for stability; omit to use `main` branch for the latest features @@ -149,11 +141,11 @@ return { end, }, { - "nvim-mini/mini.nvim", - lazy = false, + "nvim-mini/mini.cursorword", + event = "VeryLazy", version = false, - config = function() - require("mini.cursorword").setup() - end, + opts = {}, }, + { "nvim-mini/mini.ai", event = "VeryLazy", version = false, opts = { search_method = "cover_or_nearest" } }, + { "nvim-mini/mini.move", event = "VeryLazy", version = false, opts = {} }, } From 16f9bcb43211f9267a543b0b22fa5185d8268655 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 15:03:01 -0500 Subject: [PATCH 26/55] Add snacks. Disable telescope --- nvim/lua/configs/snacks.lua | 23 +++++++++++++++++++++++ nvim/lua/plugins/init.lua | 10 ++++++++++ 2 files changed, 33 insertions(+) create mode 100644 nvim/lua/configs/snacks.lua diff --git a/nvim/lua/configs/snacks.lua b/nvim/lua/configs/snacks.lua new file mode 100644 index 0000000..900d73d --- /dev/null +++ b/nvim/lua/configs/snacks.lua @@ -0,0 +1,23 @@ +local options = { + quickfile = { enabled = true }, + picker = { + win = { + input = { + keys = { + [""] = { "focus_preview", mode = { "i", "n" } }, + }, + b = { + minimove_disable = true, + }, + }, + preview = { + keys = { + [""] = { "focus_input", mode = { "i", "n" } }, + }, + }, + }, + }, + zen = {}, +} + +return options diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index 180e938..a321770 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -118,9 +118,11 @@ return { { "nvim-telescope/telescope-ui-select.nvim", version = "*", + enabled = false, }, { "nvim-telescope/telescope.nvim", + enabled = false, dependencies = { "nvim-telescope/telescope-ui-select.nvim", }, @@ -148,4 +150,12 @@ return { }, { "nvim-mini/mini.ai", event = "VeryLazy", version = false, opts = { search_method = "cover_or_nearest" } }, { "nvim-mini/mini.move", event = "VeryLazy", version = false, opts = {} }, + { + "folke/snacks.nvim", + priority = 1000, + event = "VeryLazy", + config = function() + require "configs.snacks" + end, + }, } From b0f75f73d6c5bbe9571e167e4b75a668026c9de6 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 15:05:04 -0500 Subject: [PATCH 27/55] Add hl groups --- nvim/lua/chadrc.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/nvim/lua/chadrc.lua b/nvim/lua/chadrc.lua index f7799d9..32c53bb 100755 --- a/nvim/lua/chadrc.lua +++ b/nvim/lua/chadrc.lua @@ -14,6 +14,19 @@ M.base46 = { }, hl_add = { MiniCursorword = { link = "Visual", underline = false }, + SnacksPickerInput = { link = "TelescopeNormal" }, + SnacksPickerDir = { link = "TelescopeNormal" }, + SnacksPickerPreview = { link = "TelescopeNormal" }, + SnacksPickerList = { link = "TelescopeNormal" }, + SnacksPickerListTitle = { link = "TelescopePromptTitle" }, + SnacksPickerInputTitle = { link = "TelescopePromptTitle" }, + SnacksPickerInputSearch = { link = "TelescopeNormal" }, + SnacksPickerBorder = { link = "TelescopeBorder" }, + SnacksNormal = { link = "TelescopePromptTitle" }, + SnacksNormalNC = { link = "TelescopePromptTitle" }, + SnacksPickerFooter = { link = "TelescopePromptTitle" }, + SnacksPickerCol = { link = "Text" }, + SnacksPickerTitle = { link = "TelescopePromptTitle" }, }, } From 608a4be6dd1d9e670e4ff79390f939ccd28e3eed Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 15:06:08 -0500 Subject: [PATCH 28/55] Remove unused --- nvim/lua/mappings.lua | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/nvim/lua/mappings.lua b/nvim/lua/mappings.lua index d5f2841..60b6e5d 100644 --- a/nvim/lua/mappings.lua +++ b/nvim/lua/mappings.lua @@ -1,10 +1,6 @@ require "nvchad.mappings" --- add yours here - local map = vim.keymap.set -vim.keymap.del("n", "") -vim.keymap.del("n", "") map({ "n", "i", "v" }, "", " w ") @@ -48,13 +44,7 @@ map("n", "f", function() vim.diagnostic.open_float { border = "rounded" } end) -map("n", "zn", function() - require("focus").toggle {} - require("focus").toggle_zen {} -end) - map("n", "ca", vim.lsp.buf.code_action) -map("n", "gr", vim.lsp.buf.references) map("n", "K", vim.lsp.buf.hover) map("n", "1", " Vr 10 ") From 19863a920f1dd0abfe513efc0ef089ba3559a490 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 15:06:18 -0500 Subject: [PATCH 29/55] Add snacks mappings --- nvim/lua/mappings.lua | 351 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 351 insertions(+) diff --git a/nvim/lua/mappings.lua b/nvim/lua/mappings.lua index 60b6e5d..e54d25c 100644 --- a/nvim/lua/mappings.lua +++ b/nvim/lua/mappings.lua @@ -56,3 +56,354 @@ map("n", "6", " Vr 60 ") map("n", "7", " Vr 70 ") map("n", "8", " Vr 80 ") map("n", "9", " Vr 90 ") + +local snacks = { + { + "sf", + function() + Snacks.picker.smart() + end, + desc = "Smart Find Files", + }, + { + "fw", + function() + Snacks.picker.grep() + end, + desc = "Grep", + }, + { + "fch", + function() + Snacks.picker.command_history() + end, + desc = "Command History", + }, + -- find + { + "fb", + function() + Snacks.picker.buffers() + end, + desc = "Buffers", + }, + { + "fC", + function() + Snacks.picker.files { cwd = vim.fn.stdpath "config" } + end, + desc = "Find Config File", + }, + { + "ff", + function() + Snacks.picker.files() + end, + desc = "Find Files", + }, + { + "fg", + function() + Snacks.picker.git_files() + end, + desc = "Find Git Files", + }, + { + "fp", + function() + Snacks.picker.projects() + end, + desc = "Projects", + }, + { + "fr", + function() + Snacks.picker.recent() + end, + desc = "Recent", + }, + -- git + { + "gb", + function() + Snacks.picker.git_branches() + end, + desc = "Git Branches", + }, + { + "gl", + function() + Snacks.picker.git_log() + end, + desc = "Git Log", + }, + { + "gL", + function() + Snacks.picker.git_log_line() + end, + desc = "Git Log Line", + }, + { + "gs", + function() + Snacks.picker.git_status() + end, + desc = "Git Status", + }, + { + "gS", + function() + Snacks.picker.git_stash() + end, + desc = "Git Stash", + }, + { + "gd", + function() + Snacks.picker.git_diff() + end, + desc = "Git Diff (Hunks)", + }, + { + "gf", + function() + Snacks.picker.git_log_file() + end, + desc = "Git Log File", + }, + -- gh + { + "gi", + function() + Snacks.picker.gh_issue() + end, + desc = "GitHub Issues (open)", + }, + { + "gI", + function() + Snacks.picker.gh_issue { state = "all" } + end, + desc = "GitHub Issues (all)", + }, + { + "gp", + function() + Snacks.picker.gh_pr() + end, + desc = "GitHub Pull Requests (open)", + }, + { + "gP", + function() + Snacks.picker.gh_pr { state = "all" } + end, + desc = "GitHub Pull Requests (all)", + }, + -- Grep + { + "sb", + function() + Snacks.picker.lines() + end, + desc = "Buffer Lines", + }, + { + "sB", + function() + Snacks.picker.grep_buffers() + end, + desc = "Grep Open Buffers", + }, + { + "sw", + function() + Snacks.picker.grep_word() + end, + desc = "Visual selection or word", + mode = { "n", "x" }, + }, + -- search + { + 's"', + function() + Snacks.picker.registers() + end, + desc = "Registers", + }, + { + "s/", + function() + Snacks.picker.search_history() + end, + desc = "Search History", + }, + { + "sb", + function() + Snacks.picker.lines() + end, + desc = "Buffer Lines", + }, + { + "sc", + function() + Snacks.picker.command_history() + end, + desc = "Command History", + }, + { + "sC", + function() + Snacks.picker.commands() + end, + desc = "Commands", + }, + { + "sd", + function() + Snacks.picker.diagnostics() + end, + desc = "Diagnostics", + }, + { + "sD", + function() + Snacks.picker.diagnostics_buffer() + end, + desc = "Buffer Diagnostics", + }, + { + "sh", + function() + Snacks.picker.help() + end, + desc = "Help Pages", + }, + { + "sH", + function() + Snacks.picker.highlights() + end, + desc = "Highlights", + }, + { + "si", + function() + Snacks.picker.icons() + end, + desc = "Icons", + }, + { + "sj", + function() + Snacks.picker.jumps() + end, + desc = "Jumps", + }, + { + "sk", + function() + Snacks.picker.keymaps() + end, + desc = "Keymaps", + }, + { + "sl", + function() + Snacks.picker.loclist() + end, + desc = "Location List", + }, + { + "sm", + function() + Snacks.picker.marks() + end, + desc = "Marks", + }, + { + "sM", + function() + Snacks.picker.man() + end, + desc = "Man Pages", + }, + { + "sq", + function() + Snacks.picker.qflist() + end, + desc = "Quickfix List", + }, + { + "sR", + function() + Snacks.picker.resume() + end, + desc = "Resume", + }, + { + "su", + function() + Snacks.picker.undo() + end, + desc = "Undo History", + }, + -- LSP + { + "gd", + function() + Snacks.picker.lsp_definitions() + end, + desc = "Goto Definition", + }, + { + "gD", + function() + Snacks.picker.lsp_declarations() + end, + desc = "Goto Declaration", + }, + { + "gr", + function() + Snacks.picker.lsp_references() + end, + nowait = true, + desc = "References", + }, + { + "gI", + function() + Snacks.picker.lsp_implementations() + end, + desc = "Goto Implementation", + }, + { + "gy", + function() + Snacks.picker.lsp_type_definitions() + end, + desc = "Goto T[y]pe Definition", + }, + { + "ls", + function() + Snacks.picker.lsp_symbols() + end, + desc = "LSP Symbols", + }, + { + "lws", + function() + Snacks.picker.lsp_workspace_symbols() + end, + desc = "LSP Workspace Symbols", + }, +} + +for _, val in pairs(snacks) do + map("n", val[1], val[2], { desc = val.desc }) +end From 702d89c17be070a89689cc352d08da0030232a68 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 15:11:01 -0500 Subject: [PATCH 30/55] Clean up lsp configs --- nvim/lua/configs/lspconfig.lua | 187 ++++++++++++++++----------------- 1 file changed, 92 insertions(+), 95 deletions(-) diff --git a/nvim/lua/configs/lspconfig.lua b/nvim/lua/configs/lspconfig.lua index d6e4bbd..95ecf03 100644 --- a/nvim/lua/configs/lspconfig.lua +++ b/nvim/lua/configs/lspconfig.lua @@ -2,114 +2,111 @@ require("nvchad.configs.lspconfig").defaults() local servers = { -- "basedpyright", - "biome", - "cssls", - "gopls", - "html", - "jsonls", - "nil_ls", - "prettierd", - "pylsp", - "tailwindcss", - "unocss", - "vtsls", -} - --- https://github.com/yioneko/vtsls --- npm install -g @vtsls/language-server --- pnpm add -g @vtsls/language-server -vim.lsp.config.vtsls = { - filetypes = { - "javascript", - "javascriptreact", - "javascript.jsx", - "typescript", - "typescriptreact", - "typescript.tsx", - }, - settings = { - typescript = { - tsdk = "./node_modules/typescript/lib", - maxTsServerMemory = 8192, - useSeparateSyntaxServer = false, - useSyntaxServer = "never", - preferences = { - importModuleSpecifier = "non-relative", - updateImportsOnFileMove = { - enabled = "always", + biome = {}, + cssls = {}, + eslint = { + settings = { + codeAction = { + disableRuleComment = { + enable = true, + location = "separateLine", }, - suggest = { - completeFunctionCalls = true, + showDocumentation = { + enable = true, }, }, - }, - -- vtsls = { - -- autoUseWorkspaceTsdk = true, - -- experimental = { - -- completion = { - -- enableServerSideFuzzyMatch = true, - -- }, - -- }, - -- }, - }, -} - -vim.lsp.config.tailwindcss = { - settings = { - tailwindCSS = { experimental = { - classRegex = { - { "cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]" }, - { "cx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)" }, - }, + useFlatConfig = false, + }, + format = false, + nodePath = "", + onIgnoredFiles = "off", + problems = { + shortenToSingleLine = false, + }, + quiet = false, + rulesCustomizations = {}, + run = "onSave", + useESLintClass = false, + validate = "on", + workingDirectory = { + mode = "location", }, }, }, -} --- -vim.lsp.config.eslint = { - settings = { - codeAction = { - disableRuleComment = { - enable = true, - location = "separateLine", - }, - showDocumentation = { - enable = true, + gopls = {}, + html = {}, + jsonls = {}, + nil_ls = {}, + prettierd = {}, + -- pylsp = {}, + tailwindcss = { + settings = { + tailwindCSS = { + experimental = { + classRegex = { + { "cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]" }, + { "cx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)" }, + }, + }, }, }, - experimental = { - useFlatConfig = false, + }, + unocss = { + filetypes = { "html", "javascriptreact", "rescript", "typescriptreact", "vue", "svelte", "typescript.tsx" }, + settings = { + root_dir = function(fname) + return require("vim.lsp.config.util").root_pattern( + "unocss.config.js", + "unocss.config.ts", + "uno.config.js", + "uno.config.ts" + )(fname) + end, }, - format = false, - nodePath = "", - onIgnoredFiles = "off", - problems = { - shortenToSingleLine = false, + }, + vtsls = { + -- https://github.com/yioneko/vtsls + -- npm install -g @vtsls/language-server + -- pnpm add -g @vtsls/language-server + filetypes = { + "javascript", + "javascriptreact", + "javascript.jsx", + "typescript", + "typescriptreact", + "typescript.tsx", }, - quiet = false, - rulesCustomizations = {}, - run = "onSave", - useESLintClass = false, - validate = "on", - workingDirectory = { - mode = "location", + settings = { + typescript = { + tsdk = "./node_modules/typescript/lib", + maxTsServerMemory = 8192, + useSeparateSyntaxServer = false, + useSyntaxServer = "never", + preferences = { + importModuleSpecifier = "non-relative", + updateImportsOnFileMove = { + enabled = "always", + }, + suggest = { + completeFunctionCalls = true, + }, + }, + }, + -- vtsls = { + -- autoUseWorkspaceTsdk = true, + -- experimental = { + -- completion = { + -- enableServerSideFuzzyMatch = true, + -- }, + -- }, + -- }, }, }, } -vim.lsp.config.unocss = { - filetypes = { "html", "javascriptreact", "rescript", "typescriptreact", "vue", "svelte", "typescript.tsx" }, - settings = { - root_dir = function(fname) - return require("vim.lsp.config.util").root_pattern( - "unocss.config.js", - "unocss.config.ts", - "uno.config.js", - "uno.config.ts" - )(fname) - end, - }, -} +for name, opts in pairs(servers) do + vim.lsp.config(name, opts) +end -vim.lsp.enable(servers) +vim.lsp.enable(vim.tbl_keys(servers)) From 07795231eddb3ee32af793c99c5635546e02914d Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 15:11:23 -0500 Subject: [PATCH 31/55] Remove ts_context_commentstring set --- nvim/lua/options.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/nvim/lua/options.lua b/nvim/lua/options.lua index fcbb20d..dec98ee 100644 --- a/nvim/lua/options.lua +++ b/nvim/lua/options.lua @@ -12,5 +12,3 @@ o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease o.foldlevelstart = 99 o.foldenable = true o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] - -vim.g.skip_ts_context_commentstring_module = true From d896d5170cf85c55cb93d90b5dc29742079cc27d Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 16:20:13 -0500 Subject: [PATCH 32/55] Session opts --- nvim/lua/options.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvim/lua/options.lua b/nvim/lua/options.lua index dec98ee..4746475 100644 --- a/nvim/lua/options.lua +++ b/nvim/lua/options.lua @@ -12,3 +12,5 @@ o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease o.foldlevelstart = 99 o.foldenable = true o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] + +vim.opt.sessionoptions = "buffers,curdir,help,tabpages,winsize" From edddc357a9170eb5530f3f79336570de3df47bca Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sun, 16 Nov 2025 16:21:06 -0500 Subject: [PATCH 33/55] Clean up and add lazy events --- nvim/lua/plugins/init.lua | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index a321770..e2a183b 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -7,7 +7,7 @@ return { { import = "nvchad.blink.lazyspec" }, { "stevearc/conform.nvim", - event = "BufWritePre", -- uncomment for format on save + event = "BufWritePre", config = require("configs.conform").setup, }, { @@ -15,23 +15,19 @@ return { version = "*", -- Use for stability; omit to use `main` branch for the latest features event = "VeryLazy", config = function() - require("nvim-surround").setup { - -- Configuration here, or leave empty to use defaults - } + require("nvim-surround").setup {} end, }, { "folke/persistence.nvim", - event = "BufReadPre", -- this will only start session saving when an actual file was opened - opts = { - -- add any custom options here - }, + event = "BufReadPre", + opts = {}, }, { "mrjones2014/smart-splits.nvim", - lazy = false, + event = "VeryLazy", config = function() require("smart-splits").setup { at_edge = "stop", @@ -42,6 +38,7 @@ return { { "nvim-tree/nvim-tree.lua", + event = "VeryLazy", opts = require "configs.nvim-tree", config = function(_, opts) require("nvim-tree").setup(opts) @@ -64,7 +61,7 @@ return { { "windwp/nvim-ts-autotag", - lazy = false, + event = "VeryLazy", config = function(_, opts) require("nvim-ts-autotag").setup(opts) end, @@ -72,9 +69,11 @@ return { { "nvim-treesitter/nvim-treesitter", + event = "VeryLazy", dependencies = { { "JoosepAlviste/nvim-ts-context-commentstring", + event = "VeryLazy", config = function() require("ts_context_commentstring").setup {} end, @@ -110,6 +109,7 @@ return { { "lukas-reineke/indent-blankline.nvim", + event = "VeryLazy", opts = { scope = { enabled = false }, }, From 693dfdef9c4aecc4c72a34b1fb319efd35f33c9b Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 18 Nov 2025 22:44:09 -0500 Subject: [PATCH 34/55] Add back lspconfig --- nvim/lua/plugins/init.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index e2a183b..c0f2299 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -5,6 +5,12 @@ return { dependencies = { "saghen/blink.cmp" }, }, { import = "nvchad.blink.lazyspec" }, + { + "neovim/nvim-lspconfig", + config = function() + require "configs.lspconfig" + end, + }, { "stevearc/conform.nvim", event = "BufWritePre", From 152ae1c3bae19bdb4acd572262a202a8be4b314a Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 18 Nov 2025 22:44:19 -0500 Subject: [PATCH 35/55] Remove mini ai --- nvim/lua/plugins/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index c0f2299..55204f7 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -154,7 +154,7 @@ return { version = false, opts = {}, }, - { "nvim-mini/mini.ai", event = "VeryLazy", version = false, opts = { search_method = "cover_or_nearest" } }, + -- { "nvim-mini/mini.ai", event = "VeryLazy", version = false, opts = { search_method = "cover_or_nearest" } }, { "nvim-mini/mini.move", event = "VeryLazy", version = false, opts = {} }, { "folke/snacks.nvim", From e436b180cee77034c03b2e3d72ff7693a1255656 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Tue, 18 Nov 2025 22:44:40 -0500 Subject: [PATCH 36/55] Fix snacks opts. Disable autopairs on snacks input --- nvim/lua/plugins/init.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index 55204f7..530367e 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -160,8 +160,12 @@ return { "folke/snacks.nvim", priority = 1000, event = "VeryLazy", - config = function() - require "configs.snacks" - end, + opts = require "configs.snacks", + }, + { + "windwp/nvim-autopairs", + opts = { + disable_filetype = { "snacks_picker_input" }, + }, }, } From 4145bb529104069279cc545817c54c29f90d31c6 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Fri, 21 Nov 2025 22:33:17 -0500 Subject: [PATCH 37/55] Add nixgl --- home-manager/flake.nix | 24 +++++++++++++++++++++--- home-manager/home/packages.nix | 29 ++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/home-manager/flake.nix b/home-manager/flake.nix index c42d89a..f9311d0 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -4,6 +4,10 @@ inputs = { # Specify the source of Home Manager and Nixpkgs. nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixgl = { + url = "github:nix-community/nixGL"; + inputs.nixpkgs.follows = "nixpkgs"; + }; home-manager = { url = "github:nix-community/home-manager"; @@ -17,17 +21,29 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - niri.url = "github:sodiboo/niri-flake"; + niri = { + url = "github:sodiboo/niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + hyprlock = { + url = "github:hyprwm/hyprlock"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; # nix = { settings.experimental-features = [ "nix-command" "flakes" ]; }; - outputs = { self, nixpkgs, niri, home-manager, ... }@inputs: + outputs = { self, nixpkgs, niri, nixgl, home-manager, ... }@inputs: let system = "x86_64-linux"; inherit (self) outputs; - pkgs = import nixpkgs { inherit system; }; + pkgs = import nixpkgs { + inherit system; + overlays = [ (import ./overlays.nix) nixgl.overlay ]; + config.allowUnfree = true; + }; HomeConfiguration = args: home-manager.lib.homeManagerConfiguration { @@ -35,6 +51,7 @@ modules = [ ./home/home.nix ] ++ args.modules or [ ]; extraSpecialArgs = { inherit (args) nixpkgs; + inherit nixgl; } // args.extraSpecialArgs; }; in { @@ -59,6 +76,7 @@ services.pipewire.alsa.enable = true; services.pipewire.wireplumber.enable = true; modules = [ + { nixGL.packages = nixgl.packages; } niri.homeModules.niri ./arch/hyprland.nix ./arch/hypridle.nix diff --git a/home-manager/home/packages.nix b/home-manager/home/packages.nix index 90a2655..277db2f 100644 --- a/home-manager/home/packages.nix +++ b/home-manager/home/packages.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, nixgl, ... }: { programs.bat.enable = true; @@ -10,7 +10,33 @@ extraOptions = [ "--group-directories-first" ]; }; + # fonts.fontconfig.enable = true; + + nixGL.packages = nixgl.packages; + nixGL.defaultWrapper = "mesa"; + #nixGL.offloadWrapper = "nvidiaPrime"; + nixGL.installScripts = [ "mesa" ]; + + nixpkgs = { + config = { + allowUnfree = true; + allowUnfreePredicate = (pkg: true); + }; + }; + home.packages = with pkgs; [ + # nixgl.auto.nixGLNvidia + # nixgl.auto.nixVulkanNvidia + # nixgl.nixGLIntel + # nixgl.nixVulkanIntel + + # fonts + noto-fonts + noto-fonts-cjk-sans + noto-fonts-emoji + adwaita-fonts + nerd-fonts.jetbrains-mono + # cli bat eza @@ -22,6 +48,7 @@ wget jq btop + oh-my-posh # javascript/typescript fnm From 5108e9b5c2b9143490e6ef4d89ce4aa4cc2c4e29 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Fri, 21 Nov 2025 23:39:55 -0500 Subject: [PATCH 38/55] Add overlay for hyprlock. Wrap hyprlock in nixgl --- home-manager/arch/hyprlock.nix | 15 ++++----------- home-manager/overlays.nix | 12 ++++++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 home-manager/overlays.nix diff --git a/home-manager/arch/hyprlock.nix b/home-manager/arch/hyprlock.nix index 6e3f5d4..38cb497 100644 --- a/home-manager/arch/hyprlock.nix +++ b/home-manager/arch/hyprlock.nix @@ -1,6 +1,7 @@ -{ ... }: { +{ config, pkgs, ... }: { programs.hyprlock = { enable = true; + package = (config.lib.nixGL.wrap pkgs.hyprlock); settings = { "$font" = "Monospace"; @@ -8,17 +9,10 @@ general = { hide_cursor = false; fail_timeout = 500; + screencopy_mode = 1; }; - # uncomment to enable fingerprint authentication - auth = { - fingerprint = { - enabled = true; - ready_message = "Scan fingerprint to unlock"; - present_message = "Scanning..."; - retry_delay = 250; # in milliseconds - }; - }; + animations = { enabled = false; }; background = { monitor = ""; @@ -85,7 +79,6 @@ monitor = ""; text = "$LAYOUT[en,ru]"; font_size = 24; - onclick = "hyprctl switchxkblayout all next"; position = "250, -20"; halign = "center"; diff --git a/home-manager/overlays.nix b/home-manager/overlays.nix new file mode 100644 index 0000000..9917c10 --- /dev/null +++ b/home-manager/overlays.nix @@ -0,0 +1,12 @@ +(self: super: + let + patchedPam = super.linux-pam.overrideAttrs (old: { + # Replace upstream patch, this is fragile and may break in the future + # https://github.com/nix-community/home-manager/issues/7027 + postPatch = '' + substituteInPlace modules/module-meson.build \ + --replace-fail "sbindir / 'unix_chkpwd'" "'/usr/bin/unix_chkpwd'" + ''; + }); + + in { hyprlock = super.hyprlock.override { pam = patchedPam; }; }) From f1a9c5827685916c79e3f856e3d7cac9cc41ea0c Mon Sep 17 00:00:00 2001 From: dev-rb Date: Fri, 21 Nov 2025 23:41:39 -0500 Subject: [PATCH 39/55] Flake update --- home-manager/flake.lock | 418 ++++++++++++++++++++++++++++++---------- 1 file changed, 319 insertions(+), 99 deletions(-) diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 77642af..936d53f 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1753216019, - "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", + "lastModified": 1762356719, + "narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "be166e11d86ba4186db93e10c54a141058bdce49", + "rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7", "type": "github" }, "original": { @@ -36,11 +36,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -49,6 +49,24 @@ "type": "github" } }, + "flake-utils": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -78,11 +96,11 @@ ] }, "locked": { - "lastModified": 1748737919, - "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", + "lastModified": 1763748372, + "narHash": "sha256-AUc78Qv3sWir0hvbmfXoZ7Jzq9VVL97l+sP9Jgms+JU=", "owner": "nix-community", "repo": "home-manager", - "rev": "5675a9686851d9626560052a032c4e14e533c1fa", + "rev": "d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1", "type": "github" }, "original": { @@ -136,11 +154,40 @@ ] }, "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "lastModified": 1762462052, + "narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprgraphics_2": { + "inputs": { + "hyprutils": [ + "hyprlock", + "hyprutils" + ], + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1759490292, + "narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "9431db625cd9bb66ac55525479dce694101d6d7a", "type": "github" }, "original": { @@ -154,8 +201,8 @@ "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", "hyprland-protocols": "hyprland-protocols", - "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", @@ -167,11 +214,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1754583328, - "narHash": "sha256-1BsOxbpoMdtdeWv0OYtY3g3GmI+KWBOP+ldM7SEse0U=", + "lastModified": 1763750925, + "narHash": "sha256-4+7sgUyis5vb9Gvluvg3VSIEseC+dR4vE3NXTUukLU4=", "ref": "refs/heads/main", - "rev": "afbd8796859775a50687daacb254cdd1ba22328f", - "revCount": 6354, + "rev": "abb2f7ee6fc99c31b6fac05568f29c92b59565df", + "revCount": 6639, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/hyprland" @@ -182,6 +229,52 @@ "url": "https://github.com/hyprwm/hyprland" } }, + "hyprland-guiutils": { + "inputs": { + "aquamarine": [ + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1762755186, + "narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=", + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "rev": "66356e20a8ed348aa49c1b9ceace786e224225b3", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "type": "github" + } + }, "hyprland-protocols": { "inputs": { "nixpkgs": [ @@ -194,11 +287,11 @@ ] }, "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "lastModified": 1759610243, + "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", "type": "github" }, "original": { @@ -207,100 +300,138 @@ "type": "github" } }, - "hyprland-qt-support": { + "hyprlang": { "inputs": { - "hyprlang": [ + "hyprutils": [ "hyprland", - "hyprland-qtutils", - "hyprlang" + "hyprutils" ], "nixpkgs": [ "hyprland", - "hyprland-qtutils", "nixpkgs" ], "systems": [ "hyprland", - "hyprland-qtutils", "systems" ] }, "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "lastModified": 1763254292, + "narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=", "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "repo": "hyprlang", + "rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-qt-support", + "repo": "hyprlang", "type": "github" } }, - "hyprland-qtutils": { + "hyprlang_2": { "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland", - "hyprlang" - ], "hyprutils": [ - "hyprland", - "hyprland-qtutils", - "hyprlang", + "hyprlock", "hyprutils" ], "nixpkgs": [ - "hyprland", + "hyprlock", "nixpkgs" ], "systems": [ - "hyprland", + "hyprlock", "systems" ] }, "locked": { - "lastModified": 1753819801, - "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "lastModified": 1758927902, + "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "repo": "hyprlang", + "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-qtutils", + "repo": "hyprlang", "type": "github" } }, - "hyprlang": { + "hyprlock": { "inputs": { + "hyprgraphics": "hyprgraphics_2", + "hyprlang": "hyprlang_2", + "hyprutils": "hyprutils_2", + "hyprwayland-scanner": "hyprwayland-scanner_2", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1761675634, + "narHash": "sha256-Et1jNDB2d3e0b4okIKuyAMktECS+5hk+vMAA7X598ao=", + "owner": "hyprwm", + "repo": "hyprlock", + "rev": "98b86752fe4867bd14ef96a92ea788229af93130", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlock", + "type": "github" + } + }, + "hyprtoolkit": { + "inputs": { + "aquamarine": [ + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], "hyprutils": [ "hyprland", + "hyprland-guiutils", "hyprutils" ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", + "hyprland-guiutils", "nixpkgs" ], "systems": [ "hyprland", + "hyprland-guiutils", "systems" ] }, "locked": { - "lastModified": 1753622892, - "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", + "lastModified": 1762463729, + "narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=", "owner": "hyprwm", - "repo": "hyprlang", - "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", + "repo": "hyprtoolkit", + "rev": "88483bdee5329ec985f0c8f834c519cd18cfe532", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprlang", + "repo": "hyprtoolkit", "type": "github" } }, @@ -316,11 +447,36 @@ ] }, "locked": { - "lastModified": 1753800567, - "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", + "lastModified": 1763323331, + "narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", + "rev": "0c6411851cc779d551edc89b83966696201611aa", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_2": { + "inputs": { + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1759619523, + "narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef", "type": "github" }, "original": { @@ -341,11 +497,36 @@ ] }, "locked": { - "lastModified": 1751897909, - "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", + "lastModified": 1755184602, + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwayland-scanner_2": { + "inputs": { + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1755184602, + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", "type": "github" }, "original": { @@ -358,17 +539,19 @@ "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs", + "nixpkgs": [ + "nixpkgs" + ], "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1757183725, - "narHash": "sha256-oZaONTM5A7AhRaXvGr8PNyVL7qbFNIZpMXpsYdTOPmc=", + "lastModified": 1763739228, + "narHash": "sha256-taQ7h8kkyigrdiAHilUXOZiqdT/cCYcpxQentuH+Krc=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "32d7f54892a516be2060a1e106cde7b47a733c62", + "rev": "4708ce5f7d7c7aec103e22c87c11a711eeafd1fa", "type": "github" }, "original": { @@ -397,11 +580,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1756926064, - "narHash": "sha256-5/1vyFRLvJWxhBgpPaV2orC0pjSgIny6JM6+joLyZok=", + "lastModified": 1763729389, + "narHash": "sha256-VcToDv3/lw3q3sVIqQsMUhSGKEVdQM4h6rnr/XhPBwM=", "owner": "YaLTeR", "repo": "niri", - "rev": "c69464c1288789020d9a086f86c970a7dc49b8c7", + "rev": "012700dd549a79c501bcab92839e5dcc46c372b5", "type": "github" }, "original": { @@ -410,50 +593,55 @@ "type": "github" } }, - "nixpkgs": { + "nixgl": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", + "lastModified": 1762090880, + "narHash": "sha256-fbRQzIGPkjZa83MowjbD2ALaJf9y6KMDdJBQMKFeY/8=", + "owner": "nix-community", + "repo": "nixGL", + "rev": "b6105297e6f0cd041670c3e8628394d4ee247ed5", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", + "owner": "nix-community", + "repo": "nixGL", "type": "github" } }, - "nixpkgs-stable": { + "nixpkgs": { "locked": { - "lastModified": 1757020766, - "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", - "owner": "NixOS", + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-25.05", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_2": { + "nixpkgs-stable": { "locked": { - "lastModified": 1748460289, - "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", - "owner": "nixos", + "lastModified": 1763622513, + "narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", + "rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "owner": "NixOS", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } @@ -468,11 +656,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1763319842, + "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", "type": "github" }, "original": { @@ -485,8 +673,10 @@ "inputs": { "home-manager": "home-manager", "hyprland": "hyprland", + "hyprlock": "hyprlock", "niri": "niri", - "nixpkgs": "nixpkgs_2" + "nixgl": "nixgl", + "nixpkgs": "nixpkgs" } }, "systems": { @@ -504,6 +694,36 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ @@ -532,11 +752,11 @@ ] }, "locked": { - "lastModified": 1753633878, - "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", + "lastModified": 1761431178, + "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", + "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "type": "github" }, "original": { @@ -565,11 +785,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1757179758, - "narHash": "sha256-TIvyWzRt1miQj6Cf5Wy8Qz43XIZX7c4vTVwRLAT5S4Y=", + "lastModified": 1763704521, + "narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "970728d0d9d1eada342bb8860af214b601139e58", + "rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad", "type": "github" }, "original": { From a299ced80cfab916a17548df84ce774ff1ee4e46 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Fri, 21 Nov 2025 23:45:00 -0500 Subject: [PATCH 40/55] Waybar --- home-manager/flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home-manager/flake.nix b/home-manager/flake.nix index f9311d0..7eeaa61 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -82,6 +82,7 @@ ./arch/hypridle.nix ./arch/hyprlock.nix ./arch/niri.nix + ./arch/waybar.nix ./arch/scripts.nix ]; }; From 428e9476dd59da56255ff73207f332e1b6c5526d Mon Sep 17 00:00:00 2001 From: dev-rb Date: Fri, 21 Nov 2025 23:47:25 -0500 Subject: [PATCH 41/55] Formatting and add git aliases --- home-manager/home/programs/zsh.nix | 87 +++++++++++++++--------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index 509a73f..7150a8c 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -14,24 +14,24 @@ ignoreSpace = true; }; - shellAliases = - { - ls = "eza --icons=always"; - cat = "bat"; - gcf = "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; - gs = "git status"; - } - // ( - if vars.name == "wsl" then - { - - # Windows path for explorer - explorer = "/mnt/c/Windows/explorer.exe"; - wezterm = "$WEZTERM"; - } - else - { } - ); + shellAliases = { + ls = "eza --icons=always"; + cat = "bat"; + gds = "git diff --staged"; + gd = "git diff"; + gcf = + "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; + gcrf = '' + git checkout $(git branch --remote --sort=-committerdate | fzf | sed 's/[[:alnum:]_]\{1,\}\///') + ''; + gs = "git status"; + } // (if vars.name == "wsl" then { + + # Windows path for explorer + explorer = "/mnt/c/Windows/explorer.exe"; + wezterm = "$WEZTERM"; + } else + { }); defaultKeymap = "emacs"; @@ -46,43 +46,44 @@ compinit -C ''; - initContent = - '' - eval "$(oh-my-posh init zsh --config ~/dotfiles/pure.omp.json)" - bindkey '^p' history-search-backward - bindkey '^n' history-search-forward + initContent = '' + eval "$(oh-my-posh init zsh --config ~/dotfiles/pure.omp.json)" + bindkey '^p' history-search-backward + bindkey '^n' history-search-forward - export GOPATH="$HOME/go" + export GOPATH="$HOME/go" - export PATH="$HOME/.local/share/fnm:$PATH" - export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin + export PATH="$HOME/.local/share/fnm:$PATH" + export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin - export BUN_INSTALL="$HOME/.bun" - export PAGER=cat - export PATH="$BUN_INSTALL/bin:$PATH" + export BUN_INSTALL="$HOME/.bun" + export PAGER=cat + export PATH="$BUN_INSTALL/bin:$PATH" - export ANDROID_HOME="$HOME/Android/Sdk" - export PATH=$PATH:$ANDROID_HOME/emulator - export PATH=$PATH:$ANDROID_HOME/platform-tools + export ANDROID_HOME="$HOME/Android/Sdk" + export PATH=$PATH:$ANDROID_HOME/emulator + export PATH=$PATH:$ANDROID_HOME/platform-tools - export PATH="$BUN_INSTALL/bin:$PATH" + export PATH="$BUN_INSTALL/bin:$PATH" - eval "`fnm env`" + eval "`fnm env`" - export PNPM_HOME="$HOME/.local/share/pnpm" - case ":$PATH:" in - *":$PNPM_HOME:"*) ;; - *) export PATH="$PNPM_HOME:$PATH" ;; - esac + export PNPM_HOME="$HOME/.local/share/pnpm" + case ":$PATH:" in + *":$PNPM_HOME:"*) ;; + *) export PATH="$PNPM_HOME:$PATH" ;; + esac - alias air='$(go env GOPATH)/bin/air' - source ~/wezterm.sh + alias air='$(go env GOPATH)/bin/air' + source ~/wezterm.sh - '' - + (if vars.name == "wsl" then ''export WEZTERM="$(fd wezterm.exe /mnt --max-results 1)"'' else ""); + '' + (if vars.name == "wsl" then + ''export WEZTERM="$(fd wezterm.exe /mnt --max-results 1)"'' + else + ""); }; programs.oh-my-posh = { From 43e2d5ea1a7fee3deabeded879423472768d4dde Mon Sep 17 00:00:00 2001 From: dev-rb Date: Fri, 21 Nov 2025 23:48:41 -0500 Subject: [PATCH 42/55] Fonts config and formatting --- home-manager/home/home.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/home-manager/home/home.nix b/home-manager/home/home.nix index c74e5f3..23a41c1 100644 --- a/home-manager/home/home.nix +++ b/home-manager/home/home.nix @@ -13,6 +13,7 @@ # release notes. home.stateVersion = "24.05"; # Please read the comment before changing. + fonts.fontconfig.enable = true; imports = [ ./packages.nix ./programs/general.nix @@ -20,9 +21,7 @@ ./programs/neovim.nix ]; - home.sessionVariables = { - EDITOR = "nvim"; - }; + home.sessionVariables = { EDITOR = "nvim"; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; From 22f9dd43aeffacc007f840294cf28b8ca20cdce3 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Fri, 21 Nov 2025 23:49:59 -0500 Subject: [PATCH 43/55] Wallpaper in overview mode --- niri/config.kdl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/niri/config.kdl b/niri/config.kdl index 76c6397..a6a9fb1 100644 --- a/niri/config.kdl +++ b/niri/config.kdl @@ -39,7 +39,14 @@ output "eDP-1" { scale 1.0 transform "normal" } + +layer-rule { + match namespace="^swww-daemon$" + place-within-backdrop true +} + layout { + background-color "transparent" gaps 16 struts { left 0 From e158442c1dc60a3d60f01579747493c12635310a Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:41:49 -0500 Subject: [PATCH 44/55] Add git program --- home-manager/home/home.nix | 1 + home-manager/home/programs/git.nix | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 home-manager/home/programs/git.nix diff --git a/home-manager/home/home.nix b/home-manager/home/home.nix index c74e5f3..f415195 100644 --- a/home-manager/home/home.nix +++ b/home-manager/home/home.nix @@ -18,6 +18,7 @@ ./programs/general.nix ./programs/zsh.nix ./programs/neovim.nix + ./programs/git.nix ]; home.sessionVariables = { diff --git a/home-manager/home/programs/git.nix b/home-manager/home/programs/git.nix new file mode 100644 index 0000000..9b04d1b --- /dev/null +++ b/home-manager/home/programs/git.nix @@ -0,0 +1,25 @@ +{ ... }: + +{ + programs.git = { + enable = true; + settings = { + init.defaultBranch = "main"; + push = { + autoSetupRemote = true; + default = "simple"; + }; + user = { + email = "43100342+dev-rb@users.noreply.github.com"; + name = "dev-rb"; + }; + core.editor = "nvim"; + core.pager = "bat"; + }; + }; + + programs.zsh.shellAliases = { + gcf = "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; + gs = "git status"; + }; +} From f40c99bbcfd33c66a31469c52e0ed3a169cd008a Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:43:00 -0500 Subject: [PATCH 45/55] Flake bump --- home-manager/flake.lock | 399 +++++++++++++++++++++++++++++++--------- 1 file changed, 312 insertions(+), 87 deletions(-) diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 77642af..947938e 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1753216019, - "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", + "lastModified": 1765900596, + "narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "be166e11d86ba4186db93e10c54a141058bdce49", + "rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace", "type": "github" }, "original": { @@ -36,11 +36,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -49,6 +49,41 @@ "type": "github" } }, + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "freetype2": { + "flake": false, + "locked": { + "lastModified": 1723459814, + "narHash": "sha256-4l90lDtpgm5xlh2m7ifrqNy373DTRTULRkAzicrM93c=", + "owner": "freetype", + "repo": "freetype", + "rev": "42608f77f20749dd6ddc9e0536788eaad70ea4b5", + "type": "github" + }, + "original": { + "owner": "freetype", + "ref": "VER-2-13-3", + "repo": "freetype", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -71,6 +106,23 @@ "type": "github" } }, + "harfbuzz": { + "flake": false, + "locked": { + "lastModified": 1747068667, + "narHash": "sha256-VxN0lsFnW0vHnIXZ806Lg2NU0/ESnE6z249mXPhfas8=", + "owner": "harfbuzz", + "repo": "harfbuzz", + "rev": "33a3f8de60dcad7535f14f07d6710144548853ac", + "type": "github" + }, + "original": { + "owner": "harfbuzz", + "ref": "11.2.1", + "repo": "harfbuzz", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -78,11 +130,11 @@ ] }, "locked": { - "lastModified": 1748737919, - "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", + "lastModified": 1767104570, + "narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=", "owner": "nix-community", "repo": "home-manager", - "rev": "5675a9686851d9626560052a032c4e14e533c1fa", + "rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf", "type": "github" }, "original": { @@ -136,11 +188,11 @@ ] }, "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "lastModified": 1763733840, + "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", "type": "github" }, "original": { @@ -154,11 +206,12 @@ "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", "hyprland-protocols": "hyprland-protocols", - "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", "nixpkgs": [ "nixpkgs" ], @@ -167,11 +220,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1754583328, - "narHash": "sha256-1BsOxbpoMdtdeWv0OYtY3g3GmI+KWBOP+ldM7SEse0U=", + "lastModified": 1767201430, + "narHash": "sha256-4BUM06GqP5YAVnWvxkdeYuweMF6n+oKdxJI5S9TmA1E=", "ref": "refs/heads/main", - "rev": "afbd8796859775a50687daacb254cdd1ba22328f", - "revCount": 6354, + "rev": "48a024e0322bbd7c4c88126498ec478444ec4cb2", + "revCount": 6763, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/hyprland" @@ -182,8 +235,29 @@ "url": "https://github.com/hyprwm/hyprland" } }, - "hyprland-protocols": { + "hyprland-guiutils": { "inputs": { + "aquamarine": [ + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", "nixpkgs" @@ -194,62 +268,48 @@ ] }, "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "lastModified": 1765643131, + "narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=", "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "repo": "hyprland-guiutils", + "rev": "e50ae912813bdfa8372d62daf454f48d6df02297", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-protocols", + "repo": "hyprland-guiutils", "type": "github" } }, - "hyprland-qt-support": { + "hyprland-protocols": { "inputs": { - "hyprlang": [ - "hyprland", - "hyprland-qtutils", - "hyprlang" - ], "nixpkgs": [ "hyprland", - "hyprland-qtutils", "nixpkgs" ], "systems": [ "hyprland", - "hyprland-qtutils", "systems" ] }, "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "lastModified": 1765214753, + "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "repo": "hyprland-protocols", + "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-qt-support", + "repo": "hyprland-protocols", "type": "github" } }, - "hyprland-qtutils": { + "hyprlang": { "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland", - "hyprlang" - ], "hyprutils": [ "hyprland", - "hyprland-qtutils", - "hyprlang", "hyprutils" ], "nixpkgs": [ @@ -262,45 +322,68 @@ ] }, "locked": { - "lastModified": 1753819801, - "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "lastModified": 1764612430, + "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "repo": "hyprlang", + "rev": "0d00dc118981531aa731150b6ea551ef037acddd", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-qtutils", + "repo": "hyprlang", "type": "github" } }, - "hyprlang": { + "hyprtoolkit": { "inputs": { + "aquamarine": [ + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], "hyprutils": [ "hyprland", + "hyprland-guiutils", "hyprutils" ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", + "hyprland-guiutils", "nixpkgs" ], "systems": [ "hyprland", + "hyprland-guiutils", "systems" ] }, "locked": { - "lastModified": 1753622892, - "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", + "lastModified": 1764592794, + "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", "owner": "hyprwm", - "repo": "hyprlang", - "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", + "repo": "hyprtoolkit", + "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprlang", + "repo": "hyprtoolkit", "type": "github" } }, @@ -316,11 +399,11 @@ ] }, "locked": { - "lastModified": 1753800567, - "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", + "lastModified": 1766160771, + "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", + "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", "type": "github" }, "original": { @@ -341,11 +424,11 @@ ] }, "locked": { - "lastModified": 1751897909, - "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", + "lastModified": 1763640274, + "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", "type": "github" }, "original": { @@ -354,6 +437,52 @@ "type": "github" } }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1766253200, + "narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "1079777525b30a947c8d657fac158e00ae85de9d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, + "libpng": { + "flake": false, + "locked": { + "lastModified": 1726173884, + "narHash": "sha256-gBfHgGaqVYdmhWXoNKZzPyGzyw2rr3zp+DjWmfC41jk=", + "owner": "pnggroup", + "repo": "libpng", + "rev": "f5e92d76973a7a53f517579bc95d61483bf108c0", + "type": "github" + }, + "original": { + "owner": "pnggroup", + "ref": "v1.6.44", + "repo": "libpng", + "type": "github" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", @@ -364,11 +493,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1757183725, - "narHash": "sha256-oZaONTM5A7AhRaXvGr8PNyVL7qbFNIZpMXpsYdTOPmc=", + "lastModified": 1767166320, + "narHash": "sha256-JhE7GgwcKCtkBmP4Gk7r27QmrlCV4As4Dq+fHESW+Ds=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "32d7f54892a516be2060a1e106cde7b47a733c62", + "rev": "947c5bc805ec346a305e00faa8cfe476b8a9c679", "type": "github" }, "original": { @@ -397,11 +526,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1756926064, - "narHash": "sha256-5/1vyFRLvJWxhBgpPaV2orC0pjSgIny6JM6+joLyZok=", + "lastModified": 1767160009, + "narHash": "sha256-aTj88rDBdhmzaGXoFPOsHjXYM2OjNttixsGftT/X0dI=", "owner": "YaLTeR", "repo": "niri", - "rev": "c69464c1288789020d9a086f86c970a7dc49b8c7", + "rev": "cf0b4bc0ca93ab5c18b562ada1d8609b67b3c4e3", "type": "github" }, "original": { @@ -412,11 +541,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", + "lastModified": 1766902085, + "narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", + "rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4", "type": "github" }, "original": { @@ -428,27 +557,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1757020766, - "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", + "lastModified": 1767047869, + "narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", + "rev": "89dbf01df72eb5ebe3b24a86334b12c27d68016a", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1748460289, - "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", + "lastModified": 1766902085, + "narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=", "owner": "nixos", "repo": "nixpkgs", - "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", + "rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4", "type": "github" }, "original": { @@ -458,6 +587,22 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1764527385, + "narHash": "sha256-nA5ywiGKl76atrbdZ5Aucd8SjF/v8ew9b9QsC+MKL14=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "23258e03aaa49b3a68597e3e50eb0cbce7e42e9d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -468,11 +613,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1765911976, + "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", "type": "github" }, "original": { @@ -486,7 +631,29 @@ "home-manager": "home-manager", "hyprland": "hyprland", "niri": "niri", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_2", + "wezterm": "wezterm" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "wezterm", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1764470739, + "narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } }, "systems": { @@ -504,6 +671,47 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "wezterm": { + "inputs": { + "flake-utils": "flake-utils", + "freetype2": "freetype2", + "harfbuzz": "harfbuzz", + "libpng": "libpng", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay", + "zlib": "zlib" + }, + "locked": { + "dir": "nix", + "lastModified": 1764575867, + "narHash": "sha256-P2ASskcmdsYLMCkpc7xncHMVxBs+GtwLEZ9jfg+fSwM=", + "owner": "wezterm", + "repo": "wezterm", + "rev": "d3b0fdad453e8b5f12b583c5d6849b33d975c19c", + "type": "github" + }, + "original": { + "dir": "nix", + "owner": "wezterm", + "repo": "wezterm", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ @@ -532,11 +740,11 @@ ] }, "locked": { - "lastModified": 1753633878, - "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", + "lastModified": 1761431178, + "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", + "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "type": "github" }, "original": { @@ -565,11 +773,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1757179758, - "narHash": "sha256-TIvyWzRt1miQj6Cf5Wy8Qz43XIZX7c4vTVwRLAT5S4Y=", + "lastModified": 1766429945, + "narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "970728d0d9d1eada342bb8860af214b601139e58", + "rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e", "type": "github" }, "original": { @@ -577,6 +785,23 @@ "repo": "xwayland-satellite", "type": "github" } + }, + "zlib": { + "flake": false, + "locked": { + "lastModified": 1705948357, + "narHash": "sha256-TkPLWSN5QcPlL9D0kc/yhH0/puE9bFND24aj5NVDKYs=", + "owner": "madler", + "repo": "zlib", + "rev": "51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf", + "type": "github" + }, + "original": { + "owner": "madler", + "ref": "v1.3.1", + "repo": "zlib", + "type": "github" + } } }, "root": "root", From bfd1bb72452f837d0e3068aa255ad26b7aaa7e82 Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:43:21 -0500 Subject: [PATCH 46/55] Add fonts and tree-sitter --- home-manager/home/packages.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/home-manager/home/packages.nix b/home-manager/home/packages.nix index 90a2655..97a0d02 100644 --- a/home-manager/home/packages.nix +++ b/home-manager/home/packages.nix @@ -11,6 +11,9 @@ }; home.packages = with pkgs; [ + nerd-fonts.iosevka-term + nerd-fonts.jetbrains-mono + # cli bat eza @@ -34,6 +37,8 @@ typescript-language-server nil + tree-sitter + # formatters nixfmt-rfc-style stylua From 661a506bbe277fa7b53970b64a84d932b8fbe9ac Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:43:30 -0500 Subject: [PATCH 47/55] Add Yazi --- home-manager/home/programs/general.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/home-manager/home/programs/general.nix b/home-manager/home/programs/general.nix index bc9f503..e6d6d96 100644 --- a/home-manager/home/programs/general.nix +++ b/home-manager/home/programs/general.nix @@ -7,4 +7,16 @@ }; programs.wezterm.enableZshIntegration = true; + + programs.yazi = { + enable = true; + enableZshIntegration = true; + + settings = { + preview = { + max_width = 10000; + max_height = 10000; + }; + }; + }; } From dbb643dad9176caf0d3d0ffe4bf85bc50fcb74bc Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:44:55 -0500 Subject: [PATCH 48/55] Clean up zsh config. Fix omp config --- home-manager/home/programs/zsh.nix | 84 +++++++++++++++--------------- 1 file changed, 41 insertions(+), 43 deletions(-) diff --git a/home-manager/home/programs/zsh.nix b/home-manager/home/programs/zsh.nix index 509a73f..b070635 100644 --- a/home-manager/home/programs/zsh.nix +++ b/home-manager/home/programs/zsh.nix @@ -14,24 +14,21 @@ ignoreSpace = true; }; - shellAliases = - { - ls = "eza --icons=always"; - cat = "bat"; - gcf = "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; - gs = "git status"; - } - // ( - if vars.name == "wsl" then - { - - # Windows path for explorer - explorer = "/mnt/c/Windows/explorer.exe"; - wezterm = "$WEZTERM"; - } - else - { } - ); + shellAliases = { + ls = "eza --icons=always"; + cat = "bat"; + } + // ( + if vars.name == "wsl" then + { + + # Windows path for explorer + explorer = "/mnt/c/Windows/explorer.exe"; + wezterm = "$WEZTERM"; + } + else + { } + ); defaultKeymap = "emacs"; @@ -46,47 +43,48 @@ compinit -C ''; - initContent = - '' - eval "$(oh-my-posh init zsh --config ~/dotfiles/pure.omp.json)" - bindkey '^p' history-search-backward - bindkey '^n' history-search-forward + initContent = '' + eval "$(oh-my-posh init zsh --config ~/dotfiles/pure.omp.json)" + bindkey '^p' history-search-backward + bindkey '^n' history-search-forward - export GOPATH="$HOME/go" + export GOPATH="$HOME/go" - export PATH="$HOME/.local/share/fnm:$PATH" - export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin + export PATH="$HOME/.local/share/fnm:$PATH" + export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin - export BUN_INSTALL="$HOME/.bun" - export PAGER=cat - export PATH="$BUN_INSTALL/bin:$PATH" + export BUN_INSTALL="$HOME/.bun" + export PAGER=less + export BAT_PAGING=always + export PATH="$BUN_INSTALL/bin:$PATH" - export ANDROID_HOME="$HOME/Android/Sdk" - export PATH=$PATH:$ANDROID_HOME/emulator - export PATH=$PATH:$ANDROID_HOME/platform-tools + export ANDROID_HOME="$HOME/Android/Sdk" + export PATH=$PATH:$ANDROID_HOME/emulator + export PATH=$PATH:$ANDROID_HOME/platform-tools - export PATH="$BUN_INSTALL/bin:$PATH" + export PATH="$BUN_INSTALL/bin:$PATH" - eval "`fnm env`" + eval "`fnm env`" - export PNPM_HOME="$HOME/.local/share/pnpm" - case ":$PATH:" in - *":$PNPM_HOME:"*) ;; - *) export PATH="$PNPM_HOME:$PATH" ;; - esac + export PNPM_HOME="$HOME/.local/share/pnpm" + case ":$PATH:" in + *":$PNPM_HOME:"*) ;; + *) export PATH="$PNPM_HOME:$PATH" ;; + esac - alias air='$(go env GOPATH)/bin/air' - source ~/wezterm.sh + alias air='$(go env GOPATH)/bin/air' + source ~/wezterm.sh - '' - + (if vars.name == "wsl" then ''export WEZTERM="$(fd wezterm.exe /mnt --max-results 1)"'' else ""); + '' + + (if vars.name == "wsl" then ''export WEZTERM="$(fd wezterm.exe /mnt --max-results 1)"'' else ""); }; programs.oh-my-posh = { enable = true; enableZshIntegration = true; + configFile = "~/dotfiles/pure.omp.json"; }; } From 414911a630c34f30a9e403b5914f6f1755a45fa4 Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:45:27 -0500 Subject: [PATCH 49/55] Screenshot bind and fix vicinae toggle --- niri/config.kdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/niri/config.kdl b/niri/config.kdl index 76c6397..62eb61f 100644 --- a/niri/config.kdl +++ b/niri/config.kdl @@ -146,9 +146,9 @@ binds { Mod+WheelScrollDown { focus-column-right; } Mod+WheelScrollUp { focus-column-left; } Mod+Escape { spawn "hyprlock"; } - Alt+Space { spawn "vicinae"; } + Alt+Space { spawn-sh "vicinae toggle"; } Print { screenshot-screen; } - Shift+Print { screenshot; } + Mod+Shift+S { screenshot; } XF86AudioLowerVolume { spawn-sh "sh $HOME/.config/scripts/volume.sh down"; } XF86AudioRaiseVolume { spawn-sh "sh $HOME/.config/scripts/volume.sh up"; } XF86AudioMute { spawn-sh "$HOME/.config/scripts/volume.sh mute"; } From 25d4bef47fe153efa8ce01ea881c157241354c18 Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:46:13 -0500 Subject: [PATCH 50/55] Use treesitter main branch --- nvim/lua/plugins/init.lua | 71 ++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index 530367e..4c5dc85 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -75,44 +75,55 @@ return { { "nvim-treesitter/nvim-treesitter", - event = "VeryLazy", - dependencies = { - { - "JoosepAlviste/nvim-ts-context-commentstring", - event = "VeryLazy", - config = function() - require("ts_context_commentstring").setup {} - end, - }, - "nvim-treesitter/nvim-treesitter-textobjects", - }, - opts = { - ensure_installed = { + lazy = false, + event = "BufRead", + branch = "main", + build = ":TSUpdate", + config = function() + require("nvim-treesitter").setup { + install_dir = vim.fn.stdpath "data" .. "/site", + } + + local parsers = { + "bash", "css", + "diff", + "editorconfig", + "git_config", + "git_rebase", + "gitattributes", + "gitcommit", + "gitignore", "html", "javascript", + "jsdoc", + "json", "lua", + "make", + "markdown", + "markdown_inline", "python", - "scss", + "query", + "regex", + "toml", "tsx", "typescript", - }, - highlight = { - enable = true, - use_languagetree = true, - }, - textobjects = { - move = { - enable = true, - goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer" }, - goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer" }, - goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer" }, - goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer" }, - }, - }, - }, - }, + "typst", + "vim", + "vimdoc", + "xml", + "yaml", + } + vim.api.nvim_create_autocmd("User", { + pattern = "LazyDone", + once = true, + callback = function() + require("nvim-treesitter").install(parsers) + end, + }) + end, + }, { "lukas-reineke/indent-blankline.nvim", event = "VeryLazy", From ef548d27a024731caa5aad097d24b9917ff4bd99 Mon Sep 17 00:00:00 2001 From: dev-rb <43100342+dev-rb@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:47:02 -0500 Subject: [PATCH 51/55] Add waybar nix to arch config. Clean up waybar config --- home-manager/flake.nix | 1 + waybar/config.jsonc | 4 +-- waybar/modules.jsonc | 65 +++++++----------------------------------- 3 files changed, 14 insertions(+), 56 deletions(-) diff --git a/home-manager/flake.nix b/home-manager/flake.nix index c42d89a..3896bcd 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -64,6 +64,7 @@ ./arch/hypridle.nix ./arch/hyprlock.nix ./arch/niri.nix + ./arch/waybar.nix ./arch/scripts.nix ]; }; diff --git a/waybar/config.jsonc b/waybar/config.jsonc index 2f284cd..58f258c 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -10,14 +10,14 @@ "include": ["~/.config/waybar/modules.jsonc"], "modules-left": [ - "hyprland/window", + "niri/window", "group/apps" ], "modules-center": [ // "group/info", - "hyprland/workspaces" + "niri/workspaces" // "group/utils" ], diff --git a/waybar/modules.jsonc b/waybar/modules.jsonc index c5745e0..57e9b97 100644 --- a/waybar/modules.jsonc +++ b/waybar/modules.jsonc @@ -1,5 +1,5 @@ { - "hyprland/window": { + "niri/window": { "format": "", "format-alt": "{title}", @@ -13,10 +13,11 @@ } }, - "hyprland/workspaces": { + "niri/workspaces": { "format": "{icon}", "on-click": "activate", - "all-outputs": true, + "all-outputs": false, + "separate-outputs": true, "format-icons": { "1": "1", "2": "2", @@ -28,13 +29,12 @@ "8": "8", "9": "9", "10": "0" - } }, "clock": { - "format": "{:%I:%M %p}", - "format-alt": "{:%A %d.%m}", + "format": "{:%A %m/%d %I:%M %p}", + "format-alt": "{:%A %m/%d}", "tooltip-format": "{calendar}", "calendar": { "mode": "month", @@ -69,7 +69,7 @@ "drawer": { "transition-duration": 300, "transition-left-to-right": true }, "modules": [ "custom/arrow-right", - // "wlr/taskbar", + "wlr/taskbar", "cpu", "memory", "disk" @@ -81,9 +81,6 @@ "drawer": { "transition-duration": 300, "transition-left-to-right": false }, "modules": [ "custom/arrow-left", - // "custom/record", - // "custom/section", - // "custom/stop", "group/control-center" ] }, @@ -156,7 +153,7 @@ "phone": "","portable": "","car": " ", "default": ["󰕿","󰖀","󰕾"] }, - "on-click": "changevolume mute", + "on-click": "sh ~/.config/scripts/volume.sh mute", "on-click-middle": "pavucontrol", "on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +5%", "on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -5%", @@ -174,8 +171,7 @@ "tooltip-format": "{ipaddr}", "tooltip-format-wifi": "{essid} ({signalStrength}%) \n{ipaddr} | {frequency} MHz{icon}", "tooltip-format-ethernet": "{ifname} 󰈀\n{ipaddr} | {frequency} MHz{icon}", - "tooltip-format-disconnected": "Not Connected to any type of Network", - "on-click": "python ~/.config/rofi/network/network.py" + "tooltip-format-disconnected": "Not Connected to any type of Network" }, "network#speed": { @@ -190,8 +186,7 @@ "format-off": "󰂲", "format-disabled": "", "format-connected": "", - "tooltip": false, - "on-click": "bash ~/.config/rofi/bluetooth/bluetooth.sh" + "tooltip": false }, "bluetooth#status": { @@ -200,8 +195,7 @@ "tooltip-format": "{controller_alias} {controller_address}\n\n{num_connections} connected", "tooltip-format-connected": "{controller_alias} {controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", "tooltip-format-enumerate-connected": "{device_alias} {device_address}", - "tooltip-format-enumerate-connected-battery": "{device_alias} {device_address} {device_battery_percentage}%", - "on-click": "rofi-bluetooth -config ~/.config/rofi/menu.d/network.rasi -i" + "tooltip-format-enumerate-connected-battery": "{device_alias} {device_address} {device_battery_percentage}%" }, //"custom/arrow-left": { "format": "󰁒", "tooltip": false }, @@ -210,14 +204,6 @@ "custom/arrow-left": { "format": "<", "tooltip": false }, "custom/arrow-right": { "format": ">", "tooltip": false }, - "custom/updates": { - "format": "󱧕 {}", - "tooltip": true, - "interval": 43200, // 12 h - "exec": "~/.config/hypr/scripts/check_updates.sh", - "return-type": "json" - }, - "custom/playerlabel": { "format": "{}", "return-type": "json", @@ -229,25 +215,6 @@ "tooltip": false }, - "custom/record": { - "format": "", - "tooltip": true, - "tooltip-format": "Record Screen", - "on-click": "bash ~/.config/hypr/scripts/record.sh fullscreen" - }, - "custom/stop": { - "format": "󰻃", - "tooltip": true, - "tooltip-format": "Stop Recording", - "on-click": "bash ~/.config/hypr/scripts/record.sh stop" - }, - "custom/section": { - "format": "", - "tooltip": true, - "tooltip-format": "Record Section", - "on-click": "bash ~/.config/hypr/scripts/record.sh section" - }, - "custom/notifications": { "format": "{} {icon}", "return-type": "json", @@ -277,16 +244,6 @@ "return-type": "json" }, - "custom/theme-switcher": { - "format": "󰏘", - "tooltip": false, - "on-click": "~/.config/hypr/scripts/toggle_theme.sh" - }, - - "custom/cava": { - "format": "{}", - "exec": "bash ~/.config/hypr/scripts/cava.sh" - }, "custom/icon": { "format": "󰣇" }, From cd373a3312a66da1e7ffbfd12bc5a010b22e72d5 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 31 Jan 2026 22:02:36 -0500 Subject: [PATCH 52/55] Flake bump --- home-manager/flake.lock | 170 +++++++++++++++++++++++----------------- 1 file changed, 100 insertions(+), 70 deletions(-) diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 936d53f..25fa307 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1762356719, - "narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=", + "lastModified": 1769428758, + "narHash": "sha256-0G/GzF7lkWs/yl82bXuisSqPn6sf8YGTnbEdFOXvOfU=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7", + "rev": "def5e74c97370f15949a67c62e61f1459fcb0e15", "type": "github" }, "original": { @@ -36,15 +36,15 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", "type": "github" }, "original": { - "owner": "edolstra", + "owner": "NixOS", "repo": "flake-compat", "type": "github" } @@ -96,11 +96,11 @@ ] }, "locked": { - "lastModified": 1763748372, - "narHash": "sha256-AUc78Qv3sWir0hvbmfXoZ7Jzq9VVL97l+sP9Jgms+JU=", + "lastModified": 1769872935, + "narHash": "sha256-07HMIGQ/WJeAQJooA7Kkg1SDKxhAiV6eodvOwTX6WKI=", "owner": "nix-community", "repo": "home-manager", - "rev": "d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1", + "rev": "f4ad5068ee8e89e4a7c2e963e10dd35cd77b37b7", "type": "github" }, "original": { @@ -154,11 +154,11 @@ ] }, "locked": { - "lastModified": 1762462052, - "narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=", + "lastModified": 1769284023, + "narHash": "sha256-xG34vwYJ79rA2wVC8KFuM8r36urJTG6/csXx7LiiSYU=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162", + "rev": "13c536659d46893596412d180449353a900a1d31", "type": "github" }, "original": { @@ -183,11 +183,11 @@ ] }, "locked": { - "lastModified": 1759490292, - "narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=", + "lastModified": 1763733840, + "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "9431db625cd9bb66ac55525479dce694101d6d7a", + "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", "type": "github" }, "original": { @@ -206,6 +206,7 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", "nixpkgs": [ "nixpkgs" ], @@ -214,11 +215,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1763750925, - "narHash": "sha256-4+7sgUyis5vb9Gvluvg3VSIEseC+dR4vE3NXTUukLU4=", + "lastModified": 1769866762, + "narHash": "sha256-RlZMgFz666Bc5ZxLUd+poTfs5RBIVKawuNRSkf5MyJ4=", "ref": "refs/heads/main", - "rev": "abb2f7ee6fc99c31b6fac05568f29c92b59565df", - "revCount": 6639, + "rev": "db6114c6c53edc4a60695a12d7f857308b6cd6cd", + "revCount": 6852, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/hyprland" @@ -262,11 +263,11 @@ ] }, "locked": { - "lastModified": 1762755186, - "narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=", + "lastModified": 1767023960, + "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "66356e20a8ed348aa49c1b9ceace786e224225b3", + "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", "type": "github" }, "original": { @@ -287,11 +288,11 @@ ] }, "locked": { - "lastModified": 1759610243, - "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", + "lastModified": 1765214753, + "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", + "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", "type": "github" }, "original": { @@ -316,11 +317,11 @@ ] }, "locked": { - "lastModified": 1763254292, - "narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=", + "lastModified": 1767983607, + "narHash": "sha256-8C2co8NYfR4oMOUEsPROOJ9JHrv9/ktbJJ6X1WsTbXc=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b", + "rev": "d4037379e6057246b408bbcf796cf3e9838af5b2", "type": "github" }, "original": { @@ -345,11 +346,11 @@ ] }, "locked": { - "lastModified": 1758927902, - "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", + "lastModified": 1764612430, + "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", + "rev": "0d00dc118981531aa731150b6ea551ef037acddd", "type": "github" }, "original": { @@ -370,11 +371,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1761675634, - "narHash": "sha256-Et1jNDB2d3e0b4okIKuyAMktECS+5hk+vMAA7X598ao=", + "lastModified": 1766230281, + "narHash": "sha256-Vk23viKuhcP5O5uIXXZopDZgd/TT5FgsfZ3ZoRp8k58=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "98b86752fe4867bd14ef96a92ea788229af93130", + "rev": "ef3017f5efba0db0960474a74d519a19816057fb", "type": "github" }, "original": { @@ -422,11 +423,11 @@ ] }, "locked": { - "lastModified": 1762463729, - "narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=", + "lastModified": 1764592794, + "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", "owner": "hyprwm", "repo": "hyprtoolkit", - "rev": "88483bdee5329ec985f0c8f834c519cd18cfe532", + "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", "type": "github" }, "original": { @@ -447,11 +448,11 @@ ] }, "locked": { - "lastModified": 1763323331, - "narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=", + "lastModified": 1766253372, + "narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "0c6411851cc779d551edc89b83966696201611aa", + "rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9", "type": "github" }, "original": { @@ -472,11 +473,11 @@ ] }, "locked": { - "lastModified": 1759619523, - "narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=", + "lastModified": 1766160771, + "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef", + "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", "type": "github" }, "original": { @@ -497,11 +498,11 @@ ] }, "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", + "lastModified": 1763640274, + "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", + "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", "type": "github" }, "original": { @@ -522,11 +523,11 @@ ] }, "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", + "lastModified": 1763640274, + "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", + "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", "type": "github" }, "original": { @@ -535,6 +536,35 @@ "type": "github" } }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1769202094, + "narHash": "sha256-gdJr/vWWLRW85ucatSjoBULPB2dqBJd/53CZmQ9t91Q=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "a45ca05050d22629b3c7969a926d37870d7dd75c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", @@ -547,11 +577,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1763739228, - "narHash": "sha256-taQ7h8kkyigrdiAHilUXOZiqdT/cCYcpxQentuH+Krc=", + "lastModified": 1769714858, + "narHash": "sha256-IHHAKi8yMonZZmVHUQxew1V9UfLBG8Um9PLbNPx3OA4=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "4708ce5f7d7c7aec103e22c87c11a711eeafd1fa", + "rev": "dfbb02586582d5332d0c06653583b9d743bce081", "type": "github" }, "original": { @@ -580,11 +610,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1763729389, - "narHash": "sha256-VcToDv3/lw3q3sVIqQsMUhSGKEVdQM4h6rnr/XhPBwM=", + "lastModified": 1769577126, + "narHash": "sha256-v9vz9Rj4MGwPuhGELdvpRKl2HH+xvkgat6VwL0L86Fg=", "owner": "YaLTeR", "repo": "niri", - "rev": "012700dd549a79c501bcab92839e5dcc46c372b5", + "rev": "f30db163b5748e8cf95c05aba77d0d3736f40543", "type": "github" }, "original": { @@ -616,11 +646,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1763421233, - "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", "type": "github" }, "original": { @@ -632,16 +662,16 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1763622513, - "narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=", + "lastModified": 1769598131, + "narHash": "sha256-e7VO/kGLgRMbWtpBqdWl0uFg8Y2XWFMdz0uUJvlML8o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b", + "rev": "fa83fd837f3098e3e678e6cf017b2b36102c7211", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } @@ -656,11 +686,11 @@ ] }, "locked": { - "lastModified": 1763319842, - "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", + "lastModified": 1769069492, + "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", + "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", "type": "github" }, "original": { @@ -785,11 +815,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1763704521, - "narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=", + "lastModified": 1769713942, + "narHash": "sha256-0BtCSO2qzYK/akRDsERqRVLknCYD3FYErc+szreSHUo=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad", + "rev": "37ec78ee26e158b71f42e113e0e7dd9d5eb6bdb0", "type": "github" }, "original": { From d9ef2a36464edb963d63016d5a22733d7086da73 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 31 Jan 2026 22:09:56 -0500 Subject: [PATCH 53/55] More git aliases --- home-manager/home/programs/git.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/home-manager/home/programs/git.nix b/home-manager/home/programs/git.nix index 9b04d1b..d65f4c5 100644 --- a/home-manager/home/programs/git.nix +++ b/home-manager/home/programs/git.nix @@ -20,6 +20,11 @@ programs.zsh.shellAliases = { gcf = "git checkout $(git branch --sort=committerdate | fzf --tac --exact)"; + gcrf = '' + git checkout $(git branch --remote --sort=-committerdate | fzf | sed 's/[[:alnum:]_]\{1,\}\///') + ''; gs = "git status"; + gds = "git diff --staged"; + gd = "git diff"; }; } From 06a62f6d2e979f48040ad71757c9c5aa6ed46430 Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 31 Jan 2026 22:32:45 -0500 Subject: [PATCH 54/55] Move and update nixGL stuff --- home-manager/flake.nix | 12 +++++++++++- home-manager/home/packages.nix | 14 +------------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/home-manager/flake.nix b/home-manager/flake.nix index 7eeaa61..83cc0bf 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -76,7 +76,17 @@ services.pipewire.alsa.enable = true; services.pipewire.wireplumber.enable = true; modules = [ - { nixGL.packages = nixgl.packages; } + { + targets.genericLinux.nixGL.packages = nixgl.packages; + targets.genericLinux.nixGL.defaultWrapper = "mesa"; + targets.genericLinux.nixGL.installScripts = [ "mesa" ]; + nixpkgs = { + config = { + allowUnfree = true; + allowUnfreePredicate = (pkg: true); + }; + }; + } niri.homeModules.niri ./arch/hyprland.nix ./arch/hypridle.nix diff --git a/home-manager/home/packages.nix b/home-manager/home/packages.nix index d2b90eb..798d7f0 100644 --- a/home-manager/home/packages.nix +++ b/home-manager/home/packages.nix @@ -1,4 +1,4 @@ -{ pkgs, nixgl, ... }: +{ pkgs, ... }: { programs.bat.enable = true; @@ -12,18 +12,6 @@ # fonts.fontconfig.enable = true; - nixGL.packages = nixgl.packages; - nixGL.defaultWrapper = "mesa"; - #nixGL.offloadWrapper = "nvidiaPrime"; - nixGL.installScripts = [ "mesa" ]; - - nixpkgs = { - config = { - allowUnfree = true; - allowUnfreePredicate = (pkg: true); - }; - }; - home.packages = with pkgs; [ nerd-fonts.iosevka-term nerd-fonts.jetbrains-mono From 7e4f851ad015cfbaba8276bb3d538add0bcb5dcc Mon Sep 17 00:00:00 2001 From: dev-rb Date: Sat, 31 Jan 2026 22:33:09 -0500 Subject: [PATCH 55/55] Update noto sans and nixfmt packages --- home-manager/home/packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home-manager/home/packages.nix b/home-manager/home/packages.nix index 798d7f0..bd0fa93 100644 --- a/home-manager/home/packages.nix +++ b/home-manager/home/packages.nix @@ -17,7 +17,7 @@ nerd-fonts.jetbrains-mono noto-fonts noto-fonts-cjk-sans - noto-fonts-emoji + noto-fonts-color-emoji adwaita-fonts # cli @@ -47,7 +47,7 @@ tree-sitter # formatters - nixfmt-rfc-style + nixfmt stylua biome ];