summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2013-05-30 17:49:19 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2013-05-30 17:49:19 +0200
commitd749ee8ac4e6a828281387be79fb4ee93649b844 (patch)
tree20a23c11bc2111eefbbe13a17f120b709ba30ddc
parenta9ff14668077e8e90c007f8025cfee80cf527f61 (diff)
downloaddotfiles-d749ee8ac4e6a828281387be79fb4ee93649b844.tar.gz
dotfiles-d749ee8ac4e6a828281387be79fb4ee93649b844.tar.bz2
dotfiles-d749ee8ac4e6a828281387be79fb4ee93649b844.zip
I3 Config
-rw-r--r--.i3/config191
-rw-r--r--.i3/conkyrc72
-rw-r--r--.i3/icons/cpu.xbm6
-rw-r--r--.i3/icons/down.xbm6
-rw-r--r--.i3/icons/load.xbm6
-rw-r--r--.i3/icons/mem.xbm6
-rw-r--r--.i3/icons/mpd.xbm6
-rw-r--r--.i3/icons/net-wifi.xbm6
-rw-r--r--.i3/icons/net-wifi3.xbm6
-rw-r--r--.i3/icons/net-wifi4.xbm6
-rw-r--r--.i3/icons/net-wifi5.xbm6
-rw-r--r--.i3/icons/net-wired.xbm6
-rw-r--r--.i3/icons/net-wired2.xbm6
-rw-r--r--.i3/icons/pause.xbm6
-rw-r--r--.i3/icons/plus.xbm5
-rw-r--r--.i3/icons/power-ac.xbm6
-rw-r--r--.i3/icons/power-bat.xbm6
-rw-r--r--.i3/icons/power-bat2.xbm6
-rw-r--r--.i3/icons/temp.xbm6
-rw-r--r--.i3/icons/up.xbm6
-rw-r--r--.i3/icons/vol-hi.xbm6
-rw-r--r--.i3/icons/vol-mute.xbm6
-rwxr-xr-x.i3/scripts/conkystatus.sh13
-rw-r--r--.i3/scripts/json_escape.lua3
24 files changed, 398 insertions, 0 deletions
diff --git a/.i3/config b/.i3/config
new file mode 100644
index 0000000..16f7210
--- /dev/null
+++ b/.i3/config
@@ -0,0 +1,191 @@
+# i3 config file (v4)
+#
+# Please see http://i3wm.org/docs/userguide.html for a complete reference!
+
+# Variables «1
+#################################################
+
+set $mod Mod4
+set $alt Mod1
+set $dir $HOME/.i3/
+
+# General Settings «1
+################################################
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $alt
+
+# Theming «1
+#################################################
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below. ISO 10646 = Unicode
+#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+font pango:Inconsolata 9
+
+# Bars «1
+#################################################
+bar {
+ font pango:Inconsolata 9
+ status_command $dir/scripts/conkystatus.sh
+ position top
+ tray_output DVI-I-2
+}
+
+# Key Bindings «1
+#################################################
+
+# General «2
+############
+
+# kill focused window
+bindsym $mod+Shift+q kill
+# 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'"
+
+# Moving / Focus «2
+###################
+
+# change focus (ViM-like) «3
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternative: cursor keys «3
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window (ViM-like) «3
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+# alternative: cursor keys «3
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# focus the parent container
+bindsym $mod+a focus parent
+# focus the child container
+bindsym $mod+Shift+a focus child:
+# change focus between tiling / floating windows
+bindsym $alt+space focus mode_toggle
+
+# Layout «2
+###########
+
+# split in horizontal orientation ('h' is already consumed)
+bindsym $mod+Shift+v split h
+# split in vertical orientation
+bindsym $mod+v 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 $alt+Shift+space floating toggle
+
+# Workspaces «2
+###############
+
+# switch to workspace «3
+bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3
+bindsym $mod+4 workspace 4
+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 mail
+
+# move focused container to workspace «3
+bindsym $mod+Shift+1 move container to workspace number 1
+bindsym $mod+Shift+2 move container to workspace number 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+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 mail
+
+# back and forth ... «3
+bindsym $mod+Tab workspace back_and_forth
+bindsym $mod+Shift+Tab move container to workspace back_and_forth
+
+# goto a specific workspace, via i3-input «3
+bindsym $mod+g exec i3-input -F 'workspace %s' -P 'Goto workspace: '
+bindsym $mod+Shift+g exec i3-input -F 'move container to workspace %s' -P 'Goto workspace: '
+
+# Resizing «2
+#############
+# (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ 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
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start Programs «2
+###################
+# Terminal
+bindsym $mod+Return exec urxvtc
+
+# start dmenu (a program launcher)
+bindsym $mod+space exec --no-startup-id dmenu_run -b
+# 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
+
+# mpc «3
+bindsym $mod+Ctrl+c exec mpc toggle
+bindsym $mod+Ctrl+v exec mpc stop
+bindsym $mod+Ctrl+b exec mpc next
+bindsym $mod+Ctrl+z exec mpc prev
+bindsym $mod+Ctrl+s exec mpc single
+
+# Special window rules «1
+################################################
+
+# feh should be floating
+for_window [class="^feh$"] floating enable
+
+# Thunderbird stuff
+for_window [class="^(?i)thunderbird$"] floating enable
+for_window [class="^(?i)thunderbird$" instance="MsgCompose"] floating disable
+for_window [class="^(?i)thunderbird$" instance="Mail"] floating disable
+
+# vim: ft=i3 fdm=marker fmr=«,»
diff --git a/.i3/conkyrc b/.i3/conkyrc
new file mode 100644
index 0000000..f64b3e4
--- /dev/null
+++ b/.i3/conkyrc
@@ -0,0 +1,72 @@
+out_to_x no
+own_window no
+out_to_console yes
+background no
+max_text_width 0
+
+# Update interval in seconds
+update_interval 2.0
+
+# This is the number of times Conky will update before quitting.
+# Set to zero to run forever.
+total_run_times 0
+
+# Shortens units to a single character (kiB->k, GiB->G, etc.). Default is off.
+short_units yes
+
+# How strict should if_up be when testing an interface for being up?
+# The value is one of up, link or address, to check for the interface
+# being solely up, being up and having link or being up, having link
+# and an assigned IP address.
+if_up_strictness address
+
+# Add spaces to keep things from moving about? This only affects certain objects.
+# use_spacer should have an argument of left, right, or none
+use_spacer left
+
+# Force UTF8? note that UTF8 support required XFT
+override_utf8_locale yes
+
+# number of cpu samples to average
+# set to 1 to disable averaging
+cpu_avg_samples 2
+
+lua_load $HOME/.i3/scripts/json_escape.lua
+
+template0 "$HOME/.i3/icons/\1.xbm"
+
+# Stuff after 'TEXT' will be formatted on screen
+TEXT
+
+# JSON for i3bar
+[
+ ${if_mpd_playing}{
+ "full_text" : "${lua json ${mpd_smart}}",
+ "icon" : ${if_match "${mpd_status}"=="Paused"}${template0 pause}${else}${template0 mpd}${endif}
+ },${endif}
+ {
+ "full_text" : "${cpu}%",
+ "icon" : ${template0 cpu},
+ "min_width" : "99%", "align" : "right"
+ },
+ {
+ "full_text" : "${mem}",
+ "icon" : ${template0 load},
+ "min_width" : "1000M",
+ "color" : "\#${if_match ${memperc}<90}ffffff${else}ff0000${endif}"
+ },
+ {
+ "full_text" : "${platform coretemp.0 temp 2}°C${platform f71882fg.2560 temp 2}°C \
+${execi 30 nvidia-settings -query GPUCoreTemp | perl -n -e'/Attribute.*: (.*).$/ && print $1'}°C",
+ "icon" : ${template0 temp}
+ },
+ {
+ "full_text" : "${if_up eth0}${addr}${else}(down)${endif}",
+ "icon" : ${template0 net-wired},
+ "color" : "\#${if_up eth0}ffffff${else}ff0000${endif}"
+ },
+ {
+ "full_text" : "${time %a, %d. %b %R}",
+ "color" : "\#40B5D6"
+ }
+],
diff --git a/.i3/icons/cpu.xbm b/.i3/icons/cpu.xbm
new file mode 100644
index 0000000..1b2768d
--- /dev/null
+++ b/.i3/icons/cpu.xbm
@@ -0,0 +1,6 @@
+#define load_cpu_width 16
+#define load_cpu_height 16
+static unsigned char load_cpu_bits[] = {
+ 0x00, 0x00, 0x48, 0x12, 0x48, 0x12, 0xfc, 0x3f, 0xfc, 0x3f, 0xfe, 0x7f,
+ 0x1c, 0x38, 0x1c, 0x38, 0x1e, 0x78, 0x1c, 0x38, 0xfc, 0x3f, 0xfe, 0x7f,
+ 0xfc, 0x3f, 0x48, 0x12, 0x48, 0x12, 0x00, 0x00 };
diff --git a/.i3/icons/down.xbm b/.i3/icons/down.xbm
new file mode 100644
index 0000000..bc350dd
--- /dev/null
+++ b/.i3/icons/down.xbm
@@ -0,0 +1,6 @@
+#define down_width 16
+#define down_height 16
+static unsigned char down_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xe0, 0x03, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/load.xbm b/.i3/icons/load.xbm
new file mode 100644
index 0000000..b9a1061
--- /dev/null
+++ b/.i3/icons/load.xbm
@@ -0,0 +1,6 @@
+#define load_width 16
+#define load_height 16
+static unsigned char load_bits[] = {
+ 0x00, 0x00, 0xfe, 0x7f, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40,
+ 0x02, 0x44, 0x02, 0x4a, 0x02, 0x71, 0x8e, 0x40, 0x52, 0x40, 0x22, 0x40,
+ 0x02, 0x40, 0x02, 0x40, 0xfe, 0x7f, 0x00, 0x00 };
diff --git a/.i3/icons/mem.xbm b/.i3/icons/mem.xbm
new file mode 100644
index 0000000..5c5bc8e
--- /dev/null
+++ b/.i3/icons/mem.xbm
@@ -0,0 +1,6 @@
+#define load_mem_width 16
+#define load_mem_height 16
+static unsigned char load_mem_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x12, 0x48, 0x12, 0xfc, 0x3f,
+ 0xfc, 0x3f, 0xfc, 0x3f, 0xfc, 0x3f, 0xfc, 0x3f, 0xfc, 0x3f, 0x48, 0x12,
+ 0x48, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/mpd.xbm b/.i3/icons/mpd.xbm
new file mode 100644
index 0000000..4cdfa7e
--- /dev/null
+++ b/.i3/icons/mpd.xbm
@@ -0,0 +1,6 @@
+#define mpd_width 16
+#define mpd_height 16
+static unsigned char mpd_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xc0, 0x13, 0x40, 0x10,
+ 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x1c, 0x70, 0x1e, 0x78, 0x0c,
+ 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/net-wifi.xbm b/.i3/icons/net-wifi.xbm
new file mode 100644
index 0000000..0b3a4a1
--- /dev/null
+++ b/.i3/icons/net-wifi.xbm
@@ -0,0 +1,6 @@
+#define net_wifi4_width 16
+#define net_wifi4_height 16
+static unsigned char net_wifi4_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x08, 0x10, 0xe4, 0x27, 0x10, 0x08,
+ 0xc0, 0x03, 0x20, 0x04, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01,
+ 0xc0, 0x03, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00 };
diff --git a/.i3/icons/net-wifi3.xbm b/.i3/icons/net-wifi3.xbm
new file mode 100644
index 0000000..7ebb55d
--- /dev/null
+++ b/.i3/icons/net-wifi3.xbm
@@ -0,0 +1,6 @@
+#define wireless3_full_width 16
+#define wireless3_full_height 16
+static unsigned char wireless3_full_bits[] = {
+ 0x00, 0x00, 0xf0, 0x0f, 0x08, 0x10, 0xe4, 0x27, 0x10, 0x08, 0x00, 0x00,
+ 0xc0, 0x03, 0xc0, 0x03, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f,
+ 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/net-wifi4.xbm b/.i3/icons/net-wifi4.xbm
new file mode 100644
index 0000000..8179eb4
--- /dev/null
+++ b/.i3/icons/net-wifi4.xbm
@@ -0,0 +1,6 @@
+#define net_wifi4_width 16
+#define net_wifi4_height 16
+static unsigned char net_wifi4_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00,
+ 0xfc, 0x3f, 0xfc, 0x3f, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00,
+ 0xe0, 0x07, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/net-wifi5.xbm b/.i3/icons/net-wifi5.xbm
new file mode 100644
index 0000000..8a097ef
--- /dev/null
+++ b/.i3/icons/net-wifi5.xbm
@@ -0,0 +1,6 @@
+#define wireless_full_width 16
+#define wireless_full_height 16
+static unsigned char wireless_full_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0xfe, 0x7f, 0x00, 0x00,
+ 0xfc, 0x3f, 0xf8, 0x1f, 0x00, 0x00, 0xf0, 0x0f, 0xe0, 0x07, 0x00, 0x00,
+ 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/net-wired.xbm b/.i3/icons/net-wired.xbm
new file mode 100644
index 0000000..d9655d7
--- /dev/null
+++ b/.i3/icons/net-wired.xbm
@@ -0,0 +1,6 @@
+#define network_eth2_width 16
+#define network_eth2_height 16
+static unsigned char network_eth2_bits[] = {
+ 0x00, 0x00, 0xfe, 0x7f, 0x02, 0x40, 0x02, 0x40, 0xc2, 0x43, 0xc2, 0x43,
+ 0xc2, 0x43, 0xf2, 0x4f, 0xf2, 0x4f, 0xf2, 0x4f, 0xf2, 0x4f, 0xf2, 0x4f,
+ 0x02, 0x40, 0x02, 0x40, 0xfe, 0x7f, 0x00, 0x00 };
diff --git a/.i3/icons/net-wired2.xbm b/.i3/icons/net-wired2.xbm
new file mode 100644
index 0000000..fb7276a
--- /dev/null
+++ b/.i3/icons/net-wired2.xbm
@@ -0,0 +1,6 @@
+#define network_eth1_width 16
+#define network_eth1_height 16
+static unsigned char network_eth1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x60, 0x03, 0x70, 0x07,
+ 0x78, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x78, 0x0f, 0x70, 0x07, 0x60, 0x03,
+ 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/pause.xbm b/.i3/icons/pause.xbm
new file mode 100644
index 0000000..497b838
--- /dev/null
+++ b/.i3/icons/pause.xbm
@@ -0,0 +1,6 @@
+#define pause_width 16
+#define pause_height 16
+static unsigned char pause_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x0e, 0x70, 0x0e,
+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/plus.xbm b/.i3/icons/plus.xbm
new file mode 100644
index 0000000..f8e5f8a
--- /dev/null
+++ b/.i3/icons/plus.xbm
@@ -0,0 +1,5 @@
+#define occupied_width 8
+#define occupied_height 16
+static unsigned char occupied_bits[] = {
+ 0x00, 0x00, 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/power-ac.xbm b/.i3/icons/power-ac.xbm
new file mode 100644
index 0000000..45ed243
--- /dev/null
+++ b/.i3/icons/power-ac.xbm
@@ -0,0 +1,6 @@
+#define power_ac_width 16
+#define power_ac_height 16
+static unsigned char power_ac_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x07, 0xc0, 0x3f,
+ 0xe0, 0x07, 0xfc, 0x07, 0xfc, 0x07, 0xe0, 0x07, 0xc0, 0x3f, 0x80, 0x07,
+ 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/power-bat.xbm b/.i3/icons/power-bat.xbm
new file mode 100644
index 0000000..c450bbc
--- /dev/null
+++ b/.i3/icons/power-bat.xbm
@@ -0,0 +1,6 @@
+#define battery_width 16
+#define battery_height 16
+static unsigned char battery_bits[] = {
+ 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0xf0, 0x0f, 0xf0, 0x0f, 0x10, 0x08,
+ 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f,
+ 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0x00, 0x00 };
diff --git a/.i3/icons/power-bat2.xbm b/.i3/icons/power-bat2.xbm
new file mode 100644
index 0000000..e7be632
--- /dev/null
+++ b/.i3/icons/power-bat2.xbm
@@ -0,0 +1,6 @@
+#define power_bat2_width 16
+#define power_bat2_height 16
+static unsigned char power_bat2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x7e, 0x18,
+ 0x7e, 0x78, 0x7e, 0x78, 0x7e, 0x78, 0x7e, 0x78, 0x7e, 0x18, 0xfe, 0x1f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/temp.xbm b/.i3/icons/temp.xbm
new file mode 100644
index 0000000..f37932b
--- /dev/null
+++ b/.i3/icons/temp.xbm
@@ -0,0 +1,6 @@
+#define temp_width 16
+#define temp_height 16
+static unsigned char temp_bits[] = {
+ 0x00, 0x00, 0x80, 0x01, 0xc0, 0x0b, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x0b,
+ 0x40, 0x02, 0x40, 0x02, 0x40, 0x0a, 0x40, 0x02, 0x40, 0x02, 0x60, 0x06,
+ 0x20, 0x04, 0x60, 0x06, 0xc0, 0x03, 0x00, 0x00 };
diff --git a/.i3/icons/up.xbm b/.i3/icons/up.xbm
new file mode 100644
index 0000000..2fb6f25
--- /dev/null
+++ b/.i3/icons/up.xbm
@@ -0,0 +1,6 @@
+#define up_width 16
+#define up_height 16
+static unsigned char up_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0xc0, 0x01, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/vol-hi.xbm b/.i3/icons/vol-hi.xbm
new file mode 100644
index 0000000..7c4a849
--- /dev/null
+++ b/.i3/icons/vol-hi.xbm
@@ -0,0 +1,6 @@
+#define vol_hi2_width 16
+#define vol_hi2_height 16
+static unsigned char vol_hi2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x80, 0x21, 0xc0, 0x49, 0xfc, 0x51,
+ 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x51, 0xc0, 0x49,
+ 0x80, 0x21, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/icons/vol-mute.xbm b/.i3/icons/vol-mute.xbm
new file mode 100644
index 0000000..2d01f7b
--- /dev/null
+++ b/.i3/icons/vol-mute.xbm
@@ -0,0 +1,6 @@
+#define vol_mute2_width 16
+#define vol_mute2_height 16
+static unsigned char vol_mute2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0xc0, 0x01, 0xfc, 0x01,
+ 0xfc, 0x01, 0xfc, 0x29, 0xfc, 0x11, 0xfc, 0x29, 0xfc, 0x01, 0xc0, 0x01,
+ 0x80, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 };
diff --git a/.i3/scripts/conkystatus.sh b/.i3/scripts/conkystatus.sh
new file mode 100755
index 0000000..bb1bb8e
--- /dev/null
+++ b/.i3/scripts/conkystatus.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Send the header so that i3bar knows we want to use JSON:
+echo '{"version":1}'
+
+# Begin the endless array.
+echo '['
+
+# We send an empty first array of blocks to make the loop simpler:
+echo '[],'
+
+# Now send blocks with information forever:
+exec conky -c $HOME/.i3/conkyrc
diff --git a/.i3/scripts/json_escape.lua b/.i3/scripts/json_escape.lua
new file mode 100644
index 0000000..03860b7
--- /dev/null
+++ b/.i3/scripts/json_escape.lua
@@ -0,0 +1,3 @@
+function conky_json(str)
+ return string.gsub(conky_parse(str), '[\\"]', '\\%1')
+end