diff --git a/flake.lock b/flake.lock index 66a6125..3e111e3 100644 --- a/flake.lock +++ b/flake.lock @@ -146,6 +146,27 @@ "type": "github" } }, + "elephant": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1762962320, + "narHash": "sha256-4Bhteu6s5gMGcNSgniKH4ynmN5WcdDA58Vy2vFlHPdg=", + "owner": "abenz1267", + "repo": "elephant", + "rev": "b7acc4fe8a1b6552b071b6b6f2d3a93c8ddec823", + "type": "github" + }, + "original": { + "owner": "abenz1267", + "repo": "elephant", + "type": "github" + } + }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -277,7 +298,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1731533236, @@ -478,7 +499,7 @@ "hyprwayland-scanner": "hyprwayland-scanner_2", "nixpkgs": "nixpkgs_2", "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_3", + "systems": "systems_4", "xdph": "xdph" }, "locked": { @@ -848,6 +869,22 @@ "type": "github" } }, + "nixpkgs_5": { + "locked": { + "lastModified": 1757068644, + "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": "flake-parts_2", @@ -902,7 +939,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1762353527, @@ -967,6 +1004,7 @@ "root": { "inputs": { "agenix": "agenix", + "elephant": "elephant", "home-manager": "home-manager_2", "hyprdynamicmonitors": "hyprdynamicmonitors", "hyprland": "hyprland", @@ -977,7 +1015,8 @@ "nvf": "nvf", "plasma-manager": "plasma-manager", "silentSDDM": "silentSDDM", - "stylix": "stylix" + "stylix": "stylix", + "walker": "walker" } }, "scenefx": { @@ -1034,7 +1073,7 @@ "nixpkgs" ], "nur": "nur_2", - "systems": "systems_5", + "systems": "systems_6", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -1071,21 +1110,6 @@ } }, "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" - } - }, - "systems_3": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1100,7 +1124,7 @@ "type": "github" } }, - "systems_4": { + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1115,6 +1139,21 @@ "type": "github" } }, + "systems_4": { + "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_5": { "locked": { "lastModified": 1681028828, @@ -1130,6 +1169,36 @@ "type": "github" } }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_7": { + "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" + } + }, "tinted-foot": { "flake": false, "locked": { @@ -1211,6 +1280,28 @@ "type": "github" } }, + "walker": { + "inputs": { + "elephant": [ + "elephant" + ], + "nixpkgs": "nixpkgs_5", + "systems": "systems_7" + }, + "locked": { + "lastModified": 1762788361, + "narHash": "sha256-72+WE0RGSW8TgzPijHU6TtLWfMb0G7ojraM5UifTLVg=", + "owner": "abenz1267", + "repo": "walker", + "rev": "e87c8c36468bcf2042a21c6aa878e7f0cdadc8f0", + "type": "github" + }, + "original": { + "owner": "abenz1267", + "repo": "walker", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ diff --git a/flake.nix b/flake.nix index ce4f104..535be15 100644 --- a/flake.nix +++ b/flake.nix @@ -47,6 +47,16 @@ }; hyprdynamicmonitors.url = "github:fiffeek/hyprdynamicmonitors"; + + elephant = { + url = "github:abenz1267/elephant"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + walker = { + url = "github:abenz1267/walker"; + inputs.elephant.follows = "elephant"; + }; }; outputs = diff --git a/modules/home/default.nix b/modules/home/default.nix index fee400b..de6cb75 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -15,6 +15,7 @@ ./ssh.nix ./stylix.nix ./vscode.nix + ./walker.nix ./wallpaper.nix ./waybar ./wlogout.nix diff --git a/modules/home/hypr/keybinds.nix b/modules/home/hypr/keybinds.nix index 3081fa9..5c5dad1 100644 --- a/modules/home/hypr/keybinds.nix +++ b/modules/home/hypr/keybinds.nix @@ -12,7 +12,7 @@ bind = [ "$mod, Q, killactive" "$mod, W, exec, ghostty +new-window" - "$mod, S, exec, rofi -show drun -show-icons" + "$mod, S, exec, walker" "$mod, Escape, exec, wlogout" # Window Movement @@ -43,11 +43,7 @@ ", XF86AudioPlay, exec, playerctl play-pause" ", XF86AudioNext, exec, playerctl next" ", XF86AudioMute, exec, pamixer -t" - ", XF86AudioRaiseVolume, exec, pamixer -i 5" - ", XF86AudioLowerVolume, exec, pamixer -d 5" "ALT, XF86AudioMute, exec, pamixer --default-source -t" - "ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5" - "ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5" ] ++ ( # workspaces @@ -71,5 +67,13 @@ "$mod, mouse:273, resizewindow" "$mod ALT, mouse:272, resizewindow" ]; + + binde = [ + ", XF86AudioRaiseVolume, exec, pamixer -i 5" + ", XF86AudioLowerVolume, exec, pamixer -d 5" + "ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5" + "ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5" + + ]; }; } diff --git a/modules/home/packages.nix b/modules/home/packages.nix index 745a20b..ad80dee 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -20,9 +20,10 @@ heybrochecklog rsgain - rofi playerctl pamixer + pavucontrol brightnessctl + obsidian ]; } diff --git a/modules/home/walker.nix b/modules/home/walker.nix new file mode 100644 index 0000000..ae293db --- /dev/null +++ b/modules/home/walker.nix @@ -0,0 +1,67 @@ +{ + inputs, + ... +}: +{ + imports = [ + inputs.walker.homeManagerModules.default + ]; + + programs.walker = { + enable = true; + runAsService = true; + config = { + close_when_open = true; + click_to_close = true; + providers = { + default = [ "desktopapplications" ]; + max_results = 50; + prefixes = [ + { + prefix = ";"; + provider = "providerlist"; + } + { + prefix = ">"; + provider = "runner"; + } + { + prefix = "/"; + provider = "files"; + } + { + prefix = "."; + provider = "symbols"; + } + { + prefix = "!"; + provider = "todo"; + } + { + prefix = "%"; + provider = "bookmarks"; + } + { + prefix = "="; + provider = "calc"; + } + { + prefix = "@"; + provider = "websearch"; + } + { + prefix = ":"; + provider = "clipboard"; + } + { + prefix = "$"; + provider = "windows"; + } + ]; + clipboard = { + time_format = "%d.%m. - %H:%M"; # format for the clipboard item date + }; + }; + }; + }; +} diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix index 4978921..62e87ac 100644 --- a/modules/home/waybar/default.nix +++ b/modules/home/waybar/default.nix @@ -38,7 +38,7 @@ let exec = "echo ; echo 󱓟 app launcher"; interval = 86400; tooltip = true; - on-click = "pkill rofi || rofi -show drun -show-icons"; + on-click = "walker"; }; hyprland-window = { @@ -56,6 +56,25 @@ let }; }; + cava = { + autosens = 1; + bars = 15; + bar_delimiter = 32; # ASCII for " " (space) + format-icons = [ + "▁" + "▂" + "▃" + "▄" + "▅" + "▆" + "▇" + "█" + ]; + framerate = 30; + input_delay = 2; + method = "pipewire"; + }; + arrow-right = { format = "󰁙"; tooltip = false; @@ -103,9 +122,12 @@ let }; pulseaudio = { - format = "{icon} {volume}%"; - format-bluetooth = "{icon} 󰂰 {volume}"; - format-muted = "󰖁"; + format = "{icon} {volume}% {format_source}"; + format-muted = "󰖁 {format_source}"; + format-bluetooth = "󰂰 {icon} {volume}% {format_source}"; + format-bluetooth-muted = "󰂰 󰖁 {format_source}"; + format-source = "󰍬 {volume}%"; + format-source-muted = "󰍭"; format-icons = { headphone = ""; hands-free = ""; @@ -119,25 +141,66 @@ let "󰕾" "" ]; - ignored-sinks = [ "Easy Effects Sink" ]; }; scroll-step = 5.0; - # on-click-right = "pavucontrol -t 3"; + on-click = "pavucontrol -t 3"; + on-click-right = "pavucontrol -t 4"; tooltip-format = "{icon} {desc} | {volume}%"; smooth-scrolling-threshold = 1; }; + wireplumber = { + format = "{icon} {volume}% {format_source}"; + format-muted = "󰖁 {format_source}"; + format-source = "󰍬 {volume}%"; + format-source-muted = "󰍭"; + format-icons = { + headphone = ""; + hands-free = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = [ + "" + "" + "󰕾" + "" + ]; + }; + scroll-step = 5.0; + on-click = "pavucontrol -t 3"; + on-click-right = "pavucontrol -t 4"; + tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%"; + }; + + backlight = { + format = "{icon} {percent}%"; + format-icons = [ + "" + "" + "" + "" + "" + "" + "" + "" + "" + ]; + on-scroll-down = "brightnessctl set 10%-"; + on-scroll-up = "brightnessctl set +10%"; + tooltip = false; + }; + battery = { align = 0; rotate = 0; full-at = 100; design-capacity = false; states = { - good = 95; - warning = 30; - critical = 15; + critical = 20; }; - format = "{icon} {capacity}"; + format = "{icon} {capacity}%"; format-charging = " {capacity}%"; format-plugged = "󱘖 {capacity}%"; format-alt-click = "click"; @@ -194,6 +257,15 @@ let tooltip = false; }; + network = { + format-disconnected = "󰖪 "; + format-wifi = " "; + format-ethernet = "󰈀 "; + format-linked = " (No IP)"; + format-disabled = " (Disabled)"; + tooltip-format = "{essid}: {ipaddr}/{cidr}"; + }; + notifications = { tooltip = false; format = "{icon} {text}"; @@ -252,16 +324,16 @@ in layer = "top"; position = "top"; height = 34; - width = 1200; - margin-left = 50; - margin-right = 50; - margin-top = 5; + margin-left = 10; + margin-right = 10; + margin-top = 10; fixed-center = true; reload_style_on_change = true; modules-left = [ "custom/menu" "hyprland/window" + "cava" "group/info" ]; @@ -278,6 +350,7 @@ in "hyprland/workspaces#4" = hyprland-workspaces; "custom/menu" = menu; "hyprland/window" = hyprland-window; + "cava" = cava; "custom/arrow-right" = arrow-right; "cpu" = cpu; "memory" = memory; @@ -285,6 +358,9 @@ in "idle_inhibitor" = idle-inhibitor; "tray" = tray; "pulseaudio" = pulseaudio; + "network" = network; + "wireplumber" = wireplumber; + "backlight" = backlight; "mpris" = mpris; "battery" = battery; "custom/arrow-left" = arrow-left; @@ -310,7 +386,10 @@ in orientation = "inherit"; modules = [ "tray" - "pulseaudio" + "network" + "wireplumber" + # "pulseaudio" + "backlight" "mpris" "battery" ]; diff --git a/modules/home/waybar/style.css b/modules/home/waybar/style.css index 5c1444f..09867ed 100644 --- a/modules/home/waybar/style.css +++ b/modules/home/waybar/style.css @@ -107,12 +107,6 @@ tooltip label { border-radius: 5px; } -#bluetooth, -#network, -#pulseaudio { - padding: 0px 0 0 4px; -} - #pulseaudio-slider slider { min-height: 0px; min-width: 0px; @@ -148,6 +142,7 @@ tooltip label { background: alpha(darker(@main-color), 0.8); border-radius: 10px; } + #tray { padding: 0px 8px; margin: 4px 2px 4px 2px; @@ -177,8 +172,13 @@ tooltip label { #bluetooth, #mpd, #pulseaudio, +#wireplumber, #battery, #mpris { padding: 4px 4px; color: lighter(@main-color); } + +#battery.critical { + color: red; +} diff --git a/modules/home/zsh.nix b/modules/home/zsh.nix index 148fb0d..c204088 100644 --- a/modules/home/zsh.nix +++ b/modules/home/zsh.nix @@ -8,6 +8,9 @@ enable = true; enableZshIntegration = true; }; + fastfetch = { + enable = true; + }; starship = { enable = true; enableZshIntegration = true; @@ -81,6 +84,7 @@ syntaxHighlighting.enable = true; shellAliases = { stu = "ssh stu"; + ff = "fastfetch"; }; }; };