Improve waybar and custom scripts

This commit is contained in:
2025-10-13 20:23:43 +02:00
parent e1d128f28a
commit 18cc8751c9
14 changed files with 183 additions and 104 deletions

View File

@@ -17,6 +17,7 @@
df = "df -h"; df = "df -h";
du = "du -h"; du = "du -h";
}; };
# Defined in /etc/set-environnement. Require session restart
variables = { variables = {
XDG_CONFIG_HOME = "$HOME/.config"; XDG_CONFIG_HOME = "$HOME/.config";
XDG_CACHE_HOME = "$HOME/.cache"; XDG_CACHE_HOME = "$HOME/.cache";
@@ -39,16 +40,6 @@
setOptions = [ setOptions = [
"SHARE_HISTORY" "SHARE_HISTORY"
]; ];
# shellInit = ''
# export XDG_CONFIG_HOME=$HOME/.config
# export XDG_CACHE_HOME=$HOME/.cache
# export XDG_DATA_HOME=$HOME/.local/share
# export ZDOTDIR=$HOME/.config/zsh
# export TERMINAL=kitty
# export EDITOR=nvim
# export BROWSER=firefox
# export SAVEHIST=200000
# '';
promptInit = '' promptInit = ''
stty stop undef # Disable ctrl+s to freeze terminal stty stop undef # Disable ctrl+s to freeze terminal

View File

@@ -14,7 +14,6 @@ ecosystem {
################### ###################
$terminal = kitty $terminal = kitty
source = /etc/xdg/hypr/rofi.conf
################# #################
### AUTOSTART ### ### AUTOSTART ###
@@ -211,9 +210,10 @@ device {
$mainMod = SUPER # Sets "Windows" key as main modifier $mainMod = SUPER # Sets "Windows" key as main modifier
# Apps shortcut # Apps shortcut
bind = $mainMod, D, exec, $rofi bind = $mainMod, D, exec, rofi -show drun -show-icons -config /etc/xdg/rofi/config.rasi
bind = $mainMod, L, exec, /etc/xdg/scripts/wayland-disconnect.sh bind = $mainMod, L, exec, /etc/xdg/scripts/wayland-disconnect.sh
bind = $mainMod, M, exec, /etc/xdg/scripts/wayland-mpv.sh bind = $mainMod, M, exec, /etc/xdg/scripts/wayland-mpv.sh
bind = $mainMod, K, exec, /etc/xdg/scripts/rofi-ssh.sh
bind = $mainMod SHIFT, P, exec, pavucontrol bind = $mainMod SHIFT, P, exec, pavucontrol
bind = $mainMod SHIFT, T, exec, teams-for-linux bind = $mainMod SHIFT, T, exec, teams-for-linux
bind = $mainMod SHIFT, D, exec, discord bind = $mainMod SHIFT, D, exec, discord

View File

@@ -0,0 +1,16 @@
@import "launcher.rasi"
window {
width: 50%;
height: 50%;
margin: 0px;
location: center;
anchor: center;
}
mainbox {
children: [inputbar,listview];
}
listview {
columns: 1;
}

View File

@@ -0,0 +1,12 @@
@import "launcher.rasi"
window {
width: 50%;
height: 50%;
margin: 0px;
location: center;
anchor: center;
}
mainbox {
children: [inputbar,listview];
}

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
selected=$(cat ~/.config/zsh/.zsh_history | sed 's/^[ ]*[0-9]*[ ]*//' | grep '^ssh ' | rofi -dmenu -i -theme /etc/xdg/rofi/ssh.rasi -p SSH)
if [[ -n "$selected" ]]; then
kitty -e $selected
fi

View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
_USER=beastie
_PASSWD='}q6658JD~{}{oiRWsb~Q{P@SV=Qsy,ae'
_SERVER=unixyourbrain.org
_FOLDER=Admin
set -e
cd -- "$(dirname -- "$0")"
_DIRNAME="$(pwd)"
### Sourcer à partir des secrets
#source ~/.config/polybar/imap_creds
_COUNT=$(curl -u "$_USER:$_PASSWD" "imaps://$_SERVER" -X "STATUS $_FOLDER (UNSEEN)" 2>/dev/null | \
sed -e 's/)\r//' -e 's/.*UNSEEN //')
_UNSEEN=$(curl -u "$_USER:$_PASSWD" "imaps://$_SERVER/$_FOLDER" -X "SEARCH UNSEEN" 2>/dev/null | \
sed -e "s|\\r||" -e "s|* SEARCH ||" -e "s| |,|g")
_MAILS=$(curl -v -u "$_USER:$_PASSWD" "imaps://$_SERVER/$_FOLDER" -X "FETCH $_UNSEEN BODY.PEEK[HEADER.FIELDS (From Subject)]" 2>&1 | \
sed -e "s|\\r||" | awk '/< Subject|< From/ {sub(/^< /, ""); printf "%s\\n", $0}')
printf '{"text": "%s ", "tooltip": "%s"}' "$_COUNT" "$_MAILS"

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env bash
selected=$(printf "Lock\0icon\x1fsystem-lock-screen
Update\0icon\x1fsystem-software-update
Shutdown\0icon\x1fsystem-shutdown
Reboot\0icon\x1fsystem-reboot
Exit hyprland\0icon\x1fsystem-log-out
Reload hyprland\0icon\x1fsystem-log-out" | rofi -dmenu -show-icons -i -theme /etc/xdg/rofi/disconnect.rasi -p System)
echo "$selected"
case $selected in
"Lock")
/nix/store/4pwvyyjrc7frwkycbszakd7z6nf44qgv-hyprlock-0.9.2/bin/hyprlock
;;
"Update")
kitty /usr/local/share/dotfiles/scripts/update.sh
;;
"Shutdown")
systemctl poweroff
;;
"Reboot")
reboot
;;
"Exit hyprland")
hyprctl dispatch exit
;;
"Reload hyprland")
hyprctl reload
;;
esac

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env bash
cd -- "$(dirname -- "$0")" || exit
## if not $1
if [[ -z $1 ]]
then
_LINES=$(curl "http://10.0.0.1:2013" 2>/dev/null | sed -e "s|.*<a href=\"\([^\"]*\).*|$1\1|" -e "s/.*<.*\|.*C=D.*\|.*\/\/$\|.*.nfo//" -e "/^$/d")
else
_LINES="$(curl "http://10.0.0.1:2013/$1" 2>/dev/null | sed -e "s|.*<a href=\"\([^\"]*\).*|$1\1|" -e "s/.*<.*\|.*C=D.*\|.*\/\/$\|.*.nfo//" -e "/^$/d")"
fi
_RESULT=$(rofi -dmenu -i -theme /etc/xdg/rofi/mpv.rasi -p Mpv <<< "$_LINES")
# If no output
echo "$_RESULT"
if [[ -z $_RESULT ]]
then
echo "no output, exiting"
exit 0
fi
#if line end vith /
if [[ "$_RESULT" =~ .*/$ ]]
then
echo "output is a directory"
./wayland-mpv.sh "$_RESULT"
exit 0
fi
mpv "http://10.0.0.1:2013/$_RESULT"

