@ -1,175 +0,0 @@ |
|||||
# vim: filetype=i3 |
|
||||
# File originally by Luke Smith <https://lukesmith.xyz> |
|
||||
|
|
||||
# This config file will use environmental variables such as $BROWSER and $TERMINAL. |
|
||||
# You can set these variables in ~/.profile or ~/.bash_profile if you have it as below: |
|
||||
# |
|
||||
# export FILE="ranger" |
|
||||
# export TERMINAL="st" |
|
||||
|
|
||||
# #------Auto Start-------# # |
|
||||
exec --no-startup-id owncloud |
|
||||
exec --no-startup-id toggletouchpad |
|
||||
|
|
||||
# #---Basic Definitions---# # |
|
||||
for_window [class="^.*"] border pixel 1 |
|
||||
gaps inner 0 |
|
||||
gaps outer 0 |
|
||||
set $term --no-startup-id $TERMINAL |
|
||||
set $mod Mod4 |
|
||||
font xft:mono 10 |
|
||||
|
|
||||
# #---Dropdown Windows---# # |
|
||||
# General dropdown window traits. The order can matter. |
|
||||
for_window [instance="dropdown_*"] floating enable |
|
||||
for_window [class="de.uol.swp.client.ClientApp"] floating enable |
|
||||
for_window [instance="dropdown_*"] move scratchpad |
|
||||
for_window [instance="dropdown_*"] sticky enable |
|
||||
for_window [instance="dropdown_*"] scratchpad show |
|
||||
for_window [instance="dropdown_tmuxdd"] resize set 625 450 |
|
||||
for_window [instance="dropdown_dropdowncalc"] resize set 800 300 |
|
||||
for_window [instance="dropdown_tmuxdd"] border pixel 3 |
|
||||
for_window [instance="dropdown_dropdowncalc"] border pixel 2 |
|
||||
for_window [instance="dropdown_*"] move position center |
|
||||
|
|
||||
|
|
||||
bar { |
|
||||
font pango:mono 10 |
|
||||
status_command i3blocks |
|
||||
position top |
|
||||
mode dock |
|
||||
modifier None |
|
||||
colors { |
|
||||
background #000000 |
|
||||
statusline #ffffff |
|
||||
separator #333333 |
|
||||
#Bord #Back #Text |
|
||||
focused_workspace #ffa500 #4a4a4a #ffa500 |
|
||||
active_workspace #ffa500 #33333 #ffa500 |
|
||||
inactive_workspace #ffa500 #000000 #ffa500 |
|
||||
urgent_workspace #ffa500 #000000 #900000 |
|
||||
} |
|
||||
} |
|
||||
client.placeholder #242424 #242424 #242424 |
|
||||
client.background #242424 #242424 #242424 |
|
||||
client.focused #4a4a4a #4a4a4a #e5e5e5 #6a6a6a |
|
||||
client.unfocused #4a4a4a #222222 #aaaaaa #222222 |
|
||||
client.focused_inactive #4a4a4a #222222 #a9a9a9 #222222 |
|
||||
client.urgent #4a4a4a #4a4a4a #f7f7f7 #4a4a4a |
|
||||
|
|
||||
|
|
||||
# #---Basic Bindings---# # |
|
||||
bindsym $mod+Shift+Escape exec --no-startup-id prompt "Exit i3?" "i3-msg exit" |
|
||||
|
|
||||
#bindsym $mod+Return taken by sxhkd |
|
||||
|
|
||||
#bindym $mod+b taken by sxhkd |
|
||||
bindsym $mod+Shift+b bar mode toggle |
|
||||
|
|
||||
#bindsym $mod+c taken by sxhkd |
|
||||
|
|
||||
bindsym $mod+Shift+d floating toggle |
|
||||
|
|
||||
bindsym $mod+Shift+f fullscreen toggle |
|
||||
|
|
||||
bindsym $mod+h focus left |
|
||||
bindsym $mod+Shift+h move left 30 |
|
||||
|
|
||||
#bindsym $mod+i taken by sxhkd |
|
||||
bindsym $mod+Shift+i exec --no-startup-id i3resize up |
|
||||
|
|
||||
bindsym $mod+j focus down |
|
||||
bindsym $mod+Shift+j move down 30 |
|
||||
|
|
||||
bindsym $mod+k focus up |
|
||||
bindsym $mod+Shift+k move up 30 |
|
||||
|
|
||||
bindsym $mod+l focus right |
|
||||
bindsym $mod+Shift+l move right 30 |
|
||||
|
|
||||
#bindsym $mod+m taken by sxhkd |
|
||||
bindsym $mod+Shift+m move scratchpad |
|
||||
|
|
||||
#bindsym $mod+n taken by sxhkd |
|
||||
#bindsym $mod+Shift+n taken by sxhkd |
|
||||
|
|
||||
bindsym $mod+Shift+o exec --no-startup-id i3resize right |
|
||||
|
|
||||
#bindym $mod+p taken by sxhkd |
|
||||
|
|
||||
bindsym $mod+q [con_id="__focused__" instance="^(?!dropdown_).*$"] kill |
|
||||
bindsym $mod+Shift+q [con_id="__focused__" instance="^(?!dropdown_).*$"] exec --no-startup-id kill -9 `xdotool getwindowfocus getwindowpid` |
|
||||
|
|
||||
#bindsym $mod+r taken by sxhkd |
|
||||
#bindsym $mod+shift+r taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+s taken by sxhkd |
|
||||
|
|
||||
bindsym $mod+t split toggle |
|
||||
|
|
||||
bindsym $mod+Shift+u exec --no-startup-id i3resize down |
|
||||
|
|
||||
#bindsym $mod+x taken by sxhkd |
|
||||
|
|
||||
bindsym $mod+Shift+z exec --no-startup-id i3resize left |
|
||||
|
|
||||
#bindsym $mod+F5 taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+F6 taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+F7 taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+F8 taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+F9 taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+F10 taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+F11 taken by sxhkd |
|
||||
|
|
||||
#bindsym $mod+F12 taken by sxhkd |
|
||||
|
|
||||
|
|
||||
# #---Workspace Bindings---# # |
|
||||
set $ws1 "1DF" |
|
||||
set $ws2 "2VR" |
|
||||
set $ws3 "3RS" |
|
||||
set $ws4 "4RS" |
|
||||
set $ws5 "5WK" |
|
||||
set $ws6 "6WK" |
|
||||
set $ws7 "7ME" |
|
||||
set $ws8 "8CM" |
|
||||
set $ws9 "9GM" |
|
||||
set $ws0 "0EX" |
|
||||
|
|
||||
# switch to workspace |
|
||||
bindsym $mod+1 workspace $ws1 |
|
||||
bindsym $mod+2 workspace $ws2 |
|
||||
bindsym $mod+3 workspace $ws3 |
|
||||
bindsym $mod+4 workspace $ws4 |
|
||||
bindsym $mod+5 workspace $ws5 |
|
||||
bindsym $mod+6 workspace $ws6 |
|
||||
bindsym $mod+7 workspace $ws7 |
|
||||
bindsym $mod+8 workspace $ws8 |
|
||||
bindsym $mod+9 workspace $ws9 |
|
||||
bindsym $mod+0 workspace $ws0 |
|
||||
|
|
||||
# move focused container to workspace |
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1 |
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2 |
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3 |
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4 |
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5 |
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6 |
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7 |
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8 |
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9 |
|
||||
bindsym $mod+Shift+0 move container to workspace $ws0 |
|
||||
|
|
||||
for_window [class="Pinentry"] sticky enable |
|
||||
for_window [class="sent"] border pixel 0px |
|
||||
for_window [title="GIMP Startup"] move workspace $ws5 |
|
||||
for_window [class="Gimp"] move workspace $ws5 |
|
||||
for_window [window_role="GtkFileChooserDialog"] resize set 800 600 |
|
||||
for_window [window_role="GtkFileChooserDialog"] move position center |
|
||||
for_window [title="Default - Wine desktop"] floating enable |
|
||||
@ -1,39 +0,0 @@ |
|||||
separator_block_width=15 |
|
||||
markup=pango |
|
||||
|
|
||||
[weather] |
|
||||
command=~/.local/bin/statusbar/weather |
|
||||
interval=1200 |
|
||||
signal=5 |
|
||||
|
|
||||
[memory] |
|
||||
command=~/.local/bin/statusbar/memory |
|
||||
interval=30 |
|
||||
label=🧠 |
|
||||
|
|
||||
[cpu] |
|
||||
command=~/.local/bin/statusbar/cpu |
|
||||
interval=15 |
|
||||
label=💻 |
|
||||
|
|
||||
[volume] |
|
||||
command=~/.local/bin/statusbar/volume |
|
||||
interval=once |
|
||||
signal=10 |
|
||||
|
|
||||
[disk] |
|
||||
interval=180 |
|
||||
command=~/.local/bin/statusbar/disk / |
|
||||
|
|
||||
[battery] |
|
||||
command=~/.local/bin/statusbar/battery BAT0 |
|
||||
interval=180 |
|
||||
|
|
||||
[clock] |
|
||||
command=~/.local/bin/statusbar/clock |
|
||||
label=📅 |
|
||||
interval=30 |
|
||||
|
|
||||
[internet] |
|
||||
command=~/.local/bin/statusbar/internet |
|
||||
interval=10 |
|
||||
@ -1,101 +0,0 @@ |
|||||
## Basic binds |
|
||||
#super + shift + escape taken by i3 |
|
||||
super + Return |
|
||||
$TERMINAL |
|
||||
super + b |
|
||||
$BROWSER |
|
||||
super + c |
|
||||
code |
|
||||
#super + shift + d taken by i3 |
|
||||
super + f |
|
||||
$TERMINAL -e $FILE |
|
||||
#super + shift + f taken by i3 |
|
||||
#super + h taken by i3 |
|
||||
#super + shift + h taken by i3 |
|
||||
super + i |
|
||||
intellij-idea-ultimate-edition |
|
||||
#super + shift + i taken by i3 |
|
||||
#super + j taken by i3 |
|
||||
#super + shift + j taken by i3 |
|
||||
#super + k taken by i3 |
|
||||
#super + shift + k taken by i3 |
|
||||
#super + l taken by i3 |
|
||||
#super + shift + l taken by i3 |
|
||||
super + m |
|
||||
thunderbird |
|
||||
#super + shift + m taken by i3 |
|
||||
super + n |
|
||||
$TERMINAL -e newsboat |
|
||||
super + shift + n |
|
||||
i3-scratchpad-dmenu.py |
|
||||
#super + shift + o taken by i3 |
|
||||
super + p |
|
||||
$MUSIC |
|
||||
#super + q taken by i3 |
|
||||
#super + shift + q taken by i3 |
|
||||
super + r |
|
||||
$TERMINAL -e rtv |
|
||||
super + s |
|
||||
startpagesearch |
|
||||
super + shift + r |
|
||||
dmenu_run -c -l 20 |
|
||||
#super + t taken by i3 |
|
||||
#super + shift + u taken by i3 |
|
||||
super + x |
|
||||
xournalpp |
|
||||
#super + shift + z taken by i3 |
|
||||
|
|
||||
super + F4 |
|
||||
togglemonitor |
|
||||
super + F5 |
|
||||
toggletouchpad |
|
||||
super + F6 |
|
||||
dmenumount |
|
||||
super + F7 |
|
||||
dmenuumount |
|
||||
super + F8 |
|
||||
sudo -A systemctl restart NetworkManager |
|
||||
super + F9 |
|
||||
$TERMINAL -e sudo -A nmtui |
|
||||
super + F10 |
|
||||
prompt "Lock computer?" "slock" |
|
||||
super + F11 |
|
||||
prompt "Reboot computer?" "sudo -A shutdown -r now" |
|
||||
super + F12 |
|
||||
prompt "Shutdown computer?" "sudo -A shutdown -h now" |
|
||||
#super + 1 taken by i3 |
|
||||
#super + 2 taken by i3 |
|
||||
#super + 3 taken by i3 |
|
||||
#super + 4 taken by i3 |
|
||||
#super + 5 taken by i3 |
|
||||
#super + 6 taken by i3 |
|
||||
#super + 7 taken by i3 |
|
||||
#super + 8 taken by i3 |
|
||||
#super + 9 taken by i3 |
|
||||
#super + 0 taken by i3 |
|
||||
#super + shift + 1 taken by i3 |
|
||||
#super + shift + 2 taken by i3 |
|
||||
#super + shift + 3 taken by i3 |
|
||||
#super + shift + 4 taken by i3 |
|
||||
#super + shift + 5 taken by i3 |
|
||||
#super + shift + 6 taken by i3 |
|
||||
#super + shift + 7 taken by i3 |
|
||||
#super + shift + 8 taken by i3 |
|
||||
#super + shift + 9 taken by i3 |
|
||||
#super + shift + 0 taken by i3 |
|
||||
|
|
||||
## FN combinations |
|
||||
XF86Launch1 |
|
||||
xset dpms force off |
|
||||
XF86AudioMute |
|
||||
lmc m |
|
||||
XF86AudioMicMute |
|
||||
pactl set-source-mute 1 toggle |
|
||||
XF86AudioLowerVolume |
|
||||
lmc down 5 |
|
||||
XF86AudioRaiseVolume |
|
||||
lmc up 5 |
|
||||
XF86MonBrightnessDown |
|
||||
light -U 15 |
|
||||
XF86MonBrightnessUp |
|
||||
light -A 15 |
|
||||
@ -1,10 +1,12 @@ |
|||||
#!/bin/sh |
#!/bin/sh |
||||
|
|
||||
setbg & # Set the background |
|
||||
sxhkd & # Bind keys |
|
||||
xset r rate 300 50 & # Speed xrate up |
xset r rate 300 50 & # Speed xrate up |
||||
unclutter & # Remove mouse when idle |
unclutter & # Remove mouse when idle |
||||
xcompmgr & # xcompmgr for transparency |
xcompmgr & # xcompmgr for transparency |
||||
dunst & # dunst for notifications |
dunst & # dunst for notifications |
||||
redshift & # redshift for saving your eyes |
redshift & # redshift for saving your eyes |
||||
mpd & # starts the mpd server for music |
mpd & # starts the mpd server for music |
||||
|
toggletouchpad & # deactivates the touchpad |
||||
|
owncloud & |
||||
|
dwmbar & |
||||
|
#sxhkd & |
||||
@ -1,27 +0,0 @@ |
|||||
#!/usr/bin/env python3 |
|
||||
|
|
||||
import i3ipc |
|
||||
import subprocess |
|
||||
import re |
|
||||
|
|
||||
i3 = i3ipc.Connection() |
|
||||
|
|
||||
def get_scratchpad_windows(): |
|
||||
scratchpad_containers = i3.get_tree().scratchpad().descendants() |
|
||||
return filter(lambda c: c.type == 'con' and c.name, scratchpad_containers) |
|
||||
|
|
||||
def dmenu_choose(options): |
|
||||
""" Show a dmenu to choose a string item from a list of *options*. """ |
|
||||
dmenu_process = subprocess.Popen(["dmenu", "-l", "10"], stdin=subprocess.PIPE, stdout=subprocess.PIPE) |
|
||||
stdoutdata, _ = dmenu_process.communicate("\n".join(options).encode()) |
|
||||
return stdoutdata.decode('utf-8') |
|
||||
|
|
||||
def main(): |
|
||||
scratchpad_windows = get_scratchpad_windows() |
|
||||
window_titles = [w.name for w in scratchpad_windows] |
|
||||
if window_titles: |
|
||||
window_to_restore = re.escape(dmenu_choose(window_titles).strip()) |
|
||||
i3.command('[title="{}"] scratchpad show'.format(window_to_restore)) |
|
||||
|
|
||||
if __name__ == '__main__': |
|
||||
main() |
|
||||
@ -1,27 +0,0 @@ |
|||||
#!/bin/sh |
|
||||
# This script was made by `goferito` on Github. |
|
||||
# Some cleanup by Luke. |
|
||||
|
|
||||
[ -z "$1" ] && echo "No direction provided" && exit 1 |
|
||||
distanceStr="2 px or 2 ppt" |
|
||||
|
|
||||
moveChoice() { |
|
||||
i3-msg resize "$1" "$2" "$distanceStr" | grep '"success":true' || \ |
|
||||
i3-msg resize "$3" "$4" "$distanceStr" |
|
||||
} |
|
||||
|
|
||||
case $1 in |
|
||||
up) |
|
||||
moveChoice grow up shrink down |
|
||||
;; |
|
||||
down) |
|
||||
moveChoice shrink up grow down |
|
||||
;; |
|
||||
left) |
|
||||
moveChoice shrink right grow left |
|
||||
;; |
|
||||
right) |
|
||||
moveChoice grow right shrink left |
|
||||
;; |
|
||||
esac |
|
||||
|
|
||||
@ -0,0 +1,10 @@ |
|||||
|
#!/bin/sh |
||||
|
status() { \ |
||||
|
echo "$(volume) | $(internet) | $(clock)" |
||||
|
} |
||||
|
while :; do |
||||
|
xsetroot -name "$(status | tr '\n' ' ')" |
||||
|
|
||||
|
sleep 1m |
||||
|
done |
||||
|
|
||||
@ -0,0 +1,5 @@ |
|||||
|
#!/bin/sh |
||||
|
|
||||
|
# Refresh the dwmbar. |
||||
|
|
||||
|
kill "$(pstree -lp | grep -- -dwmbar\([0-9] | sed "s/.*sleep(\([0-9]\+\)).*/\1/")" |
||||
@ -1,59 +0,0 @@ |
|||||
#!/bin/sh |
|
||||
# Gives a dmenu prompt to mount unmounted drives. |
|
||||
# If they're in /etc/fstab, they'll be mounted automatically. |
|
||||
# Otherwise, you'll be prompted to give a mountpoint from already existsing directories. |
|
||||
# If you input a novel directory, it will prompt you to create that directory. |
|
||||
|
|
||||
getmount() { \ |
|
||||
[ -z "$chosen" ] && exit 1 |
|
||||
mp="$(find $1 2>/dev/null | dmenu -i -p "Type in mount point.")" |
|
||||
[ "$mp" = "" ] && exit 1 |
|
||||
if [ ! -d "$mp" ]; then |
|
||||
mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") |
|
||||
[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") |
|
||||
fi |
|
||||
} |
|
||||
|
|
||||
mountusb() { \ |
|
||||
chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?" | awk '{print $1}')" |
|
||||
sudo -A mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0 |
|
||||
alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$2=="part"&&$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not \\( -path *%s -prune \\) \\ \n",$3}') |
|
||||
getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted" |
|
||||
partitiontype="$(lsblk -no "fstype" "$chosen")" |
|
||||
case "$partitiontype" in |
|
||||
"vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;; |
|
||||
*) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";; |
|
||||
esac |
|
||||
notify-send "💻 USB mounting" "$chosen mounted to $mp." |
|
||||
} |
|
||||
|
|
||||
mountandroid() { \ |
|
||||
chosen=$(echo "$anddrives" | dmenu -i -p "Which Android device?" | cut -d : -f 1) |
|
||||
getmount "$HOME -maxdepth 3 -type d" |
|
||||
simple-mtpfs --device "$chosen" "$mp" |
|
||||
notify-send "🤖 Android Mounting" "Android device mounted to $mp." |
|
||||
} |
|
||||
|
|
||||
asktype() { \ |
|
||||
case $(printf "USB\\nAndroid" | dmenu -i -p "Mount a USB drive or Android device?") in |
|
||||
USB) mountusb ;; |
|
||||
Android) mountandroid ;; |
|
||||
esac |
|
||||
} |
|
||||
|
|
||||
anddrives=$(simple-mtpfs -l 2>/dev/null) |
|
||||
usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | awk '$2=="part"&&$4==""{printf "%s (%s)\n",$1,$3}')" |
|
||||
|
|
||||
if [ -z "$usbdrives" ]; then |
|
||||
[ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit |
|
||||
echo "Android device(s) detected." |
|
||||
mountandroid |
|
||||
else |
|
||||
if [ -z "$anddrives" ]; then |
|
||||
echo "USB drive(s) detected." |
|
||||
mountusb |
|
||||
else |
|
||||
echo "Mountable USB drive(s) and Android device(s) detected." |
|
||||
asktype |
|
||||
fi |
|
||||
fi |
|
||||
@ -1,41 +0,0 @@ |
|||||
#!/bin/sh |
|
||||
# A dmenu prompt to unmount drives. |
|
||||
# Provides you with mounted partitions, select one to unmount. |
|
||||
# Drives mounted at /, /boot and /home will not be options to unmount. |
|
||||
|
|
||||
unmountusb() { |
|
||||
[ -z "$drives" ] && exit |
|
||||
chosen=$(echo "$drives" | dmenu -i -p "Unmount which drive?" | awk '{print $1}') |
|
||||
[ -z "$chosen" ] && exit |
|
||||
sudo -A umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted." |
|
||||
} |
|
||||
|
|
||||
unmountandroid() { \ |
|
||||
chosen=$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?") |
|
||||
[ -z "$chosen" ] && exit |
|
||||
sudo -A umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted." |
|
||||
} |
|
||||
|
|
||||
asktype() { \ |
|
||||
case "$(printf "USB\\nAndroid" | dmenu -i -p "Unmount a USB drive or Android device?")" in |
|
||||
USB) unmountusb ;; |
|
||||
Android) unmountandroid ;; |
|
||||
esac |
|
||||
} |
|
||||
|
|
||||
drives=$(lsblk -nrpo "name,type,size,mountpoint" | awk '$2=="part"&&$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "%s (%s)\n",$4,$3}') |
|
||||
|
|
||||
if ! grep simple-mtpfs /etc/mtab; then |
|
||||
[ -z "$drives" ] && echo "No drives to unmount." && exit |
|
||||
echo "Unmountable USB drive detected." |
|
||||
unmountusb |
|
||||
else |
|
||||
if [ -z "$drives" ] |
|
||||
then |
|
||||
echo "Unmountable Android device detected." |
|
||||
unmountandroid |
|
||||
else |
|
||||
echo "Unmountable USB drive(s) and Android device(s) detected." |
|
||||
asktype |
|
||||
fi |
|
||||
fi |
|
||||
@ -1,20 +0,0 @@ |
|||||
#!/bin/sh |
|
||||
# Gives a dmenu prompt to search Startpage. |
|
||||
# Without input, will open Startpage.com. |
|
||||
# URLs will be directly handed to the browser. |
|
||||
# Anything else, it search it. |
|
||||
browser=${RTVBROWSER:-firefox} |
|
||||
|
|
||||
pgrep -x dmenu && exit |
|
||||
|
|
||||
choice=$(echo "Startpage" | dmenu -i -p "Search Startpage:") || exit 1 |
|
||||
|
|
||||
if [ "$choice" = "Startpage" ]; then |
|
||||
$RTV_BROWSER "https://startpage.com" |
|
||||
else |
|
||||
if echo "$choice" | grep "^(http:\/\/|https:\/\/)?[a-zA-Z0-9]+\.[a-zA-Z]+(/)?.*$"; then |
|
||||
$RTV_BROWSER "$choice" |
|
||||
else |
|
||||
$RTV_BROWSER "https://startpage.com/do/search/?q=$choice" |
|
||||
fi |
|
||||
fi |
|
||||