aboutsummaryrefslogtreecommitdiffstats
path: root/_i3
diff options
context:
space:
mode:
Diffstat (limited to '_i3')
-rw-r--r--_i3/config386
-rw-r--r--_i3/i3blocks.conf101
-rw-r--r--_i3/i3status.conf76
-rw-r--r--_i3/images/wallpaper.pngbin0 -> 87684 bytes
-rwxr-xr-x_i3/scripts/i3exit.sh43
5 files changed, 606 insertions, 0 deletions
diff --git a/_i3/config b/_i3/config
new file mode 100644
index 0000000..1e274bb
--- /dev/null
+++ b/_i3/config
@@ -0,0 +1,386 @@
+###########################################################
+## ~/.i3/config
+##
+## i3 config file (v4)
+##
+## References:
+## [1] http://i3wm.org/docs/userguide.html
+##
+## Credits:
+## [1] https://github.com/Airblader/dotfiles-manjaro
+## [2] https://github.com/Remedan/dotfiles
+##
+## Aaron LI <aaronly.me@outlook.com>
+## Created: 2014-05-10
+## Updated: 2015-12-18
+###########################################################
+
+###### NOTES ###### {{{
+# To get a config file with the same key positions, but for your current
+# layout, use the `i3-config-wizard'
+###### NOTES ###### }}}
+
+###### variables ###### {{{
+## modifier
+# Mod1: Alt
+# Mod4: Win
+set $mod Mod1
+set $sup Mod4
+
+# variables used in this config
+set $i3_scripts ~/.i3/scripts
+set $i3_images ~/.i3/images
+
+# screenshots directory
+set $shots_dir ~/pictures/screenshots
+###### variables ###### }}}
+
+###### settings ###### {{{
+# Font for window titles. (also for bar if not specified)
+# ISO 10646: Unicode
+# Use pango to choose FreeType fonts
+#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+#font pango:DejaVu Sans Mono 10
+font pango:Terminus, WenQuanYi Bitmap Song, FontAwesome, 10
+
+# use `Mouse+$mod' to drag floating windows
+floating_modifier $mod
+
+# focus follows mouse (default yes)
+#focus_follows_mouse no
+
+# timeout of urgency hint on workspace change (default 500ms)
+force_display_urgency_hint 1000 ms
+
+# do not focus the activated window, always mark urgent (default: smart)
+focus_on_window_activation urgent
+
+# ipc (`i3-msg' to run i3 commands)
+ipc-socket ~/.i3/i3-ipc.sock
+###### settings ###### }}}
+
+###### appearance ###### {{{
+# border style
+#new_window 1pixel
+bindsym $mod+t border normal
+bindsym $mod+y border pixel 3
+bindsym $mod+u border none
+
+# 2 pixel border by default
+for_window [class="^.*"] border pixel 2
+
+# orientation for new workspaces
+default_orientation auto
+
+# hide vertical borders adjacent to the screen edge
+#hide_edge_borders vertical
+
+### colors
+# molokai
+set $black #1b1d1e
+set $white #f8f8f2
+set $dark_gray #303030
+set $light_gray #9999aa
+set $red #b60050
+set $light_red #f92672
+set $green #88bb22
+set $light_green #80ff00
+set $brown #c47f2c
+set $yellow #ffba68
+set $blue #30309b
+set $light_blue #7070f0
+set $purple #7e40a5
+set $light_purple #bb88dd
+set $cyan #4699af
+set $light_cyan #66d9ef
+
+# BORDER BACKGROUND TEXT INDICATOR
+client.focused $green $green $black $green
+client.unfocused $black $black $white $black
+client.focused_inactive $black $black $white $black
+client.urgent $red $red $black $red
+client.background $black
+###### appearance ###### }}}
+
+###### workspace ###### {{{
+# name workspace
+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 $ws0 "10: "
+
+# 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
+
+# auto back-and-forth when switched to the current workspace
+workspace_auto_back_and_forth yes
+
+# 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
+# move to provided workspace
+bindsym $mod+Shift+m exec i3-input -F 'move container to workspace "%s"' -P 'move to workspace: '
+
+# switch workspace
+bindsym $mod+Tab workspace back_and_forth
+bindsym $mod+Ctrl+Left workspace prev
+bindsym $mod+Ctrl+Right workspace next
+# also bind ThinkPad 'XF86Back' and 'XF86Forward' keys
+#bindsym XF86Back workspace prev
+#bindsym XF86Forward workspace next
+###### workspace ###### }}}
+
+###### key bindings ###### {{{
+# start a terminal
+bindsym $mod+Return exec urxvtc || i3-sensible-terminal
+
+# kill focused window
+bindsym $mod+Shift+q kill
+bindsym $mod+F4 kill
+
+# change focus (h/j/k/l)
+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 (h/j/k/l)
+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+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 $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+c focus child
+
+## scratchpad
+# move the currently focused window to the scratchpad
+bindsym $mod+Shift+minus move scratchpad
+# Show the next scratchpad window or hide the focused scratchpad window.
+# If there are multiple scratchpad windows, this command cycles through them.
+bindsym $mod+minus scratchpad show
+
+# toggle whether to stick a window to the screen (regardless of workspaces)
+bindsym $mod+Shift+s sticky toggle
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves 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'"
+###### key bindings ###### }}}
+
+###### i3 modes ###### {{{
+# 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
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+
+# mode_system: prompt for lock, logout, suspend, shutdown, etc.
+set $mode_system System (l) lock, (e) logout, (s) suspend, (r) reboot, (Shift+s) shutdown
+mode "$mode_system" {
+ bindsym l exec --no-startup-id $i3_scripts/i3exit.sh lock, mode "default"
+ bindsym e exec --no-startup-id $i3_scripts/i3exit.sh logout, mode "default"
+ bindsym s exec --no-startup-id $i3_scripts/i3exit.sh suspend, mode "default"
+ bindsym r exec --no-startup-id $i3_scripts/i3exit.sh reboot, mode "default"
+ bindsym Shift+s exec --no-startup-id $i3_scripts/i3exit.sh shutdown, mode "default"
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+Ctrl+Delete mode "$mode_system"
+###### i3 modes ###### }}}
+
+###### application bindings ###### {{{
+## NOTE: (Mod4: Win)
+## Some Mod4-keys binded for urxvt (~/.Xresources)
+## Mod4-c, Mod4-v, Mod4-Shift-v
+## Mod4-Escape, Mode4-s, Mod4-u
+
+## program launcher
+#bindsym $mod+d exec --no-startup-id dmenu_run
+#bindsym $mod+F2 exec --no-startup-id dmenu_run
+# use 'rofi' instead of 'dmenu'
+bindsym $mod+d exec --no-startup-id rofi -show run
+bindsym $mod+F2 exec --no-startup-id rofi -show run
+# `i3-dmenu-desktop' only displays applications with a .desktop file
+bindsym $mod+p exec --no-startup-id i3-dmenu-desktop
+
+# lock screen (i3lock)
+bindsym $mod+Ctrl+l exec --no-startup-id $i3_scripts/i3exit.sh lock
+bindsym $sup+l exec --no-startup-id $i3_scripts/i3exit.sh lock
+# turn off display
+bindsym $mod+Ctrl+b exec --no-startup-id sleep 1 && xset dpms force off
+
+# screenshots
+bindsym --release Print exec --no-startup-id scrot -e 'mv $f $shots_dir/'
+bindsym --release $mod+Print exec --no-startup-id scrot -s -e 'mv $f $shots_dir/'
+
+# terminal
+bindsym $sup+t exec urxvtc || urxvt || i3-sensible-terminal
+bindsym $sup+Enter exec urxvtc || urxvt || i3-sensible-terminal
+# file manager
+bindsym $sup+f exec thunar
+# web browser
+bindsym $sup+w exec ~/bin/firefox || firefox
+
+## dropdown terminal
+# auto start urxvt if closed
+exec --no-startup-id "while true; do urxvt -name 'dropdown_term'; done"
+#for_window [instance="dropdown_term"] floating enable, border 1pixel
+#for_window [instance="dropdown_term"] move scratchpad; [instance="dropdown_term"] scratchpad show; resize shrink height 100px; resize grow width 626px; move position 1px 20px; move scratchpad
+for_window [instance="dropdown_term"] floating enable, border 1pixel, resize shrink height 100px, resize grow width 626px, move position 1px 20px
+for_window [instance="dropdown_term"] move scratchpad
+bindsym $mod+backslash [instance="dropdown_term"] scratchpad show
+###### applications bindings ###### }}}
+
+###### window control ###### {{{
+## floating
+for_window [window_role="pop-up"] floating enable
+for_window [window_role="bubble"] floating enable
+for_window [window_role="task_dialog"] floating enable
+for_window [window_role="Preferences"] floating enable
+
+for_window [window_type="dialog"] floating enable
+for_window [window_type="menu"] floating enable
+
+for_window [class="(?i)Arandr"] floating enable
+for_window [class="Xscreensaver-demo"] floating enable
+
+for_window [title="^XBindKey:.*Hit.*"] floating enable
+
+for_window [class="(?i)Xfce4-notifyd"] floating enable, border none
+
+# assign workspace for applications
+assign [class="(?i)firefox"] $ws1
+###### window control ###### }}}
+
+###### i3bar ###### {{{
+bar {
+ #status_command i3status -c ~/.i3/i3status.conf
+ status_command i3blocks -c ~/.i3/i3blocks.conf
+ position top
+ # whether show the current binding mode indicator (default yes)
+ #binding_mode_indicator no
+ font pango:Terminus, WenQuanYi Bitmap Song, FontAwesome, 11
+ tray_output primary
+ separator_symbol " "
+ # disable scroll on workspace buttons
+ bindsym button4 nop
+ bindsym button5 nop
+ # disable tray padding (default: 2)
+ tray_padding 0
+ # display workspace of name "[n]:[NAME]" with only the "[NAME]"
+ strip_workspace_numbers yes
+
+ colors {
+ statusline $white
+ background $black
+ separator $green
+ # BORDER BACKGROUND TEXT
+ focused_workspace $light_green $light_green $black
+ active_workspace $black $black $white
+ inactive_workspace $black $black $white
+ urgent_workspace $light_red $light_red $white
+ binding_mode $black $black $yellow
+ }
+}
+###### i3bar ###### }}}
+
+###### autostart ###### {{{
+## run applications on startup
+## if need to run command when restarting i3, use `exec_always'
+exec --no-startup-id xset b off
+exec --no-startup-id xrdb -load ~/.Xresources
+#exec --no-startup-id feh --bg-fill $i3_images/wallpaper.png
+exec --no-startup-id sh ~/.fehbg
+#exec --no-startup-id xcompmgr
+exec --no-startup-id compton -b
+exec --no-startup-id redshift
+exec --no-startup-id xbindkeys
+exec --no-startup-id urxvtd -q -o -f
+exec --no-startup-id parcellite
+exec --no-startup-id fcitx
+exec --no-startup-id nm-applet
+exec --no-startup-id xbacklight -set 80
+exec --no-startup-id xscreensaver -no-splash
+exec --no-startup-id xfce4-power-manager
+exec --no-startup-id mpd
+###### autostart ###### }}}
+
+# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=conf: #
diff --git a/_i3/i3blocks.conf b/_i3/i3blocks.conf
new file mode 100644
index 0000000..28b79a6
--- /dev/null
+++ b/_i3/i3blocks.conf
@@ -0,0 +1,101 @@
+#
+# i3blocks config file
+#
+# Aaron LI
+# 2015-12-18
+#
+
+
+# List of valid properties:
+#
+# align
+# color
+# command
+# full_text
+# instance
+# interval
+# label
+# min_width
+# name
+# separator
+# separator_block_width
+# short_text
+# signal
+# urgent
+
+# Global properties
+#
+# The top properties below are applied to every block, but can be overridden.
+# Each block command defaults to the script name to avoid boilerplate.
+command=$SCRIPT_DIR/$BLOCK_NAME
+separator_block_width=15
+markup=none
+
+# Volume indicator
+#
+# The first parameter sets the step (and units to display)
+# The second parameter overrides the mixer selection
+# See the script for details.
+[volume]
+label=VOL
+#label=♪
+instance=Master
+#instance=PCM
+interval=once
+signal=10
+
+# Memory usage
+#
+# The type defaults to "mem" if the instance is not specified.
+[memory]
+label=MEM
+separator=false
+interval=30
+
+# Network interface monitoring
+#
+# If the instance is not specified, use the interface used for default route.
+# The address can be forced to IPv4 or IPv6 with -4 or -6 switches.
+[iface]
+#instance=wlan0
+color=#00FF00
+interval=10
+separator=false
+
+[wifi]
+#instance=wlp3s0
+interval=10
+separator=false
+
+[bandwidth]
+#instance=eth0
+interval=5
+
+# CPU usage
+#
+# The script may be called with -w and -c switches to specify thresholds,
+# see the script for details.
+[cpu_usage]
+label=CPU
+interval=10
+min_width=CPU: 100.00%
+#separator=false
+
+#[load_average]
+#interval=10
+
+# Battery indicator
+#
+# The battery instance defaults to 0.
+[battery]
+label=BAT
+#label=⚡
+#instance=1
+interval=30
+
+# Date Time
+#
+[time]
+command=date '+%Y-%m-%d %H:%M:%S'
+interval=5
+
diff --git a/_i3/i3status.conf b/_i3/i3status.conf
new file mode 100644
index 0000000..9a41923
--- /dev/null
+++ b/_i3/i3status.conf
@@ -0,0 +1,76 @@
+# ~/.i3status.conf
+# 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
+ color_good = '#88b090'
+ color_degraded = '#ccdc90'
+ color_bad = '#e89393'
+ interval = 3
+ # output format (i3bar|dzen2|xmobar|none)
+ output_format = 'i3bar'
+}
+
+order += "volume master"
+#order += "ipv6"
+order += "disk /"
+#order += "run_watch DHCP"
+#order += "run_watch VPN"
+#order += "wireless wlp3s0"
+order += "ethernet eth0"
+order += "battery 0"
+order += "load"
+order += "tztime local"
+
+volume master {
+ format = "%volume"
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}
+
+#wireless wlp3s0 {
+# #format_up = "W: (%quality at %essid) %ip"
+# format_up = "%essid(%ip)"
+# format_down = "down"
+#}
+
+ethernet eth0 {
+ # if you use %speed, i3status requires root privileges
+ format_up = "E: %ip"
+ format_down = "E: down"
+}
+
+battery 0 {
+ format = "%status %percentage %remaining"
+}
+
+run_watch DHCP {
+ #pidfile = "/var/run/dhclient*.pid"
+ pidfile = "/var/run/dhcpd*.pid"
+}
+
+run_watch VPN {
+ pidfile = "/var/run/vpnc/pid"
+}
+
+tztime local {
+ #format = "%Y-%m-%d %H:%M:%S"
+ format = "%m-%d|%H:%M"
+}
+
+load {
+ format = "%1min"
+}
+
+disk "/" {
+ format = "%free"
+}
+
+# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=conf: #
diff --git a/_i3/images/wallpaper.png b/_i3/images/wallpaper.png
new file mode 100644
index 0000000..468b1a9
--- /dev/null
+++ b/_i3/images/wallpaper.png
Binary files differ
diff --git a/_i3/scripts/i3exit.sh b/_i3/scripts/i3exit.sh
new file mode 100755
index 0000000..3616139
--- /dev/null
+++ b/_i3/scripts/i3exit.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# exit script used in i3 wm
+#
+
+PNG_IMAGE="~/.i3/images/wallpaper.png"
+
+lock() {
+ if [ -f ${PNG_IMAGE} ]; then
+ i3lock -d -ti "${PNG_IMAGE}"
+ else
+ i3lock -d -c 000000
+ fi
+}
+
+case "$1" in
+ lock)
+ lock
+ ;;
+ logout)
+ i3-msg exit
+ ;;
+ suspend)
+ lock
+ dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
+ ;;
+ hibernate)
+ lock
+ dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
+ ;;
+ reboot)
+ dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
+ ;;
+ shutdown)
+ dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
+ ;;
+ *)
+ echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}"
+ exit 2
+esac
+
+exit 0
+