diff --git a/scripts/.local/bin/bemenu_run_history b/scripts/.local/bin/bemenu_run_history
new file mode 100755
index 0000000000000000000000000000000000000000..a33c099870ba99a39b4187b72986658b7a4e1ff6
--- /dev/null
+++ b/scripts/.local/bin/bemenu_run_history
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
+if [ -d "$cachedir" ]; then
+ cache=$cachedir/bemenu_run
+ historyfile=$cachedir/dmenu_history
+else # if no xdg dir, fall back to dotfiles in ~
+ cache=$HOME/.dmenu_cache
+ historyfile=$HOME/.dmenu_history
+fi
+
+IFS=:
+if stest -dqr -n "$cache" $PATH; then
+ stest -flx $PATH | sort -u > "$cache"
+fi
+unset IFS
+
+awk -v histfile=$historyfile '
+ BEGIN {
+ while( (getline < histfile) > 0 ) {
+ sub("^[0-9]+\t","")
+ x[$0]=1
+ }
+ } !x[$0]++ ' "$cache" \
+ | bemenu -i -l 5 -n -m -1 --fn "hack 12px" --tb=#222222 --tf=#f2f2f2 --fb=#2f2f2f --ff=#f2f2f2 --hb=#222222 --hf=#035efc -p "" -P """$@" \
+ | awk -v histfile=$historyfile '
+ BEGIN {
+ FS=OFS="\t"
+ while ( (getline < histfile) > 0 ) {
+ count=$1
+ sub("^[0-9]+\t","")
+ fname=$0
+ history[fname]=count
+ }
+ close(histfile)
+ }
+
+ {
+ history[$0]++
+ }
+
+ END {
+ if(!NR) exit
+ for (f in history)
+ print history[f],f | "sort -t '\t' -k1rn >" histfile
+ }
+ ' \
+ | while read cmd; do ${SHELL:-"/bin/sh"} -c "$cmd" & done
diff --git a/scripts/.local/bin/floating b/scripts/.local/bin/floating
deleted file mode 100755
index 1f3b8a8c0a3f346100de74aeb672745326ee2216..0000000000000000000000000000000000000000
--- a/scripts/.local/bin/floating
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/sh
-
-$@ &
-pid=$!
-
-swaymsg -t subscribe -m '[ "window" ]' \
- | jq --unbuffered --argjson pid "$pid" '.container | select(.pid == $pid) | .id' \
- | xargs -I '@' -- swaymsg '[ con_id=@ ] floating enable' &
-
-subscription=$!
-
-echo Going into wait state
-
-# Wait for our process to close
-tail --pid=$pid -f /dev/null
-
-echo Killing subscription
-kill $subscription
diff --git a/scripts/.local/bin/nospotify b/scripts/.local/bin/nospotify
new file mode 100755
index 0000000000000000000000000000000000000000..766daa285d01bf315d47a00402040436d02307db
--- /dev/null
+++ b/scripts/.local/bin/nospotify
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+firejail --net=none spotify
diff --git a/scripts/.local/bin/sn b/scripts/.local/bin/sn
deleted file mode 100755
index 5e703dd2ec8891fbfc58f49d3b08035dcd683c43..0000000000000000000000000000000000000000
--- a/scripts/.local/bin/sn
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-setsid -f firejail --net=none spotify
diff --git a/scripts/.local/bin/sway-launcher-desktop.sh b/scripts/.local/bin/sway-launcher-desktop.sh
deleted file mode 100755
index 6da01011775d9b4b846b327082a299a2a3397cd7..0000000000000000000000000000000000000000
--- a/scripts/.local/bin/sway-launcher-desktop.sh
+++ /dev/null
@@ -1,321 +0,0 @@
-#!/usr/bin/env bash
-# terminal application launcher for sway, using fzf
-# Based on: https://gitlab.com/FlyingWombat/my-scripts/blob/master/sway-launcher
-# https://gist.github.com/Biont/40ef59652acf3673520c7a03c9f22d2a
-shopt -s nullglob globstar
-set -o pipefail
-if ! { exec 0>&3; } 1>/dev/null 2>&1; then
- exec 3>/dev/null # If file descriptor 3 is unused in parent shell, output to /dev/null
-fi
-# shellcheck disable=SC2154
-trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
-IFS=