summaryrefslogtreecommitdiff
path: root/i3
diff options
context:
space:
mode:
Diffstat (limited to 'i3')
-rw-r--r--i3/.Xmodmap5
-rw-r--r--i3/.config/i3/config199
-rw-r--r--i3/.i3status.conf54
-rw-r--r--i3/.xinitrc23
-rw-r--r--i3/.zprofile3
-rwxr-xr-xi3/Scripts/lc91
-rw-r--r--i3/Scripts/mic.sh19
-rw-r--r--i3/Scripts/net.sh19
-rw-r--r--i3/Scripts/ram.sh19
-rw-r--r--i3/Scripts/runStat.sh6
-rw-r--r--i3/Scripts/status.sh20
11 files changed, 458 insertions, 0 deletions
diff --git a/i3/.Xmodmap b/i3/.Xmodmap
new file mode 100644
index 0000000..08cf429
--- /dev/null
+++ b/i3/.Xmodmap
@@ -0,0 +1,5 @@
+clear lock
+clear control
+keycode 66 = Control_R
+add control = Control_R Control_L
+
diff --git a/i3/.config/i3/config b/i3/.config/i3/config
new file mode 100644
index 0000000..e64b59a
--- /dev/null
+++ b/i3/.config/i3/config
@@ -0,0 +1,199 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod1
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# Before i3 v4.8, we used to recommend this one as the default:
+# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, its unicode glyph coverage is limited, the old
+# X core fonts rendering does not support right-to-left and this being a bitmap
+# font, it doesn’t scale on retina/hidpi displays.
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+i exec --no-startup-id i3-sensible-terminal
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec rofi -show run
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+# 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+e split h
+
+# split in vertical orientation
+bindsym $mod+q split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+t 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
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# DWM alt tab behavior
+bindsym $mod+Tab workspace back_and_forth
+
+# scratchpad
+# Make the currently focused window a scratchpad
+bindsym $mod+Shift+minus move scratchpad
+
+# Show the first scratchpad window
+bindsym $mod+minus scratchpad show
+
+# Mail scratchpad
+bindsym $mod+m [title="^alot"] scratchpad show
+
+# 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 $ws10
+
+# 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 $ws10
+
+# brightness settings
+bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5
+bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5
+
+# volume settings
+bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +5%
+bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -5%
+bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle
+
+# launch script thingy
+bindsym $mod+semicolon exec --no-startup-id Scripts/lc --dmenu
+
+# default app workspaces
+assign [class="qutebrowser"] $ws9
+assign [class="evolution"] $ws8
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ 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
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ status_command i3status
+}
diff --git a/i3/.i3status.conf b/i3/.i3status.conf
new file mode 100644
index 0000000..f36815d
--- /dev/null
+++ b/i3/.i3status.conf
@@ -0,0 +1,54 @@
+# i3status configuration file.
+# see "man i3status" for documentation.
+
+# It is important that this file is edited as UTF-8.
+# The following line should contain a sharp s:
+# ß
+# If the above line is not correctly displayed, fix your editor first!
+
+general {
+ colors = true
+ interval = 5
+}
+
+order += "ipv6"
+order += "wireless _first_"
+order += "ethernet _first_"
+order += "battery all"
+order += "disk /"
+order += "load"
+order += "memory"
+order += "tztime local"
+
+wireless _first_ {
+ format_up = "W: (%quality at %essid) %ip"
+ format_down = "W: down"
+}
+
+ethernet _first_ {
+ format_up = "E: %ip (%speed)"
+ format_down = "E: down"
+}
+
+battery all {
+ format = "%status %percentage %remaining"
+ last_full_capacity = true
+}
+
+disk "/" {
+ format = "%avail"
+}
+
+load {
+ format = "%1min"
+}
+
+memory {
+ format = "%used | %available"
+ threshold_degraded = "1G"
+ format_degraded = "MEMORY < %available"
+}
+
+tztime local {
+ format = "%Y-%m-%d %H:%M:%S"
+}
diff --git a/i3/.xinitrc b/i3/.xinitrc
new file mode 100644
index 0000000..8c4dd24
--- /dev/null
+++ b/i3/.xinitrc
@@ -0,0 +1,23 @@
+setxkbmap -layout us -variant altgr-intl
+export _JAVA_AWT_WM_NONREPARENTING=1
+feh --bg-tile /home/julian/Pictures/defaultWall.*
+export TERM=st
+export TERMINAL=st
+
+dbus-update-activation-environment --systemd DISPLAY
+
+export SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh
+
+eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets)
+
+xmodmap .Xmodmap
+xcape -e "Control_R=Escape"
+
+nm-applet &
+xscreensaver &
+xss-lock -- xscreensaver-command --lock &
+xcompmgr &
+
+play ~/Winsounds/login.wav -q &
+
+exec i3
diff --git a/i3/.zprofile b/i3/.zprofile
new file mode 100644
index 0000000..b78f84a
--- /dev/null
+++ b/i3/.zprofile
@@ -0,0 +1,3 @@
+if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
+ exec startx
+fi
diff --git a/i3/Scripts/lc b/i3/Scripts/lc
new file mode 100755
index 0000000..a54f234
--- /dev/null
+++ b/i3/Scripts/lc
@@ -0,0 +1,91 @@
+#!/bin/bash
+
+Commands="update poweroff suspend set-keyboard caps-lock battery cups-website vim emacs htop scrot overleaf-render overleaf win pass wall stat mic"
+statScripts="ram.sh status.sh net.sh mic.sh"
+
+handle_stuff() {
+ if [ "$1" = "--dmenu" ]; then
+ $0 $(echo $Commands | tr " " "\n" | dmenu -i -p ":")
+ fi
+
+ if [ "$1" = "edit" ] || [ "$1" = "e" ]; then
+ notify-send "$*"
+ st -e nvim $(echo $* | cut -d" " -f2-)
+ fi
+
+# System info
+ if [ "$1" = "b" ] || [ "$1" = "battery" ]; then
+ notify-send "Battery information" "$(acpi | grep 1:)"
+ fi
+
+# System maintenance
+ if [ "$1" = "sk" ] || [ "$1" = "set-keyboard" ]; then
+ setxkbmap -layout us -variant altgr-intl
+ xcape -e "Control_R=Escape"
+ xmodmap .Xmodmap
+ fi
+
+# POWER COMMANDS
+ if [ "$1" = "s" ] || [ "$1" = "suspend" ]; then
+ systemctl suspend
+ fi
+ if [ "$1" = "poweroff" ]; then
+ poweroff
+ fi
+
+# Mics
+ if [ "$1" = "p" ] || [ "$1" = "scrot" ]; then
+ scrot /tmp/%Y-%m-%d-%T-screenshot.png
+ fi
+
+ if [ "$1" = "overleaf-render" ]; then
+ st sh ~/Documents/overleafRenderer/compile.sh
+ fi
+
+ if [ "$1" = "caps-lock" ] || [ "$1" = "cl" ]; then
+ xdotool key Caps_Lock
+ fi
+
+ if [ "$1" = "win" ]; then
+ vboxmanage startvm "Windows xp"
+ fi
+ if [ "$1" = "wall" ]; then
+ feh --bg-tile Pictures/defaultWall.*
+ fi
+ if [ "$1" = "mic" ]; then
+ amixer set Capture toggle
+ fi
+
+# Launch
+ if [ "$1" = "vi" ] || [ "$1" = "vim" ]; then
+ st -e nvim
+ fi
+ if [ "$1" = "emacs" ]; then
+ st -e emacs
+ fi
+ if [ "$1" = "ht" ] || [ "$1" = "htop" ]; then
+ st -e htop
+ fi
+ if [ "$1" = "cups" ] || [ "$1" = "cups-website" ]; then
+ firefox "http://localhost:631/"
+ fi
+ if [ "$1" = "overleaf" ]; then
+ firefox -p Sharelatex --no-remote
+ fi
+ if [ "$1" = "pass" ]; then
+ bash $HOME/Scripts/passmenu --type
+ fi
+
+ if [ "$1" = "stat" ]; then
+ sh /home/julian/Scripts/$(echo $statScripts | tr " " "\n" | dmenu -i -p "stat")
+ fi
+
+# Calc
+ if [ "$(echo $1 | head -c 1)" = "=" ]; then
+ calc="$(echo $1 | cut -c 2-)"
+ notify-send "Result" "$calc = $(echo $calc | bc)"
+ fi
+}
+
+
+handle_stuff $* &
diff --git a/i3/Scripts/mic.sh b/i3/Scripts/mic.sh
new file mode 100644
index 0000000..78afaa8
--- /dev/null
+++ b/i3/Scripts/mic.sh
@@ -0,0 +1,19 @@
+PIDFILE=/tmp/statMic.pid
+STATUSFILE=/tmp/dsbAMic
+
+kill `cat $PIDFILE`
+if [ $? -eq 0 ]; then
+ echo "Shutting down"
+ rm $STATUSFILE
+ exit
+fi
+
+echo $$ > $PIDFILE
+
+while true; do
+
+ MIC=$(amixer get Capture | grep "Front Left:" | sed 's/.*\[\(.*\)\].*/\1/')
+
+ echo "$MIC " > $STATUSFILE
+ sleep 1
+done
diff --git a/i3/Scripts/net.sh b/i3/Scripts/net.sh
new file mode 100644
index 0000000..d443091
--- /dev/null
+++ b/i3/Scripts/net.sh
@@ -0,0 +1,19 @@
+PIDFILE=/tmp/statNet.pid
+STATUSFILE=/tmp/dsbANet
+
+kill `cat $PIDFILE`
+if [ $? -eq 0 ]; then
+ echo "Shutting down"
+ rm $STATUSFILE
+ exit
+fi
+
+echo $$ > $PIDFILE
+
+while true; do
+
+ IP=$( ip -4 a | grep "inet " | sed "s:inet \(.*\)/.*:\1:" | tr -d " " | grep -v "0.1" | tr "\n" " ")
+
+ echo "$IP " > $STATUSFILE
+ sleep 10
+done
diff --git a/i3/Scripts/ram.sh b/i3/Scripts/ram.sh
new file mode 100644
index 0000000..b0c2442
--- /dev/null
+++ b/i3/Scripts/ram.sh
@@ -0,0 +1,19 @@
+PIDFILE=/tmp/statRam.pid
+STATUSFILE=/tmp/dsbRfree
+
+kill `cat $PIDFILE`
+if [ $? -eq 0 ]; then
+ echo "Shutting down"
+ rm $STATUSFILE
+ exit
+fi
+
+echo "Starting up"
+
+echo $$ > $PIDFILE
+
+while true; do
+ echo " $(free -h | grep Mem: | awk '{print $3}') " > $STATUSFILE
+ sleep 2
+done
+
diff --git a/i3/Scripts/runStat.sh b/i3/Scripts/runStat.sh
new file mode 100644
index 0000000..52b0536
--- /dev/null
+++ b/i3/Scripts/runStat.sh
@@ -0,0 +1,6 @@
+elements="ram.sh status.sh mic.sh"
+
+if [ $1 = "dmenu" ]; then
+ sh $(echo $elements | tr " " "\n" | dmenu -i -p ":")
+fi
+
diff --git a/i3/Scripts/status.sh b/i3/Scripts/status.sh
new file mode 100644
index 0000000..3d1eba4
--- /dev/null
+++ b/i3/Scripts/status.sh
@@ -0,0 +1,20 @@
+PIDFILE=/tmp/stat.pid
+STATUSFILE=/tmp/dsbMain
+
+kill `cat $PIDFILE`
+if [ $? -eq 0 ]; then
+ echo "Shutting down"
+ rm $STATUSFILE
+ exit
+fi
+
+echo $$ > $PIDFILE
+
+while true; do
+
+ BATT=$( acpi -b | sed 's/.*[charging|unknown], \([0-9]*\)%.*/\1/gi' )
+ TIME=$(/bin/date +"%H:%M")
+
+ echo "$IP $TIME $BATT%" > $STATUSFILE
+ sleep 10
+done