guest@dotshare [~/groups/wms/i3] $ ls i3-Setup/ | cat

i3 Setup

emily Jul 05, 2016 (wms/i3)

.i3_config(raw, dl)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
#
# i3 Config
#
#


# Basic Settings
# ---------------------------------------------------------------------

# We'll use the Windows Key
set $mod Mod4

# Font
font pango:Ubuntu 12

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

# Workspaces
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:

# The lock command
set $lock exec i3lock -i ~/.dotfiles/wallpaper.png

# Display notification command
set $notif exec --no-startup-id notif -b i3 -u critical

# The return to default and hide notification command
set $go_default exec --no-startup-id notif -c i3, mode "default"

# Volume command
set $volume exec --no-startup-id ~/.dotfiles/sbin/change_volume

# Allow quick tabbing back and forth
workspace_auto_back_and_forth yes

# This is just annoying
focus_follows_mouse no


# Visual Items
# ---------------------------------------------------------------------

# General colours
client.focused          #3F8AC2 #096BAA #00BAA7 #00DA8E
client.focused_inactive #333333 #5F676A #ffffff #484e50
client.unfocused        #333333 #424242 #888888 #292d2e
client.urgent           #C10004 #900000 #ffffff #900000

# Bar at bottom of the screen
bar
{
    font pango:Font Awesome 12
    strip_workspace_numbers yes
    status_command i3blocks
    colors
    {
        background #232323
        statusline #DCDCDC
    }
}


# General Key Bindings
# ---------------------------------------------------------------------

# Lock the screen
bindsym $mod+l $lock

# Audio controls
bindsym XF86AudioRaiseVolume $volume up
bindsym XF86AudioLowerVolume $volume down 
bindsym XF86AudioMute $volume mute-spkr
bindsym F6 $volume mute

# Sreen brightness controls
bindsym XF86MonBrightnessUp exec xbacklight -inc 10
bindsym XF86MonBrightnessDown exec xbacklight -dec 10

# Media player controls
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous

# Start a terminal
bindsym $mod+Return exec i3-sensible-terminal

# Kill focused window
bindsym $mod+Shift+q kill

# The program and password menus (handled by rofi)
bindsym $mod+p exec --no-startup-id i3-dmenu-desktop --dmenu='rofi -show run -dmenu'
bindsym $mod+o exec --no-startup-id passmenu


# Window Management Key Bindings
# ---------------------------------------------------------------------

# Change focus around
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+a focus parent
bindsym $mod+c focus child
bindsym $mod+space focus mode_toggle

# Move windows around
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+f fullscreen

# Spawn the next window horizontally / vertically
bindsym $mod+h split h
bindsym $mod+v split v

# Make a window floating / sticky
bindsym $mod+Shift+space floating toggle
bindsym $mod+Shift+s sticky toggle

# Switching around workspaces
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 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace $ws0

# Moving windows to workspaces
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 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 $ws0

# Argh, here be dragons!
# Reload the i3 config or the whole environment
bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart


# Modes
# ---------------------------------------------------------------------

# Resize windows
set $resize "Resize Mode: Use arrow keys to adjust size"
bindsym $mod+r $notif 'Resize Mode' $resize, mode $resize
mode $resize
{
        # Resize Windows
        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

        # Resize Windows more precisely
        bindsym Shift+Left resize shrink width 1 px or 1 ppt
        bindsym Shift+Down resize grow height 1 px or 1 ppt
        bindsym Shift+Up resize shrink height 1 px or 1 ppt
        bindsym Shift+Right resize grow width 1 px or 1 ppt

        # back to normal: Enter or Escape
        bindsym Return $go_default
        bindsym Escape $go_default
}


# Default power options
set $power "Power Options: (P)oweroff (R)estart (H)ibernate (S)uspend"
bindsym $mod+Shift+p $notif 'Power Mode' $power, mode $power
mode $power
{
    bindsym h $lock && systemctl hibernate, $go_default
    bindsym p exec systemctl poweroff, $go_default
    bindsym r exec systemctl reboot, $go_default
    bindsym s $lock && systemctl suspend, $go_default

    bindsym Escape $go_default
}

# Change Screen Orientation
set $screen "Change Screen Orientation"
bindsym $mod+Shift+o mode $screen
mode $screen
{
    bindsym Up exec ~/.dotfiles/sbin/rotate_screen up, mode "default"
    bindsym Left exec ~/.dotfiles/sbin/rotate_screen left, mode "default"
    bindsym Down exec ~/.dotfiles/sbin/rotate_screen inverted, mode "default"
    bindsym Right exec ~/.dotfiles/sbin/rotate_screen right, mode "default"

    bindsym Escape mode "default"
}

