Added i3wm, vim and zsh config.

This commit is contained in:
id101010
2016-08-31 00:13:19 +02:00
parent 9f49d7cf22
commit d4bf142d23
8 changed files with 585 additions and 0 deletions

19
i3wm/Authenticator.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
SECRET_GOOGLE="asdf"
SECRET_FACEBOOK="asdf"
SECRET_DROPBOX="asdf"
ARG="${1}"
case ${ARG} in
"google")
jauth -secret=${SECRET_GOOGLE}
;;
"facebook")
jauth -secret=${SECRET_FACEBOOK}
;;
"dropbox")
jauth -secret=${SECRET_DROPBOX}
;;
esac

277
i3wm/config Normal file
View File

@@ -0,0 +1,277 @@
#######################################
# _____ ____ #
# |_ _||___ \ #
# | | __) |__ __ _ __ ___ #
# | | |__ < \ \ /\ / /| '_ ` _ \ #
# _| |_ ___) | \ V V / | | | | | | #
# |_____||____/ \_/\_/ |_| |_| |_| #
# #
#######################################
#############################################
# General configurations #
#############################################
# font
set $font "pango:RobotoMono 12"
font $font
# floating modifier
# mod1 = Alt (xmodmap to show)
# mod4 = Winkey (xmodmap to show)
set $mod mod4
floating_modifier $mod
# remove window decorations
new_window pixel
# focus follows mouse
focus_follows_mouse yes
#############################################
# Script Section #
#############################################
#
# "xev" and "showkeys" can be usefull to determine the keycodes.
#
# Sound softkeys management
bindsym Print exec ~/.i3/volnotid.sh down
bindsym Scroll_Lock exec ~/.i3/volnotid.sh up
bindsym Pause exec ~/.i3/volnotid.sh mute
# Display brightness management
bindsym XF86MonBrightnessUp exec "xbacklight +10"
bindsym XF86MonBrightnessDown exec "xbacklight -10"
# Lenovo Key wifi-menu
bindsym XF86Launch1 exec urxvt -e sh -c "sudo wifi-menu wlp3s0"
# jauth two factor authenticator
bindsym $mod+F1 exec ~/.i3/Authenticator.sh google
bindsym $mod+F2 exec ~/.i3/Authenticator.sh facebook
bindsym $mod+F3 exec ~/.i3/Authenticator.sh dropbox
# start dmenu-launcher
bindsym $mod+d exec ~/.i3/i3dmenu-wrapper.sh
# lock i3 with i3lock
bindsym $mod+Shift+x exec ~/.i3/i3blur.py && systemctl suspend
#############################################
# Keymaps #
#############################################
# start terminal
bindsym $mod+Return exec --no-startup-id i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
# change focus vim Style
bindsym $mod+h focus left
bindsym $mod+l focus right
bindsym $mod+j focus up
bindsym $mod+k focus down
# move focused window vim Style
bindsym $mod+Shift+h move left
bindsym $mod+Shift+l move right
bindsym $mod+Shift+j move up
bindsym $mod+Shift+k move down
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+v split h
# split in vertical orientation
bindsym $mod+c split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace
bindsym $mod+Shift+r restart
# exit i3
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Exit i3?' -b 'Yes' 'i3-msg exit'"
# enter the resize mode
bindsym $mod+r mode "resize"
# scratchpad
bindsym $mod+y scratchpad show
bindsym $mod+x move scratchpad
#############################################
# Workspace & Tags #
#############################################
# name for the workspaces
set $tag1 "1 Terminal"
set $tag2 "2 Internet"
set $tag3 "3 Coding"
set $tag4 "4 Music"
# switch to workspace
bindsym $mod+1 workspace $tag1
bindsym $mod+2 workspace $tag2
bindsym $mod+3 workspace $tag3
bindsym $mod+4 workspace $tag4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $tag1
bindsym $mod+Shift+2 move container to workspace $tag2
bindsym $mod+Shift+3 move container to workspace $tag3
bindsym $mod+Shift+4 move container to workspace $tag4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
#############################################
# Resize handling #
#############################################
mode "resize" {
# bindings to resize
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# back to normal
bindsym Return mode "default"
bindsym Escape mode "default"
}
#############################################
# Colors #
#############################################
# colorscheme
set $DARKBROWN #402e2e
set $LIGHTBROWN #978965
set $DARKGREY #1f1f1f
set $DARKRED #9b0e0e
# name #top #border #text
client.focused $DARKBROWN $LIGHTBROWN $DARKBROWN
client.unfocused $DARKBROWN $DARKBROWN $LIGHTBROWN
client.focused_inactive $DARKBROWN $DARKBROWN $LIGHTBROWN
client.urgent $DARKBROWN $DARKBROWN $LIGHTBROWN
#############################################
# i3-bar #
#############################################
bar {
position top
font $font
i3bar_command /usr/bin/i3bar
status_command i3status -c ~/.i3/i3status.conf
separator_symbol ".::"
colors {
statusline $LIGHTBROWN
background $DARKGREY
separator $DARKRED
# name #border #bg #text
focused_workspace $LIGHTBROWN $DARKBROWN $LIGHTBROWN
active_workspace $DARKBROWN $DARKBROWN $LIGHTBROWN
inactive_workspace $DARKBROWN $DARKBROWN $LIGHTBROWN
urgent_workspace $DARKBROWN $DARKBROWN $LIGHTBROWN
}
}
#############################################
# specific windows #
#############################################
# always floating
for_window [class="Thunar"] floating enable
for_window [class="Nautilus"] floating enable
for_window [class="GParted"] floating enable
for_window [class="Gedit"] floating enable
for_window [class="Evince"] floating enable
for_window [class="Telegram"] floating enable
for_window [class="teamspeak3"] floating enable
for_window [class="rhythmbox"] floating enable
for_window [class="LibreOffice"] floating enable
for_window [class="JAuth"] floating enable
# 0px Border
for_window [class="chrome"] border none
for_window [class="Firefox"] border none
# 1px Border
for_window [class="URxvt" ] border 1pixel
#############################################
# auto start with i3 #
#############################################
# less eye pain
exec --no-startup-id redshift-gtk
exec --no-startup-id compton -cCGb
# fucking no beep!
exec --no-startup-id xset b off
# set dpi for my monitor
exec --no-startup-id xrandr --dpi 81
# set mouse accel
exec --no-startup-id xset m 1/4 1
# volnoti volume changer
exec --no-startup-id volnoti
# numlock on by default
exec --no-startup-id numlockx on
# wallpapers
exec --no-startup-id nitrogen --restore
# archlinux update notifier
exec --no-startup-id aarchup
# dropbox daemon
exec dropbox start
# telegram
#exec -no-startup-id telegram-desktop

