38 lines
1.1 KiB
Plaintext
38 lines
1.1 KiB
Plaintext
const base_directory = "~/.config/nushell/modules/nurofi";
|
|
|
|
def is-installed [ app: string ] {
|
|
((which $app | length) > 0)
|
|
}
|
|
|
|
export def healthcheck []: nothing -> nothing {
|
|
let rofi_installed = is-installed "rofi";
|
|
let rofi_wayland = if $rofi_installed {
|
|
"wayland" in (rofi -version);
|
|
} else {
|
|
false;
|
|
}
|
|
|
|
print $"* rofi: installed - ($rofi_installed), wayland support - ($rofi_wayland)";
|
|
}
|
|
|
|
export def powermenu []: nothing -> nothing {
|
|
let uptime = (sys host).uptime;
|
|
let action = [lock suspend logout reboot shutdown];
|
|
mut selected = null;
|
|
|
|
$selected = $action | to text | rofi -dmenu -p (date now | format date "%Y-%m-%d %H:%M:%S") -mesg $"Uptime: ($uptime)" -theme ($base_directory | path join powermenu.rasi);
|
|
|
|
match $selected {
|
|
"lock" => { hyprlock --immediate; }
|
|
"suspend" => { systemctl suspend; }
|
|
"logout" => { hyprctl dispatch exit; }
|
|
"reboot" => { systemctl reboot; }
|
|
"shutdown" => { systemctl poweroff; }
|
|
_ => break
|
|
}
|
|
}
|
|
|
|
export def apps []: nothing -> nothing {
|
|
rofi -show drun window -theme ($base_directory | path join apps.rasi);
|
|
}
|