View File

@@ -7,12 +7,13 @@
"memory", "memory",
"disk", "disk",
"network", "network",
"pulseaudio", "pulseaudio"
], ],
"modules-center": [ "modules-center": [
"hyprland/workspaces" "hyprland/workspaces"
], ],
"modules-right": [ "modules-right": [
"custom/alert",
"custom/maj", "custom/maj",
"clock", "clock",
"tray" "tray"
@@ -78,11 +79,20 @@
}, },
"format": "{name}", "format": "{name}",
"format-icons": { "format-icons": {
"default": "", "default": ""
}
}, },
"custom/alert": {
"exec": "/etc/xdg/scripts/waybar-mailbox.sh",
"interval": 300,
"return-type": "json",
"format": "{icon}{text}",
"format-icons": {
"default": "  "
}
}, },
"custom/maj": { "custom/maj": {
"exec": "/etc/xdg/scripts/update.sh", "exec": "/etc/xdg/scripts/waybar-update.sh",
"interval": 300, "interval": 300,
"return-type": "json", "return-type": "json",
"format": "{icon}{text}", "format": "{icon}{text}",

View File

@@ -7,12 +7,13 @@
"memory", "memory",
"disk", "disk",
"network", "network",
"pulseaudio", "pulseaudio"
], ],
"modules-center": [ "modules-center": [
"hyprland/workspaces" "hyprland/workspaces"
], ],
"modules-right": [ "modules-right": [
"custom/alert",
"custom/maj", "custom/maj",
"clock", "clock",
"tray" "tray"
@@ -79,11 +80,20 @@
}, },
"format": "{name}", "format": "{name}",
"format-icons": { "format-icons": {
"default": "", "default": ""
}
}, },
"custom/alert": {
"exec": "/etc/xdg/scripts/waybar-mailbox.sh",
"interval": 300,
"return-type": "json",
"format": "{icon}{text}",
"format-icons": {
"default": "  "
}
}, },
"custom/maj": { "custom/maj": {
"exec": "/etc/xdg/scripts/update.sh", "exec": "/etc/xdg/scripts/waybar-update.sh",
"interval": 300, "interval": 300,
"return-type": "json", "return-type": "json",
"format": "{icon}{text}", "format": "{icon}{text}",

View File

@@ -24,6 +24,7 @@
#disk, #disk,
#network, #network,
#workspaces, #workspaces,
#custom-alert,
#custom-maj, #custom-maj,
#pulseaudio, #pulseaudio,
#memory, #memory,
@@ -87,24 +88,40 @@
background: @red; background: @red;
} }
#network { #custom-logo {
color: @rosewater;
}
#cpu {
color: @flamingo;
}
#memory {
color: @pink; color: @pink;
} }
#disk {
color: @maroon;
}
#network {
color: @peach;
}
#pulseaudio { #pulseaudio {
color: @yellow; color: @yellow;
} }
#cpu { #custom-alert {
color: @blue; color: @sky;
} }
#memory { #custom-maj {
color: @green; color: @sapphire;
} }
#clock { #clock {
color: @red; color: @blue;
} }
#tray { #tray {

