diff options
author | altaf-creator <dev@altafcreator.com> | 2024-05-19 14:54:41 +0700 |
---|---|---|
committer | altaf-creator <dev@altafcreator.com> | 2024-05-19 14:54:41 +0700 |
commit | 3ec8d42fbf6eed78c24de2caca63d91a2604ff50 (patch) | |
tree | 985517bcce150969a050f7f408bea6670177bbb7 /config/rofi/applets/bin |
Diffstat (limited to 'config/rofi/applets/bin')
-rwxr-xr-x | config/rofi/applets/bin/appasroot.sh | 102 | ||||
-rwxr-xr-x | config/rofi/applets/bin/apps.sh | 104 | ||||
-rwxr-xr-x | config/rofi/applets/bin/battery.sh | 134 | ||||
-rwxr-xr-x | config/rofi/applets/bin/brightness.sh | 107 | ||||
-rwxr-xr-x | config/rofi/applets/bin/mpd.sh | 131 | ||||
-rwxr-xr-x | config/rofi/applets/bin/powermenu.sh | 129 | ||||
-rwxr-xr-x | config/rofi/applets/bin/quicklinks.sh | 103 | ||||
-rwxr-xr-x | config/rofi/applets/bin/screenshot.sh | 165 | ||||
-rwxr-xr-x | config/rofi/applets/bin/volume.sh | 134 |
9 files changed, 1109 insertions, 0 deletions
diff --git a/config/rofi/applets/bin/appasroot.sh b/config/rofi/applets/bin/appasroot.sh new file mode 100755 index 0000000..f0e6944 --- /dev/null +++ b/config/rofi/applets/bin/appasroot.sh @@ -0,0 +1,102 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Run Applications as Root + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Theme Elements +prompt='Applications' +mesg='Run Applications as Root' + +if [[ "$theme" == *'type-1'* ]]; then + list_col='1' + list_row='5' + win_width='400px' +elif [[ "$theme" == *'type-3'* ]]; then + list_col='1' + list_row='5' + win_width='120px' +elif [[ "$theme" == *'type-5'* ]]; then + list_col='1' + list_row='5' + win_width='520px' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='5' + list_row='1' + win_width='670px' +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Alacritty" + option_2=" Thunar" + option_3=" Geany" + option_4=" Ranger" + option_5=" Vim" +else + option_1="" + option_2="" + option_3="" + option_4="" + option_5="" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "window {width: $win_width;}" \ + -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd +} + +# Execute Command +run_cmd() { + polkit_cmd="pkexec env PATH=$PATH DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY" + if [[ "$1" == '--opt1' ]]; then + ${polkit_cmd} alacritty + elif [[ "$1" == '--opt2' ]]; then + ${polkit_cmd} dbus-run-session thunar + elif [[ "$1" == '--opt3' ]]; then + ${polkit_cmd} geany + elif [[ "$1" == '--opt4' ]]; then + ${polkit_cmd} alacritty -e ranger + elif [[ "$1" == '--opt5' ]]; then + ${polkit_cmd} alacritty -e vim + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; +esac + diff --git a/config/rofi/applets/bin/apps.sh b/config/rofi/applets/bin/apps.sh new file mode 100755 index 0000000..01d1e4d --- /dev/null +++ b/config/rofi/applets/bin/apps.sh @@ -0,0 +1,104 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Favorite Applications + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Theme Elements +prompt='Applications' +mesg="Installed Packages : `pacman -Q | wc -l` (pacman)" + +if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then + list_col='1' + list_row='6' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='6' + list_row='1' +fi + +# CMDs (add your apps here) +term_cmd='alacritty' +file_cmd='thunar' +text_cmd='geany' +web_cmd='firefox' +music_cmd='alacritty -e ncmpcpp' +setting_cmd='xfce4-settings-manager' + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Terminal <span weight='light' size='small'><i>($term_cmd)</i></span>" + option_2=" Files <span weight='light' size='small'><i>($file_cmd)</i></span>" + option_3=" Editor <span weight='light' size='small'><i>($text_cmd)</i></span>" + option_4=" Browser <span weight='light' size='small'><i>($web_cmd)</i></span>" + option_5=" Music <span weight='light' size='small'><i>($music_cmd)</i></span>" + option_6=" Settings <span weight='light' size='small'><i>($setting_cmd)</i></span>" +else + option_1="" + option_2="" + option_3="" + option_4="" + option_5="" + option_6="" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + ${term_cmd} + elif [[ "$1" == '--opt2' ]]; then + ${file_cmd} + elif [[ "$1" == '--opt3' ]]; then + ${text_cmd} + elif [[ "$1" == '--opt4' ]]; then + ${web_cmd} + elif [[ "$1" == '--opt5' ]]; then + ${music_cmd} + elif [[ "$1" == '--opt6' ]]; then + ${setting_cmd} + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; + $option_6) + run_cmd --opt6 + ;; +esac diff --git a/config/rofi/applets/bin/battery.sh b/config/rofi/applets/bin/battery.sh new file mode 100755 index 0000000..ef0dba6 --- /dev/null +++ b/config/rofi/applets/bin/battery.sh @@ -0,0 +1,134 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Battery + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Battery Info +battery="`acpi -b | cut -d',' -f1 | cut -d':' -f1`" +status="`acpi -b | cut -d',' -f1 | cut -d':' -f2 | tr -d ' '`" +percentage="`acpi -b | cut -d',' -f2 | tr -d ' ',\%`" +time="`acpi -b | cut -d',' -f3`" + +if [[ -z "$time" ]]; then + time=' Fully Charged' +fi + +# Theme Elements +prompt="$status" +mesg="${battery}: ${percentage}%,${time}" + +if [[ "$theme" == *'type-1'* ]]; then + list_col='1' + list_row='4' + win_width='400px' +elif [[ "$theme" == *'type-3'* ]]; then + list_col='1' + list_row='4' + win_width='120px' +elif [[ "$theme" == *'type-5'* ]]; then + list_col='1' + list_row='4' + win_width='500px' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='4' + list_row='1' + win_width='550px' +fi + +# Charging Status +active="" +urgent="" +if [[ $status = *"Charging"* ]]; then + active="-a 1" + ICON_CHRG="" +elif [[ $status = *"Full"* ]]; then + active="-u 1" + ICON_CHRG="" +else + urgent="-u 1" + ICON_CHRG="" +fi + +# Discharging +if [[ $percentage -ge 5 ]] && [[ $percentage -le 19 ]]; then + ICON_DISCHRG="" +elif [[ $percentage -ge 20 ]] && [[ $percentage -le 39 ]]; then + ICON_DISCHRG="" +elif [[ $percentage -ge 40 ]] && [[ $percentage -le 59 ]]; then + ICON_DISCHRG="" +elif [[ $percentage -ge 60 ]] && [[ $percentage -le 79 ]]; then + ICON_DISCHRG="" +elif [[ $percentage -ge 80 ]] && [[ $percentage -le 100 ]]; then + ICON_DISCHRG="" +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Remaining ${percentage}%" + option_2=" $status" + option_3=" Power Manager" + option_4=" Diagnose" +else + option_1="$ICON_DISCHRG" + option_2="$ICON_CHRG" + option_3="" + option_4="" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "window {width: $win_width;}" \ + -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str "textbox-prompt-colon {str: \"$ICON_DISCHRG\";}" \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + ${active} ${urgent} \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4" | rofi_cmd +} + +# Execute Command +run_cmd() { + polkit_cmd="pkexec env PATH=$PATH DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY" + if [[ "$1" == '--opt1' ]]; then + notify-send -u low " Remaining : ${percentage}%" + elif [[ "$1" == '--opt2' ]]; then + notify-send -u low "$ICON_CHRG Status : $status" + elif [[ "$1" == '--opt3' ]]; then + xfce4-power-manager-settings + elif [[ "$1" == '--opt4' ]]; then + ${polkit_cmd} alacritty -e powertop + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; +esac + + diff --git a/config/rofi/applets/bin/brightness.sh b/config/rofi/applets/bin/brightness.sh new file mode 100755 index 0000000..2c90a12 --- /dev/null +++ b/config/rofi/applets/bin/brightness.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Brightness + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Brightness Info +backlight="$(printf "%.0f\n" `light -G`)" +card="`light -L | grep 'backlight' | head -n1 | cut -d'/' -f3`" + +if [[ $backlight -ge 0 ]] && [[ $backlight -le 29 ]]; then + level="Low" +elif [[ $backlight -ge 30 ]] && [[ $backlight -le 49 ]]; then + level="Optimal" +elif [[ $backlight -ge 50 ]] && [[ $backlight -le 69 ]]; then + level="High" +elif [[ $backlight -ge 70 ]] && [[ $backlight -le 100 ]]; then + level="Peak" +fi + +# Theme Elements +prompt="${backlight}%" +mesg="Device: ${card}, Level: $level" + +if [[ "$theme" == *'type-1'* ]]; then + list_col='1' + list_row='4' + win_width='400px' +elif [[ "$theme" == *'type-3'* ]]; then + list_col='1' + list_row='4' + win_width='120px' +elif [[ "$theme" == *'type-5'* ]]; then + list_col='1' + list_row='4' + win_width='425px' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='4' + list_row='1' + win_width='550px' +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Increase" + option_2=" Optimal" + option_3=" Decrease" + option_4=" Settings" +else + option_1="" + option_2="" + option_3="" + option_4="" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "window {width: $win_width;}" \ + -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4" | rofi_cmd +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + light -A 5 + elif [[ "$1" == '--opt2' ]]; then + light -S 25 + elif [[ "$1" == '--opt3' ]]; then + light -U 5 + elif [[ "$1" == '--opt4' ]]; then + xfce4-power-manager-settings + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; +esac diff --git a/config/rofi/applets/bin/mpd.sh b/config/rofi/applets/bin/mpd.sh new file mode 100755 index 0000000..ce6a9e9 --- /dev/null +++ b/config/rofi/applets/bin/mpd.sh @@ -0,0 +1,131 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : MPD (music) + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Theme Elements +status="`mpc status`" +if [[ -z "$status" ]]; then + prompt='Offline' + mesg="MPD is Offline" +else + prompt="`mpc -f "%artist%" current`" + mesg="`mpc -f "%title%" current` :: `mpc status | grep "#" | awk '{print $3}'`" +fi + +if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then + list_col='1' + list_row='6' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='6' + list_row='1' +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + if [[ ${status} == *"[playing]"* ]]; then + option_1=" Pause" + else + option_1=" Play" + fi + option_2=" Stop" + option_3=" Previous" + option_4=" Next" + option_5=" Repeat" + option_6=" Random" +else + if [[ ${status} == *"[playing]"* ]]; then + option_1="" + else + option_1="" + fi + option_2="" + option_3="" + option_4="" + option_5="" + option_6="" +fi + +# Toggle Actions +active='' +urgent='' +# Repeat +if [[ ${status} == *"repeat: on"* ]]; then + active="-a 4" +elif [[ ${status} == *"repeat: off"* ]]; then + urgent="-u 4" +else + option_5=" Parsing Error" +fi +# Random +if [[ ${status} == *"random: on"* ]]; then + [ -n "$active" ] && active+=",5" || active="-a 5" +elif [[ ${status} == *"random: off"* ]]; then + [ -n "$urgent" ] && urgent+=",5" || urgent="-u 5" +else + option_6=" Parsing Error" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + ${active} ${urgent} \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + mpc -q toggle && notify-send -u low -t 1000 " `mpc current`" + elif [[ "$1" == '--opt2' ]]; then + mpc -q stop + elif [[ "$1" == '--opt3' ]]; then + mpc -q prev && notify-send -u low -t 1000 " `mpc current`" + elif [[ "$1" == '--opt4' ]]; then + mpc -q next && notify-send -u low -t 1000 " `mpc current`" + elif [[ "$1" == '--opt5' ]]; then + mpc -q repeat + elif [[ "$1" == '--opt6' ]]; then + mpc -q random + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; + $option_6) + run_cmd --opt6 + ;; +esac diff --git a/config/rofi/applets/bin/powermenu.sh b/config/rofi/applets/bin/powermenu.sh new file mode 100755 index 0000000..8ed9106 --- /dev/null +++ b/config/rofi/applets/bin/powermenu.sh @@ -0,0 +1,129 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Power Menu + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Theme Elements +prompt="`hostname`" +mesg="Uptime : `uptime -p | sed -e 's/up //g'`" + +if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then + list_col='1' + list_row='6' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='6' + list_row='1' +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Lock" + option_2=" Logout" + option_3=" Suspend" + option_4=" Hibernate" + option_5=" Reboot" + option_6=" Shutdown" + yes=' Yes' + no=' No' +else + option_1="" + option_2="" + option_3="" + option_4="" + option_5="" + option_6="" + yes='' + no='' +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd +} + +# Confirmation CMD +confirm_cmd() { + rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ + -theme-str 'mainbox {orientation: vertical; children: [ "message", "listview" ];}' \ + -theme-str 'listview {columns: 2; lines: 1;}' \ + -theme-str 'element-text {horizontal-align: 0.5;}' \ + -theme-str 'textbox {horizontal-align: 0.5;}' \ + -dmenu \ + -p 'Confirmation' \ + -mesg 'Are you Sure?' \ + -theme ${theme} +} + +# Ask for confirmation +confirm_exit() { + echo -e "$yes\n$no" | confirm_cmd +} + +# Confirm and execute +confirm_run () { + selected="$(confirm_exit)" + if [[ "$selected" == "$yes" ]]; then + ${1} && ${2} && ${3} + else + exit + fi +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + betterlockscreen -l + elif [[ "$1" == '--opt2' ]]; then + confirm_run 'kill -9 -1' + elif [[ "$1" == '--opt3' ]]; then + confirm_run 'mpc -q pause' 'amixer set Master mute' 'systemctl suspend' + elif [[ "$1" == '--opt4' ]]; then + confirm_run 'systemctl hibernate' + elif [[ "$1" == '--opt5' ]]; then + confirm_run 'systemctl reboot' + elif [[ "$1" == '--opt6' ]]; then + confirm_run 'systemctl poweroff' + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; + $option_6) + run_cmd --opt6 + ;; +esac + diff --git a/config/rofi/applets/bin/quicklinks.sh b/config/rofi/applets/bin/quicklinks.sh new file mode 100755 index 0000000..11a38a8 --- /dev/null +++ b/config/rofi/applets/bin/quicklinks.sh @@ -0,0 +1,103 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Quick Links + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Theme Elements +prompt='Quick Links' +mesg="Using '$BROWSER' as web browser" + +if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then + list_col='1' + list_row='6' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='6' + list_row='1' +fi + +if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-5'* ) ]]; then + efonts="JetBrains Mono Nerd Font 10" +else + efonts="JetBrains Mono Nerd Font 28" +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Google" + option_2=" Gmail" + option_3=" Youtube" + option_4=" Github" + option_5=" Reddit" + option_6=" Twitter" +else + option_1="" + option_2="" + option_3="" + option_4="" + option_5="" + option_6="" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -theme-str "element-text {font: \"$efonts\";}" \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + xdg-open 'https://www.google.com/' + elif [[ "$1" == '--opt2' ]]; then + xdg-open 'https://mail.google.com/' + elif [[ "$1" == '--opt3' ]]; then + xdg-open 'https://www.youtube.com/' + elif [[ "$1" == '--opt4' ]]; then + xdg-open 'https://www.github.com/' + elif [[ "$1" == '--opt5' ]]; then + xdg-open 'https://www.reddit.com/' + elif [[ "$1" == '--opt6' ]]; then + xdg-open 'https://www.twitter.com/' + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; + $option_6) + run_cmd --opt6 + ;; +esac diff --git a/config/rofi/applets/bin/screenshot.sh b/config/rofi/applets/bin/screenshot.sh new file mode 100755 index 0000000..5e5286b --- /dev/null +++ b/config/rofi/applets/bin/screenshot.sh @@ -0,0 +1,165 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Screenshot + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Theme Elements +prompt='Screenshot' +mesg="DIR: `xdg-user-dir PICTURES`/Screenshots" + +if [[ "$theme" == *'type-1'* ]]; then + list_col='1' + list_row='5' + win_width='400px' +elif [[ "$theme" == *'type-3'* ]]; then + list_col='1' + list_row='5' + win_width='120px' +elif [[ "$theme" == *'type-5'* ]]; then + list_col='1' + list_row='5' + win_width='520px' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='5' + list_row='1' + win_width='670px' +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Capture Desktop" + option_2=" Capture Area" + option_3=" Capture Window" + option_4=" Capture in 5s" + option_5=" Capture in 10s" +else + option_1="" + option_2="" + option_3="" + option_4="" + option_5="" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "window {width: $win_width;}" \ + -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd +} + +# Screenshot +time=`date +%Y-%m-%d-%H-%M-%S` +geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'` +dir="`xdg-user-dir PICTURES`/Screenshots" +file="Screenshot_${time}_${geometry}.png" + +if [[ ! -d "$dir" ]]; then + mkdir -p "$dir" +fi + +# notify and view screenshot +notify_view() { + notify_cmd_shot='dunstify -u low --replace=699' + ${notify_cmd_shot} "Copied to clipboard." + viewnior ${dir}/"$file" + if [[ -e "$dir/$file" ]]; then + ${notify_cmd_shot} "Screenshot Saved." + else + ${notify_cmd_shot} "Screenshot Deleted." + fi +} + +# Copy screenshot to clipboard +copy_shot () { + tee "$file" | xclip -selection clipboard -t image/png +} + +# countdown +countdown () { + for sec in `seq $1 -1 1`; do + dunstify -t 1000 --replace=699 "Taking shot in : $sec" + sleep 1 + done +} + +# take shots +shotnow () { + cd ${dir} && sleep 0.5 && maim -u -f png | copy_shot + notify_view +} + +shot5 () { + countdown '5' + sleep 1 && cd ${dir} && maim -u -f png | copy_shot + notify_view +} + +shot10 () { + countdown '10' + sleep 1 && cd ${dir} && maim -u -f png | copy_shot + notify_view +} + +shotwin () { + cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot + notify_view +} + +shotarea () { + cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot + notify_view +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + shotnow + elif [[ "$1" == '--opt2' ]]; then + shotarea + elif [[ "$1" == '--opt3' ]]; then + shotwin + elif [[ "$1" == '--opt4' ]]; then + shot5 + elif [[ "$1" == '--opt5' ]]; then + shot10 + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; +esac + + diff --git a/config/rofi/applets/bin/volume.sh b/config/rofi/applets/bin/volume.sh new file mode 100755 index 0000000..a194592 --- /dev/null +++ b/config/rofi/applets/bin/volume.sh @@ -0,0 +1,134 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Applets : Volume + +# Import Current Theme +source "$HOME"/.config/rofi/applets/shared/theme.bash +theme="$type/$style" + +# Volume Info +mixer="`amixer info Master | grep 'Mixer name' | cut -d':' -f2 | tr -d \',' '`" +speaker="`amixer get Master | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'`" +mic="`amixer get Capture | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'`" + +active="" +urgent="" + +# Speaker Info +amixer get Master | grep '\[on\]' &>/dev/null +if [[ "$?" == 0 ]]; then + active="-a 1" + stext='Unmute' + sicon='' +else + urgent="-u 1" + stext='Mute' + sicon='' +fi + +# Microphone Info +amixer get Capture | grep '\[on\]' &>/dev/null +if [[ "$?" == 0 ]]; then + [ -n "$active" ] && active+=",3" || active="-a 3" + mtext='Unmute' + micon='' +else + [ -n "$urgent" ] && urgent+=",3" || urgent="-u 3" + mtext='Mute' + micon='' +fi + +# Theme Elements +prompt="S:$stext, M:$mtext" +mesg="$mixer - Speaker: $speaker, Mic: $mic" + +if [[ "$theme" == *'type-1'* ]]; then + list_col='1' + list_row='5' + win_width='400px' +elif [[ "$theme" == *'type-3'* ]]; then + list_col='1' + list_row='5' + win_width='120px' +elif [[ "$theme" == *'type-5'* ]]; then + list_col='1' + list_row='5' + win_width='520px' +elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then + list_col='5' + list_row='1' + win_width='670px' +fi + +# Options +layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Increase" + option_2="$sicon $stext" + option_3=" Decrese" + option_4="$micon $mtext" + option_5=" Settings" +else + option_1="" + option_2="$sicon" + option_3="" + option_4="$micon" + option_5="" +fi + +# Rofi CMD +rofi_cmd() { + rofi -theme-str "window {width: $win_width;}" \ + -theme-str "listview {columns: $list_col; lines: $list_row;}" \ + -theme-str 'textbox-prompt-colon {str: "";}' \ + -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + ${active} ${urgent} \ + -markup-rows \ + -theme ${theme} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + amixer -Mq set Master,0 5%+ unmute + elif [[ "$1" == '--opt2' ]]; then + amixer set Master toggle + elif [[ "$1" == '--opt3' ]]; then + amixer -Mq set Master,0 5%- unmute + elif [[ "$1" == '--opt4' ]]; then + amixer set Capture toggle + elif [[ "$1" == '--opt5' ]]; then + pavucontrol + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; +esac + |