This commit is contained in:
2026-04-19 18:05:23 +01:00
parent 801c9d74d0
commit aac7c9de0a
41 changed files with 665 additions and 142 deletions
+1
View File
@@ -0,0 +1 @@
../../dotfiles/stow/config/.config/ghostty/config
+4 -2
View File
@@ -10,6 +10,8 @@
# exec-once = waybar & hyprpaper & firefox
exec-once = ~/.config/waybar/scripts/launch.sh
exec-once = awww-daemon
exec-once = mako
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = wl-clip-presist --clipboard regular
+14 -4
View File
@@ -4,19 +4,18 @@
# See https://wiki.hypr.land/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
$shiftMod = SUPER SHIFT
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exec, wlogout
bind = $mainMod SHIFT, E, exec, $fileManager
bind = $mainMod SHIFT, W, exec, $browser
bind = $shiftMod, E, exec, $fileManager
bind = $shiftMod, W, exec, $browser
bind = $mainMod, V, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, R, exec, ~/.config/waybar/scripts/launch.sh
#bind = $mainMod, J, layoutmsg, togglesplit # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, h, movefocus, l
@@ -73,3 +72,14 @@ bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
# Action Center
bind = $mainMod, A, exec, swaync-client -t
# Clipboard manager
bind = $shiftMod, V, exec, cliphist list | rofi -dmenu -display-columns 2 -p "Clipboard" -theme ~/.config/rofi/clipboard/clipboard.rasi | cliphist decode | wl-copy
# Screenshots
bind = $shiftMod, W, exec, hyprshot -m window
bind = $shiftMod, M, exec, hyprshot -m output
bind = $shiftMod, PRINT, exec, hyprshot -m region
+2 -2
View File
@@ -13,8 +13,8 @@ general {
border_size = 1
# https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
col.active_border = rgb(665c54)
col.inactive_border = rgb(282828)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true
+4
View File
@@ -22,3 +22,7 @@ env = XDG_SESSION_DESKTOP,Hyprland
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt6ct
# Nvidia
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+2 -2
View File
@@ -4,10 +4,10 @@
# https://wiki.hypr.land/Configuring/Variables/#input
input {
kb_layout = us
kb_layout = pt
kb_variant =
kb_model =
kb_options =
kb_options = caps:super
kb_rules =
follow_mouse = 1
+3 -2
View File
@@ -2,5 +2,6 @@
### MONITORS ###
################
monitor=DP-1,1920x1080@240,1920x0,1
monitor=DP-2,1920x1080@144,0x0,1
#monitor=DP-1,1920x1080@240,1920x0,1
#monitor=DP-2,1920x1080@144,0x0,1
monitor=eDP-1, 2160x1440,0x0,1.2
+2 -2
View File
@@ -6,6 +6,6 @@
# Set programs that you use
$terminal = ghostty
$fileManager = dolphin
$menu = wofi --show drun
$fileManager = thunar
$menu = pkill rofi || bash ~/.config/rofi/launcher/launcher.sh
$browser = librewolf
+7
View File
@@ -39,6 +39,13 @@ windowrule {
float = yes
}
# SwayNC layer rules
layerrule = blur on, match:namespace swaync-control-center
layerrule = ignore_alpha 0.5, match:namespace swaync-control-center
layerrule = blur on, match:namespace swaync-notification-window
layerrule = ignore_alpha 0.5, match:namespace swaync-notification-window
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
+19
View File
@@ -0,0 +1,19 @@
@define-color bg0 #1d2021;
@define-color bg1 #282828;
@define-color bg2 #3c3838;
@define-color bg3 #504945;
@define-color bg4 #665c54;
@define-color fg #ebdbb2;
@define-color red #cc241d;
@define-color orange #d65d0e;
@define-color yellow #d79921;
@define-color green #98971a;
@define-color aqua #689d6a;
@define-color blue #458588;
@define-color purple #b16286;
@define-color grey0 #a89984;
@define-color grey1 #928374;
@define-color grey2 #7c6e75;
+97
View File
@@ -0,0 +1,97 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"positionX": "right",
"positionY": "top",
"cssPriority": "user",
"control-center-width": 380,
"control-center-height": 860,
"control-center-margin-top": 2,
"control-center-margin-bottom": 2,
"control-center-margin-right": 1,
"control-center-margin-left": 0,
"notification-window-width": 400,
"notification-icon-size": 48,
"notification-body-image-height": 160,
"notification-body-image-width": 200,
"timeout": 4,
"timeout-low": 2,
"timeout-critical": 6,
"fit-to-screen": false,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": false,
"script-fail-notify": true,
"scripts": {
"example-script": {
"exec": "echo 'Do something...'",
"urgency": "Normal"
}
},
"notification-visibility": {
"example-name": {
"state": "muted",
"urgency": "Low",
"app-name": "Spotify"
}
},
"widgets": [
"label",
"buttons-grid",
"mpris",
"title",
"dnd",
"notifications"
],
"widget-config": {
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": " 󰎟 "
},
"dnd": {
"text": "Do not disturb"
},
"label": {
"max-lines": 1,
"text": " "
},
"mpris": {
"image-size": 96,
"image-radius": 12
},
"volume": {
"label": "󰕾",
"show-per-app": true
},
"buttons-grid": {
"actions": [
{
"label": " ",
"command": "amixer set Master toggle"
},
{
"label": "",
"command": "amixer set Capture toggle"
},
{
"label": " ",
"command": "nm-connection-editor"
},
{
"label": "󰂯",
"command": "blueman-manager"
},
{
"label": "󰏘",
"command": "nwg-look"
}
]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+3
View File
@@ -0,0 +1,3 @@
@import "colors.css";
@import "themes/nova-dark/notifications.css";
@import "themes/nova-dark/central_control.css";
+291
View File
@@ -0,0 +1,291 @@
@define-color text @fg;
@define-color background-alt @bg1
@define-color background @bg0;
@define-color selected @green;
@define-color hover alpha(@green, .4);
@define-color urgent @red;
* {
color: @text;
all: unset;
font-size: 14px;
font-family: "Rubik", "JetBrains Mono Nerd Font Propo";
transition: 200ms;
}
/* Avoid 'annoying' backgroud */
.blank-window {
background: transparent;
}
/* CONTROL CENTER ------------------------------------------------------------------------ */
.control-center {
background: alpha(@background, 0.55);
border-radius: 24px;
border: 1px solid @selected;
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.6);
margin: 18px;
padding: 12px;
}
/* Notifications */
.control-center .notification-row .notification-background,
.control-center
.notification-row
.notification-background
.notification.critical {
background-color: @background-alt;
border-radius: 16px;
margin: 4px 0px;
padding: 4px;
}
.control-center
.notification-row
.notification-background
.notification.critical {
color: @urgent;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content {
margin: 6px;
padding: 8px 6px 2px 2px;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3.4em;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
background: alpha(@selected, 0.6);
color: @text;
border-radius: 12px;
margin: 6px;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background: @selected;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: @selected;
}
/* Buttons */
.control-center .notification-row .notification-background .close-button {
background: transparent;
border-radius: 6px;
color: @text;
margin: 0px;
padding: 4px;
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: @selected;
}
.control-center
.notification-row
.notification-background
.close-button:active {
background-color: @selected;
}
progressbar,
progress,
trough {
border-radius: 12px;
}
progressbar {
background-color: rgba(255, 255, 255, 0.1);
}
/* Notifications expanded-group */
.notification-group {
margin: 2px 8px 2px 8px;
}
.notification-group-headers {
font-weight: bold;
font-size: 1.25rem;
color: @text;
letter-spacing: 2px;
}
.notification-group-icon {
color: @text;
}
.notification-group-collapse-button,
.notification-group-close-all-button {
background: transparent;
color: @text;
margin: 4px;
border-radius: 6px;
padding: 4px;
}
.notification-group-collapse-button:hover,
.notification-group-close-all-button:hover {
background: @hover;
}
/* WIDGETS --------------------------------------------------------------------------- */
/* Notification clear button */
.widget-title {
font-size: 1.2em;
margin: 6px;
}
.widget-title button {
background: @background-alt;
border-radius: 6px;
padding: 4px 16px;
}
.widget-title button:hover {
background-color: @hover;
}
.widget-title button:active {
background-color: @selected;
}
/* Do not disturb */
.widget-dnd {
margin: 6px;
font-size: 1.2rem;
}
.widget-dnd > switch {
background: @background-alt;
font-size: initial;
border-radius: 8px;
box-shadow: none;
padding: 2px;
}
.widget-dnd > switch:hover {
background: @hover;
}
.widget-dnd > switch:checked {
background: @selected;
}
.widget-dnd > switch:checked:hover {
background: @hover;
}
.widget-dnd > switch slider {
background: @text;
border-radius: 6px;
}
/* Buttons menu */
.widget-buttons-grid {
font-size: x-large;
padding: 6px 2px;
margin: 6px;
border-radius: 12px;
background: @background-alt;
}
.widget-buttons-grid > flowbox > flowboxchild > button {
margin: 4px 10px;
padding: 6px 12px;
background: transparent;
border-radius: 8px;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: @hover;
}
/* Music player */
.widget-mpris {
background: @background-alt;
border-radius: 16px;
color: @text;
margin: 20px 6px;
}
/* NOTE: Background need *opacity 1* otherwise will turn into the album art blurred */
.widget-mpris-player {
background-color: @background;
border-radius: 22px;
padding: 6px 14px;
margin: 6px;
}
.widget-mpris > box > button {
color: @text;
border-radius: 20px;
}
.widget-mpris button {
color: alpha(@text, 0.6);
}
.widget-mpris button:hover {
color: @text;
}
.widget-mpris-album-art {
border-radius: 16px;
}
.widget-mpris-title {
font-weight: 700;
font-size: 1rem;
}
.widget-mpris-subtitle {
font-weight: 500;
font-size: 0.8rem;
}
picture.mpris-background {
opacity: 0;
}
/* Volume */
.widget-volume {
background: @background;
color: @background;
padding: 4px;
margin: 6px;
border-radius: 6px;
}
+151
View File
@@ -0,0 +1,151 @@
@define-color text @fg;
@define-color background-alt @bg1;
@define-color background @bg0;
@define-color selected @green;
@define-color hover @bg2;
@define-color urgent @red;
* {
/*background-alt: @color1; Buttons background */
/*selected: @color2; Button selected */
/*hover: @color5; Hover button */
/*urgent: @color6; Urgency critical */
/*text-selected: @background; */
color: @text;
all: unset;
font-size: 14px;
font-family: "Rubik", "JetBrains Mono Nerd Font Propo";
transition: 200ms;
}
.notification-row {
outline: none;
margin: 0;
padding: 0px;
}
.floating-notifications.background .notification-row .notification-background {
background: alpha(@background, 0.55);
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.6);
border: 1px solid @selected;
border-radius: 24px;
margin: 16px;
padding: 0;
}
.floating-notifications.background
.notification-row
.notification-background
.notification {
padding: 6px;
border-radius: 12px;
}
.floating-notifications.background
.notification-row
.notification-background
.notification.critical {
border: 2px solid @urgent;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content {
margin: 14px;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3.4em;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 8px;
background-color: @background-alt;
margin: 6px;
border: 1px solid transparent;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background-color: @hover;
border: 1px solid @selected;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: @selected;
color: @background;
}
.image {
margin: 10px 20px 10px 0px;
}
.summary {
font-weight: 800;
font-size: 1rem;
}
.body {
font-size: 0.8rem;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button {
margin: 6px;
padding: 2px;
border-radius: 6px;
background-color: transparent;
border: 1px solid transparent;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:hover {
background-color: @selected;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:active {
background-color: @selected;
color: @background;
}
.notification.critical progress {
background-color: @selected;
}
.notification.low progress,
.notification.normal progress {
background-color: @selected;
}
+17 -7
View File
@@ -7,11 +7,13 @@
"hyprland/workspaces",
"pulseaudio",
"custom/network",
"battery",
],
"clock": {
"interval": 60,
"format": "{:%H:%M}",
"tooltip": false,
},
"hyprland/workspaces": {
@@ -32,8 +34,7 @@
"default": "",
},
"persistent-workspaces": {
"DP-1": ["1", "2", "3", "4", "5"],
"DP-2": ["6", "7", "8", "9", "10"],
"eDP-1": ["1", "2", "3", "4", "5"],
},
"on-click": "activate",
"on-scroll-down": "hyprctl dispatch workspace e+1",
@@ -43,7 +44,7 @@
"pulseaudio": {
"format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon}",
"format-muted": "",
"format-muted": "Muted 󰝟 ",
"format-icons": {
"headphone": "",
"hands-free": "",
@@ -52,7 +53,7 @@
"phone-muted": "",
"portable": "",
"car": "",
"default": ["", ""],
"default": ["", "", ""],
},
"scroll-step": 1,
"on-click": "pavucontrol",
@@ -62,11 +63,20 @@
"custom/network": {
"exec": "~/.config/waybar/scripts/network.sh",
"return-type": "json",
"interval": 10,
"interval": 1,
"format": "{}",
"tooltip": false,
"max-length": 50,
"on-click": "~/.config/wofi/wifi/wifi.sh &",
"on-click-right": "~/.config/wofi/wifi/wifinew.sh &",
"on-click": "~/.config/rofi/wifi/wifi.sh &",
"on-click-right": "~/.config/rofi/wifi/wifinew.sh &",
"tooltip": false,
},
"battery": {
"format": "{capacity}",
"states": {
"warning": 30,
"critical": 15,
},
},
}
+1
View File
@@ -1,3 +1,4 @@
#!/usr/bin/env bash
pkill waybar || waybar &
pkill swaync || swaync &
+18 -4
View File
@@ -5,9 +5,9 @@
# -f: Specific fields
ACTIVE_CONN=$(nmcli -t -f NAME,TYPE connection show --active | grep -E '802-3-ethernet|802-11-wireless' | head -n 1)
# If no connection is found, output nothing
# If no connection is found, output disconnected icon
if [ -z "$ACTIVE_CONN" ]; then
echo ""
echo "{\"text\": \"󰤭 \", \"class\": \"disconnected\"}"
exit 0
fi
@@ -18,8 +18,22 @@ CONN_TYPE="${ACTIVE_CONN##*:}"
# Output JSON for Waybar custom module
if [[ "$CONN_TYPE" == *"802-11-wireless"* ]]; then
# It's Wi-Fi
echo "{\"text\": \"$CONN_NAME \", \"class\": \"wifi\"}"
SIGNAL=$(nmcli -t -f IN-USE,SIGNAL dev wifi | grep '^\*' | cut -d':' -f2)
if [ -z "$SIGNAL" ]; then
ICON="󰤟"
elif [ "$SIGNAL" -ge 80 ]; then
ICON="󰤨"
elif [ "$SIGNAL" -ge 60 ]; then
ICON="󰤥"
elif [ "$SIGNAL" -ge 40 ]; then
ICON="󰤢"
elif [ "$SIGNAL" -ge 20 ]; then
ICON="󰤟"
else
ICON="󰤯"
fi
echo "{\"text\": \"$CONN_NAME $ICON \", \"class\": \"wifi\"}"
else
# It's Ethernet
echo "{\"text\": \"$CONN_NAME 󰊗\", \"class\": \"ethernet\"}"
echo "{\"text\": \"$CONN_NAME 󰈀 \", \"class\": \"ethernet\"}"
fi
+29 -9
View File
@@ -3,11 +3,11 @@
* {
all: unset;
font-family:
"Rubik", "JetBrainsMono Nerd Front Propo", "Noto Sans CJK JP",
"Rubik", "JetBrainsMono Nerd Font Propo", "Noto Sans CJK JP",
"Noto Sans CJK KR";
}
.tooltip {
tooltip {
background-color: @bg1;
color: @fg;
margin: 10px;
@@ -18,7 +18,7 @@
.modules-center {
background-color: @bg1;
color: @fg;
padding: 2px 8px;
padding: 4px 18px;
border-radius: 99px;
}
@@ -27,19 +27,21 @@
}
#workspaces {
min-width: 100px;
background-color: @bg2;
padding: 2px 4px;
margin: 2px 0;
font-size: 0.95rem;
padding: 2px 3px;
margin: 3px 0;
border-radius: 99px;
}
#workspaces button {
background-color: @bg3;
padding: 2px 4px;
padding: 0 5px;
border-radius: 99px;
margin: 0 2px;
transition: all 300ms ease-in-out;
min-width: 7px;
min-width: 10px;
}
#workspaces button.empty {
@@ -47,8 +49,26 @@
}
#workspaces button.active {
background-color: @bg1;
background-color: @green;
min-width: 1.5rem;
font-weight: 500;
transition: none;
transition: all 300ms ease-in-out;
}
#battery {
background-color: @green;
margin: 6px 0;
padding: 0 8px;
border-radius: 99px;
font-weight: 500;
color: @bg1;
letter-spacing: -1px;
}
#battery.warning {
background-color: @yellow;
}
#battery.critical {
background-color: @red;
}
-11
View File
@@ -1,11 +0,0 @@
# macOS Spotlight-like proportions
width=600
height=420
location=center
# Behavior
hide_scroll=true
insensitive=true
allow_images=true
image_size=24
dynamic_lines=true
-57
View File
@@ -1,57 +0,0 @@
/* Wofi macOS-style Gruvbox Theme */
window {
margin: 0px;
border: 1px solid #504945;
border-radius: 12px;
background-color: #282828;
font-family:
"JetBrains Mono", "San Francisco", "Helvetica Neue", sans-serif;
font-size: 14px;
}
#input {
margin: 12px;
padding: 10px 14px;
border: 1px solid #3c3836;
border-radius: 8px;
color: #ebdbb2;
background-color: #1d2021;
}
#inner-box {
margin: 4px 12px 12px 12px;
background-color: transparent;
}
#outer-box {
margin: 0px;
padding: 0px;
background-color: transparent;
}
#scroll {
margin: 0px;
border: none;
}
#text {
margin: 4px;
padding: 6px 10px;
color: #ebdbb2;
}
#entry {
margin: 2px 0px;
border-radius: 6px;
background-color: transparent;
}
#entry:selected {
background-color: #504945;
}
#entry:selected #text {
color: #fabd2f; /* Gruvbox Yellow accent */
font-weight: bold;
}
-18
View File
@@ -1,18 +0,0 @@
#!/bin/bash
# TO CONNECT TO WIFI USING DMENU | ROFI WHICH IS CONNECTED BEFORE
# bssid=$(nmcli device wifi list | sed -n '1!P'| cut -b 9- | dmenu -p "Wifi" -l 10 | awk '{print $1}')
dir="$HOME/.config/wofi"
theme='style-1'
# [ -z "$bssid" ] && exit 1
# nmcli device wifi connect $bssid
# notify-send "📶 WiFi Connected"
bssid=$(nmcli device wifi list | sed -n '1!P'| cut -b 9- | wofi --dmenu --style ${dir}/${theme}.css -p " " --lines 10 | awk '{print $1}')
[ -z "$bssid" ] && exit 1
if nmcli device wifi connect "$bssid"; then
notify-send "📶 WiFi Connected" "Successfully connected to network."
else
notify-send -u critical "⚠️ WiFi Error" "Failed to connect to network."
fi
-22
View File
@@ -1,22 +0,0 @@
#!/bin/bash
# SCRIPT TO CONNECT TO NEW WIFI USING DMENU | ROFI
dir="$HOME/.config/wofi"
theme='style-1'
# bssid=$(nmcli device wifi list | sed -n '1!P'| cut -b 9- | dmenu -p "Wifi" -l 10 | awk '{print $1}')
# [ -z "$bssid" ] && exit 1
# pass=$(echo "" | dmenu -p "Enter password")
# [ -z "$pass" ] && notify-send "🔑 Password not enterd" && exit 1
# nmcli device wifi connect $bssid password $pass
# notify-send "📶 New WiFi Connected"
bssid=$(nmcli device wifi list | sed -n '1!P' | cut -b 9- | wofi --dmenu --style ${dir}/${theme}.css -p " " --lines 10 | awk '{print $1}')
[ -z "$bssid" ] && exit 1
pass=$(echo "" | wofi --dmenu --style ${dir}/${theme}.css -p " Enter password" --password)
[ -z "$pass" ] && notify-send "🔑 Password not entered" && exit 1
if nmcli device wifi connect "$bssid" password "$pass"; then
notify-send "📶 New WiFi Connected" "Successfully connected to network."
else
notify-send -u critical "⚠️ WiFi Error" "Failed to connect to network."
fi