Added niri and waybar
This commit is contained in:
59
waybar/.config/waybar/config
Normal file
59
waybar/.config/waybar/config
Normal 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"
|
||||
}
|
||||
}
|
||||
2
waybar/.config/waybar/get_kbdlayout.sh
Executable file
2
waybar/.config/waybar/get_kbdlayout.sh
Executable 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
|
||||
15
waybar/.config/waybar/get_media.sh
Executable file
15
waybar/.config/waybar/get_media.sh
Executable 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"
|
||||
15
waybar/.config/waybar/get_network.sh
Executable file
15
waybar/.config/waybar/get_network.sh
Executable 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\)"\"}"
|
||||
2
waybar/.config/waybar/get_ping.sh
Executable file
2
waybar/.config/waybar/get_ping.sh
Executable 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)"
|
||||
147
waybar/.config/waybar/style.css
Normal file
147
waybar/.config/waybar/style.css
Normal 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
32
waybar/.config/waybar/tscale
Executable 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
|
||||
Reference in New Issue
Block a user