#!/bin/sh # # dmenu_run with custom history # set -e export PATH=$PATH:~/.local/bin:~/.local/bin/sh # . $HOME/.config/rc/config/dmenu/dmenu.rc # . $HOME/.config/rc/sh/dmenu_path # NB="#303446" #NF="#838ba7" #SF="#303446" #SB="#ebcb8b" NB="#090e13fa" NF="#c6d0f5" NF="#c6d0f54d" SB="#303446" SF="#babbf1" #$nf #c6d0f5$TR #$nb #303446$TR #$sf #ebcb8b$TR # NORD: NF="#4c566aEF" # NORD: NB="#2e3440EF" # NORD: SF="#2e3440EF" # NORD: SB="#ebcb8bEF" # FONT="monospace:size=11" FONT="JetBrainsMono Nerd Font 10" HISTORY=$HOME/.cache/dmenu_run.history # MONITOR="$(swaymsg -t get_outputs | jq -r 'map(.focused) | index(true)')" # MONITORNAME="$(swaymsg -t get_outputs | jq -r '.[] | select(.focused==true) | .name')" _HIST_PREPEND() { ( printf "%s\n" 1 i "$@" . w | ex $HISTORY ) &>/dev/null awk -i inplace '!x[$0]++' "$HISTORY" } # dmenu -m $MONITOR -fn ${FONT} -nb ${NB} -nf ${NF} -sb ${SB} -sf ${SF} -p "dmenu: " "$@") \ cmd=$(( cat "$HISTORY"; \ flatpak list --columns=application | awk '$0="Ƒ "$0' ; \ dmenu_path) | \ wmenu -i -f "${FONT}" -M ${NB} -m ${SB} -N ${NB} -n ${NF} -S ${SB} -s ${SF} -p "dmenu: " "$@" ) \ || exit _HIST_PREPEND "$cmd" & case $cmd in Ƒ*) flatpak run "${cmd#Ƒ }" ;; !*) exec foot -e -T "${cmd#!}" "${cmd#!}" ;; *) exec $cmd & ;; esac