many improvements
This commit is contained in:
@@ -1,95 +1,139 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.nix-config.style;
|
||||
|
||||
wofiPowerMenu = pkgs.writeShellScriptBin "wofi-power-menu" ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
options=" Power Off\n Reboot\n Lock\n Suspend"
|
||||
selected=$(echo -e "$options" | wofi --dmenu --prompt "Power Menu")
|
||||
# --width 300 --height 250
|
||||
|
||||
case "$selected" in
|
||||
" Power Off") systemctl poweroff ;;
|
||||
" Reboot") systemctl reboot ;;
|
||||
" Lock") hyprlock ;;
|
||||
" Suspend") systemctl suspend ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
'';
|
||||
|
||||
wofiFilePicker = pkgs.writeShellScriptBin "wofi-file-picker" ''
|
||||
#!/usr/bin/env bash
|
||||
initial=$(find $HOME -maxdepth 2 -type f)
|
||||
selected=$(printf "%s\n" $initial | wofi --dmenu --prompt "Select a file")
|
||||
|
||||
if [ -n "$selected" ]; then
|
||||
xdg-open "$selected"
|
||||
else
|
||||
echo "No file selected"
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
in
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [ wofi-emoji ];
|
||||
options.nix-config = {
|
||||
powerMenu = lib.mkOption {
|
||||
description = "Package to use as a power menu";
|
||||
type = lib.types.package;
|
||||
default = wofiPowerMenu;
|
||||
};
|
||||
};
|
||||
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
config = {
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
# global layout
|
||||
width = "50%";
|
||||
height = "50%";
|
||||
orientation = "vertical";
|
||||
hide_scroll = true;
|
||||
line_wrap = "off";
|
||||
dynamic_lines = true;
|
||||
settings = {
|
||||
# global layout
|
||||
width = "50%";
|
||||
height = "50%";
|
||||
orientation = "vertical";
|
||||
hide_scroll = true;
|
||||
line_wrap = "off";
|
||||
dynamic_lines = true;
|
||||
|
||||
# search behaviour
|
||||
matching = "fuzzy";
|
||||
single_click = true;
|
||||
# search behaviour
|
||||
matching = "fuzzy";
|
||||
single_click = true;
|
||||
|
||||
|
||||
show = "drun";
|
||||
prompt = "Launch...";
|
||||
# normal_window = true;
|
||||
layer = "top";
|
||||
term = "foot";
|
||||
halign = "fill";
|
||||
show = "drun";
|
||||
prompt = "Launch...";
|
||||
# normal_window = true;
|
||||
layer = "top";
|
||||
term = "foot";
|
||||
halign = "fill";
|
||||
|
||||
# Rich rendering
|
||||
allow_markup = true;
|
||||
allow_images = true;
|
||||
image_size = 24;
|
||||
# Rich rendering
|
||||
allow_markup = true;
|
||||
allow_images = true;
|
||||
image_size = 24;
|
||||
|
||||
|
||||
exec_search = false;
|
||||
hide_search = false;
|
||||
parse_search = false;
|
||||
insensitive = true;
|
||||
no_actions = true;
|
||||
exec_search = false;
|
||||
hide_search = false;
|
||||
parse_search = false;
|
||||
insensitive = true;
|
||||
no_actions = true;
|
||||
|
||||
|
||||
filter_rate = 100;
|
||||
key_expand = "Tab";
|
||||
key_exit = "Escape";
|
||||
filter_rate = 100;
|
||||
key_expand = "Tab";
|
||||
key_exit = "Escape";
|
||||
|
||||
};
|
||||
|
||||
|
||||
style = ''
|
||||
* {
|
||||
font-family: ${cfg.monospaceFont};
|
||||
font-size: ${builtins.toString (cfg.fontSizes.desktop + 8)}px;
|
||||
color: white;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#window {
|
||||
background: rgba(1, 1, 1, 0.5);
|
||||
margin: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#input {
|
||||
padding: 10px;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#img {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 10px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: #2e3440;
|
||||
outline: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 2px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
style = ''
|
||||
* {
|
||||
font-family: ${cfg.monospaceFont};
|
||||
font-size: ${builtins.toString (cfg.fontSizes.desktop + 8)}px;
|
||||
color: white;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#window {
|
||||
background: rgba(1, 1, 1, 0.5);
|
||||
margin: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#input {
|
||||
padding: 10px;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#img {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 10px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: #2e3440;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 2px;
|
||||
}
|
||||
'';
|
||||
home.packages = with pkgs; [
|
||||
wofiPowerMenu
|
||||
wofi-emoji
|
||||
];
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user