diff --git a/rofi/mount/askpass b/rofi/mount/askpass new file mode 100644 index 0000000..41d66c7 --- /dev/null +++ b/rofi/mount/askpass @@ -0,0 +1,4 @@ +#!/bin/sh + +rofi -config ~/.config/rofi/mount/passwd.rasi -dmenu -i -password -p "Sudo" + diff --git a/rofi/mount/cellmount b/rofi/mount/cellmount new file mode 100644 index 0000000..fa164e7 --- /dev/null +++ b/rofi/mount/cellmount @@ -0,0 +1,40 @@ +#!/bin/sh + +# merged and modified luke smith's mount and unmount script and imported to rofi +# Modified by S4NKALP + +# ┌─┐┌─┐┌┐┌┌─┐┬┌─┐┬ ┬┬─┐┌─┐┌┬┐┬┌─┐┌┐┌┌─┐ +# │ │ ││││├┤ ││ ┬│ │├┬┘├─┤ │ ││ ││││└─┐ +# └─┘└─┘┘└┘└ ┴└─┘└─┘┴└─┴ ┴ ┴ ┴└─┘┘└┘└─┘ + +# rofi sconfig +roficonfig=~/.config/rofi/mount/prompt.rasi +# Always mount your phone here +mountpoint=$HOME/Cell +[ -d "$mountpoint" ] || mkdir -pv "$mountpoint" + +# ┬─┐┌─┐┌─┐┬ +# ├┬┘│ │├┤ │ +# ┴└─└─┘└ ┴ + +androiddevices=$(simple-mtpfs -l 2>/dev/null) +[ -z "$androiddevices" ] && printf "exit" | rofi -config $roficonfig -dmenu -i -only-match -p "No Android Device Found" && exit + +chk=$(printf "Mount\nUnmount" | rofi -config $roficonfig -dmenu -i -hover-select -p "Android Device: ") + +case $chk in + Unmount) + unmountable=$(grep simple-mtpfs /etc/mtab 2>/dev/null) + if [ -z "$unmountable" ]; then + printf "exit" | rofi -config $roficonfig -dmenu -i -only-match -p "Nothing to Unmount" && exit + else + devices="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | rofi -config $roficonfig -dmenu -fuzzy -hover-select -i -p "Choose Device to Unmount")" + fusermount -u $devices && printf "exit" | rofi -config $roficonfig -dmenu -i -only-match -p "Unmounted Successfully" + fi + ;; + Mount) + device="$(echo "$androiddevices" | rofi -config $roficonfig -dmenu -i -hover-select -p "Choose Device")" + simple-mtpfs --device "$device" "$mountpoint" && echo "exit" | rofi -config $roficonfig -dmenu -i -only-match -p "Mounted Successfully" && exit + echo "Ok" | rofi -config $roficonfig -dmenu -i -p "Tap Allow on your phone, after that Enter." + simple-mtpfs --device "$device" "$mountpoint" && echo "exit" | rofi -config $roficonfig -dmenu -only-match -i -p "Mounted Successfully" || echo "exit" | rofi -config $roficonfig -only-match -dmenu -i -p "Not mounted" +esac 2>/dev/null diff --git a/rofi/mount/dmenu.rasi b/rofi/mount/dmenu.rasi new file mode 100644 index 0000000..3b5f10a --- /dev/null +++ b/rofi/mount/dmenu.rasi @@ -0,0 +1,79 @@ + +configuration { + sort: true; + sorting-method: "normal"; + disable-history: false; + scroll-method: 0; + window-thumbnail: true; +} + +@theme "/dev/null" + +* { + bg: #0C0F09; + fg: #05E289; + bgAlt: #1B1E25; + button: #05E289; + background-color: @bg; + text-color: @fg; +} +@import "../Themes/style.rasi" + +mainbox { children: [ inputbar, listview ]; } + +window { + transparency: "real"; + width: 600px; + border: 15px 15px 15px 15px; + border-radius: 12px; + border-color: @bg; + height: 500px; +} + +inputbar { + children: [ prompt, entry ]; + expand: false; + padding: 10px 10px 10px 10px; +} + +prompt { + enabled: true; + padding: 10px; + border-radius: 15px; +} + +entry { + background-color: @bgAlt; + placeholder: "Search"; + expand: true; + padding: 10px; + border-radius: 15px; +} + +listview { + columns: 2; + cycle: true; + dynamic: true; + layout: vertical; + scrollbar: false; +} + +element { + orientation: vertical; + margin: 4px 4px 4px 4px; + border-radius: 10px; + background-color: @bgAlt; +} + +element-text { + expand: true; + margin: 12px 15px 12px 15px; + background-color: inherit; + text-color: inherit; +} + +element selected { + background-color: @fg; + text-color: @bgAlt; + border-radius: 10px; +} diff --git a/rofi/mount/mountusb b/rofi/mount/mountusb new file mode 100644 index 0000000..c8df549 --- /dev/null +++ b/rofi/mount/mountusb @@ -0,0 +1,92 @@ +#!/bin/sh + +# merged and modified luke smith's mount and unmount script and imported to rofi +#S4NKALP + +# ┌─┐┌─┐┌┐┌┌─┐┬┌─┐┬ ┬┬─┐┌─┐┌┬┐┬┌─┐┌┐┌┌─┐ +# │ │ ││││├┤ ││ ┬│ │├┬┘├─┤ │ ││ ││││└─┐ +# └─┘└─┘┘└┘└ ┴└─┘└─┘┴└─┴ ┴ ┴ ┴└─┘┘└┘└─┘ + +# Rofi Configs +roficonfig=~/.config/rofi/mount/dmenu.rasi +rofiprompt=~/.config/rofi/mount/prompt.rasi + +# Always mount every thing here or in it's subdirectories +mountdir=/mnt + +# uncomment this line if you already have askpass setuped. +[ -z "$SUDO_ASKPASS" ] && export SUDO_ASKPASS=~/.config/rofi/mount/askpass + +# ┌┬┐┌─┐┬ ┬┌┐┌┌┬┐ ┌─┐┌─┐┬─┐┬┌─┐┌┬┐ +# ││││ ││ ││││ │ └─┐│ ├┬┘│├─┘ │ +# ┴ ┴└─┘└─┘┘└┘ ┴ └─┘└─┘┴└─┴┴ ┴ + +mountable="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')" + +getmount() { +[ -z "$chosen" ] && exit 1 +mp="$(find $1 2>/dev/null | rofi -config $roficonfig -dmenu -i -fuzzy -hover-select -p "Type in mount point. or +Type folder name to create")" || exit 1 +test -z "$mp" && exit 1 +if [ ! -d "$mp" ]; then + mkdiryn=$(printf "Yes\\nNo" | rofi -config $rofiprompt -dmenu -fuzzy -i -hover-select -p "$mp does not exist. Create it? (in $mountdir)") || exit 1 +[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mountdir/$mp" || sudo -A mkdir -p "$mountdir/$mp") && mp=$mountdir/$mp +fi +} + +mountusb() { \ +chosen="$(echo "$mountable" | rofi -config $rofiprompt -dmenu -i -fuzzy -hover-select -p "Mount which drive?")" || exit 1 +chosen="$(echo "$chosen" | awk '{print $1}')" +sudo -A mount "$chosen" 2>/dev/null && printf "exit" | rofi -config $rofiprompt -dmenu -i -only-match -p "Mounted $chosen to $mp" && exit 0 +alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}') +getmount "$mountdir -type d $alreadymounted" +partitiontype="$(lsblk -no "fstype" "$chosen")" + +case "$partitiontype" in + "vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000 && printf "exit" | rofi -config $rofiprompt -dmenu -i -only-match -p "Mounted $chosen to $mp" && exit 0 + ;; + "exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)" && printf "exit" | rofi -config $rofiprompt -dmenu -i -only-match -p "Mounted $chosen to $mp" && exit 0 + ;; + *) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp" && printf "exit" | rofi -config $rofiprompt -dmenu -i -only-match -p "Mounted $chosen to $mp" && exit 0 + ;; +esac +printf "exit" | rofi -config $rofiprompt -dmenu -i -only-match -p "Failed to Mount $chosen to $mp" && exit 0 + +} + +# ┬ ┬┌┐┌┌┬┐┌─┐┬ ┬┌┐┌┌┬┐ ┌─┐┌─┐┬─┐┬┌─┐┌┬┐ +# │ ││││││││ ││ ││││ │ └─┐│ ├┬┘│├─┘ │ +# └─┘┘└┘┴ ┴└─┘└─┘┘└┘ ┴ └─┘└─┘┴└─┴┴ ┴ + +unmountable=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}') + +unmountusb() { + [ -z "$unmountable" ] && exit + chosen="$(echo "$unmountable" | rofi -config $rofiprompt -dmenu -fuzzy -hover-select -i -p "Unmount which drive?")" || exit 1 + chosen="$(echo "$chosen" | awk '{print $1}')" + [ -z "$chosen" ] && exit + sudo -A umount "$chosen" && printf "exit" | rofi -config $rofiprompt -dmenu -i -only-match -p "Unmounted $chosen" && exit +} + +# ┬─┐┌─┐┌─┐┬ +# ├┬┘│ │├┤ │ +# ┴└─└─┘└ ┴ + +chk=$(printf "Mount\nUnmount" | rofi -config $rofiprompt -dmenu -i -hover-select -p "USB/Drives" ) + +case $chk in + Unmount) + if [ -z "$unmountable" ]; then + echo "No USB drives to unmount." && exit + else + unmountusb + fi + ;; + Mount) + if [ -z "$mountable" ]; then + notify-send "No USB drives detected" && exit + else + mountusb + fi +esac + diff --git a/rofi/mount/passwd.rasi b/rofi/mount/passwd.rasi new file mode 100644 index 0000000..2b85f4a --- /dev/null +++ b/rofi/mount/passwd.rasi @@ -0,0 +1,82 @@ +configuration { + font: "AlegreyaSans Bold 16"; + sort: true; + sorting-method: "normal"; + disable-history: false; + scroll-method: 0; + window-thumbnail: true; +} + +@theme "/dev/null" + +* { + bg: #0C0F09; + fg: #05E289; + bgAlt: #1B1E25; + button: #05E289; + background-color: @bg; + text-color: @fg; +} + +@import "../Themes/style.rasi" + +mainbox { children: [ inputbar, listview ]; } + +window { + transparency: "real"; + width: 400px; + border: 15px 15px 15px 15px; + border-radius: 15px; + height: 200px; + border-color: @bg; +} + +inputbar { + children: [ prompt, entry ]; + expand: false; + padding: 10px 10px 10px 10px; +} + +prompt { + enabled: true; + background-color: @bg; + padding: 10px; + border-radius: 15px; +} + +entry { + background-color: @bgAlt; + placeholder: "Password"; + expand: true; + padding: 10px; + border-radius: 15px; +} + +listview { + columns: 2; + cycle: true; + dynamic: true; + layout: vertical; + scrollbar: false; +} + +element { + orientation: vertical; + margin: 5px 10px 5px 10px; + border-radius: 10px; + background-color: @bgAlt; +} + +element-text { + expand: true; + margin: 10px 15px 10px 15px; + background-color: inherit; + text-color: inherit; +} + +element selected { + background-color: @fg; + text-color: @bgAlt; + border-radius: 10px; +} + diff --git a/rofi/mount/prompt.rasi b/rofi/mount/prompt.rasi new file mode 100644 index 0000000..0bf3c5c --- /dev/null +++ b/rofi/mount/prompt.rasi @@ -0,0 +1,72 @@ +configuration { + sort: true; + sorting-method: "normal"; + disable-history: false; + scroll-method: 0; + window-thumbnail: true; +} + +@theme "/dev/null" + +* { + bg: #0C0F09; + fg: #05E289; + bgAlt: #1B1E25; + button: #05E289; + background-color: @bg; + text-color: @fg; +} + +@import "../Themes/style.rasi" + +mainbox { children: [ inputbar, listview ]; } + +window { + transparency: "real"; + width: 600px; + border: 15px 15px 15px 15px; + border-radius: 15px; + height: 500px; + border-color: @bg; +} + +inputbar { + children: [ prompt ]; + expand: false; + padding: 10px 10px 10px 10px; +} + +prompt { + enabled: true; + background-color: @bg; + padding: 10px; + border-radius: 15px; +} + +listview { + columns: 2; + cycle: true; + dynamic: true; + layout: vertical; + scrollbar: false; +} + +element { + orientation: vertical; + margin: 3px 5px 3px 5px; + border-radius: 10px; + background-color: @bgAlt; +} + +element-text { + expand: true; + margin: 10px 15px 10px 15px; + background-color: inherit; + text-color: inherit; +} + +element selected { + background-color: @fg; + text-color: @bgAlt; + border-radius: 10px; +} diff --git a/rofi/screen/config.rasi b/rofi/screen/config.rasi new file mode 100644 index 0000000..cdb14ab --- /dev/null +++ b/rofi/screen/config.rasi @@ -0,0 +1,47 @@ + +@theme "/dev/null" + +* { + bg: #0C0F09; + fg: #05E289; + bgAlt: #1B1E25; + background-color: @bg; + text-color: @fg; +} + +@import "../Themes/style.rasi" + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 8px 8px 10px 12px; + padding: 5px 5px 5px 5px; + font: "FiraCode Nerd Font 30"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @fg; + text-color: @bgAlt; +} + diff --git a/rofi/screen/screen b/rofi/screen/screen new file mode 100644 index 0000000..67113a2 --- /dev/null +++ b/rofi/screen/screen @@ -0,0 +1,56 @@ +#!/bin/sh + +# ┌─┐┌─┐┬─┐┌─┐┌─┐┌┐┌┌─┐┬ ┬┌─┐┌┬┐ +# └─┐│ ├┬┘├┤ ├┤ │││└─┐├─┤│ │ │ +# └─┘└─┘┴└─└─┘└─┘┘└┘└─┘┴ ┴└─┘ ┴ + +# author Sankalp +# github S4NKALP + +# ┬─┐┌─┐┌─┐┬ +# ├┬┘│ │├┤ │ +# ┴└─└─┘└ ┴ + +# icon for notification +icon=~/.config/rofi/screen/screen.png +# rofi config +roficonfig=~/.config/rofi/screen/config.rasi + +screen1=$(xrandr -q | grep "connected" | awk '/ connected/ {print $1}' | head -n 1) +screen2=$(xrandr -q | grep "connected" | awk '/ connected/ {print $1}' | tail -n 1) + +Laptop="" +Monitor="" +Dualscreen="" +rofiopt="$Laptop\n$Monitor\n$Dualscreen" + +rofi=$(printf "$rofiopt" | rofi -config $roficonfig -dmenu -i ) + +[ "$screen1" = "$screen2" ] && notify-send -i "$icon" "Sceond Screen is not connected" && exit +[ -z "$rofi" ] && exit + +reload() { +# add script to reset wallpaper and bar. +# assuming you're setting those with wm, reloading works too. + [ -n $(pgrep bspwm) ] && bspc wm -r + [ -n $(pgrep awesome) ] && echo 'awesome.restart()' | awesome-client +} + +case $rofi in + $Laptop) + xrandr --output $screen1 --auto + xrandr --output $screen2 --off + reload + ;; + + $Monitor) + xrandr --output $screen2 --auto + xrandr --output $screen1 --off + reload + ;; + + $Dualscreen) + xrandr --output $screen1 --auto + xrandr --output $screen2 --right-of $screen1 --auto + reload +esac diff --git a/rofi/screen/screen.png b/rofi/screen/screen.png new file mode 100644 index 0000000..a77fbd4 Binary files /dev/null and b/rofi/screen/screen.png differ diff --git a/rofi/screenshot/Themes/Catpuccin/blue.rasi b/rofi/screenshot/Themes/Catpuccin/blue.rasi new file mode 100644 index 0000000..3d666fe --- /dev/null +++ b/rofi/screenshot/Themes/Catpuccin/blue.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #161320; + fg: #96CDF8; + button: #1E1E2E; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Catpuccin/green.rasi b/rofi/screenshot/Themes/Catpuccin/green.rasi new file mode 100644 index 0000000..761587c --- /dev/null +++ b/rofi/screenshot/Themes/Catpuccin/green.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #161320; + fg: #ABE9B3; + button: #1E1E2E; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Catpuccin/mauve.rasi b/rofi/screenshot/Themes/Catpuccin/mauve.rasi new file mode 100644 index 0000000..db66f43 --- /dev/null +++ b/rofi/screenshot/Themes/Catpuccin/mauve.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #161320; + fg: #DDB6f2; + button: #1E1E2E; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Catpuccin/red.rasi b/rofi/screenshot/Themes/Catpuccin/red.rasi new file mode 100644 index 0000000..6725625 --- /dev/null +++ b/rofi/screenshot/Themes/Catpuccin/red.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #161320; + fg: #F28FAD; + button: #1E1E2E; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Nord/blue.rasi b/rofi/screenshot/Themes/Nord/blue.rasi new file mode 100644 index 0000000..46028d8 --- /dev/null +++ b/rofi/screenshot/Themes/Nord/blue.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #2E3440; + fg: #81A1C1; + button: #3B4252; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Nord/green.rasi b/rofi/screenshot/Themes/Nord/green.rasi new file mode 100644 index 0000000..8924143 --- /dev/null +++ b/rofi/screenshot/Themes/Nord/green.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #2E3440; + fg: #A3BE8C; + button: #3B4252; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Nord/orange.rasi b/rofi/screenshot/Themes/Nord/orange.rasi new file mode 100644 index 0000000..7f58b66 --- /dev/null +++ b/rofi/screenshot/Themes/Nord/orange.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #2E3440; + fg: #D08770; + button: #3B4252; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Nord/pink.rasi b/rofi/screenshot/Themes/Nord/pink.rasi new file mode 100644 index 0000000..e4c142e --- /dev/null +++ b/rofi/screenshot/Themes/Nord/pink.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #2E3440; + fg: #BF616A; + button: #3B4252; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/Nord/purple.rasi b/rofi/screenshot/Themes/Nord/purple.rasi new file mode 100644 index 0000000..09b4267 --- /dev/null +++ b/rofi/screenshot/Themes/Nord/purple.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #2E3440; + fg: #B48EAD; + button: #3B4252; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/OneDark/blue.rasi b/rofi/screenshot/Themes/OneDark/blue.rasi new file mode 100644 index 0000000..313c500 --- /dev/null +++ b/rofi/screenshot/Themes/OneDark/blue.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #1E222A; + fg: #61AFEF; + button: #353845; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/OneDark/cd b/rofi/screenshot/Themes/OneDark/cd new file mode 100644 index 0000000..610a9a6 --- /dev/null +++ b/rofi/screenshot/Themes/OneDark/cd @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #1E222A; + fg: #7EC7A2; + button: #353845; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/OneDark/green.rasi b/rofi/screenshot/Themes/OneDark/green.rasi new file mode 100644 index 0000000..610a9a6 --- /dev/null +++ b/rofi/screenshot/Themes/OneDark/green.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #1E222A; + fg: #7EC7A2; + button: #353845; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/TokyoNight/blue.rasi b/rofi/screenshot/Themes/TokyoNight/blue.rasi new file mode 100644 index 0000000..3d666fe --- /dev/null +++ b/rofi/screenshot/Themes/TokyoNight/blue.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #161320; + fg: #96CDF8; + button: #1E1E2E; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @bg; + text-color: @bg; +} + diff --git a/rofi/screenshot/Themes/TokyoNight/config.rasi b/rofi/screenshot/Themes/TokyoNight/config.rasi new file mode 100644 index 0000000..97ce4da --- /dev/null +++ b/rofi/screenshot/Themes/TokyoNight/config.rasi @@ -0,0 +1,45 @@ + +@theme "/dev/null" + +* { + bg: #0C0F09; + fg: #05E289; + button: #1B1E25; + background-color: @bg; + text-color: @fg; +} + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: #05E289; + text-color: #1B1E25; +} + diff --git a/rofi/screenshot/camera.png b/rofi/screenshot/camera.png new file mode 100644 index 0000000..f1dce98 Binary files /dev/null and b/rofi/screenshot/camera.png differ diff --git a/rofi/screenshot/config.rasi b/rofi/screenshot/config.rasi new file mode 100644 index 0000000..c126db4 --- /dev/null +++ b/rofi/screenshot/config.rasi @@ -0,0 +1,44 @@ +@theme "/dev/null" + +* { + bg: #0C0F09; + fg: #05E289; + bgAlt: #1B1E25; + background-color: @bg; + text-color: @fg; +} +@import "../Themes/style.rasi" + +window { + transparency: "real"; + width: 100px; + height: 260px; + location: east; + x-offset: -10px; +} + +mainbox { children: [ listview ]; } + +listview { + cycle: true; + dynamic: true; + layout: vertical; + padding: 10px; +} + +element { + padding: 0px 0px 0px 0px; + border-radius: 8px; +} + +element-text { + margin: 5px 8px 5px 12px; + padding: 4px 5px 4px 5px; + font: "FiraCode Nerd Font 35"; + background-color: inherit; + text-color: inherit; +} +element selected { + background-color: @fg; + text-color: @bgAlt; +} diff --git a/rofi/screenshot/screenshot b/rofi/screenshot/screenshot new file mode 100644 index 0000000..df7528b --- /dev/null +++ b/rofi/screenshot/screenshot @@ -0,0 +1,67 @@ +#!/bin/sh + +# ┌─┐┌─┐┬─┐┌─┐┌─┐┌┐┌┌─┐┬ ┬┌─┐┌┬┐ +# └─┐│ ├┬┘├┤ ├┤ │││└─┐├─┤│ │ │ +# └─┘└─┘┴└─└─┘└─┘┘└┘└─┘┴ ┴└─┘ ┴ + +# author Sankalp +# github S4NAKLP + +# ┌─┐┌─┐┌┐┌┌─┐┬┌─┐┬ ┬┬─┐┌─┐┌┬┐┬┌─┐┌┐┌┌─┐ +# │ │ ││││├┤ ││ ┬│ │├┬┘├─┤ │ ││ ││││└─┐ +# └─┘└─┘┘└┘└ ┴└─┘└─┘┴└─┴ ┴ ┴ ┴└─┘┘└┘└─┘ + +# Save Screenshots here +screenshotdir=~/media/Pictures/Screenshots +# file name +file=$screenshotdir/$(date '+%y%m%d-%H%M-%S').png +# icon for notification +icon=~/.config/rofi/screenshot/camera.png +# rofi config +roficonfig=~/.config/rofi/screenshot/config.rasi +#make sure you have directory +[ -d "$screenshotdir" ] || mkdir -pv "$screenshotdir" + +# ┬─┐┌─┐┌─┐┬ +# ├┬┘│ │├┤ │ +# ┴└─└─┘└ ┴ + +area="" +cwin="" +full="" +copy="" +save="" + +rofiopt="$area\n$cwin\n$full" +rofi=$(printf "$rofiopt" | rofi -config $roficonfig -dmenu -i ) +[ -z "$rofi" ] && exit +option="$save\n$copy" +saveopt=$(printf "$option" | rofi -config $roficonfig -dmenu -i ) + +case $rofi in + "$area") + if [ "$saveopt" = "$copy" ]; then + notify-send -i $icon --urgency low 'Select Area' + maim -u -m 5 -s | xclip -selection clipboard -t image/png && notify-send -i $icon --urgency low 'Screenshot copied' || notify-send -i $icon 'failed to take screenshot' + elif [ "$saveopt" = "$save" ]; then + notify-send -i $icon --urgency low 'Select Area' + maim -u -m 5 -s $file && notify-send -i $icon --urgency low 'Screenshot Taken' || notify-send -i $icon 'failed to take screenshot' + fi + ;; + "$cwin") + if [ "$saveopt" = "$copy" ]; then + maim -u -m 5 -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png && notify-send -i $icon --urgency low 'Screenshot copied' || notify-send -i $icon 'failed to take screenshot' + elif [ "$saveopt" = "$save" ]; then + maim -u -m 5 -i "$(xdotool getactivewindow)" $file && notify-send -i $icon --urgency low 'Screenshot Taken' || notify-send -i $icon 'failed to take screenshot' + fi + ;; + "$full") + if [ "$saveopt" = "$copy" ]; then + sleep 2 + maim -u -m 5 | xclip -selection clipboard -t image/png && notify-send -i $icon --urgency low 'Screenshot copied' || notify-send -i $icon 'failed to take screenshot' + elif [ "$saveopt" = "$save" ]; then + sleep 2 + maim -u -m 5 $file && notify-send -i $icon --urgency low 'Screenshot Taken' || notify-send -i $icon 'failed to take screenshot' + fi + ;; +esac