add launch menu style

This commit is contained in:
Leonardo Eugênio 2022-08-01 20:59:20 -03:00
parent 517794af03
commit 4a053155d7

View file

@ -27,6 +27,7 @@ let
dark = { dark = {
background = "~/.local/share/backgrounds/assembly_dark.png"; background = "~/.local/share/backgrounds/assembly_dark.png";
opacity = "98"; opacity = "98";
opacityHex = "ee";
color = { color = {
type = "dark"; type = "dark";
bg = "#202020"; bg = "#202020";
@ -57,7 +58,8 @@ let
nerdfonts_fira_hack = nerdfonts_fira_hack =
(pkgs.nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; }); (pkgs.nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; });
accent = accents.red; accent = accents.red;
color = themes.dark.color; theme = themes.dark;
color = theme.color;
pulse_sink = pkgs.writeShellScriptBin "pulse_sink" '' pulse_sink = pkgs.writeShellScriptBin "pulse_sink" ''
#!/bin/sh #!/bin/sh
output=$(printf "HDMI\nHeadphones" | bemenu -b) output=$(printf "HDMI\nHeadphones" | bemenu -b)
@ -72,6 +74,87 @@ let
esac esac
${pkgs.pamixer}/bin/pamixer --set-volume "$vol" ${pkgs.pamixer}/bin/pamixer --set-volume "$vol"
''; '';
bmenu = pkgs.writeScriptBin "bmenu" ''
#!${pkgs.fish}/bin/fish
# wrapper around bemenu
# bmenu * - use as dmenu, -p for custom prompt (man bemenu)
# bmenu run - select from .desktop files and run it
# bmenu start - internal option
set swaymsg ${pkgs.sway}/bin/swaymsg
set swaymsg ${pkgs.sway}/bin/swaymsg
if test "$argv[1]" = "run"
test -n "$argv[2]" && set t "$argv[2]" || set t "terminal"
test -n "$i3SOCK" && set wrapper 'i3-msg exec --'
test -n "$SWAYSOCK" && set wrapper 'swaymsg exec --'
exec ${pkgs.j4-dmenu-desktop}/bin/j4-dmenu-desktop \
--dmenu="bmenu start -p Iniciar:" \
--term "$t" \
--wrapper="$wrapper" \
--no-generic
end
if test -n "$SWAYSOCK"
swaymsg -t get_tree |
${pkgs.jq}/bin/jq -je '..|select(.focused? and .fullscreen_mode? == 1)|""' &&
${pkgs.sway}/bin/swaymsg -q fullscreen off &&
set fullscreen
${pkgs.sway}/bin/swaymsg -t get_outputs |
${pkgs.jq}/bin/jq -r 'map(.focused)|reverse|index(true)' |
read focused_output
test -n "$focused_output"
and set focused_output "-m $focused_output"
end
function clean_exit
set -q fullscreen
and swaymsg -q fullscreen on &
end
trap clean_exit EXIT
# t title
# f filter
# n normal
# h highlighted
# s selected
# sc scrollbar
set fn "${font.mono} ${font.size.small}"
set tb "${ color.bg }${theme.opacityHex}"
set tf "${ accent.color }"
set fb "${ color.bg }${theme.opacityHex}"
set ff "${ color.txt }"
set nb "${ color.bg }${theme.opacityHex}"
set nf "${ color.txt }"
set hb "${ accent.color }"
set hf "${ accent.fg }"
${pkgs.dhist}/bin/dhist wrap -- ${pkgs.bemenu}/bin/bemenu \
$focused_output\
--ignorecase\
--bottom\
--no-overlap\
--list 20\
--prefix '>'\
--fn "$fn"\
--tb "$tb" --tf "$tf" \
--fb "$fb" --ff "$ff" \
--nb "$nb" --nf "$nf" \
--hb "$hb" --hf "$hf" \
$argv
# vim: ft=fish
'';
in { in {
# Home Manager needs a bit of information about you and the # Home Manager needs a bit of information about you and the
# paths it should manage. # paths it should manage.
@ -101,6 +184,7 @@ in {
xfce.thunar xfce.thunar
pass pass
dhist dhist
bmenu
# media # media
yt-dlp yt-dlp
ffmpeg ffmpeg
@ -455,7 +539,7 @@ in {
keybindings = let keybindings = let
mod = "Mod4"; mod = "Mod4";
floating.modifier = "Mod4"; floating.modifier = "Mod4";
menu = "bemenu-run --bottom"; menu = "bmenu run";
terminal = "alacritty"; terminal = "alacritty";
workspace_binds = { workspace_binds = {
"${mod}+1" = "workspace number 1"; "${mod}+1" = "workspace number 1";