mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-04-02 11:12:09 +02:00
get back wofi for now
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
@@ -5,6 +5,47 @@
|
||||
#- - `lock` - Lock the screen. (hyprlock)
|
||||
#- - `powermode-toggle` - Toggle between performance and balanced power mode. (powerprofilesctl)
|
||||
{pkgs, ...}: let
|
||||
menu =
|
||||
pkgs.writeShellScriptBin "menu"
|
||||
# bash
|
||||
''
|
||||
if pgrep wofi; then
|
||||
pkill wofi
|
||||
else
|
||||
wofi -p "Apps" --show drun
|
||||
fi
|
||||
'';
|
||||
powermenu =
|
||||
pkgs.writeShellScriptBin "powermenu"
|
||||
# bash
|
||||
''
|
||||
if pgrep wofi >/dev/null; then
|
||||
pkill wofi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
declare -A actions=(
|
||||
[" Lock"]="hyprlock"
|
||||
[" Logout"]="hyprctl dispatch exit"
|
||||
[" Suspend"]="systemctl suspend"
|
||||
[" Reboot"]="systemctl reboot"
|
||||
[" Shutdown"]="systemctl poweroff"
|
||||
)
|
||||
|
||||
selected_option=$(
|
||||
printf '%s\n' "''${!actions[@]}" | wofi -p "Powermenu" --dmenu
|
||||
)
|
||||
|
||||
if [[ -n "$selected_option" ]]; then
|
||||
|
||||
action_command=''${actions["''$selected_option"]}
|
||||
|
||||
if [[ -n "$action_command" ]]; then
|
||||
eval "$action_command"
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
|
||||
lock =
|
||||
pkgs.writeShellScriptBin "lock"
|
||||
# bash
|
||||
@@ -25,4 +66,4 @@
|
||||
${pkgs.swayosd}/bin/swayosd-client --custom-message="Powermode set to performance" --custom-icon="emblem-default"
|
||||
fi
|
||||
'';
|
||||
in {home.packages = [lock powermode-toggle];}
|
||||
in {home.packages = [lock powermode-toggle menu powermenu];}
|
||||
|
||||
@@ -10,8 +10,10 @@
|
||||
"$mod,V, exec, uwsm app -- ${pkgs.protonvpn-gui}/bin/protonvpn-app" # Proton VPN
|
||||
"$mod,A, exec, uwsm app -- ${pkgs.proton-authenticator}/bin/proton-authenticator" # Proton Authenticator
|
||||
"$mod,L, exec, uwsm app -- ${pkgs.hyprlock}/bin/hyprlock" # Lock
|
||||
# "$mod,SPACE, exec, vicinae" # Launcher FIXME: broken
|
||||
"$mod,X, exec, powermenu" # Powermenu
|
||||
"$mod,SPACE, exec, vicinae" # Launcher
|
||||
"$mod,SPACE, exec, menu" # Launcher
|
||||
|
||||
"$shiftMod,SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus
|
||||
|
||||
"$mod,Q, killactive," # Close window
|
||||
|
||||
100
home/system/wofi/default.nix
Normal file
100
home/system/wofi/default.nix
Normal file
@@ -0,0 +1,100 @@
|
||||
# Wofi is a launcher for Wayland, inspired by rofi.
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#${config.lib.stylix.colors.base0D}";
|
||||
background = "#${config.lib.stylix.colors.base00}";
|
||||
background-alt = "#${config.lib.stylix.colors.base01}";
|
||||
foreground = "#${config.lib.stylix.colors.base05}";
|
||||
font = config.stylix.fonts.serif.name;
|
||||
rounding = config.theme.rounding;
|
||||
font-size = config.stylix.fonts.sizes.popups;
|
||||
in {
|
||||
home.packages = with pkgs; [wofi-emoji];
|
||||
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
allow_markup = true;
|
||||
width = 450;
|
||||
show = "drun";
|
||||
prompt = "Apps";
|
||||
normal_window = true;
|
||||
height = 305;
|
||||
allow_images = true;
|
||||
image_size = 24;
|
||||
insensitive = true;
|
||||
hide_scroll = true;
|
||||
no_actions = true;
|
||||
gtk_dark = true;
|
||||
};
|
||||
|
||||
style =
|
||||
lib.mkForce
|
||||
# css
|
||||
''
|
||||
* {
|
||||
font-family: "${font}";
|
||||
font-weight: 500;
|
||||
font-size: ${toString font-size}px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: ${background};
|
||||
color: ${foreground};
|
||||
border-radius: ${toString rounding}px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#input {
|
||||
background-color: ${background-alt};
|
||||
border: 0px solid ${accent};
|
||||
color: ${foreground};
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#inner-box {}
|
||||
|
||||
#img {
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
#text {
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#text:selected {
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: ${accent};
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#unselected {}
|
||||
|
||||
#selected {}
|
||||
|
||||
#input,
|
||||
#entry:selected {
|
||||
border-radius: ${toString rounding}px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user