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
];
}