@ -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 |
|||
|
|||
setbg & # Set the background |
|||
sxhkd & # Bind keys |
|||
xset r rate 300 50 & # Speed xrate up |
|||
unclutter & # Remove mouse when idle |
|||
xcompmgr & # xcompmgr for transparency |
|||
dunst & # dunst for notifications |
|||
redshift & # redshift for saving your eyes |
|||
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 |
|||