diff --git a/home/config/nvim/lua/plugins/yuck.lua b/home/config/nvim/lua/plugins/yuck.lua new file mode 100644 index 0000000..eb1a207 --- /dev/null +++ b/home/config/nvim/lua/plugins/yuck.lua @@ -0,0 +1,5 @@ +return { + { + "elkowar/yuck.vim", + }, +} diff --git a/home/config/scripts/getIcons.sh b/home/config/scripts/getIcons.sh old mode 100644 new mode 100755 diff --git a/home/config/scripts/rofiWifi.sh b/home/config/scripts/rofiWifi.sh new file mode 100755 index 0000000..180577d --- /dev/null +++ b/home/config/scripts/rofiWifi.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +notify-send "Getting list of available Wi-Fi networks..." +# Get a list of available wifi connections and morph it into a nice-looking list +wifi_list=$(nmcli --fields "SECURITY,SSID" device wifi list | sed 1d | sed 's/ */ /g' | sed -E "s/WPA*.?\S/ /g" | sed "s/^--/ /g" | sed "s/ //g" | sed "/--/d") + +connected=$(nmcli -fields WIFI g) +if [[ "$connected" =~ "enabled" ]]; then + toggle=" Disable Wi-Fi" +elif [[ "$connected" =~ "disabled" ]]; then + toggle=" Enable Wi-Fi" +fi + +# Use rofi to select wifi network +chosen_network=$(echo -e "$toggle\n$wifi_list" | uniq -u | rofi -dmenu -i -selected-row 1 -p "Wi-Fi SSID: ") +# Get name of connection +chosen_id=$(echo "${chosen_network:3}" | xargs) + +if [ "$chosen_network" = "" ]; then + exit +elif [ "$chosen_network" = " Enable Wi-Fi" ]; then + nmcli radio wifi on +elif [ "$chosen_network" = " Disable Wi-Fi" ]; then + nmcli radio wifi off +else + # Message to show when connection is activated successfully + success_message="Connected: \"$chosen_id\"" + # Get saved connections + saved_connections=$(nmcli -g NAME connection) + if [[ $(echo "$saved_connections" | grep -w "$chosen_id") = "$chosen_id" ]]; then + nmcli connection up id "$chosen_id" | grep "successfully" && notify-send "Connection Established" "$success_message" + else + if [[ "$chosen_network" =~ "" ]]; then + wifi_password=$(rofi -dmenu -p "Password: ") + fi + nmcli device wifi connect "$chosen_id" password "$wifi_password" | grep "successfully" && notify-send "Connection Established" "$success_message" + fi +fi diff --git a/home/config/scripts/waybarRestart.sh b/home/config/scripts/waybarRestart.sh index e23bace..18f50d2 100755 --- a/home/config/scripts/waybarRestart.sh +++ b/home/config/scripts/waybarRestart.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash - #Restart Waybar and swaync -XDG_CONFIG_HOME="$HOME/.dummy" # Prevent swaync use default gtk theme -pkill -f waybar -pkill -f swaync + +killall .waybar-wrapped +killall .swaync-wrapped waybar -c ~/.config/waybar/config.json -s ~/.config/waybar/style.css & + +XDG_CONFIG_HOME="$HOME/.dummy" # Prevent swaync use default gtk theme swaync -c ~/.config/swaync/config.json -s ~/.config/swaync/style.css & diff --git a/home/config/waybar/config.json b/home/config/waybar/config.json index 7793b40..40aebf4 100644 --- a/home/config/waybar/config.json +++ b/home/config/waybar/config.json @@ -6,8 +6,6 @@ "exclusive": true, "passthrough": false, "position": "top", - "height": 40, - "spacing": 3, "fixed-center": true, "ipc": true, "margin-top": 0, @@ -19,7 +17,13 @@ "modules-center": ["hyprland/window"], - "modules-right": ["cpu", "temperature", "wlr/taskbar", "pulseaudio"] + "modules-right": [ + "wlr/taskbar", + "temperature", + "cpu", + "memory", + "pulseaudio" + ] }, { "output": "eDP-1", @@ -28,7 +32,6 @@ "exclusive": true, "passthrough": false, "position": "top", - "spacing": 3, "fixed-center": true, "ipc": true, "margin-top": 0, @@ -36,18 +39,18 @@ "margin-right": 0, "margin-bottom": 0, - "modules-left": ["hyprland/workspaces", "clock", "custom/cava", "mpris"], + "modules-left": ["custom/os", "hyprland/workspaces", "clock", "custom/cava", "mpris"], "modules-center": ["hyprland/window"], "modules-right": [ "wlr/taskbar", - "cpu", "temperature", + "cpu", "memory", - "custom/swaync", "pulseaudio", - "battery" + "battery", + "custom/swaync" ] }, { @@ -57,7 +60,6 @@ "exclusive": true, "passthrough": false, "position": "top", - "spacing": 3, "fixed-center": true, "ipc": true, "margin-top": 0, @@ -65,17 +67,17 @@ "margin-right": 0, "margin-bottom": 0, - "modules-left": ["hyprland/workspaces", "clock", "custom/cava", "mpris"], + "modules-left": ["custom/os", "hyprland/workspaces", "clock", "custom/cava", "mpris"], "modules-center": ["hyprland/window"], "modules-right": [ "wlr/taskbar", + "network", "cpu", - "temperature", "memory", - "custom/swaync", - "pulseaudio" + "pulseaudio", + "custom/swaync" ] } ] diff --git a/home/config/waybar/modules.json b/home/config/waybar/modules.json index d8e28ff..5f71bc4 100644 --- a/home/config/waybar/modules.json +++ b/home/config/waybar/modules.json @@ -14,29 +14,16 @@ "4": [] }, "format-icons": { - "active": "👁️‍🗨️", - "default": "🗨️" + "active": "", + "default": "" } }, "clock": { - "interval": 1, - "format": " 🕑 {:%H:%M} ", - "format-alt": " 🕑 {:%H:%M 🗓️ %Y, %d %B, %A} ", - "tooltip-format": "{calendar}", - "calendar": { - "mode": "year", - "mode-mon-col": 3, - "weeks-pos": "right", - "on-scroll": 1, - "format": { - "days": "{}", - "weeks": "W{}", - "weekdays": "{}", - "today": "{}" - } - } + "format": "󰥔 {:%H:%M 󰃭 %d/%m}", + "tooltip-format": "{:%A %d %B %Y}" }, + "actions": { "on-click-right": "mode", "on-click-forward": "tz_up", @@ -45,66 +32,72 @@ "on-scroll-down": "shift_down" }, + "custom/os": { + "format": "󱄅", + "on-click": "wlogout --protocol layer-shell" + }, + "cpu": { - "format": " {usage}% 🧠 ", - "interval": 1, - "on-click-right": "kitty -c ~/.config/kitty/kitty.conf --title btop sh -c 'btop'" + "format": " {usage}%", + "max-length": 20, + "interval": 5, + "on-click-right": "ghostty -e btop" }, "hyprland/window": { "format": "{}", - "max-length": 60, + "max-length": 40, "separate-outputs": true, "offscreen-css": true, "offscreen-css-text": "(inactive)", "rewrite": { "nvim . (.*)": " $1", + "(.*) - Visual Studio Code": " $1", "\\(\\d+\\) Discord (.*)": " $1", "(.*) - YouTube — Mozilla Firefox": " $1", - "(.*)\\.pdf — Mozilla Firefox": " $1", + " (.*)\\.pdf": " $1", "(.*) — Mozilla Firefox": " $1", "(.*) - VLC media player": " $1", - "(.*) - YouTube Music — Mozilla Firefox": "󰎆 $1", + "(.*) - YouTube Music — Mozilla Firefox": "󰎆 $1" } }, "memory": { - "interval": 10, - "format": " {percentage}% 📊 ", + "interval": 30, + "format": " {used:0.1f}GB/{total:0.1f}G", "format-alt-click": "click", "tooltip": true, "tooltip-format": "{used:0.1f}GB/{total:0.1f}G", - "on-click-right": "kitty -c ~/.config/kitty/kitty.conf --title btop sh -c 'btop'" + "on-click-right": "ghostty -e btop" }, "mpris": { "interval": 10, - "format": " {title} ", - "format-paused": " {title} {status_icon} ", + "format": " {status_icon} {title} | {artist} ", + "format-paused": " {status_icon} {title} | {artist} ", "on-click": "playerctl play-pause", "on-click-right": "playerctl next", "scroll-step": 5.0, "smooth-scrolling-threshold": 1, "status-icons": { "paused": "󰐎", - "playing": "🎶", + "playing": "󰎇", "stopped": "" }, "max-length": 30 }, "pulseaudio": { - "format": " {volume}% {icon} ", - "format-bluetooth": " 󰂰 {volume}% {icon} ", - "format-muted": "🔇", + "format": "{icon} {volume}%", + "format-bluetooth": "󰂰 {volume}%", + "format-muted": " Muted", "format-icons": { - "headphone": "🔈", - "hands-free": "🔈", - "headset": "🔈", - "phone": "🔈", - "portable": "🔈", - "car": "🔈", - "default": ["🔈", "🔈", "🔈", "🔈"], + "default": [ + "", + "", + " ", + " " + ], "ignored-sinks": ["Easy Effects Sink"] }, "scroll-step": 5.0, @@ -121,24 +114,24 @@ "/sys/class/thermal/thermal_zone0/temp" ], "critical-threshold": 82, - "format-critical": "{temperatureC}°C {icon}", - "format": " {temperatureC}°C {icon} ", - "format-icons": ["🔥"], + "format-critical": " {temperatureC}°C", + "format": "{icon} {temperatureC}°C", + "format-icons": ["", "", "", ""], "on-click-right": "kitty -c ~/.config/kitty/kitty.conf --title btop sh -c 'btop'" }, "custom/swaync": { "tooltip": true, - "format": " {} {icon} ", + "format": "{icon}", "format-icons": { - "notification": "🔔", - "none": "🔔", - "dnd-notification": "🔕", - "dnd-none": "🔕", - "inhibited-notification": "🔔", - "inhibited-none": "🔔", - "dnd-inhibited-notification": "🔕", - "dnd-inhibited-none": "🔕" + "notification": "󱅫", + "none": "󰂚", + "dnd-notification": "󱏧", + "dnd-none": "󱏧", + "inhibited-notification": "󰂚", + "inhibited-none": "󰂚", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": "󱏧" }, "return-type": "json", "exec-if": "which swaync-client", @@ -164,14 +157,15 @@ "Spotify", "nemo", "vlc", - "com.mitchellh.ghostty" + "com.mitchellh.ghostty", + "code" ] }, "custom/cava": { "exec": "~/.config/scripts/waybarCava.sh", "format": "{}", - "on-click": "kitty -c ~/.config/kitty/kitty.conf nvim -c cd ~/.config/" + "on-click": "ghostty -e cava" }, "battery": { @@ -186,5 +180,19 @@ "format-charging": "{capacity}% 󰂄", "format-plugged": "{capacity}% 󰂄", "format-alt": "{time} {icon}" + }, + + "network" : { + "format": "{ifname}", + "format-wifi": "󰤨 {essid} {bandwidthTotalBytes}", + "format-ethernet": "󱓞 Ethernet {bandwidthTotalBytes}", + "format-disconnected": "󰤭 ", + "tooltip-format": "{ifname} via {gwaddr} 󰊗", + "tooltip-format-wifi": "󰤢 Signal Strength: {signalStrength}%", + "tooltip-format-ethernet": "󰊗 Signal Strength: {signalStrength}%", + "tooltip-format-disconnected": "Disconnected", + "max-length": 50, + "interval": 5, + "on-click": "~/.config/scripts/rofiWifi.sh" } } diff --git a/home/config/waybar/style.css b/home/config/waybar/style.css index b928997..3647dea 100644 --- a/home/config/waybar/style.css +++ b/home/config/waybar/style.css @@ -1,10 +1,13 @@ +@define-color main #ebdbb2; + * { font-family: "JetBrainsMonoNerdFontMono"; font-weight: bold; min-height: 0; font-size: 102%; font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; - padding: 1px; + transition-property: all; + transition-duration: 0.3s; } window#waybar { @@ -28,13 +31,13 @@ window#waybar.empty #window { } tooltip { - opacity: 1; + background: alpha(#fff, 0.05); border-radius: 10px; } tooltip label { padding: 10px; - color: #ebdbb2; + color: @main; } #custom-cava, @@ -46,14 +49,57 @@ tooltip label { #pulseaudio, #temperature, #workspaces, -#custom-menu, +#custom-os, #custom-swaync { - border-radius: 10px; - color: #ebdbb2; - padding-top: 3px; - padding-bottom: 3px; - padding-left: 6px; - padding-right: 6px; + background: alpha(#fff, 0.05); + border-radius: 6px; + color: @main; + font-weight: 600; + padding: 2.5px 12px; + margin: 4px 0 4px 0; + border: 1px solid alpha(#fff, 0.05); +} + + +#custom-os, +#workspaces, +#clock, +#custom-cava, +#mpris { + margin-right: 4px; +} + +#custom-swaync, +#pulseaudio, +#cpu, +#memory +#temperature, +#network { + margin-left: 4px; +} + +#cpu { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + padding-right: 0; + border-right: none; +} + +#memory { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin-left: 0; + border-left: none; +} + +#clock { + font-weight: 600; +} + +#custom-swaync { + margin-right: 10px; + margin-right: 10px; + padding-right: 18px; } #battery { @@ -65,7 +111,7 @@ tooltip label { } #window { - color: #ebdbb2; + color: @main; padding-top: 3px; padding-bottom: 3px; padding-right: 6px; @@ -73,15 +119,34 @@ tooltip label { border-radius: 12px; } +#workspaces { + font-weight: Bold; + padding-left: 3.5px; + padding-right: 3.5px; +} + +#custom-os { + margin-left: 10px; + padding-left: 10px; + padding-right: 14px; +} + #workspaces button { margin: 1px; box-shadow: none; text-shadow: none; border-radius: 12px; - padding-left: 6px; - padding-right: 6px; - background-color: #ebdbb2; - color: #282828; + padding-left: 4px; + padding-right: 9px; + color: @main; + transition-property: all; + transition-duration: 0.3s; +} + +#workspaces button.focused { + background-color: alpha(@main, 0.3); + transition-property: all; + transition-duration: 0.3s; } #temperature.critical { diff --git a/home/config/wlogout/icons/hibernate.png b/home/config/wlogout/icons/hibernate.png deleted file mode 100755 index 1aa6730..0000000 Binary files a/home/config/wlogout/icons/hibernate.png and /dev/null differ diff --git a/home/config/wlogout/icons/hibernate.svg b/home/config/wlogout/icons/hibernate.svg new file mode 100644 index 0000000..064223d --- /dev/null +++ b/home/config/wlogout/icons/hibernate.svg @@ -0,0 +1 @@ + diff --git a/home/config/wlogout/icons/lock.png b/home/config/wlogout/icons/lock.png deleted file mode 100755 index 2fdf2de..0000000 Binary files a/home/config/wlogout/icons/lock.png and /dev/null differ diff --git a/home/config/wlogout/icons/lock.svg b/home/config/wlogout/icons/lock.svg new file mode 100644 index 0000000..8c0f1ab --- /dev/null +++ b/home/config/wlogout/icons/lock.svg @@ -0,0 +1 @@ + diff --git a/home/config/wlogout/icons/logout.png b/home/config/wlogout/icons/logout.png deleted file mode 100755 index c398d22..0000000 Binary files a/home/config/wlogout/icons/logout.png and /dev/null differ diff --git a/home/config/wlogout/icons/logout.svg b/home/config/wlogout/icons/logout.svg new file mode 100644 index 0000000..e914070 --- /dev/null +++ b/home/config/wlogout/icons/logout.svg @@ -0,0 +1 @@ + diff --git a/home/config/wlogout/icons/reboot.png b/home/config/wlogout/icons/reboot.png deleted file mode 100755 index 6db3aaa..0000000 Binary files a/home/config/wlogout/icons/reboot.png and /dev/null differ diff --git a/home/config/wlogout/icons/reboot.svg b/home/config/wlogout/icons/reboot.svg new file mode 100644 index 0000000..faf2a99 --- /dev/null +++ b/home/config/wlogout/icons/reboot.svg @@ -0,0 +1 @@ + diff --git a/home/config/wlogout/icons/shutdown.png b/home/config/wlogout/icons/shutdown.png deleted file mode 100755 index 3025cd0..0000000 Binary files a/home/config/wlogout/icons/shutdown.png and /dev/null differ diff --git a/home/config/wlogout/icons/shutdown.svg b/home/config/wlogout/icons/shutdown.svg new file mode 100644 index 0000000..0ca446e --- /dev/null +++ b/home/config/wlogout/icons/shutdown.svg @@ -0,0 +1 @@ + diff --git a/home/config/wlogout/icons/suspend.png b/home/config/wlogout/icons/suspend.png deleted file mode 100755 index 124a58e..0000000 Binary files a/home/config/wlogout/icons/suspend.png and /dev/null differ diff --git a/home/config/wlogout/icons/suspend.svg b/home/config/wlogout/icons/suspend.svg new file mode 100644 index 0000000..4a9f22f --- /dev/null +++ b/home/config/wlogout/icons/suspend.svg @@ -0,0 +1 @@ + diff --git a/home/config/wlogout/style.css b/home/config/wlogout/style.css index 5ba48fe..cfbd543 100755 --- a/home/config/wlogout/style.css +++ b/home/config/wlogout/style.css @@ -1,15 +1,18 @@ +@define-color main #ebdbb2; + * { background-image: none; + transition-property: all; + transition-duration: 0.3s; } window { - background-color: rgba(36, 39, 58, 0.9); + background-color: rgba(0, 0, 0, 0); } button { margin: 8px; - color: #cad3f5; - background-color: #363a4f; + color: @main; border-style: solid; border-width: 2px; background-repeat: no-repeat; @@ -20,31 +23,44 @@ button { button:active, button:focus, button:hover { - color: #8bd5ca; - background-color: #24273a; + color: @main; + background-color: alpha(@main, 0.4); outline-style: none; + transition-property: all; + transition-duration: 0.3s; +} + +#lock, +#logout, +#suspend, +#hibernate, +#shutdown, +#reboot { + background-position: center center; + background-size: 250px; + background-repeat: no-repeat; } #lock { - background-image: image(url("icons/lock.png")); + background-image: url("icons/lock.svg"); } #logout { - background-image: image(url("icons/logout.png")); + background-image: url("icons/logout.svg"); } #suspend { - background-image: image(url("icons/suspend.png")); + background-image: url("icons/suspend.svg"); } #hibernate { - background-image: image(url("icons/hibernate.png")); + background-image: url("icons/hibernate.svg"); } #shutdown { - background-image: image(url("icons/shutdown.png")); + background-image: url("icons/shutdown.svg"); } #reboot { - background-image: image(url("icons/reboot.png")); + background-image: url("icons/reboot.svg"); } diff --git a/home/user/default.nix b/home/user/default.nix index 98aab55..c3ccc7f 100644 --- a/home/user/default.nix +++ b/home/user/default.nix @@ -14,6 +14,7 @@ ./neovim.nix ./bin.nix ./desktops.nix + ./direnv.nix inputs.hyprland.homeManagerModules.default ]; diff --git a/home/user/direnv.nix b/home/user/direnv.nix new file mode 100644 index 0000000..8667d87 --- /dev/null +++ b/home/user/direnv.nix @@ -0,0 +1,13 @@ +{ + programs = { + direnv = { + enable = true; + enableBashIntegration = true; + nix-direnv.enable = true; + }; + }; + + home.sessionVariables = { + DIRENV_LOG_FORMAT = ""; # Stop direnv log + }; +} diff --git a/home/user/hyprland.nix b/home/user/hyprland.nix index 408a3d3..5f6fbe0 100644 --- a/home/user/hyprland.nix +++ b/home/user/hyprland.nix @@ -31,11 +31,22 @@ let song_info=$(playerctl metadata --format '{{title}} 󰎆 {{artist}}') echo "$song_info" ''; + + ewwWayland = pkgs.eww.overrideAttrs (oldAttrs: { + cargoBuildFlags = [ + "--no-default-features" + "--features=wayland" + "--bin" + "eww" + ]; + }); + in { home.packages = with pkgs; [ hyprpaper hyprcursor + ewwWayland ]; systemd.user.targets.hyprland-session.Unit.Wants = [ diff --git a/home/user/neovim.nix b/home/user/neovim.nix index ad1de8f..50b6a82 100644 --- a/home/user/neovim.nix +++ b/home/user/neovim.nix @@ -47,7 +47,6 @@ in prettierd javascript-typescript-langserver marksman - tailwindcss-language-server ruff ruff-lsp pyright diff --git a/home/user/packages.nix b/home/user/packages.nix index 09b2c58..6c064a4 100644 --- a/home/user/packages.nix +++ b/home/user/packages.nix @@ -2,7 +2,8 @@ pkgs, lib, ... -}: let +}: +let vesktop = pkgs.vesktop.overrideAttrs (oldAttrs: { desktopItems = lib.optional pkgs.stdenv.hostPlatform.isLinux ( (lib.head oldAttrs.desktopItems).override { @@ -11,15 +12,18 @@ } ); }); -in { +in +{ home.packages = (with pkgs; [ # Dev stuff gcc go nodePackages.pnpm - (python3.withPackages - (python-pkgs: [python-pkgs.pip python-pkgs.requests])) + (python3.withPackages (python-pkgs: [ + python-pkgs.pip + python-pkgs.requests + ])) rustup pkgsCross.mingwW64.stdenv.cc pkgsCross.mingwW64.windows.pthreads @@ -44,6 +48,7 @@ in { catppuccin-gtk cava papirus-folders + inkscape ]) ++ [ vesktop # discord diff --git a/home/user/swaync.nix b/home/user/swaync.nix index f1e99b5..2b3b736 100644 --- a/home/user/swaync.nix +++ b/home/user/swaync.nix @@ -1,5 +1,6 @@ # config from https://github.com/shub39/dotfiles -{...}: { +{ ... }: +{ services.swaync = { enable = true; diff --git a/system/modules/lsp.nix b/system/modules/lsp.nix index 74da255..9676c31 100644 --- a/system/modules/lsp.nix +++ b/system/modules/lsp.nix @@ -14,6 +14,7 @@ nginx-language-server nodePackages_latest.vscode-json-languageserver bash-language-server + tailwindcss-language-server gopls ]; }