# Tablet mode has simplified key bindings
set $tablet_mode "Tablet Mode"
bindsym $mod+Shift+t exec ~/.dotfiles/sbin/tablet_mode on, mode $tablet_mode
mode $tablet_mode
{
    bindsym $mod+Left move left
    bindsym $mod+Down move down
    bindsym $mod+Up move up
    bindsym $mod+Right move right

    bindsym $mod+t exec ~/.dotfiles/sbin/tablet_mode off, mode "default"
}


# Startup
# ---------------------------------------------------------------------

# Popup a box asking for my ecryptfs password 
exec --no-startup-id ~/.dotfiles/sbin/start

# Set the background
exec --no-startup-id feh --bg-scale /home/emily/Pictures/wallpaper.jpg

# Notification daemon
exec --no-startup-id dunst

# Make windows fade in and out and look nice
exec --no-startup-id compton

# Turn off touchpad during typing
exec --no-startup-id syndaemon -t -K

# Load the X server defaults
exec --no-startup-id xrdb ~/.dotfiles/Xresources

# Load up the multi-tilded setup of the main workspace
exec --no-startup-id "i3-msg 'workspace $ws3; append_layout ~/.i3/ws3.json'"
exec chromium
exec chromium

CLICK TO VIEW

x

.i3_ws3.json(raw, dl)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
    "border": "normal",
    "floating": "auto_off",
    "layout": "tabbed",
    "percent": 0.629166666666667,
    "type": "con",
    "nodes":
    [{
        "border": "normal",
        "current_border_width": 4,
        "floating": "auto_off",
        "geometry":
        {
            "height": 2072,
            "width": 3832,
            "x": 4,
            "y": 40
        },
        "name": "Main Window",
        "percent": 1,
        "swallows":
        [
            {"class": "^chromium$"}
        ],
        "type": "con"
    }]
}

{
    "border": "normal",
    "current_border_width": 4,
    "floating": "auto_off",
    "geometry":
    {
        "height": 2072,
        "width": 3832,
        "x": 4,
        "y": 124
    },
    "name": "Sub Window",
    "percent": 0.370833333333333,
    "swallows":
    [
        {"class":"^chromium$"}
    ],
    "type": "con"
}
 

x

.i3blocks.conf(raw, dl)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# i3blocks config file
#
# Please see man i3blocks for a complete reference!
# The man page is also hosted at http://vivien.github.io/i3blocks
#
# 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=/usr/lib/i3blocks/$BLOCK_NAME
separator_block_width=15
markup=none

[mail]
command=~/.dotfiles/sbin/i3blocks/mail
interval=600
signal=1

# 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]
command=~/.dotfiles/sbin/i3blocks/volume
interval=1
signal=10

# Memory usage
#
# The type defaults to "mem" if the instance is not specified.
[memory]
label=MEM
separator=false
interval=30

[memory]
label=DIRTY
separator=false
interval=30
command=~/.dotfiles/sbin/i3blocks/dirty

# Disk usage
#
# The directory defaults to $HOME if the instance is not specified.
# The script may be called with a optional argument to set the alert
# (defaults to 10 for 10%).
[disk]
label=HOME
#instance=/mnt/data
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
interval=10
separator=false

[wifi]
label=
instance=wlo1
interval=10

# CPU usage
#
# The script may be called with -w and -c switches to specify thresholds,
# see the script for details.
[cpu_usage]
label=
interval=10

# Battery indicator
#
# The battery instance defaults to 0.
[battery]
command=~/.dotfiles/sbin/i3blocks/battery
interval=30

# Date Time
#
[time]
command=date '+%A %d %B - %R:%S'
interval=1

# Generic media player support
#
# This displays "ARTIST - SONG" if a music is playing.
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
#[mediaplayer]
#instance=mplayer
#interval=5
#signal=10

# OpenVPN support
#
# Support multiple VPN, with colors.
#[openvpn]
#interval=20

# Temperature
#
# Support multiple chips, though lm-sensors.
# The script may be called with -w and -c switches to specify thresholds,
# see the script for details.
#[temperature]
#label=TEMP
#interval=10

# Key indicators
#
# Add the following bindings to i3 config file:
#
# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
# bindsym --release Num_Lock  exec pkill -SIGRTMIN+11 i3blocks
#[keyindicator]
#instance=CAPS
#interval=once
#signal=11

#[keyindicator]
#instance=NUM
#interval=once
#signal=11
 

x