aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2022-01-10 21:22:19 -0700
committerJosh Rahm <joshuarahm@gmail.com>2022-01-10 21:29:19 -0700
commit863514ef9c4da3cce8410f89e1b4c547cc31cf6f (patch)
tree5d4ad8bd8eb53ff7d72d41cba47a8b4fb1ca0fa7
parent0e4b0187167e43c3c00371cbcca5cc892521bdb2 (diff)
downloadrde-863514ef9c4da3cce8410f89e1b4c547cc31cf6f.tar.gz
rde-863514ef9c4da3cce8410f89e1b4c547cc31cf6f.tar.bz2
rde-863514ef9c4da3cce8410f89e1b4c547cc31cf6f.zip
Convert run menus over to Rofi.
This makes things prettier and rofi is more feature rich than DMenu.
-rw-r--r--extras/HOME/.config/rofi/config.rasi53
-rwxr-xr-xextras/HOME/.local/bin/bluetooth-select.sh5
-rwxr-xr-xextras/HOME/.local/bin/emoji-select.sh2
-rwxr-xr-xextras/HOME/.local/bin/emoticon-select.sh2
-rwxr-xr-xextras/HOME/.local/bin/rofi-pass35
-rwxr-xr-xextras/HOME/.local/bin/set-sink.sh2
-rw-r--r--src/Internal/DMenu.hs13
-rw-r--r--src/Internal/PassMenu.hs8
8 files changed, 103 insertions, 17 deletions
diff --git a/extras/HOME/.config/rofi/config.rasi b/extras/HOME/.config/rofi/config.rasi
new file mode 100644
index 0000000..d804f7a
--- /dev/null
+++ b/extras/HOME/.config/rofi/config.rasi
@@ -0,0 +1,53 @@
+@theme "/usr/share/rofi/themes/DarkBlue.rasi"
+
+* {
+ theme-color: #8888ff;
+ selected-normal-background: @theme-color;
+ normal-foreground: @theme-color;
+ alternate-normal-foreground: @theme-color;
+ textbox-background: #202020;
+
+ font: "Monofur Bold Nerd Font 34";
+}
+
+window {
+ border: 0;
+ width: 100%;
+ height: 100%;
+ padding: 20%;
+ background-color: rgba ( 0, 0, 0, 75 % );
+}
+
+#case-indicator {
+ background-color: @theme-color;
+ text-color: #202020;
+ padding: 10px;
+}
+
+#prompt {
+ background-color: @theme-color;
+ text-color: #202020;
+ padding: 10px;
+}
+
+inputbar {
+ children: [ prompt,entry,case-indicator ];
+}
+
+#entry {
+ background-color: #202020;
+ padding: 10px;
+}
+
+#listview {
+ fixed-height: 0;
+ border: 50px 0px 0px ;
+ border-color: #000000;
+ scrollbar: true;
+ background-color: #202020;
+}
+
+element {
+ border: 0;
+ padding: 10px 10px 20px 10px ;
+}
diff --git a/extras/HOME/.local/bin/bluetooth-select.sh b/extras/HOME/.local/bin/bluetooth-select.sh
index 9a42ce5..a39ead1 100755
--- a/extras/HOME/.local/bin/bluetooth-select.sh
+++ b/extras/HOME/.local/bin/bluetooth-select.sh
@@ -2,8 +2,9 @@
devices="$(bluetoothctl -- devices | sed 's#^Device ##')"
selection="$(
- echo -e "$devices\nDisconnect" |
- dmenu -i -nf "#8888ff" -sb "#8888ff" -p "Connect Bluetooth" -l 12 -dim 0.4)"
+ echo -e "$devices\nDisconnect" | rofi -p "Connect Bluetooth" \
+ -theme-str '* {theme-color: #8888ff;}' \
+ -dmenu)"
macaddr="${selection%% *}"
diff --git a/extras/HOME/.local/bin/emoji-select.sh b/extras/HOME/.local/bin/emoji-select.sh
index 1cf8152..5d244d8 100755
--- a/extras/HOME/.local/bin/emoji-select.sh
+++ b/extras/HOME/.local/bin/emoji-select.sh
@@ -1,7 +1,7 @@
#!/bin/bash
if ( which rofi ) ; then
- menu=(rofi -dmenu -i -p "Select Character: " -font "Fira Code 32")
+ menu=(rofi -dmenu -i -p "Select Character" -theme-str '* {theme-color: #ffff88;}' -show run)
else
menu=(dmenu -fn NotoSans:size=24 -i -nf "#ffff88" -sb "#ffff88" -p "Select Character" -l 12 -dim 0.4)
fi
diff --git a/extras/HOME/.local/bin/emoticon-select.sh b/extras/HOME/.local/bin/emoticon-select.sh
index bf10318..ed6cddc 100755
--- a/extras/HOME/.local/bin/emoticon-select.sh
+++ b/extras/HOME/.local/bin/emoticon-select.sh
@@ -1,7 +1,7 @@
#!/bin/bash
if ( which rofi ) ; then
- menu=(rofi -dmenu -i -p "Select Emoticon: " -font "Fira Code 32")
+ menu=(rofi -theme-str '* {theme-color: #ffa050;}' -p "Select Emoticon" -dmenu)
else
menu=(dmenu -fn NotoSans:size=24 -i -nf "#ffff88" -sb "#ffff88" -p "Select Emoticon" -l 12 -dim 0.4)
fi
diff --git a/extras/HOME/.local/bin/rofi-pass b/extras/HOME/.local/bin/rofi-pass
new file mode 100755
index 0000000..57a4704
--- /dev/null
+++ b/extras/HOME/.local/bin/rofi-pass
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+shopt -s nullglob globstar
+
+typeit=0
+if [[ $1 == "--type" ]]; then
+ typeit=1
+ shift
+fi
+
+if [[ -n $WAYLAND_DISPLAY ]]; then
+ dmenu=dmenu-wl
+ xdotool="ydotool type --file -"
+elif [[ -n $DISPLAY ]]; then
+ dmenu=(rofi -dmenu -p 'Password')
+ xdotool="xdotool type --clearmodifiers --file -"
+else
+ echo "Error: No Wayland or X11 display detected" >&2
+ exit 1
+fi
+
+prefix=${PASSWORD_STORE_DIR-~/.password-store}
+password_files=( "$prefix"/**/*.gpg )
+password_files=( "${password_files[@]#"$prefix"/}" )
+password_files=( "${password_files[@]%.gpg}" )
+
+password=$(printf '%s\n' "${password_files[@]}" | "${dmenu[@]}" "$@")
+
+[[ -n $password ]] || exit
+
+if [[ $typeit -eq 0 ]]; then
+ pass show -c "$password" 2>/dev/null
+else
+ pass show "$password" | { IFS= read -r pass; printf %s "$pass"; } | $xdotool
+fi
diff --git a/extras/HOME/.local/bin/set-sink.sh b/extras/HOME/.local/bin/set-sink.sh
index bbbdc8d..71054d8 100755
--- a/extras/HOME/.local/bin/set-sink.sh
+++ b/extras/HOME/.local/bin/set-sink.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-DMENU=(dmenu -i -nf "#88ff88" -sb "#88ff88" -l 12 -dim 0.4)
+DMENU=(rofi -theme-str '* {theme-color: #88ff88;}' -dmenu)
sinks="$(
pactl list sinks | while read line ; do
diff --git a/src/Internal/DMenu.hs b/src/Internal/DMenu.hs
index 850612e..360ad58 100644
--- a/src/Internal/DMenu.hs
+++ b/src/Internal/DMenu.hs
@@ -8,6 +8,7 @@ import Data.Map (Map)
import qualified Data.Map as Map
import XMonad.Util.Run
import Data.List (intercalate)
+import Text.Printf (printf)
data Colors =
Colors {
@@ -17,8 +18,7 @@ data Colors =
runDMenu :: X ()
runDMenu = void $
- safeSpawn "dmenu_run" [
- "-p", "Execute ", "-l", "12", "-dim", "0.4"]
+ safeSpawn "rofi" ["-p", "Execute ", "-show", "run"]
runDMenuPrompt :: String -> Maybe String -> [String] -> X String
runDMenuPrompt prompt color select =
@@ -32,8 +32,7 @@ runDMenuPrompt prompt color select =
runDMenuPromptWithMap :: String -> Maybe String -> Map String a -> X (Maybe a)
runDMenuPromptWithMap prompt color map = do
- let realColor = maybe [] (\c -> ["-sb", c, "-nf", c]) color
- menuMapArgs "dmenu"([
- "-p", prompt,
- "-l", "12",
- "-dim", "0.4" ] ++ realColor) map
+ let realColor = maybe [] (
+ \c -> ["-theme-str", printf "* {theme-color: %s;}" c]) color
+ menuMapArgs "rofi"
+ (["-p", prompt, "-dmenu"] ++ realColor) map
diff --git a/src/Internal/PassMenu.hs b/src/Internal/PassMenu.hs
index 7374bed..bb3bc4d 100644
--- a/src/Internal/PassMenu.hs
+++ b/src/Internal/PassMenu.hs
@@ -6,10 +6,8 @@ import Control.Monad
runPassMenu :: X ()
runPassMenu = void $
- safeSpawn "passmenu" [
+ safeSpawn "rofi-pass" [
"-p", "Password ",
- "-l", "12",
- "-dim", "0.4",
- "-sb", "#f54245",
- "-nf", "#f54245" ]
+ "-theme-str",
+ "* {theme-color: #f54245;}"]