├── .i3status.conf
├── MAKE-LINKS
├── README.md
├── autostart
├── config
├── dock
├── dunstrc
├── mute.wav
├── speak.wav
├── that_was_easy.wav
├── undock
└── volume_blip.wav
/.i3status.conf:
--------------------------------------------------------------------------------
1 | general {
2 | colors = true
3 | interval = 4
4 | }
5 |
6 | order += "cpu_usage"
7 | order += "load"
8 | order += "cpu_temperature CPUtemp"
9 | order += "cpu_temperature CPUrpm"
10 | order += "cpu_temperature GPUtemp"
11 | order += "cpu_temperature GPUrpm"
12 | order += "disk /"
13 | order += "disk /home"
14 | order += "run_watch VPN"
15 | #order += "ethernet enp30s0"
16 | order += "volume integ"
17 | order += "volume headset"
18 | order += "time"
19 |
20 | cpu_temperature CPUtemp {
21 | format = "CPU %degrees °C"
22 | path = "/sys/class/hwmon/hwmon1/temp1_input"
23 | }
24 |
25 | # This needs https://github.com/i3/i3status/pull/269
26 | cpu_temperature CPUrpm {
27 | format = "%kernel_int RPM"
28 | path = "/sys/class/hwmon/hwmon2/fan1_input"
29 | }
30 |
31 | cpu_temperature GPUtemp {
32 | format = "GPU %degrees °C"
33 | path = "/sys/class/hwmon/hwmon0/temp1_input"
34 | }
35 |
36 | cpu_temperature GPUrpm {
37 | format = "%kernel_int RPM"
38 | path = "/sys/class/hwmon/hwmon0/fan1_input"
39 | }
40 |
41 | ethernet enp30s0 {
42 | # sudo setcap cap_net_admin=ep $(which i3status)
43 | format_up = "E: %ip (%speed)"
44 | format_down = "E: down"
45 | }
46 |
47 | run_watch VPN {
48 | pidfile = "/home/lzap/openvpn/redhat.pid"
49 | }
50 |
51 | time {
52 | format = "%A %d.%m.%Y %H:%M"
53 | }
54 |
55 | load {
56 | format = "%1min %5min %15min"
57 | }
58 |
59 | cpu_usage {
60 | format = "CPU %usage"
61 | }
62 |
63 | disk "/" {
64 | format = "Used / %percentage_used"
65 | separator = false
66 | }
67 |
68 | disk "/home" {
69 | format = "/home %percentage_used"
70 | }
71 |
72 | volume integ {
73 | format = "♪I: %volume"
74 | format_muted = "♪I: MD"
75 | device = "pulse:alsa_output.pci-0000_24_00.3.analog-stereo"
76 | }
77 |
78 | volume headset {
79 | format = "♪H: %volume"
80 | format_muted = "♪H: MD"
81 | device = "pulse:alsa_output.usb-Logitech_Logitech_USB_Headset-00.analog-stereo"
82 | }
83 |
84 |
--------------------------------------------------------------------------------
/MAKE-LINKS:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | ln -sf ~/.i3/.i3status.conf ~/.i3status.conf
3 | ln -sf ~/.i3/dunstrc ~/.config/dunst/dunstrc
4 | ln -sf ~/.i3/dock ~/bin/dock
5 | ln -sf ~/.i3/undock ~/bin/undock
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | My personal i3 window manager dot files
2 | ---------------------------------------
3 |
4 | Please note I use Czech layout, if you want to copy & paste, _read_ the article.
5 |
6 | Article: http://lukas.zapletalovi.com/2012/08/new-in-fedora-17-i3-42-tiling-wm.html
7 |
8 | Tools used
9 | ----------
10 |
11 | * dunst - https://github.com/knopwob/dunst
12 | * gocheckmail - https://github.com/lzap/gocheckmail
13 | * feh - http://feh.finalrewind.org
14 | * systemd, X Window utils, binutils, shell...
15 | * perl-File-MimeInfo - otherwise xdg-open does not work correctly
16 |
17 | Samples
18 | -------
19 |
20 | Few samples were downloaded from http://dictionary.cambridge.org/dictionary/english
21 |
--------------------------------------------------------------------------------
/autostart:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Packages you need to install on Fedora in order to get this setup:
4 | # dnf install i3lock dmenu dunst network-manager-applet workrave stardict numlockx feh \
5 | # scrot f\*-backgrounds-base f\*-backgrounds-extras-base
6 |
7 | # Also using:
8 | # https://github.com/Tomas-M/xlunch
9 |
10 | # Wait for program coming up
11 | wait_for_program () {
12 | n=0
13 | while true
14 | do
15 | # PID of last background command
16 | if xdotool search --onlyvisible --pid $! 2>/dev/null; then
17 | break
18 | else
19 | if [ $n -eq 200 ]; then
20 | notify-send -u critical "Error during start: last program $! did not started fast enough"
21 | break
22 | else
23 | n=`expr $n + 1`
24 | sleep 0.1
25 | fi
26 | fi
27 | done
28 | }
29 |
30 | ## Merge Xresources
31 | xrdb -merge ~/.Xresources &
32 |
33 | ## Desktop background or picture
34 | #xsetroot -solid '#101010' &
35 | feh --bg-fill $(find /usr/share/backgrounds -type f -name \*jpg -o -name \*.png | shuf -n 1)
36 |
37 | ## Terminal daemon
38 | TERMINAL=xterm
39 |
40 | ## Load samples for volume keys feedback
41 | pactl upload-sample ~/.i3/that_was_easy.wav that_was_easy &
42 | pactl upload-sample ~/.i3/volume_blip.wav volume_blip &
43 | pactl upload-sample ~/.i3/mute.wav mute &
44 | pactl upload-sample ~/.i3/speak.wav speak &
45 |
46 | ## Disable beeps
47 | xset -b &
48 |
49 | ## Keybord layout setting
50 | setxkbmap -layout cz,us -option grp:shift_shift_toggle &
51 |
52 | ## C-A-Backspace to kill X
53 | #setxkbmap -option terminate:ctrl_alt_bksp &
54 |
55 | ## Turns on the numlock key in X11
56 | numlockx on &
57 |
58 | ## DPMS monitor setting (standby -> suspend -> off) (seconds)
59 | xset dpms 600 1200 2000 &
60 |
61 | ## Set LCD brightness
62 | xbacklight -set 100 &
63 |
64 | ## Gamma correction through the X server
65 | #xgamma -gamma 1.1 &
66 |
67 | ## Mouse and trackball setup
68 | ~/bin/configure-input-devices >/dev/null 2>&1 &
69 |
70 | ## Configure panel from left side
71 | PRIM_OUT=DP-1
72 | SEC_OUT=DVI-D-1
73 | xrandr --output $SEC_OUT --mode 1280x1024 --right-of $PRIM_OUT --output $PRIM_OUT --mode 2560x1440
74 |
75 | ## OSD
76 | LC_ALL=C dunst &
77 |
78 | ## Sublime Text
79 | #i3-msg "workspace 1; move workspace to output $PRIM_OUT"
80 | #/opt/sublime_text/sublime_text &
81 | #wait_for_program
82 |
83 | ## Setup workspaces and terminals
84 | for w in 1 2 3 4; do
85 | i3-msg "workspace $w; move workspace to output $PRIM_OUT"
86 | $TERMINAL &
87 | wait_for_program
88 | i3-msg split h
89 | $TERMINAL &
90 | wait_for_program
91 | i3-msg split v
92 | i3-msg "focus left; split v"
93 | #i3-msg "move workspace to output $DP"
94 | done
95 |
96 | i3-msg workspace 5
97 | #i3-msg layout tabbed
98 | ~/bin/chrome &
99 |
100 | for w in 6 7 8 9 10; do
101 | i3-msg "workspace $w; move workspace to output $SEC_OUT"
102 | done
103 |
104 | ## Start apps with defined workspaces
105 | i3-msg "workspace 6"
106 | #$TERMINAL -e weechat-curses &
107 | #flatpak run com.github.quaternion/x86_64/stable &>/dev/null &
108 | hexchat &>/dev/null &
109 |
110 | ## Refresh
111 | xrefresh &
112 |
113 | ## Special keys
114 | sleep 4s && xmodmap /home/lzap/.Xmodmap &
115 |
116 | ## Start taskbar utils
117 | LC_ALL=C parcellite &>/dev/null &
118 | LC_ALL=C nm-applet &>/dev/null &
119 | #LC_ALL=C workrave &>/dev/null &
120 | #LC_ALL=C dropbox start &>/dev/null &
121 |
122 | ## Update launcher cache
123 | bash /home/lzap/work/xlunch/extra/genentries -p /home/lzap/.local/share/icons > /home/lzap/.config/xlunch/entries.dsv 2>/dev/null &
124 | #dmenu_path >/dev/null &
125 |
126 | ## Good work :-)
127 | exit 0
128 |
--------------------------------------------------------------------------------
/config:
--------------------------------------------------------------------------------
1 | # Lukas Zapletal (lzap) i3 config file
2 | #
3 | # Please see https://i3wm.org/docs/user-contributed/lzap-config.html or
4 | # https://lukas.zapletalovi.com/2012/08/new-in-fedora-17-i3-42-tiling-wm.html
5 |
6 | # my main modifier key is Win
7 | set $mod Mod4
8 |
9 | # font for window titles. ISO 10646 = Unicode
10 | font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
11 |
12 | # Mouse+$mod to drag floating windows to their wanted position
13 | floating_modifier $mod
14 |
15 | # no mouse cursor "stealing" across workspaces
16 | mouse_warping none
17 |
18 | # workaround for some my "dumb" apps
19 | popup_during_fullscreen leave_fullscreen
20 |
21 | # clicking on links never steals focus
22 | focus_on_window_activation urgent
23 |
24 | # start a terminal
25 | bindsym $mod+Return exec xterm
26 |
27 | # kill focused window
28 | bindsym $mod+Shift+Q kill
29 |
30 | # start program launcher
31 | # ln -s /usr/share/fonts/google-roboto/RobotoCondensed-Regular.ttf ~/.fonts
32 | bindsym $mod+space exec /home/lzap/work/xlunch/xlunch -i /home/lzap/.config/xlunch/entries.dsv -f RobotoCondensed-Regular.ttf/10 -G
33 | #bindsym $mod+space exec /home/lzap/bin/dmenu_run
34 |
35 | # reload/restart/exit (confirmation does not work anymore)
36 | bindsym $mod+Shift+C reload
37 | #bindsym $mod+Shift+R restart
38 | #bindsym $mod+Shift+E exit
39 |
40 | # screen locker (first move to "safe" workspace without any chat app)
41 | bindsym Control+Mod1+l exec i3-msg workspace 1 && i3lock -c 111111 -d
42 | bindsym Control+Mod1+s exec i3-msg workspace 1 && sleep 1 && xset dpms force standby
43 |
44 | # change focus
45 | bindsym $mod+j focus left
46 | bindsym $mod+k focus down
47 | bindsym $mod+l focus up
48 | bindsym $mod+uring focus right
49 |
50 | # alternatively, you can use the cursor keys:
51 | bindsym $mod+Left focus left
52 | bindsym $mod+Down focus down
53 | bindsym $mod+Up focus up
54 | bindsym $mod+Right focus right
55 |
56 | # move focused window
57 | bindsym $mod+Shift+j move left
58 | bindsym $mod+Shift+k move down
59 | bindsym $mod+Shift+l move up
60 | bindsym $mod+Shift+uring move right
61 |
62 | # alternatively, you can use the cursor keys:
63 | bindsym $mod+Shift+Left move left
64 | bindsym $mod+Shift+Down move down
65 | bindsym $mod+Shift+Up move up
66 | bindsym $mod+Shift+Right move right
67 |
68 | # splitting
69 | bindsym $mod+v split vertical
70 | bindsym $mod+h split horizontal
71 |
72 | # enter fullscreen mode for the focused container
73 | bindsym $mod+f fullscreen
74 |
75 | # change container layout
76 | bindsym $mod+s layout toggle split
77 | bindsym $mod+x layout toggle all
78 | bindsym $mod+t layout tabbed
79 |
80 | # toggle tiling / floating
81 | bindsym $mod+y floating toggle
82 |
83 | # focus the parent container
84 | bindsym $mod+a focus parent
85 |
86 | # focus the child container
87 | bindsym $mod+d focus child
88 |
89 | # next/previous workspace
90 | bindsym Mod1+Tab focus left
91 | bindsym Mod1+Shift+Tab focus right
92 | bindsym $mod+Tab focus down
93 |
94 | # change focus between tiling / floating windows
95 | bindsym $mod+Shift+Tab focus mode_toggle
96 |
97 | # switch to workspace
98 | #bindsym $mod+ampersand workspace 1
99 | #bindsym $mod+eacute workspace 2
100 | #bindsym $mod+quotedbl workspace 3
101 | #bindsym $mod+apostrophe workspace 4
102 | #bindsym $mod+parenleft workspace 5
103 | #bindsym $mod+minus workspace 6
104 | #bindsym $mod+egrave workspace 7
105 | #bindsym $mod+underscore workspace 8
106 | #bindsym $mod+ccedilla workspace 9
107 | #bindsym $mod+agrave workspace 10
108 | bindsym $mod+1 workspace 1
109 | bindsym $mod+2 workspace 2
110 | bindsym $mod+3 workspace 3
111 | bindsym $mod+4 workspace 4
112 | bindsym $mod+5 workspace 5
113 | bindsym $mod+6 workspace 6
114 | bindsym $mod+7 workspace 7
115 | bindsym $mod+8 workspace 8
116 | bindsym $mod+9 workspace 9
117 | bindsym $mod+0 workspace 10
118 |
119 | # switch to workspace mapping - this won't work well
120 | #bindsym F1 workspace 1
121 | #bindsym F2 workspace 2
122 | #bindsym F3 workspace 3
123 | #bindsym F4 workspace 4
124 | #bindsym F5 workspace 5
125 | #bindsym Mod1+F1 workspace 6
126 | #bindsym Mod1+F2 workspace 7
127 | #bindsym Mod1+F3 workspace 8
128 | #bindsym Mod1+F4 workspace 9
129 | #bindsym Mod1+F5 workspace 10
130 |
131 | # use rebinding via ~/.Xmodmap and some free key codes instead
132 | # keycode 67 = XF86Launch5
133 | # keycode 68 = XF86Launch6
134 | # keycode 69 = XF86Launch7
135 | # keycode 70 = XF86Launch8
136 | # keycode 71 = XF86Launch9
137 | bindsym XF86Launch5 workspace 1
138 | bindsym XF86Launch6 workspace 2
139 | bindsym XF86Launch7 workspace 3
140 | bindsym XF86Launch8 workspace 4
141 | bindsym XF86Launch9 workspace 5
142 | bindsym Mod1+XF86Launch5 workspace 6
143 | bindsym Mod1+XF86Launch6 workspace 7
144 | bindsym Mod1+XF86Launch7 workspace 8
145 | bindsym Mod1+XF86Launch8 workspace 9
146 | bindsym Mod1+XF86Launch9 workspace 10
147 |
148 | # move focused container to workspace
149 | bindsym $mod+Shift+1 move container to workspace 1
150 | bindsym $mod+Shift+2 move container to workspace 2
151 | bindsym $mod+Shift+3 move container to workspace 3
152 | bindsym $mod+Shift+4 move container to workspace 4
153 | bindsym $mod+Shift+5 move container to workspace 5
154 | bindsym $mod+Shift+6 move container to workspace 6
155 | bindsym $mod+Shift+7 move container to workspace 7
156 | bindsym $mod+Shift+8 move container to workspace 8
157 | bindsym $mod+Shift+9 move container to workspace 9
158 | bindsym $mod+Shift+0 move container to workspace 10
159 |
160 | # border changing
161 | bindsym $mod+b border toggle
162 |
163 | # scratchpad
164 | bindsym $mod+m move scratchpad
165 | bindsym $mod+o scratchpad show
166 |
167 | # resize window (you can also use the mouse for that)
168 | mode "resize" {
169 | # These bindings trigger as soon as you enter the resize mode
170 |
171 | bindsym j resize shrink width 10 px or 10 ppt
172 | bindsym k resize grow height 10 px or 10 ppt
173 | bindsym l resize shrink height 10 px or 10 ppt
174 | #bindsym semicolon resize grow width 10 px or 10 ppt
175 | bindsym uring resize grow width 10 px or 10 ppt
176 |
177 | # same bindings, but for the arrow keys
178 | bindsym 113 resize shrink width 10 px or 10 ppt
179 | bindsym 116 resize grow height 10 px or 10 ppt
180 | bindsym 111 resize shrink height 10 px or 10 ppt
181 | bindsym 114 resize grow width 10 px or 10 ppt
182 |
183 | # back to normal: Enter or Escape
184 | bindsym Return mode "default"
185 | bindsym Escape mode "default"
186 | }
187 |
188 | bindsym $mod+r mode "resize"
189 |
190 | # bindings for MUTE/UNMUTE
191 | bindsym $mod+F11 exec /usr/bin/pactl set-source-mute alsa_input.usb-Logitech_Logitech_USB_Headset-00.analog-mono yes; exec /usr/bin/pactl play-sample mute
192 | bindsym $mod+F12 exec /usr/bin/pactl set-source-mute alsa_input.usb-Logitech_Logitech_USB_Headset-00.analog-mono no; exec /usr/bin/pactl play-sample speak
193 |
194 | # bindings for ThinkPad keyboard
195 | bindsym XF86AudioLowerVolume exec /usr/bin/pactl set-sink-volume 0 -20%; exec /usr/bin/pactl play-sample volume_blip; exec /usr/bin/killall -USR1 i3status
196 | bindsym XF86AudioRaiseVolume exec /usr/bin/pactl set-sink-volume 0 +20%; exec /usr/bin/pactl play-sample volume_blip; exec /usr/bin/killall -USR1 i3status
197 | bindsym XF86AudioMute exec /usr/bin/pactl set-sink-volume 0 0; exec /usr/bin/pactl play-sample volume_blip; exec /usr/bin/killall -USR1 i3status
198 | bindsym XF86Launch1 exec /usr/bin/pactl play-sample that_was_easy
199 | bindsym XF86MonBrightnessUp exec /usr/bin/xbacklight -inc 10
200 | bindsym XF86MonBrightnessDown exec /usr/bin/xbacklight -dec 5
201 |
202 | # bindings for MS Natural Ergonomic Keyboard 4000
203 | bindsym XF86HomePage exec /usr/bin/xdg-open "http://www.github.com"; workspace 5
204 | bindsym XF86Search exec /usr/bin/xdg-open "http://www.google.com"; workspace 5
205 | bindsym XF86Mail exec /usr/bin/xdg-email; workspace 5
206 | #bindsym XF86Launch5
207 | #bindsym XF86Launch6
208 | #bindsym XF86Launch7
209 | #bindsym XF86Launch8
210 | #bindsym XF86Launch9
211 | #bindsym XF86AudioMute
212 | #bindsym XF86AudioLowerVolume
213 | #bindsym XF86AudioRaiseVolume
214 | #bindsym XF86AudioPlay
215 | #bindsym XF86Favourites echo DOESNOTWORK
216 | #bindsym XF86Calculator exec /usr/bin/xcalc
217 | bindsym XF86Calculator exec /usr/bin/xbacklight -set 100
218 | #bindsym Help
219 | #bindsym Undo
220 | #bindsym Redo
221 | #bindsym XF86New
222 | #bindsym SunOpen
223 | #bindsym XF86Close
224 | #bindsym XF86Reply
225 | #bindsym XF86MailForward
226 | #bindsym XF86Send
227 | #bindsym XF86Save
228 | bindsym Print exec scrot -bs '/tmp/_SCREEN_%Y-%m-%d-%T_$wx$h.png'
229 | bindsym $mod+Print exec scrot -b '/tmp/_SCREEN_FULL_%Y-%m-%d-%T_$wx$h.png'
230 |
231 | # $mod+n reserved for close all notifications
232 | # see ~/.config/dunst/dunstrc for more
233 |
234 | # one bar on both screens
235 | bar {
236 | position top
237 | status_command i3status
238 | tray_output DP-1
239 | }
240 |
241 | # workspace screens
242 | workspace 1 output DP-1
243 | workspace 2 output DP-1
244 | workspace 3 output DP-1
245 | workspace 4 output DP-1
246 | workspace 5 output DP-1
247 | workspace 6 output DVI-D-1
248 | workspace 7 output DVI-D-1
249 | workspace 8 output DVI-D-1
250 | workspace 9 output DVI-D-1
251 | workspace 10 output DVI-D-1
252 |
253 | # workspace assignment (use "xprop")
254 | assign [class="^Google-chrome$"] 5
255 | #assign [class="^URxvt$" instance="^mail$"] 4
256 | assign [class="^Xchat$"] 6
257 | assign [title="^weechat"] 6
258 | assign [class="^quaternion"] 6
259 | assign [class="^[Hh]exchat"] 6
260 | assign [class="^Steam$"] 7
261 | assign [class="^Vide$"] 8
262 | #assign [class="^Decibel-audio-player.py$"] 7
263 | assign [class="^telegram$"] 9
264 | assign [title="Lingea Lexicon 5$"] 10
265 | assign [title="^Stardict$"] 10
266 | assign [class="^Sflphone$"] 10
267 |
268 | # custom window settings
269 | for_window [class="^XCalc$"] floating enable
270 | for_window [class="^Zeal$" instance="scratchpad"] move scratchpad
271 | for_window [title="^Authy"] floating enable, border normal
272 | for_window [class="^Google-chrome$"] border 1pixel
273 | for_window [title="Lingea Lexicon 5$"] border none
274 | for_window [class="^GVim$"] split v, layout stacking
275 | for_window [class="^Zeal$"] floating enable
276 | for_window [class="^Xsane$"] floating enable
277 | for_window [class="^SFLphone"] floating enable
278 | for_window [class="^TeamViewer.exe$"] floating enable
279 | for_window [title="^TeamViewer$"] floating enable
280 | for_window [title="^Computers & Contacts$"] floating enable
281 | for_window [title="- TeamViewer -"] floating enable
282 | for_window [title="^Počítače a kontakty$"] floating enable
283 | for_window [class="^Steam$"] floating enable; border none
284 | for_window [class="^feh$"] fullscreen
285 | for_window [class="^Meld$"] fullscreen
286 | for_window [class="^hl_linux$"] border none; fullscreen
287 | for_window [class="^hl2_linux$"] border none; fullscreen
288 | for_window [title="^Renoise"] border none; fullscreen
289 | for_window [class="^Sflphone$"] floating enable
290 | for_window [class="^Workrave$"] floating enable
291 | for_window [class="^History buffer$"] border none; fullscreen
292 | for_window [title="^Google+ Hangouts is sharing your screen"] floating enable
293 |
294 | # create scratchpad shell
295 | #exec -name scratchpad zeal
296 |
297 | # start the session
298 | exec --no-startup-id ~/.i3/autostart
299 |
300 | # eof
301 |
--------------------------------------------------------------------------------
/dock:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | DP=$(xrandr | grep -E "DP[12345] connected" | grep -oE "DP[12345]")
3 | xrandr --output $DP --left-of LVDS1 --auto
4 | pacmd set-sink-port 0 analog-output
5 | sleep 3
6 | for W in 1 2 3 4 5; do
7 | i3-msg "workspace $W; move workspace to output $DP"
8 | done
9 | sleep 1
10 | nmcli r all off
11 | xmodmap /home/lzap/.Xmodmap
12 | configure-input-devices
13 |
--------------------------------------------------------------------------------
/dunstrc:
--------------------------------------------------------------------------------
1 | [global]
2 | ### Display ###
3 |
4 | # Which monitor should the notifications be displayed on.
5 | monitor = 0
6 |
7 | # Display notification on focused monitor. Possible modes are:
8 | # mouse: follow mouse pointer
9 | # keyboard: follow window with keyboard focus
10 | # none: don't follow anything
11 | #
12 | # "keyboard" needs a window manager that exports the
13 | # _NET_ACTIVE_WINDOW property.
14 | # This should be the case for almost all modern window managers.
15 | #
16 | # If this option is set to mouse or keyboard, the monitor option
17 | # will be ignored.
18 | follow = mouse
19 |
20 | # The geometry of the window:
21 | # [{width}]x{height}[+/-{x}+/-{y}]
22 | # The geometry of the message window.
23 | # The height is measured in number of notifications everything else
24 | # in pixels. If the width is omitted but the height is given
25 | # ("-geometry x2"), the message window expands over the whole screen
26 | # (dmenu-like). If width is 0, the window expands to the longest
27 | # message displayed. A positive x is measured from the left, a
28 | # negative from the right side of the screen. Y is measured from
29 | # the top and down respectively.
30 | # The width can be negative. In this case the actual width is the
31 | # screen width minus the width defined in within the geometry option.
32 | geometry = "300x5-30+20"
33 |
34 | # Show how many messages are currently hidden (because of geometry).
35 | indicate_hidden = yes
36 |
37 | # Shrink window if it's smaller than the width. Will be ignored if
38 | # width is 0.
39 | shrink = no
40 |
41 | # The transparency of the window. Range: [0; 100].
42 | # This option will only work if a compositing window manager is
43 | # present (e.g. xcompmgr, compiz, etc.).
44 | transparency = 0
45 |
46 | # The height of the entire notification. If the height is smaller
47 | # than the font height and padding combined, it will be raised
48 | # to the font height and padding.
49 | notification_height = 0
50 |
51 | # Draw a line of "separator_height" pixel height between two
52 | # notifications.
53 | # Set to 0 to disable.
54 | separator_height = 2
55 |
56 | # Padding between text and separator.
57 | padding = 8
58 |
59 | # Horizontal padding.
60 | horizontal_padding = 8
61 |
62 | # Defines width in pixels of frame around the notification window.
63 | # Set to 0 to disable.
64 | frame_width = 3
65 |
66 | # Defines color of the frame around the notification window.
67 | frame_color = "#aaaaaa"
68 |
69 | # Define a color for the separator.
70 | # possible values are:
71 | # * auto: dunst tries to find a color fitting to the background;
72 | # * foreground: use the same color as the foreground;
73 | # * frame: use the same color as the frame;
74 | # * anything else will be interpreted as a X color.
75 | separator_color = frame
76 |
77 | # Sort messages by urgency.
78 | sort = yes
79 |
80 | # Don't remove messages, if the user is idle (no mouse or keyboard input)
81 | # for longer than idle_threshold seconds.
82 | # Set to 0 to disable.
83 | idle_threshold = 120
84 |
85 | ### Text ###
86 |
87 | font = Monospace 8
88 |
89 | # The spacing between lines. If the height is smaller than the
90 | # font height, it will get raised to the font height.
91 | line_height = 0
92 |
93 | # Possible values are:
94 | # full: Allow a small subset of html markup in notifications:
95 | # bold
96 | # italic
97 | # strikethrough
98 | # underline
99 | #
100 | # For a complete reference see
101 | # .
102 | #
103 | # strip: This setting is provided for compatibility with some broken
104 | # clients that send markup even though it's not enabled on the
105 | # server. Dunst will try to strip the markup but the parsing is
106 | # simplistic so using this option outside of matching rules for
107 | # specific applications *IS GREATLY DISCOURAGED*.
108 | #
109 | # no: Disable markup parsing, incoming notifications will be treated as
110 | # plain text. Dunst will not advertise that it has the body-markup
111 | # capability if this is set as a global setting.
112 | #
113 | # It's important to note that markup inside the format option will be parsed
114 | # regardless of what this is set to.
115 | markup = full
116 |
117 | # The format of the message. Possible variables are:
118 | # %a appname
119 | # %s summary
120 | # %b body
121 | # %i iconname (including its path)
122 | # %I iconname (without its path)
123 | # %p progress value if set ([ 0%] to [100%]) or nothing
124 | # %n progress value if set without any extra characters
125 | # Markup is allowed
126 | format = "%s\n%b"
127 |
128 | # Alignment of message text.
129 | # Possible values are "left", "center" and "right".
130 | alignment = left
131 |
132 | # Show age of message if message is older than show_age_threshold
133 | # seconds.
134 | # Set to -1 to disable.
135 | show_age_threshold = 60
136 |
137 | # Split notifications into multiple lines if they don't fit into
138 | # geometry.
139 | word_wrap = yes
140 |
141 | # Ignore newlines '\n' in notifications.
142 | ignore_newline = no
143 |
144 | # Merge multiple notifications with the same content
145 | stack_duplicates = true
146 |
147 | # Hide the count of merged notifications with the same content
148 | hide_duplicate_count = false
149 |
150 | # Display indicators for URLs (U) and actions (A).
151 | show_indicators = yes
152 |
153 | ### Icons ###
154 |
155 | # Align icons left/right/off
156 | icon_position = off
157 |
158 | # Scale larger icons down to this size, set to 0 to disable
159 | max_icon_size = 32
160 |
161 | # Paths to default icons.
162 | icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
163 |
164 | ### History ###
165 |
166 | # Should a notification popped up from history be sticky or timeout
167 | # as if it would normally do.
168 | sticky_history = yes
169 |
170 | # Maximum amount of notifications kept in history
171 | history_length = 20
172 |
173 | ### Misc/Advanced ###
174 |
175 | # dmenu path.
176 | dmenu = /usr/bin/dmenu -p dunst:
177 |
178 | # Browser for opening urls in context menu.
179 | browser = /usr/bin/firefox -new-tab
180 |
181 | # Always run rule-defined scripts, even if the notification is suppressed
182 | always_run_script = true
183 |
184 | # Define the title of the windows spawned by dunst
185 | title = Dunst
186 |
187 | # Define the class of the windows spawned by dunst
188 | class = Dunst
189 |
190 | # Print a notification on startup.
191 | # This is mainly for error detection, since dbus (re-)starts dunst
192 | # automatically after a crash.
193 | startup_notification = false
194 |
195 | ### Legacy
196 |
197 | # Use the Xinerama extension instead of RandR for multi-monitor support.
198 | # This setting is provided for compatibility with older nVidia drivers that
199 | # do not support RandR and using it on systems that support RandR is highly
200 | # discouraged.
201 | #
202 | # By enabling this setting dunst will not be able to detect when a monitor
203 | # is connected or disconnected which might break follow mode if the screen
204 | # layout changes.
205 | force_xinerama = false
206 |
207 | # Experimental features that may or may not work correctly. Do not expect them
208 | # to have a consistent behaviour across releases.
209 | [experimental]
210 | # Calculate the dpi to use on a per-monitor basis.
211 | # If this setting is enabled the Xft.dpi value will be ignored and instead
212 | # dunst will attempt to calculate an appropriate dpi value for each monitor
213 | # using the resolution and physical size. This might be useful in setups
214 | # where there are multiple screens with very different dpi values.
215 | per_monitor_dpi = false
216 |
217 | [shortcuts]
218 |
219 | # Shortcuts are specified as [modifier+][modifier+]...key
220 | # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
221 | # "mod3" and "mod4" (windows-key).
222 | # Xev might be helpful to find names for keys.
223 |
224 | # Close notification.
225 | close = ctrl+space
226 |
227 | # Close all notifications.
228 | close_all = ctrl+shift+space
229 |
230 | # Redisplay last message(s).
231 | # On the US keyboard layout "grave" is normally above TAB and left
232 | # of "1". Make sure this key actually exists on your keyboard layout,
233 | # e.g. check output of 'xmodmap -pke'
234 | #history = ctrl+grave
235 |
236 | # Context menu.
237 | #context = ctrl+shift+period
238 |
239 | [urgency_low]
240 | # IMPORTANT: colors have to be defined in quotation marks.
241 | # Otherwise the "#" and following would be interpreted as a comment.
242 | background = "#222222"
243 | foreground = "#888888"
244 | timeout = 10
245 | # Icon for notifications with low urgency, uncomment to enable
246 | #icon = /path/to/icon
247 |
248 | [urgency_normal]
249 | background = "#285577"
250 | foreground = "#ffffff"
251 | timeout = 10
252 | # Icon for notifications with normal urgency, uncomment to enable
253 | #icon = /path/to/icon
254 |
255 | [urgency_critical]
256 | background = "#900000"
257 | foreground = "#ffffff"
258 | frame_color = "#ff0000"
259 | timeout = 0
260 | # Icon for notifications with critical urgency, uncomment to enable
261 | #icon = /path/to/icon
262 |
263 | # Every section that isn't one of the above is interpreted as a rules to
264 | # override settings for certain messages.
265 | # Messages can be matched by "appname", "summary", "body", "icon", "category",
266 | # "msg_urgency" and you can override the "timeout", "urgency", "foreground",
267 | # "background", "new_icon" and "format".
268 | # Shell-like globbing will get expanded.
269 | #
270 | # SCRIPTING
271 | # You can specify a script that gets run when the rule matches by
272 | # setting the "script" option.
273 | # The script will be called as follows:
274 | # script appname summary body icon urgency
275 | # where urgency can be "LOW", "NORMAL" or "CRITICAL".
276 | #
277 | # NOTE: if you don't want a notification to be displayed, set the format
278 | # to "".
279 | # NOTE: It might be helpful to run dunst -print in a terminal in order
280 | # to find fitting options for rules.
281 |
282 | #[espeak]
283 | # summary = "*"
284 | # script = dunst_espeak.sh
285 |
286 | #[script-test]
287 | # summary = "*script*"
288 | # script = dunst_test.sh
289 |
290 | #[ignore]
291 | # # This notification will not be displayed
292 | # summary = "foobar"
293 | # format = ""
294 |
295 | #[history-ignore]
296 | # # This notification will not be saved in history
297 | # summary = "foobar"
298 | # history_ignore = yes
299 |
300 | #[signed_on]
301 | # appname = Pidgin
302 | # summary = "*signed on*"
303 | # urgency = low
304 | #
305 | #[signed_off]
306 | # appname = Pidgin
307 | # summary = *signed off*
308 | # urgency = low
309 | #
310 | #[says]
311 | # appname = Pidgin
312 | # summary = *says*
313 | # urgency = critical
314 | #
315 | #[twitter]
316 | # appname = Pidgin
317 | # summary = *twitter.com*
318 | # urgency = normal
319 | #
320 | # vim: ft=cfg
321 |
--------------------------------------------------------------------------------
/mute.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lzap/doti3/c37dead7d7c3e4540d8b1a656474418bb2f3d196/mute.wav
--------------------------------------------------------------------------------
/speak.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lzap/doti3/c37dead7d7c3e4540d8b1a656474418bb2f3d196/speak.wav
--------------------------------------------------------------------------------
/that_was_easy.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lzap/doti3/c37dead7d7c3e4540d8b1a656474418bb2f3d196/that_was_easy.wav
--------------------------------------------------------------------------------
/undock:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | killall mbsync 2>/dev/null
3 | for DP in DP1 DP2 DP3; do
4 | xrandr --output $DP --off
5 | #xrandr --output VIRTUAL1 --off
6 | done
7 | pacmd set-sink-port 0 analog-output-speaker
8 | sleep 2
9 | nmcli r all on
10 | for W in $(seq 1 10); do
11 | i3-msg "workspace $W; move workspace to output LVDS1"
12 | done
13 |
--------------------------------------------------------------------------------
/volume_blip.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lzap/doti3/c37dead7d7c3e4540d8b1a656474418bb2f3d196/volume_blip.wav
--------------------------------------------------------------------------------