48
i3wm/i3blur.py Executable file
View File

@@ -0,0 +1,48 @@
#!/usr/bin/python2
import gtk.gdk
import os, sys
from PIL import ImageFilter
from PIL import Image
# Get screen and its size
w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "[DEBUG]: The size of the window is %d x %d" % sz
# Get a drawable with the size of the desktop
scr = gtk.gdk.Pixbuf( gtk.gdk.COLORSPACE_RGB,
False,
8,
sz[0],
sz[1])
# Fill it with the screenshot
scr = scr.get_from_drawable(w,
w.get_colormap(),
0,
0,
0,
0,
sz[0],
sz[1])
# Save the screenshot as png
if(scr != None):
scr.save("/tmp/i3screen.png","png")
print "[DEBUG]: Screenshot saved to /tmp/i3screen.png."
else:
print "[DEBUG]: Unable to get the screenshot."
# Load the screenshot as image and blur it
iml = Image.open("/tmp/i3screen.png")
iml = iml.filter(ImageFilter.BLUR)
# Save the blured screenshot and call i3lock
if(iml != None):
iml.save("/tmp/i3screenblr.png", "png")
os.system("i3lock -i /tmp/i3screenblr.png")
print "[DEBUG]: Screenshot blured and saved to /tmp/i3screenblr.png."
else:
print "[DEBUG]: Unable to blur the screenshot."

8
i3wm/i3dmenu-wrapper.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
BACKGROUND='#402e2e'
FOREGOURND='#978965'
SELECTED_BACKGROUND='#808080'
SELECTED_FOREGROUND='#ffff00'
i3-dmenu-desktop --dmenu='dmenu -i -nb '#402e2e' -nf '#978965' -sb '#808080' -sf '#ffff00' -l 8'

63
i3wm/i3status.conf Normal file
View File

@@ -0,0 +1,63 @@
# i3status configuration file.
general {
colors = true
interval = 1
}
#order += "ipv6"
order += "disk /home"
order += "disk /"
order += "disk /media/Data1"
order += "disk /media/Data2"
order += "run_watch VPN"
order += "ethernet eth0"
order += "cpu_temperature 0"
order += "volume master"
order += "tztime local"
ethernet eth0 {
format_up = "🔌 %ip (%speed)"
format_down = "🔌 down"
}
run_watch DHCP {
pidfile = "/var/run/dhclient*.pid"
}
run_watch VPN {
pidfile = "/var/run/vpn/pid"
}
tztime local {
format = " 📅 %d-%m-%Y 🕑 %H:%M:%S"
}
cpu_temperature 0 {
format = "🌡 %degrees °C"
max_threshold = 65
path = "/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input"
}
disk "/" {
format = "root: %free"
}
disk "/home" {
format = "home: %free"
}
disk "/media/Data1" {
format = "data1: %free"
}
disk "/media/Data2" {
format = "data2: %free"
}
volume master {
format = "♪ %volume"
device = "default"
mixer = "Master"
mixer_idx = 0
}

37
i3wm/volnotid.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
VOLUME=$(amixer get Master | grep Mono: | sed 's|[^[]*\[\([0-9]*\).*|\1|')
VALUE=3dB
MUTE=0
case "$1" in
"up")
# Increase Volume
[[ "$VOLUME" -eq 100 ]] && VALUE=0
amixer -q set Master $VALUE+ unmute && killall -SIGUSR1 i3status
MUTE=0
;;
"down")
# Decrease Volume
amixer -q set Master $VALUE- unmute && killall -SIGUSR1 i3status
MUTE=0
# If the Volume is already 0, then mute
if [ "$VOLUME" == "0" ]; then
MUTE=1
amixer -q set Master toggle && killall -SIGUSR1 i3status
fi
;;
"mute")
# Mute
amixer -q set Master toggle && killall -SIGUSR1 i3status
MUTE=1
;;
esac
VOLUME=$(amixer get Master | grep Mono: | sed 's|[^[]*\[\([0-9]*\).*|\1|')
if [ "$MUTE" == "0" ]; then
volnoti-show $VOLUME
else
volnoti-show -m $VOLUME
fi