diff options
| -rw-r--r-- | extras/HOME/.config/rofi/config.rasi | 54 | ||||
| -rwxr-xr-x | extras/HOME/.local/bin/bluetooth-select.sh | 5 | ||||
| -rwxr-xr-x | extras/HOME/.local/bin/emoji-select.sh | 9 | ||||
| -rwxr-xr-x | extras/HOME/.local/bin/emoticon-select.sh | 13 | ||||
| -rwxr-xr-x | extras/HOME/.local/bin/rofi-pass | 35 | ||||
| -rwxr-xr-x | extras/HOME/.local/bin/set-sink.sh | 56 | ||||
| -rw-r--r-- | extras/HOME/.xmonad/emoticons.txt | 16 | ||||
| -rw-r--r-- | extras/HOME/.xmonad/rde.rasi | 37 | ||||
| -rwxr-xr-x | extras/HOME/.xmonad/startup | 9 | ||||
| -rw-r--r-- | src/Internal/DMenu.hs | 13 | ||||
| -rw-r--r-- | src/Internal/Keys.hs | 8 | ||||
| -rw-r--r-- | src/Internal/PassMenu.hs | 8 |
12 files changed, 244 insertions, 19 deletions
diff --git a/extras/HOME/.config/rofi/config.rasi b/extras/HOME/.config/rofi/config.rasi new file mode 100644 index 0000000..1fec00f --- /dev/null +++ b/extras/HOME/.config/rofi/config.rasi @@ -0,0 +1,54 @@ +@theme "/usr/share/rofi/themes/DarkBlue.rasi" + +* { + theme-color: #8888ff; + selected-normal-background: @theme-color; + normal-foreground: @theme-color; + alternate-normal-foreground: @theme-color; + main-background: #202020f0; + + 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: @main-background; + padding: 10px; +} + +#prompt { + background-color: @theme-color; + text-color: @main-background; + padding: 10px; +} + +inputbar { + children: [ prompt,entry,case-indicator ]; +} + +#entry { + background-color: @main-background; + padding: 10px; +} + +#listview { + fixed-height: 0; + margin: 50px 0px 0px 0px; + border: 0px 0px 0px 0px ; + border-color: rgba ( 0, 0, 0, 75 % ); + scrollbar: true; + background-color: @main-background; +} + +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..8c901ee 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 -i -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 2eeeb64..5d244d8 100755 --- a/extras/HOME/.local/bin/emoji-select.sh +++ b/extras/HOME/.local/bin/emoji-select.sh @@ -1,8 +1,15 @@ #!/bin/bash +if ( which rofi ) ; then + 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 + + selection="$( zcat $HOME/.xmonad/unicode.gz | sed 's@\([^;]\+\);\([^;]\+\).*@\1 \2 @g' | - dmenu -fn NotoSans:size=24 -i -nf "#ffff88" -sb "#ffff88" -p "Select Character" -l 12 -dim 0.4)" + "${menu[@]}")" emoji="${selection%% *}" diff --git a/extras/HOME/.local/bin/emoticon-select.sh b/extras/HOME/.local/bin/emoticon-select.sh new file mode 100755 index 0000000..cb593b4 --- /dev/null +++ b/extras/HOME/.local/bin/emoticon-select.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if ( which rofi ) ; then + menu=(rofi -i -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 + + +selection="$("${menu[@]}" < $HOME/.xmonad/emoticons.txt)" +emoticon="$(echo ${selection/*-})" + +echo "$emoticon" | xclip -selection clipboard diff --git a/extras/HOME/.local/bin/rofi-pass b/extras/HOME/.local/bin/rofi-pass new file mode 100755 index 0000000..6eb58b7 --- /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 -i -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 new file mode 100755 index 0000000..9cd6f93 --- /dev/null +++ b/extras/HOME/.local/bin/set-sink.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +DMENU=(rofi -i -theme-str '* {theme-color: #88ff88;}' -dmenu) + +sinks="$( + pactl list sinks | while read line ; do + case "$line" in + Sink\ \#*) + name="${line//*#}" ;; + Description:\ *) + description="${line//*: }" + echo "$description "'#'"$name" + ;; + *) ;; + esac + done)" + +client_input="$( + pactl list sink-inputs | while read line ; do + case "$line" in + application.name\ =*) + app="${line//*= \"}" + app="${app%%\"}" + echo "$app: $media "'#'"$obj" + ;; + media.name\ =*) + media="${line//*= \"}" + media="${media%%\"}" + ;; + Sink\ Input\ \#*) + obj="${line//*#}" + ;; + esac + done +)" + +echo "Client Input: $client_input" + +if [[ "$(wc -l <<< "$client_input")" -gt 1 ]] ; then + client_input="$("${DMENU[@]}" -p "Move Audio From" <<< "$client_input")" +fi + +if [[ "$client_input" == "" ]] ; then + exit 1 +fi + +input_sink=${client_input//*#} +input_sink_name=${client_input%% #*} + +selected_sink=$("${DMENU[@]}" -p "Move '$input_sink_name' To" <<< "$sinks") +sink_num=${selected_sink//*#} + +echo "Sinks: $sinks" + +echo "pactl move-sink-input $input_sink $sink_num" +pactl move-sink-input "$input_sink" "$sink_num" diff --git a/extras/HOME/.xmonad/emoticons.txt b/extras/HOME/.xmonad/emoticons.txt new file mode 100644 index 0000000..40b83c5 --- /dev/null +++ b/extras/HOME/.xmonad/emoticons.txt @@ -0,0 +1,16 @@ +Deal with it - (•_•) ( •_•)>⌐■-■ (⌐■_■) +Deal with it. - (▀̿Ĺ̯▀̿ ̿) +Do It Right - (☞゚ヮ゚)☞ +Do it Left - ☜(゚ヮ゚☜) +Happy Gary - ᕕ( ᐛ )ᕗ +Happy Lenny - ( ͡ᵔ ͜ʖ ͡ᵔ ) +IDFK - ¯\(°_o)/¯ +Lenny - ( ͡° ͜ʖ ͡°) +Mad Lenny - ( ͡° ʖ̯ ͡°) +Person Flip - (╯°□°)╯︵ (\ .o.)\ +Shrug - ¯\_(ツ)_/¯ +Smiley - :-) +Tableback - ┬─┬ノ(ಠ_ಠノ) +Tableflip - (╯°□°)╯︵ ┻━┻ +Unamused - ಠ_ಠ +Y u no - ლ(ಠ益ಠ)ლ diff --git a/extras/HOME/.xmonad/rde.rasi b/extras/HOME/.xmonad/rde.rasi new file mode 100644 index 0000000..4270085 --- /dev/null +++ b/extras/HOME/.xmonad/rde.rasi @@ -0,0 +1,37 @@ +* { + background-color: Black; + border-color: White; + text-color: White; + font: "NotoMono 24"; +} + +#window { + anchor: north; + location: north; + width: 100%; + padding: 10px; + children: [ horibox ]; +} + +#horibox { + orientation: horizontal; + children: [ prompt, entry, listview ]; +} + +#listview { + layout: vertical; + spacing: 5px; + lines: 15; +} + +#entry { + expand: false; + width: 10em; +} + +#element { + padding: 0px 2px; +} +#element selected { + background-color: SteelBlue; +} diff --git a/extras/HOME/.xmonad/startup b/extras/HOME/.xmonad/startup index 31e510b..5656e09 100755 --- a/extras/HOME/.xmonad/startup +++ b/extras/HOME/.xmonad/startup @@ -15,8 +15,13 @@ hostname_rahm1() { xinput set-prop "TPPS/2 Elan TrackPoint" "Coordinate Transformation Matrix" 3 0 0 0 3 0 0 0 1 xinput set-prop "SYNA8004:00 06CB:CD8B Touchpad" "Coordinate Transformation Matrix" 3 0 0 0 3 0 0 0 1 - if [ -z "$(ps aux | grep compton | grep -v grep)" ] ; then - __GL_SYNC_TO_VBLANK=1 nohup compton --backend=glx &>/dev/null & + n_displays=$(xrandr | grep '\<connected\>' | wc -l) + if [[ "$n_displays" -le "2" ]] ; then + if [ -z "$(ps aux | grep compton | grep -v grep)" ] ; then + __GL_SYNC_TO_VBLANK=1 nohup picom --backend=glx &>/dev/null & + fi + else + killall picom fi feh --bg-scale "$HOME/wp.jpg" diff --git a/src/Internal/DMenu.hs b/src/Internal/DMenu.hs index 850612e..f964544 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" ["-display-run", "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/Keys.hs b/src/Internal/Keys.hs index d4a856c..bf9b62c 100644 --- a/src/Internal/Keys.hs +++ b/src/Internal/Keys.hs @@ -68,7 +68,7 @@ keymap = runKeys $ do -- something goes wrong with the keyboard layout and for first-time boots -- where dmenu/alacritty may not be installed. rawMask mod4Mask $ spawn "xterm" - justMod $ spawn "pkill -SIGUSR 1 xmobar" + justMod $ spawn "pkill -SIGUSR1 xmobar" bind xK_F1 $ do -- Button programmed on mouse @@ -231,8 +231,12 @@ keymap = runKeys $ do bind xK_c $ do shiftMod CopyWindow.killAllOtherCopies - bind xK_e $ + bind xK_e $ do (justMod -|- noMod) $ spawn "emoji-select.sh" + (shiftMod -|- rawMask shiftMask) $ spawn "emoticon-select.sh" + + bind xK_a $ + (justMod -|- noMod) $ spawn "set-sink.sh" -- Double-tap Z to toggle zoom. 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;}"] |