View File

@@ -6,78 +6,6 @@
environment = { environment = {
etc = { etc = {
"xdg/rofi".source = ./config/etc/xdg/rofi; "xdg/rofi".source = ./config/etc/xdg/rofi;
"xdg/scripts/wayland-disconnect.sh" = {
text = ''
#!/usr/bin/env bash
selected=$(printf "Lock\0icon\x1fsystem-lock-screen
Update\0icon\x1fsystem-software-update
Shutdown\0icon\x1fsystem-shutdown
Reboot\0icon\x1fsystem-reboot
Exit hyprland\0icon\x1fsystem-log-out
Reload hyprland\0icon\x1fsystem-log-out" | ${pkgs.rofi}/bin/rofi -dmenu -show-icons -i -theme /etc/xdg/rofi/disconnect.rasi -p System)
echo "$selected"
case $selected in
"Lock")
${pkgs.hyprlock}/bin/hyprlock
;;
"Update")
kitty /usr/local/share/dotfiles/scripts/update.sh
;;
"Shutdown")
systemctl poweroff
;;
"Reboot")
reboot
;;
"Exit hyprland")
hyprctl dispatch exit
;;
"Reload hyprland")
hyprctl reload
;;
esac
'';
mode = "0755";
};
"xdg/scripts/wayland-mpv.sh" = {
text = ''
#!/usr/bin/env bash
cd -- "$(dirname -- "$0")" || exit
## if not $1
if [[ -z $1 ]]
then
_LINES=$(curl "http://10.0.0.1:2013" 2>/dev/null | sed -e "s|.*<a href=\"\([^\"]*\).*|$1\1|" -e "s/.*<.*\|.*C=D.*\|.*\/\/$\|.*.nfo//" -e "/^$/d")
else
_LINES="$(curl "http://10.0.0.1:2013/$1" 2>/dev/null | sed -e "s|.*<a href=\"\([^\"]*\).*|$1\1|" -e "s/.*<.*\|.*C=D.*\|.*\/\/$\|.*.nfo//" -e "/^$/d")"
fi
_RESULT=$(${pkgs.rofi}/bin/rofi -dmenu -config /etc/xdg/rofi/config.rasi -i <<< "$_LINES")
# If no output
echo "$_RESULT"
if [[ -z $_RESULT ]]
then
echo "no output, exiting"
exit 0
fi
#if line end vith /
if [[ "$_RESULT" =~ .*/$ ]]
then
echo "output is a directory"
./wayland-mpv.sh "$_RESULT"
exit 0
fi
mpv "http://10.0.0.1:2013/$_RESULT"
'';
mode = "0755";
};
}; };
}; };
} }

