Added niri and waybar

This commit is contained in:
2025-10-25 01:14:23 +03:00
parent 9c8b87bcc6
commit 1cc41d3fff
14 changed files with 966 additions and 5 deletions

View File

@ -0,0 +1,59 @@
{
"layer": "top",
"position": "bottom",
"height": 16,
"modules-left": ["niri/workspaces", "niri/window"],
"modules-center": ["custom/media"],
"modules-right": ["tray", "niri/language", "network", "custom/tscale", "pulseaudio", "clock", "custom/quit"],
"clock": {
"format": "{:%H:%M}",
"format-alt": "{:%a %b %d}",
"tooltip": false
},
"tray": {
"spacing": 10
},
"network": {
"format": "{ifname}",
"format-wifi": " {essid}",
"format-ethernet": " {ipaddr}",
"format-disconnected": "",
"tooltip-format-wifi": "{signalStrength}%",
"max-length": 20
},
"custom/media": {
"format": "{}",
"interval": 1,
"exec": "$HOME/.config/waybar/get_media.sh",
"max-length": 60,
"on-click": "playerctl play-pause"
},
"custom/tscale": {
"interval": 5,
"exec": "~/.config/waybar/tscale",
"return-type": "json",
"on-click": "~/.dotfiles/bin/fuzzel-tscale"
},
"custom/keyboard": {
"format": " {}",
"interval": 1,
"exec": "$HOME/.config/waybar/get_kbdlayout.sh"
},
"niri/language": {
"format": "{short}"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"default": ["", ""]
},
"scroll-step": 1,
"on-click": "pavucontrol"
},
"custom/quit": {
"format": "",
"on-click": "~/.dotfiles/bin/fuzzel-powermenu"
}
}

View File

@ -0,0 +1,2 @@
language=$(swaymsg -r -t get_inputs | awk '/1:1:AT_Translated_Set_2_keyboard/;/xkb_active_layout_name/' | grep -A1 '\b1:1:AT_Translated_Set_2_keyboard\b' | grep "xkb_active_layout_name" | awk -F '"' '{print $4}')
echo $language

View File

@ -0,0 +1,15 @@
media=$(playerctl metadata -f "({{playerName}}) {{artist}} - {{title}}" 2>/dev/null)
player_status=$(playerctl status)
if [[ $player_status = "Playing" ]]
then
song_status=''
elif [[ $player_status = "Paused" ]]
then
song_status=''
else
song_status=''
fi
[ -z "$media" ] && echo -e "$song_status"
[ ! -z "$media" ] && echo -e "$song_status $media"

View File

@ -0,0 +1,15 @@
network=$(ip route get 1.1.1.1 | grep -Po '(?<=dev\s)\w+' | cut -f1 -d ' ')
interface_easyname=$(dmesg | grep $network | grep renamed | awk 'NF>1{print $NF}')
ping=$(ping -c 1 www.google.com | tail -1| awk '{print $4}' | cut -d '/' -f 2 | cut -d '.' -f 1)
if ! [ $network ]
then
network_active="⛔"
elif [[ $interface_easyname == *"wlan"* ]]
then
network_active=""
else
network_active=""
fi
echo "{\"text\": \""$network_active $interface_easyname \\n \($ping ms\)"\"}"

View File

@ -0,0 +1,2 @@
ping=$(ping -c 1 www.google.com | tail -1| awk '{print $4}' | cut -d '/' -f 2 | cut -d '.' -f 1)
echo "($ping ms)"

View File

@ -0,0 +1,147 @@
* {
font-size: 16px;
font-family: "Iosevka NF";
font-weight: 800;
min-height: 0;
}
@define-color fg_main rgb(255,255,255);
@define-color bg_block rgba(30, 30, 30, 1);
@define-color bg_wb rgba(15,15,15,0);
@define-color cl_border rgba(180,180,180,1);
window#waybar {
background: @bg_wb;
}
#battery {
margin: 3px 0px 3px 0px;
background: @bg_block;
padding: 5px;
color: @fg_main;
}
#custom-quit {
margin: 3px 3px 3px 0px;
padding: 5px 13px 5px 5px;
background: #800;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-right: 1px solid @cl_border;
color: #FFF;
}
#clock {
margin: 3px 0px 3px 3px;
padding: 5px;
color: #FFF;
background: @bg_block;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-left: 1px solid @cl_border;
color: @fg_main;
}
#custom-keyboard {
background: @bg_block;
color: @fg_main;
padding: 5px 5px 5px 7px;
margin: 3px 0px 3px 3px;
}
#language {
background: @bg_block;
color: @fg_main;
padding: 5px 5px 5px 7px;
margin: 3px 0px 3px 3px;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-left: 1px solid @cl_border;
}
#custom-tscale {
background: @bg_block;
color: @fg_main;
padding: 5px 5px 5px 7px;
margin: 3px 0px 3px 0px;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
}
#custom-tscale.online {
color: #c5c8ff;
}
#custom-tscale.exit {
color: #c5ffc6;
}
#workspaces {
background: @bg_block;
color: @fg_main;
margin: 3px 0px 3px 3px;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-left: 1px solid @cl_border;
}
#workspaces button {
margin: 0em 0em;
padding: 0em 0.3em;
border-radius: 0px;
}
#workspaces button.active {
background: #555555;
}
#window {
background: @bg_block;
color: @fg_main;
margin: 3px 3px 3px 0px;
padding: 5px 7px 5px 7px;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-right: 1px solid @cl_border;
}
window#waybar.empty #window {
background-color: transparent;
padding: 0px;
margin: 3px 0px;
}
#tray {
margin: 3px 3px 3px 3px;
padding: 5px 7px 5px 7px;
background-color: @bg_block;
border: 1px solid @cl_border;
}
#custom-media {
margin: 3px;
padding: 5px 7px 5px 7px;
background: @bg_block;
color: @fg_main;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-left: 1px solid @cl_border;
border-right: 1px solid @cl_border;
}
#pulseaudio {
margin: 3px 3px 3px 0px;
padding: 5px 7px 5px 5px;
background: @bg_block;
color: @fg_main;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-right: 1px solid @cl_border;
}
#network {
background: @bg_block;
color: @fg_main;
margin: 3px 0px 3px 0px;
border-top: 1px solid @cl_border;
border-bottom: 1px solid @cl_border;
border-left: 0px solid rgba(0,0,0,0);
padding: 5px;
}

32
waybar/.config/waybar/tscale Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
case $BLOCK_BUTTON in
1) ~/.dotfiles/bin/rofi-tscale ;;
esac
TEXT=''
CLASS="default"
exitnode=$(tailscale status --json | jq .ExitNodeStatus)
enstatus=""
tsip=$(ip a show tailscale0 | rg "inet (\d+\.\d+\.\d+\.\d+)" -or '$1')
[ "$exitnode" = "null" ] && {
[ -z "$tsip" ] && {
TEXT="$TEXT offline"
CLASS="offline"
color='#707070'
} || {
TEXT="$TEXT $tsip"
CLASS="online"
COLOR='#8080ff'
}
} || {
enstatus=$(echo $exitnode | jq .TailscaleIPs.[0] | sed 's/"//g' | cut -d'/' -f1)
TEXT="$TEXT exit: $enstatus"
CLASS="exit"
COLOR='#80ff80'
}
cat << EOL
{"text":"$TEXT","class":"$CLASS"}
EOL