summaryrefslogtreecommitdiff
path: root/config/rofi/applets/bin
diff options
context:
space:
mode:
authoraltaf-creator <dev@altafcreator.com>2024-05-19 14:54:41 +0700
committeraltaf-creator <dev@altafcreator.com>2024-05-19 14:54:41 +0700
commit3ec8d42fbf6eed78c24de2caca63d91a2604ff50 (patch)
tree985517bcce150969a050f7f408bea6670177bbb7 /config/rofi/applets/bin
Diffstat (limited to 'config/rofi/applets/bin')
-rwxr-xr-xconfig/rofi/applets/bin/appasroot.sh102
-rwxr-xr-xconfig/rofi/applets/bin/apps.sh104
-rwxr-xr-xconfig/rofi/applets/bin/battery.sh134
-rwxr-xr-xconfig/rofi/applets/bin/brightness.sh107
-rwxr-xr-xconfig/rofi/applets/bin/mpd.sh131
-rwxr-xr-xconfig/rofi/applets/bin/powermenu.sh129
-rwxr-xr-xconfig/rofi/applets/bin/quicklinks.sh103
-rwxr-xr-xconfig/rofi/applets/bin/screenshot.sh165
-rwxr-xr-xconfig/rofi/applets/bin/volume.sh134
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
+