{ config, pkgs, ... }: # usage: bemenu [options] # Options # -h, --help display this help and exit. # -v, --version display version. # -i, --ignorecase match items case insensitively. # -F, --filter filter entries for a given string. # -w, --wrap wraps cursor selection. # -l, --list list items vertically with the given number of lines. # -p, --prompt defines the prompt text to be displayed. # -P, --prefix text to show before highlighted item. # -I, --index select item at index automatically. # -x, --password hide input. # -s, --no-spacing disable the title spacing on entries. # --scrollbar display scrollbar. (none (default), always, autohide) # --ifne only display menu if there are items. # --fork always fork. (bemenu-run) # --no-exec do not execute command. (bemenu-run) # # Use BEMENU_BACKEND env variable to force backend: # curses ncurses based terminal backend # wayland wayland backend # x11 x11 backend # # If BEMENU_BACKEND is empty, one of the GUI backends is selected automatically. # # Backend specific options # c = ncurses, w == wayland, x == x11 # (...) At end of help indicates the backend support for option. # # -b, --bottom appears at the bottom of the screen. (wx) # -c, --center appears at the center of the screen. (wx) # -f, --grab show the menu before reading stdin. (wx) # -n, --no-overlap adjust geometry to not overlap with panels. (w) # -m, --monitor index of monitor where menu will appear. (wx) # -H, --line-height defines the height to make each menu line (0 = default height). (wx) # -M, --margin defines the empty space on either side of the menu. (wx) # -W, --width-factor defines the relative width factor of the menu (from 0 to 1). (wx) # -B, --border defines the width of the border in pixels around the menu. (wx) # --ch defines the height of the cursor (0 = scales with line height). (wx) # --cw defines the width of the cursor. (wx) # --hp defines the horizontal padding for the entries in single line mode. (wx) # --fn defines the font to be used ('name [size]'). (wx) # --tb defines the title background color. (wx) # --tf defines the title foreground color. (wx) # --fb defines the filter background color. (wx) # --ff defines the filter foreground color. (wx) # --nb defines the normal background color. (wx) # --nf defines the normal foreground color. (wx) # --hb defines the highlighted background color. (wx) # --hf defines the highlighted foreground color. (wx) # --fbb defines the feedback background color. (wx) # --fbf defines the feedback foreground color. (wx) # --sb defines the selected background color. (wx) # --sf defines the selected foreground color. (wx) # --ab defines the alternating background color. (wx) # --af defines the alternating foreground color. (wx) # --scb defines the scrollbar background color. (wx) # --scf defines the scrollbar foreground color. (wx) # --bdr defines the border color. (wx) let bemenuColors = { titleBackground = "#282828E0"; titleForeground = "#fbf1c7"; filterBackground = "#282828E0"; filterForeground = "#ebdbb2"; normalBackground = "#282828E0"; normalForeground = "#ebdbb2"; highlightedBackground = "#458588E0"; highlightedForeground = "#fbf1c7"; scrollbarBackground = "#282828E0"; scrollbarForeground = "#458588E0"; }; in { home.packages = [ pkgs.bemenu ]; home.sessionVariables.BEMENU_OPTS = '' --ignorecase \ --list 20 \ --prompt '❯' \ --scrollbar none \ --wrap \ --scrollbar autohide \ --no-overlap \ --monitor all \ --fn 'Inter 13px' \ --tb '${bemenuColors.titleBackground}' \ --tf '${bemenuColors.titleForeground}' \ --fb '${bemenuColors.filterBackground}' \ --ff '${bemenuColors.filterForeground}' \ --nb '${bemenuColors.normalBackground}' \ --ab '${bemenuColors.normalBackground}' \ --nf '${bemenuColors.normalForeground}' \ --af '${bemenuColors.normalForeground}' \ --hb '${bemenuColors.highlightedBackground}' \ --hf '${bemenuColors.highlightedForeground}' \ --scb '${bemenuColors.scrollbarBackground}' \ --scf '${bemenuColors.scrollbarForeground}' ''; }