View File

@@ -28,16 +28,16 @@
"xdg/hypr/hyprland-host.conf".source = ./config/etc/xdg/hypr/hyprland-${hostname}.conf; "xdg/hypr/hyprland-host.conf".source = ./config/etc/xdg/hypr/hyprland-${hostname}.conf;
"xdg/hypr/hyprlock.conf".source = ./config/etc/xdg/hypr/hyprlock.conf; "xdg/hypr/hyprlock.conf".source = ./config/etc/xdg/hypr/hyprlock.conf;
"xdg/hypr/hyprpaper.conf".source = ./config/etc/xdg/hypr/hyprpaper.conf; "xdg/hypr/hyprpaper.conf".source = ./config/etc/xdg/hypr/hyprpaper.conf;
"xdg/hypr/rofi.conf" = {
text = ''
$rofi = ${pkgs.rofi}/bin/rofi -show drun -show-icons -config /etc/xdg/rofi/config.rasi
'';
};
"xdg/waybar/colors.css".source = ./config/etc/xdg/waybar/colors.css; "xdg/waybar/colors.css".source = ./config/etc/xdg/waybar/colors.css;
"xdg/waybar/config.jsonc".source = ./config/etc/xdg/waybar/config-${hostname}.jsonc; "xdg/waybar/config.jsonc".source = ./config/etc/xdg/waybar/config-${hostname}.jsonc;
"xdg/waybar/style.css".source = ./config/etc/xdg/waybar/style.css; "xdg/waybar/style.css".source = ./config/etc/xdg/waybar/style.css;
"xdg/waybar/custom.css".source = ./config/etc/xdg/waybar/custom-${hostname}.css; "xdg/waybar/custom.css".source = ./config/etc/xdg/waybar/custom-${hostname}.css;
"xdg/scripts/update.sh".source = ./config/etc/xdg/scripts/update.sh;
"xdg/scripts/rofi-ssh.sh".source = ./config/etc/xdg/scripts/rofi-ssh.sh;
"xdg/scripts/waybar-mailbox.sh".source = ./config/etc/xdg/scripts/waybar-mailbox.sh;
"xdg/scripts/waybar-update.sh".source = ./config/etc/xdg/scripts/waybar-update.sh;
"xdg/scripts/wayland-disconnect.sh".source = ./config/etc/xdg/scripts/wayland-disconnect.sh;
"xdg/scripts/wayland-mpv.sh".source = ./config/etc/xdg/scripts/wayland-mpv.sh;
}; };
}; };
sops = { sops = {