summaryrefslogtreecommitdiff
path: root/dotfiles
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@fretlink.com>2018-10-20 17:04:44 +0200
committerIsmaël Bouya <ismael.bouya@fretlink.com>2018-10-20 17:04:44 +0200
commit1950387f0b222d9ca51b573a4b287f139e5248c5 (patch)
treea57f221e43fc7896288b9ff497c24e7d05c366fa /dotfiles
downloaddotdrop-1950387f0b222d9ca51b573a4b287f139e5248c5.tar.gz
dotdrop-1950387f0b222d9ca51b573a4b287f139e5248c5.tar.zst
dotdrop-1950387f0b222d9ca51b573a4b287f139e5248c5.zip
Validation initiale
Diffstat (limited to 'dotfiles')
-rw-r--r--dotfiles/fretlink/config_files/autostart/zeal.desktop10
-rwxr-xr-xdotfiles/fretlink/workdir/start53
-rw-r--r--dotfiles/git/config_files/git/config23
-rwxr-xr-xdotfiles/git/config_files/git/templates_fretlink/hooks/pre-push8
-rw-r--r--dotfiles/git/config_files/tig/config19
-rw-r--r--dotfiles/graphical/config_files/autostart/redshift-gtk.desktop7
-rw-r--r--dotfiles/graphical/config_files/dunst/dunstrc368
-rw-r--r--dotfiles/graphical/config_files/redshift.conf8
-rw-r--r--dotfiles/graphical/mimeapps.list147
-rw-r--r--dotfiles/lxde/config_files/libfm/libfm.conf44
-rw-r--r--dotfiles/lxde/config_files/lxpanel/LXDE/config2
-rw-r--r--dotfiles/lxde/config_files/lxpanel/LXDE/panels/panel165
-rw-r--r--dotfiles/lxde/config_files/lxpanel/launchtaskbar.cfg4
-rw-r--r--dotfiles/lxde/config_files/lxsession-default-apps/settings.conf45
-rwxr-xr-xdotfiles/lxde/config_files/lxsession/LXDE/autostart3
-rw-r--r--dotfiles/lxde/config_files/lxsession/LXDE/desktop.conf54
-rw-r--r--dotfiles/lxde/config_files/lxterminal/lxterminal.conf53
-rw-r--r--dotfiles/lxde/config_files/openbox/lxde-rc.xml696
-rw-r--r--dotfiles/lxde/config_files/pcmanfm/LXDE/desktop-items-0.conf15
-rw-r--r--dotfiles/lxde/config_files/pcmanfm/LXDE/pcmanfm.conf27
-rw-r--r--dotfiles/lxde/config_files/xinitrc15
-rw-r--r--dotfiles/pam_environment70
-rw-r--r--dotfiles/programming/haskell/ghci.conf2
-rw-r--r--dotfiles/programming/nodejs/npmrc3
-rw-r--r--dotfiles/remind/remind@.service10
-rw-r--r--dotfiles/remind/work1
-rw-r--r--dotfiles/shell_bash/bash_profile9
-rw-r--r--dotfiles/shell_bash/bashrc94
-rw-r--r--dotfiles/tools/mplayer3
-rw-r--r--dotfiles/tools/psqlrc5
-rw-r--r--dotfiles/tools/tmux.conf88
-rw-r--r--dotfiles/tools/vimrc305
-rw-r--r--dotfiles/tools/youtube-viewer.conf89
33 files changed, 2445 insertions, 0 deletions
diff --git a/dotfiles/fretlink/config_files/autostart/zeal.desktop b/dotfiles/fretlink/config_files/autostart/zeal.desktop
new file mode 100644
index 0000000..27f53b7
--- /dev/null
+++ b/dotfiles/fretlink/config_files/autostart/zeal.desktop
@@ -0,0 +1,10 @@
1[Desktop Entry]
2Version=1.0
3Name=Zeal
4GenericName=Documentation Browser
5Comment=Simple API documentation browser
6Exec=/usr/bin/zeal
7Icon=zeal
8Terminal=false
9Type=Application
10Categories=Development;
diff --git a/dotfiles/fretlink/workdir/start b/dotfiles/fretlink/workdir/start
new file mode 100755
index 0000000..911c28d
--- /dev/null
+++ b/dotfiles/fretlink/workdir/start
@@ -0,0 +1,53 @@
1#!/bin/bash
2
3APP="$1"
4
5if [ -z "$APP" ]; then
6 if [ $(dirname $(pwd)) = "$HOME/workdir" ]; then
7 APP=$(basename $(pwd))
8 else
9 echo "need an app to start"
10 exit 1
11 fi
12fi
13
14if [ "$APP" != "psql" ]; then
15 cd $HOME/workdir/$APP
16 source ../environment
17else
18 source ../environment
19 APP=psql
20fi
21
22function start_stack() {
23 stack exec $1;
24}
25
26function start_app() {
27 trap 'make stop' EXIT
28
29 if ! docker top mongo_container 2>/dev/null; then
30 docker run -d --name mongo_container -p 27017:27017 --rm -v $(pwd)/appdata:/data/db mongo:3.6
31 echo "Waiting until mongo is started"
32 sleep 10
33 fi
34
35 make start
36 make --directory=frontend/ start
37}
38
39function start_psql() {
40 export PGPASSWORD=$POSTGRESQL_ADDON_PASSWORD
41 psql -h $POSTGRESQL_ADDON_HOST -p $POSTGRESQL_ADDON_PORT -U $POSTGRESQL_ADDON_USER -d $POSTGRESQL_ADDON_DB
42}
43
44case "$APP" in
45 "psql") start_psql;;
46 "app") start_app;;
47 "admin-root") start_stack server;;
48 "carrier-directory") start_stack server;;
49 "freight") start_stack freight-server;;
50 "notifier") start_stack notifier-exe;;
51 "pricer") start_stack pricer;;
52 "toolbox") start_stack toolbox-api;;
53esac
diff --git a/dotfiles/git/config_files/git/config b/dotfiles/git/config_files/git/config
new file mode 100644
index 0000000..5565c38
--- /dev/null
+++ b/dotfiles/git/config_files/git/config
@@ -0,0 +1,23 @@
1[user]
2 signingkey = DC384748709D2619FF2867216D0CAFFDDB1CFE90
3{%@@ if profile in role and role[profile] == "fretlink" @@%}
4 email = ismael.bouya@fretlink.com
5{%@@ else @@%}
6 email = ismael.bouya@normalesup.org
7{%@@ endif @@%}
8 name = Ismaël Bouya
9[commit]
10 gpgsign = true
11 verbose = true
12[push]
13 gpgSign = if-asked
14{%@@ if profile in role and role[profile] == "fretlink" @@%}
15[fretlink]
16 remote-name = upstream
17{%@@ endif @@%}
18[log]
19 showSignature = true
20{%@@ if profile in role @@%}
21[init]
22 templateDir = ~/.config/git/templates_{{@@ role[profile] @@}}
23{%@@ endif @@%}
diff --git a/dotfiles/git/config_files/git/templates_fretlink/hooks/pre-push b/dotfiles/git/config_files/git/templates_fretlink/hooks/pre-push
new file mode 100755
index 0000000..19088c9
--- /dev/null
+++ b/dotfiles/git/config_files/git/templates_fretlink/hooks/pre-push
@@ -0,0 +1,8 @@
1#!/usr/bin/env bash
2
3set -e
4
5echo "[+] Running the linter"
6make lint
7
8exit 0
diff --git a/dotfiles/git/config_files/tig/config b/dotfiles/git/config_files/tig/config
new file mode 100644
index 0000000..e9cdf17
--- /dev/null
+++ b/dotfiles/git/config_files/tig/config
@@ -0,0 +1,19 @@
1set editor-line-number = yes
2set mouse = yes
3set mouse-scroll = 5
4set refresh-mode = auto
5set line-graphics = utf-8
6
7set pager-view-line-number = yes,interval=10
8set blame-view-line-number = yes,interval=10
9set grep-view-line-number = yes,interval=10
10set diff-view-line-number = yes,interval=10
11set log-view-line-number = yes,interval=10
12set blob-view-line-number = yes,interval=10
13set stage-view-line-number = yes,interval=10
14
15set main-view-commit-title = graph=v1,refs=yes
16set refs-view-commit-title = graph=v1,refs=yes
17set stash-view-commit-title = graph=v1,refs=yes
18
19set refs-view-ref = display=yes
diff --git a/dotfiles/graphical/config_files/autostart/redshift-gtk.desktop b/dotfiles/graphical/config_files/autostart/redshift-gtk.desktop
new file mode 100644
index 0000000..3fc7814
--- /dev/null
+++ b/dotfiles/graphical/config_files/autostart/redshift-gtk.desktop
@@ -0,0 +1,7 @@
1[Desktop Entry]
2Name=Redshift
3GenericName=Redshift
4Exec=/usr/bin/redshift-gtk
5Icon=redshift
6Terminal=false
7Type=Application
diff --git a/dotfiles/graphical/config_files/dunst/dunstrc b/dotfiles/graphical/config_files/dunst/dunstrc
new file mode 100644
index 0000000..c8e55b5
--- /dev/null
+++ b/dotfiles/graphical/config_files/dunst/dunstrc
@@ -0,0 +1,368 @@
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 # Transient notifications ignore this setting.
84 idle_threshold = 120
85
86 ### Text ###
87
88 font = Monospace 8
89
90 # The spacing between lines. If the height is smaller than the
91 # font height, it will get raised to the font height.
92 line_height = 0
93
94 # Possible values are:
95 # full: Allow a small subset of html markup in notifications:
96 # <b>bold</b>
97 # <i>italic</i>
98 # <s>strikethrough</s>
99 # <u>underline</u>
100 #
101 # For a complete reference see
102 # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
103 #
104 # strip: This setting is provided for compatibility with some broken
105 # clients that send markup even though it's not enabled on the
106 # server. Dunst will try to strip the markup but the parsing is
107 # simplistic so using this option outside of matching rules for
108 # specific applications *IS GREATLY DISCOURAGED*.
109 #
110 # no: Disable markup parsing, incoming notifications will be treated as
111 # plain text. Dunst will not advertise that it has the body-markup
112 # capability if this is set as a global setting.
113 #
114 # It's important to note that markup inside the format option will be parsed
115 # regardless of what this is set to.
116 markup = full
117
118 # The format of the message. Possible variables are:
119 # %a appname
120 # %s summary
121 # %b body
122 # %i iconname (including its path)
123 # %I iconname (without its path)
124 # %p progress value if set ([ 0%] to [100%]) or nothing
125 # %n progress value if set without any extra characters
126 # %% Literal %
127 # Markup is allowed
128 format = "<span size='small'>%a</span>\n<b>%s</b>\n%b\n%p"
129
130 # Alignment of message text.
131 # Possible values are "left", "center" and "right".
132 alignment = left
133
134 # Show age of message if message is older than show_age_threshold
135 # seconds.
136 # Set to -1 to disable.
137 show_age_threshold = 60
138
139 # Split notifications into multiple lines if they don't fit into
140 # geometry.
141 word_wrap = yes
142
143 # When word_wrap is set to no, specify where to make an ellipsis in long lines.
144 # Possible values are "start", "middle" and "end".
145 ellipsize = middle
146
147 # Ignore newlines '\n' in notifications.
148 ignore_newline = no
149
150 # Merge multiple notifications with the same content
151 stack_duplicates = true
152
153 # Hide the count of merged notifications with the same content
154 hide_duplicate_count = false
155
156 # Display indicators for URLs (U) and actions (A).
157 show_indicators = yes
158
159 ### Icons ###
160
161 # Align icons left/right/off
162 icon_position = left
163
164 # Scale larger icons down to this size, set to 0 to disable
165 max_icon_size = 32
166
167 # Paths to default icons.
168 icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
169
170 ### History ###
171
172 # Should a notification popped up from history be sticky or timeout
173 # as if it would normally do.
174 sticky_history = yes
175
176 # Maximum amount of notifications kept in history
177 history_length = 20
178
179 ### Misc/Advanced ###
180
181 # dmenu path.
182 dmenu = /usr/bin/dmenu -p dunst:
183
184 # Browser for opening urls in context menu.
185 browser = /usr/bin/firefox -new-tab
186
187 # Always run rule-defined scripts, even if the notification is suppressed
188 always_run_script = true
189
190 # Define the title of the windows spawned by dunst
191 title = Dunst
192
193 # Define the class of the windows spawned by dunst
194 class = Dunst
195
196 # Print a notification on startup.
197 # This is mainly for error detection, since dbus (re-)starts dunst
198 # automatically after a crash.
199 startup_notification = true
200
201 # Manage dunst's desire for talking
202 # Can be one of the following values:
203 # crit: Critical features. Dunst aborts
204 # warn: Only non-fatal warnings
205 # mesg: Important Messages
206 # info: all unimportant stuff
207 # debug: all less than unimportant stuff
208 verbosity = mesg
209
210 # Define the corner radius of the notification window
211 # in pixel size. If the radius is 0, you have no rounded
212 # corners.
213 # The radius will be automatically lowered if it exceeds half of the
214 # notification height to avoid clipping text and/or icons.
215 corner_radius = 0
216
217 ### Legacy
218
219 # Use the Xinerama extension instead of RandR for multi-monitor support.
220 # This setting is provided for compatibility with older nVidia drivers that
221 # do not support RandR and using it on systems that support RandR is highly
222 # discouraged.
223 #
224 # By enabling this setting dunst will not be able to detect when a monitor
225 # is connected or disconnected which might break follow mode if the screen
226 # layout changes.
227 force_xinerama = false
228
229# Experimental features that may or may not work correctly. Do not expect them
230# to have a consistent behaviour across releases.
231[experimental]
232 # Calculate the dpi to use on a per-monitor basis.
233 # If this setting is enabled the Xft.dpi value will be ignored and instead
234 # dunst will attempt to calculate an appropriate dpi value for each monitor
235 # using the resolution and physical size. This might be useful in setups
236 # where there are multiple screens with very different dpi values.
237 per_monitor_dpi = false
238
239[shortcuts]
240
241 # Shortcuts are specified as [modifier+][modifier+]...key
242 # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
243 # "mod3" and "mod4" (windows-key).
244 # Xev might be helpful to find names for keys.
245
246 # Close notification.
247 close = ctrl+space
248
249 # Close all notifications.
250 close_all = ctrl+mod1+space
251
252 # Redisplay last message(s).
253 # On the US keyboard layout "grave" is normally above TAB and left
254 # of "1". Make sure this key actually exists on your keyboard layout,
255 # e.g. check output of 'xmodmap -pke'
256 history = ctrl+shift+space
257
258 # Context menu.
259 context = shift+space
260
261[urgency_low]
262 # IMPORTANT: colors have to be defined in quotation marks.
263 # Otherwise the "#" and following would be interpreted as a comment.
264 background = "#222222"
265 foreground = "#888888"
266 timeout = 10
267 # Icon for notifications with low urgency, uncomment to enable
268 #icon = /path/to/icon
269
270[urgency_normal]
271 background = "#285577"
272 foreground = "#ffffff"
273 timeout = 10
274 # Icon for notifications with normal urgency, uncomment to enable
275 #icon = /path/to/icon
276
277[urgency_critical]
278 background = "#900000"
279 foreground = "#ffffff"
280 frame_color = "#ff0000"
281 timeout = 0
282 # Icon for notifications with critical urgency, uncomment to enable
283 #icon = /path/to/icon
284
285# Every section that isn't one of the above is interpreted as a rules to
286# override settings for certain messages.
287# Messages can be matched by "appname", "summary", "body", "icon", "category",
288# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
289# "background", "frame_color", "new_icon" and "format", "fullscreen".
290# Shell-like globbing will get expanded.
291#
292# SCRIPTING
293# You can specify a script that gets run when the rule matches by
294# setting the "script" option.
295# The script will be called as follows:
296# script appname summary body icon urgency
297# where urgency can be "LOW", "NORMAL" or "CRITICAL".
298#
299# NOTE: if you don't want a notification to be displayed, set the format
300# to "".
301# NOTE: It might be helpful to run dunst -print in a terminal in order
302# to find fitting options for rules.
303
304# fullscreen values
305# show: show the notifications, regardless if there is a fullscreen window opened
306# delay: displays the new notification, if there is no fullscreen window active
307# If the notification is already drawn, it won't get undrawn.
308# pushback: same as delay, but when switching into fullscreen, the notification will get
309# withdrawn from screen again and will get delayed like a new notification
310
311#[fullscreen_delay_everything]
312# fullscreen = delay
313#[fullscreen_show_critical]
314# msg_urgency = critical
315# fullscreen = show
316
317[volume]
318 summary = "Volume"
319 appname = "Openbox-volume"
320 format = "Volume %p"
321 fullscreen = show
322
323[volume-mute]
324 appname = "Openbox-mute"
325 format = "%s"
326 fullscreen = show
327 background = "#00ff00"
328 foreground = "#000000"
329
330#[espeak]
331# summary = "*"
332# script = dunst_espeak.sh
333
334#[script-test]
335# summary = "*script*"
336# script = dunst_test.sh
337
338#[ignore]
339# # This notification will not be displayed
340# summary = "foobar"
341# format = ""
342
343#[history-ignore]
344# # This notification will not be saved in history
345# summary = "foobar"
346# history_ignore = yes
347
348#[signed_on]
349# appname = Pidgin
350# summary = "*signed on*"
351# urgency = low
352#
353#[signed_off]
354# appname = Pidgin
355# summary = *signed off*
356# urgency = low
357#
358#[says]
359# appname = Pidgin
360# summary = *says*
361# urgency = critical
362#
363#[twitter]
364# appname = Pidgin
365# summary = *twitter.com*
366# urgency = normal
367#
368# vim: ft=cfg
diff --git a/dotfiles/graphical/config_files/redshift.conf b/dotfiles/graphical/config_files/redshift.conf
new file mode 100644
index 0000000..da26fa2
--- /dev/null
+++ b/dotfiles/graphical/config_files/redshift.conf
@@ -0,0 +1,8 @@
1[redshift]
2temp-day=4500
3temp-night=4500
4location-provider=manual
5
6[manual]
7lat=48.8566
8lon=2.3522
diff --git a/dotfiles/graphical/mimeapps.list b/dotfiles/graphical/mimeapps.list
new file mode 100644
index 0000000..5c827ab
--- /dev/null
+++ b/dotfiles/graphical/mimeapps.list
@@ -0,0 +1,147 @@
1[Added Associations]
2text/html=firefox.desktop
3text/xml=firefox.desktop
4application/xhtml+xml=firefox.desktop
5application/vnd.mozilla.xul+xml=firefox.desktop
6text/mml=firefox.desktop
7x-scheme-handler/http=firefox.desktop
8x-scheme-handler/https=firefox.desktop
9inode/directory=pcmanfm.desktop
10image/bmp=gpicview.desktop
11image/gif=gpicview.desktop
12image/jpeg=gpicview.desktop
13image/jpg=gpicview.desktop
14image/png=gpicview.desktop
15image/tiff=org.gnome.Evince.desktop
16image/x-bmp=gpicview.desktop
17image/x-pcx=gpicview.desktop
18image/x-tga=gpicview.desktop
19image/x-portable-pixmap=gpicview.desktop
20image/x-portable-bitmap=gpicview.desktop
21image/x-targa=gpicview.desktop
22image/x-portable-greymap=gpicview.desktop
23application/pcx=gpicview.desktop
24image/svg+xml=gpicview.desktop
25image/svg-xml=gpicview.desktop
26text/english=nvim.desktop
27text/plain=nvim.desktop
28text/x-makefile=nvim.desktop
29text/x-c++hdr=nvim.desktop
30text/x-c++src=nvim.desktop
31text/x-chdr=nvim.desktop
32text/x-csrc=nvim.desktop
33text/x-java=nvim.desktop
34text/x-moc=nvim.desktop
35text/x-pascal=nvim.desktop
36text/x-tcl=nvim.desktop
37text/x-tex=nvim.desktop
38application/x-shellscript=nvim.desktop
39text/x-c=nvim.desktop
40text/x-c++=nvim.desktop
41application/pdf=org.gnome.Evince.desktop
42application/x-bzpdf=org.gnome.Evince.desktop
43application/x-gzpdf=org.gnome.Evince.desktop
44application/x-xzpdf=org.gnome.Evince.desktop
45application/x-ext-pdf=org.gnome.Evince.desktop
46application/postscript=org.gnome.Evince.desktop
47application/x-bzpostscript=org.gnome.Evince.desktop
48application/x-gzpostscript=org.gnome.Evince.desktop
49image/x-eps=org.gnome.Evince.desktop
50image/x-bzeps=org.gnome.Evince.desktop
51image/x-gzeps=org.gnome.Evince.desktop
52application/x-ext-ps=org.gnome.Evince.desktop
53application/x-ext-eps=org.gnome.Evince.desktop
54application/illustrator=org.gnome.Evince.desktop
55application/x-dvi=org.gnome.Evince.desktop
56application/x-bzdvi=org.gnome.Evince.desktop
57application/x-gzdvi=org.gnome.Evince.desktop
58application/x-ext-dvi=org.gnome.Evince.desktop
59image/vnd.djvu+multipage=org.gnome.Evince.desktop
60application/x-ext-djv=org.gnome.Evince.desktop
61application/x-ext-djvu=org.gnome.Evince.desktop
62application/x-cbr=org.gnome.Evince.desktop
63application/x-cbz=org.gnome.Evince.desktop
64application/x-cb7=org.gnome.Evince.desktop
65application/x-cbt=org.gnome.Evince.desktop
66application/x-ext-cbr=org.gnome.Evince.desktop
67application/x-ext-cbz=org.gnome.Evince.desktop
68application/x-ext-cb7=org.gnome.Evince.desktop
69application/x-ext-cbt=org.gnome.Evince.desktop
70application/vnd.comicbook+zip=org.gnome.Evince.desktop
71application/vnd.comicbook-rar=org.gnome.Evince.desktop
72application/oxps=org.gnome.Evince.desktop
73application/vnd.ms-xpsdocument=org.gnome.Evince.desktop
74
75[Default Applications]
76text/html=firefox.desktop
77text/xml=firefox.desktop
78application/xhtml+xml=firefox.desktop
79application/vnd.mozilla.xul+xml=firefox.desktop
80text/mml=firefox.desktop
81x-scheme-handler/http=firefox.desktop
82x-scheme-handler/https=firefox.desktop
83inode/directory=pcmanfm.desktop
84image/bmp=gpicview.desktop
85image/gif=gpicview.desktop
86image/jpeg=gpicview.desktop
87image/jpg=gpicview.desktop
88image/png=gpicview.desktop
89image/tiff=org.gnome.Evince.desktop
90image/x-bmp=gpicview.desktop
91image/x-pcx=gpicview.desktop
92image/x-tga=gpicview.desktop
93image/x-portable-pixmap=gpicview.desktop
94image/x-portable-bitmap=gpicview.desktop
95image/x-targa=gpicview.desktop
96image/x-portable-greymap=gpicview.desktop
97application/pcx=gpicview.desktop
98image/svg+xml=gpicview.desktop
99image/svg-xml=gpicview.desktop
100text/english=nvim.desktop
101text/plain=nvim.desktop
102text/x-makefile=nvim.desktop
103text/x-c++hdr=nvim.desktop
104text/x-c++src=nvim.desktop
105text/x-chdr=nvim.desktop
106text/x-csrc=nvim.desktop
107text/x-java=nvim.desktop
108text/x-moc=nvim.desktop
109text/x-pascal=nvim.desktop
110text/x-tcl=nvim.desktop
111text/x-tex=nvim.desktop
112application/x-shellscript=nvim.desktop
113text/x-c=nvim.desktop
114text/x-c++=nvim.desktop
115application/pdf=org.gnome.Evince.desktop
116application/x-bzpdf=org.gnome.Evince.desktop
117application/x-gzpdf=org.gnome.Evince.desktop
118application/x-xzpdf=org.gnome.Evince.desktop
119application/x-ext-pdf=org.gnome.Evince.desktop
120application/postscript=org.gnome.Evince.desktop
121application/x-bzpostscript=org.gnome.Evince.desktop
122application/x-gzpostscript=org.gnome.Evince.desktop
123image/x-eps=org.gnome.Evince.desktop
124image/x-bzeps=org.gnome.Evince.desktop
125image/x-gzeps=org.gnome.Evince.desktop
126application/x-ext-ps=org.gnome.Evince.desktop
127application/x-ext-eps=org.gnome.Evince.desktop
128application/illustrator=org.gnome.Evince.desktop
129application/x-dvi=org.gnome.Evince.desktop
130application/x-bzdvi=org.gnome.Evince.desktop
131application/x-gzdvi=org.gnome.Evince.desktop
132application/x-ext-dvi=org.gnome.Evince.desktop
133image/vnd.djvu+multipage=org.gnome.Evince.desktop
134application/x-ext-djv=org.gnome.Evince.desktop
135application/x-ext-djvu=org.gnome.Evince.desktop
136application/x-cbr=org.gnome.Evince.desktop
137application/x-cbz=org.gnome.Evince.desktop
138application/x-cb7=org.gnome.Evince.desktop
139application/x-cbt=org.gnome.Evince.desktop
140application/x-ext-cbr=org.gnome.Evince.desktop
141application/x-ext-cbz=org.gnome.Evince.desktop
142application/x-ext-cb7=org.gnome.Evince.desktop
143application/x-ext-cbt=org.gnome.Evince.desktop
144application/vnd.comicbook+zip=org.gnome.Evince.desktop
145application/vnd.comicbook-rar=org.gnome.Evince.desktop
146application/oxps=org.gnome.Evince.desktop
147application/vnd.ms-xpsdocument=org.gnome.Evince.desktop
diff --git a/dotfiles/lxde/config_files/libfm/libfm.conf b/dotfiles/lxde/config_files/libfm/libfm.conf
new file mode 100644
index 0000000..03ba473
--- /dev/null
+++ b/dotfiles/lxde/config_files/libfm/libfm.conf
@@ -0,0 +1,44 @@
1# Configuration file for the libfm version 1.3.0.2.
2# Autogenerated file, don't edit, your changes will be overwritten.
3
4[config]
5single_click=0
6use_trash=1
7confirm_del=1
8confirm_trash=1
9advanced_mode=0
10si_unit=0
11force_startup_notify=1
12backup_as_hidden=1
13no_usb_trash=1
14no_child_non_expandable=0
15show_full_names=0
16only_user_templates=0
17template_run_app=0
18template_type_once=0
19auto_selection_delay=600
20drop_default_action=auto
21defer_content_test=0
22quick_exec=0
23terminal=lxterminal
24thumbnail_local=1
25thumbnail_max=2048
26smart_desktop_autodrop=1
27
28[ui]
29big_icon_size=48
30small_icon_size=24
31pane_icon_size=24
32thumbnail_size=128
33show_thumbnail=1
34shadow_hidden=0
35
36[places]
37places_home=1
38places_desktop=1
39places_root=0
40places_computer=0
41places_trash=1
42places_applications=1
43places_network=0
44places_unmounted=1
diff --git a/dotfiles/lxde/config_files/lxpanel/LXDE/config b/dotfiles/lxde/config_files/lxpanel/LXDE/config
new file mode 100644
index 0000000..76228e2
--- /dev/null
+++ b/dotfiles/lxde/config_files/lxpanel/LXDE/config
@@ -0,0 +1,2 @@
1[Command]
2Logout=lxde-logout
diff --git a/dotfiles/lxde/config_files/lxpanel/LXDE/panels/panel b/dotfiles/lxde/config_files/lxpanel/LXDE/panels/panel
new file mode 100644
index 0000000..34c978d
--- /dev/null
+++ b/dotfiles/lxde/config_files/lxpanel/LXDE/panels/panel
@@ -0,0 +1,165 @@
1# lxpanel <profile> config file. Manually editing is not recommended.
2# Use preference dialog in lxpanel to adjust config when you can.
3
4Global {
5 edge=bottom
6 align=left
7 margin=0
8 widthtype=percent
9 width=100
10 height=26
11 transparent=0
12 tintcolor=#000000
13 alpha=0
14 setdocktype=1
15 setpartialstrut=1
16 autohide=0
17 heightwhenhidden=0
18 usefontcolor=1
19 fontcolor=#ffffff
20 background=1
21 backgroundfile=/usr/share/lxpanel/images/background.png
22}
23Plugin {
24 type=space
25 Config {
26 Size=2
27 }
28}
29Plugin {
30 type=menu
31 Config {
32 image=/usr/share/lxde/images/lxde-icon.png
33 system {
34 }
35 separator {
36 }
37 item {
38 command=run
39 }
40 separator {
41 }
42 item {
43 image=gnome-logout
44 command=logout
45 }
46 }
47}
48Plugin {
49 type=launchbar
50 Config {
51 Button {
52 id=pcmanfm.desktop
53 }
54 Button {
55 id=firefox.desktop
56 }
57 }
58}
59Plugin {
60 type=space
61 Config {
62 Size=4
63 }
64}
65Plugin {
66 type=wincmd
67 Config {
68 Button1=iconify
69 Button2=shade
70 }
71}
72Plugin {
73 type=space
74 Config {
75 Size=4
76 }
77}
78Plugin {
79 type=pager
80 Config {
81 }
82}
83Plugin {
84 type=space
85 Config {
86 Size=4
87 }
88}
89Plugin {
90 type=taskbar
91 expand=1
92 Config {
93 tooltips=1
94 IconsOnly=0
95 AcceptSkipPager=1
96 ShowIconified=1
97 ShowMapped=1
98 ShowAllDesks=0
99 UseMouseWheel=1
100 UseUrgencyHint=1
101 FlatButton=0
102 MaxTaskWidth=150
103 spacing=1
104 }
105}
106Plugin {
107 type=monitors
108 Config {
109 DisplayCPU=1
110 DisplayRAM=1
111 CPUColor=#0000FF
112 RAMColor=#FF0000
113 }
114}
115Plugin {
116 type=volume
117 Config {
118 }
119}
120Plugin {
121 type=tray
122 Config {
123 }
124}
125Plugin {
126 type=dclock
127 Config {
128 ClockFmt=%F %R
129 TooltipFmt=%A %x
130 BoldFont=0
131 IconOnly=0
132 CenterText=0
133 }
134}
135Plugin {
136 type=netstatus
137 Config {
138 iface=enp0s31f6
139 configtool=nm-connection-editor
140 }
141}
142Plugin {
143 type=netstatus
144 Config {
145 iface=wlp2s0
146 configtool=nm-connection-editor
147 }
148}
149Plugin {
150 type=batt
151 Config {
152 BackgroundColor=black
153 ChargingColor1=#28f200
154 ChargingColor2=#22cc00
155 DischargingColor1=#ffee00
156 DischargingColor2=#d9ca00
157 HideIfNoBattery=0
158 AlarmCommand=notify-send "Batterie faible" --icon=battery-caution
159 AlarmTime=5
160 BorderWidth=0
161 Size=1
162 ShowExtendedInformation=0
163 BatteryNumber=0
164 }
165}
diff --git a/dotfiles/lxde/config_files/lxpanel/launchtaskbar.cfg b/dotfiles/lxde/config_files/lxpanel/launchtaskbar.cfg
new file mode 100644
index 0000000..a3d0e52
--- /dev/null
+++ b/dotfiles/lxde/config_files/lxpanel/launchtaskbar.cfg
@@ -0,0 +1,4 @@
1[special_cases]
2synaptic=synaptic-pkexec
3soffice.bin=libreoffice
4x-terminal-emulator=lxterminal
diff --git a/dotfiles/lxde/config_files/lxsession-default-apps/settings.conf b/dotfiles/lxde/config_files/lxsession-default-apps/settings.conf
new file mode 100644
index 0000000..444f215
--- /dev/null
+++ b/dotfiles/lxde/config_files/lxsession-default-apps/settings.conf
@@ -0,0 +1,45 @@
1[Mime]
2webbrowser/available=
3email/available=
4file_manager/available=
5screensaver/available=
6composite_manager/available=
7desktop_manager/available=
8power_manager/available=
9polkit/available=
10im/available=
11widget/available=
12terminal_manager/available=
13audio_player/available=
14video_player/available=
15pdf_reader/available=
16image_display/available=
17text_editor/available=
18archive/available=
19spreadsheet/available=
20bittorent/available=
21document/available=
22burn/available=
23tasks/available=
24webbrowser/installed=Firefox,/usr/lib/firefox/firefox,firefox,/usr/share/applications/firefox.desktop,;
25email/installed=
26file_manager/installed=Gestionnaire de fichiers PCManFM,pcmanfm,system-file-manager,/usr/share/applications/pcmanfm.desktop,;
27screensaver/installed=
28composite_manager/installed=
29desktop_manager/installed=Personnaliser l'apparence,lxappearance,preferences-desktop-theme,/usr/share/applications/lxappearance.desktop,;Applications par défaut pour LXSession,lxsession-default-apps,preferences-desktop,/usr/share/applications/lxsession-default-apps.desktop,;Paramètres de la session de bureau,lxsession-edit,preferences-desktop,/usr/share/applications/lxsession-edit.desktop,;Applications préférées,libfm-pref-apps,preferences-desktop,/usr/share/applications/libfm-pref-apps.desktop,;Setup Hot Keys,lxhotkey,preferences-desktop-keyboard,/usr/share/applications/lxhotkey-gtk.desktop,;Préférences du bureau,pcmanfm,user-desktop,/usr/share/applications/pcmanfm-desktop-pref.desktop,;
30power_manager/installed=
31polkit/installed=
32im/installed=
33widget/installed=
34terminal_manager/installed=LXTerminal,lxterminal,lxterminal,/usr/share/applications/lxterminal.desktop,;
35audio_player/installed=LXMusic simple music player,lxmusic,lxmusic,/usr/share/applications/lxmusic.desktop,;Qt V4L2 test Utility,qv4l2,qv4l2,/usr/share/applications/qv4l2.desktop,;Lecteur multimédia VLC,/usr/bin/vlc,vlc,/usr/share/applications/vlc.desktop,;MPlayer Media Player,mplayer,mplayer,/usr/share/applications/mplayer.desktop,;Contrôle du volume PulseAudio,pavucontrol,multimedia-volume-control,/usr/share/applications/pavucontrol.desktop,;GTK Youtube Viewer,gtk-youtube-viewer,gtk-youtube-viewer,/usr/share/applications/gtk-youtube-viewer.desktop,;
36video_player/installed=LXMusic simple music player,lxmusic,lxmusic,/usr/share/applications/lxmusic.desktop,;Qt V4L2 test Utility,qv4l2,qv4l2,/usr/share/applications/qv4l2.desktop,;Lecteur multimédia VLC,/usr/bin/vlc,vlc,/usr/share/applications/vlc.desktop,;MPlayer Media Player,mplayer,mplayer,/usr/share/applications/mplayer.desktop,;Contrôle du volume PulseAudio,pavucontrol,multimedia-volume-control,/usr/share/applications/pavucontrol.desktop,;GTK Youtube Viewer,gtk-youtube-viewer,gtk-youtube-viewer,/usr/share/applications/gtk-youtube-viewer.desktop,;
37pdf_reader/installed=Visionneur d'images,gpicview,gpicview,/usr/share/applications/gpicview.desktop,;Aperçu avant impression,evince-previewer,document-print-preview,/usr/share/applications/org.gnome.Evince-previewer.desktop,;Visionneur de documents,evince,org.gnome.Evince,/usr/share/applications/org.gnome.Evince.desktop,;
38image_display/installed=Visionneur d'images,gpicview,gpicview,/usr/share/applications/gpicview.desktop,;Aperçu avant impression,evince-previewer,document-print-preview,/usr/share/applications/org.gnome.Evince-previewer.desktop,;Visionneur de documents,evince,org.gnome.Evince,/usr/share/applications/org.gnome.Evince.desktop,;
39text_editor/installed=Vim,vim,gvim,/usr/share/applications/vim.desktop,;Neovim,nvim,nvim,/usr/share/applications/nvim.desktop,;
40archive/installed=
41spreadsheet/installed=
42bittorent/installed=
43document/installed=
44burn/installed=
45tasks/installed=Gestionnaire des tâches,lxtask,utilities-system-monitor,/usr/share/applications/lxtask.desktop,;
diff --git a/dotfiles/lxde/config_files/lxsession/LXDE/autostart b/dotfiles/lxde/config_files/lxsession/LXDE/autostart
new file mode 100755
index 0000000..d8f2e23
--- /dev/null
+++ b/dotfiles/lxde/config_files/lxsession/LXDE/autostart
@@ -0,0 +1,3 @@
1@lxpanel --profile LXDE
2@pcmanfm --desktop --profile LXDE
3@xscreensaver -no-splash
diff --git a/dotfiles/lxde/config_files/lxsession/LXDE/desktop.conf b/dotfiles/lxde/config_files/lxsession/LXDE/desktop.conf
new file mode 100644
index 0000000..08a2d67
--- /dev/null
+++ b/dotfiles/lxde/config_files/lxsession/LXDE/desktop.conf
@@ -0,0 +1,54 @@
1[Session]
2window_manager=openbox-lxde
3disable_autostart=no
4polkit/command=lxpolkit
5clipboard/command=lxclipboard
6xsettings_manager/command=build-in
7proxy_manager/command=build-in
8keyring/command=ssh-agent
9quit_manager/command=lxsession-logout
10lock_manager/command=lxlock
11terminal_manager/command=lxterminal
12quit_manager/image=/usr/share/lxde/images/logout-banner.png
13quit_manager/layout=top
14webbrowser/command=/usr/lib/firefox/firefox
15tasks/command=lxtask
16pdf_reader/command=evince
17text_editor/command=nvim
18
19[GTK]
20sNet/ThemeName=Adwaita
21sNet/IconThemeName=nuoveXT2
22sGtk/FontName=Sans 10
23iGtk/ToolbarStyle=3
24iGtk/ButtonImages=1
25iGtk/MenuImages=1
26iGtk/CursorThemeSize=18
27iXft/Antialias=1
28iXft/Hinting=1
29sXft/HintStyle=hintslight
30sXft/RGBA=rgb
31iNet/EnableEventSounds=1
32iNet/EnableInputFeedbackSounds=1
33sGtk/ColorScheme=
34iGtk/ToolbarIconSize=3
35sGtk/CursorThemeName=DMZ-White
36
37[Mouse]
38AccFactor=20
39AccThreshold=10
40LeftHanded=0
41
42[Keyboard]
43Delay=500
44Interval=30
45Beep=1
46
47[State]
48guess_default=true
49
50[Dbus]
51lxde=true
52
53[Environment]
54menu_prefix=lxde-
diff --git a/dotfiles/lxde/config_files/lxterminal/lxterminal.conf b/dotfiles/lxde/config_files/lxterminal/lxterminal.conf
new file mode 100644
index 0000000..e572e20
--- /dev/null
+++ b/dotfiles/lxde/config_files/lxterminal/lxterminal.conf
@@ -0,0 +1,53 @@
1[general]
2fontname=Monospace 10
3selchars=-A-Za-z0-9,./?%&#:_
4scrollback=1000
5bgcolor=rgb(0,0,0)
6fgcolor=rgb(170,170,170)
7palette_color_0=rgb(0,0,0)
8palette_color_1=rgb(170,0,0)
9palette_color_2=rgb(0,170,0)
10palette_color_3=rgb(170,85,0)
11palette_color_4=rgb(0,0,170)
12palette_color_5=rgb(170,0,170)
13palette_color_6=rgb(0,170,170)
14palette_color_7=rgb(170,170,170)
15palette_color_8=rgb(85,85,85)
16palette_color_9=rgb(255,85,85)
17palette_color_10=rgb(85,255,85)
18palette_color_11=rgb(255,255,85)
19palette_color_12=rgb(85,85,255)
20palette_color_13=rgb(255,85,255)
21palette_color_14=rgb(85,255,255)
22palette_color_15=rgb(255,255,255)
23color_preset=VGA
24disallowbold=false
25cursorblinks=false
26cursorunderline=false
27audiblebell=false
28tabpos=top
29geometry_columns=80
30geometry_rows=24
31hidescrollbar=true
32hidemenubar=false
33hideclosebutton=false
34hidepointer=false
35disablef10=true
36disablealt=true
37disableconfirm=false
38
39[shortcut]
40new_window_accel=<Primary><Shift>n
41new_tab_accel=<Primary><Shift>t
42close_tab_accel=<Primary><Shift>w
43close_window_accel=<Primary><Shift>q
44copy_accel=<Primary><Shift>c
45paste_accel=<Primary><Shift>v
46name_tab_accel=<Primary><Shift>i
47previous_tab_accel=<Primary>Page_Up
48next_tab_accel=<Primary>Page_Down
49move_tab_left_accel=<Primary><Shift>Page_Up
50move_tab_right_accel=<Primary><Shift>Page_Down
51zoom_in_accel=<Primary><Shift>plus
52zoom_out_accel=<Primary><Shift>underscore
53zoom_reset_accel=<Primary><Shift>parenright
diff --git a/dotfiles/lxde/config_files/openbox/lxde-rc.xml b/dotfiles/lxde/config_files/openbox/lxde-rc.xml
new file mode 100644
index 0000000..5003f15
--- /dev/null
+++ b/dotfiles/lxde/config_files/openbox/lxde-rc.xml
@@ -0,0 +1,696 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- Do not edit this file, it will be overwritten on install.
3 Copy the file to $HOME/.config/openbox/ instead. -->
4<openbox_config xmlns='http://openbox.org/3.4/rc'>
5 <resistance>
6 <strength>10</strength>
7 <screen_edge_strength>20</screen_edge_strength>
8 </resistance>
9 <focus>
10 <focusNew>yes</focusNew>
11 <!-- always try to focus new windows when they appear. other rules do
12 apply -->
13 <followMouse>no</followMouse>
14 <!-- move focus to a window when you move the mouse into it -->
15 <focusLast>yes</focusLast>
16 <!-- focus the last used window when changing desktops, instead of the one
17 under the mouse pointer. when followMouse is enabled -->
18 <underMouse>no</underMouse>
19 <!-- move focus under the mouse, even when the mouse is not moving -->
20 <focusDelay>200</focusDelay>
21 <!-- when followMouse is enabled, the mouse must be inside the window for
22 this many milliseconds (1000 = 1 sec) before moving focus to it -->
23 <raiseOnFocus>no</raiseOnFocus>
24 </focus>
25 <!-- when followMouse is enabled, and a window is given focus by moving the
26 mouse into it, also raise the window -->
27 <placement>
28 <policy>Smart</policy>
29 <!-- 'Smart' or 'UnderMouse' -->
30 <center>yes</center>
31 <!-- whether to place windows in the center of the free area found or
32 the top left corner -->
33 <monitor>Any</monitor>
34 </placement>
35 <!-- with Smart placement on a multi-monitor system, try to place new windows
36 on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
37 the active window is -->
38 <theme>
39 <name>Onyx</name>
40 <titleLayout>NLIMC</titleLayout>
41 <!-- available characters are NDSLIMC, each can occur at most once.
42 N: window icon
43 L: window label (AKA title).
44 I: iconify
45 M: maximize
46 C: close
47 S: shade (roll up/down)
48 D: omnipresent (on all desktops).
49 -->
50 <keepBorder>yes</keepBorder>
51 <animateIconify>yes</animateIconify>
52 <font place='ActiveWindow'>
53 <name>sans</name>
54 <size>10</size>
55 <!-- font size in points -->
56 <weight>bold</weight>
57 <!-- 'bold' or 'normal' -->
58 <slant>normal</slant>
59 </font>
60 <!-- 'italic' or 'normal' -->
61 <font place='InactiveWindow'>
62 <name>sans</name>
63 <size>10</size>
64 <!-- font size in points -->
65 <weight>bold</weight>
66 <!-- 'bold' or 'normal' -->
67 <slant>normal</slant>
68 </font>
69 <!-- 'italic' or 'normal' -->
70 <font place='MenuHeader'>
71 <name>sans</name>
72 <size>10</size>
73 <!-- font size in points -->
74 <weight>normal</weight>
75 <!-- 'bold' or 'normal' -->
76 <slant>normal</slant>
77 </font>
78 <!-- 'italic' or 'normal' -->
79 <font place='MenuItem'>
80 <name>sans</name>
81 <size>10</size>
82 <!-- font size in points -->
83 <weight>normal</weight>
84 <!-- 'bold' or 'normal' -->
85 <slant>normal</slant>
86 </font>
87 <!-- 'italic' or 'normal' -->
88 <font place='OnScreenDisplay'>
89 <name>sans</name>
90 <size>10</size>
91 <!-- font size in points -->
92 <weight>bold</weight>
93 <!-- 'bold' or 'normal' -->
94 <slant>normal</slant>
95 </font>
96 </theme>
97 <!-- 'italic' or 'normal' -->
98 <desktops>
99 <!-- this stuff is only used at startup, pagers allow you to change them
100 during a session
101
102 these are default values to use when other ones are not already set
103 by other applications, or saved in your session
104
105 use obconf if you want to change these without having to log out
106 and back in -->
107 <number>2</number>
108 <firstdesk>1</firstdesk>
109 <names/>
110 <!-- set names up here if you want to, like this:
111 <name>desktop 1</name>
112 <name>desktop 2</name>
113 -->
114 <popupTime>875</popupTime>
115 </desktops>
116 <!-- The number of milliseconds to show the popup for when switching
117 desktops. Set this to 0 to disable the popup. -->
118 <resize>
119 <drawContents>yes</drawContents>
120 <popupShow>Nonpixel</popupShow>
121 <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
122 <popupPosition>Center</popupPosition>
123 <!-- 'Center', 'Top', or 'Fixed' -->
124 <popupFixedPosition>
125 <!-- these are used if popupPosition is set to 'Fixed' -->
126 <x>10</x>
127 <!-- positive number for distance from left edge, negative number for
128 distance from right edge, or 'Center' -->
129 <y>10</y>
130 </popupFixedPosition>
131 </resize>
132 <!-- You can reserve a portion of your screen where windows will not cover when
133 they are maximized, or when they are initially placed.
134 Many programs reserve space automatically, but you can use this in other
135 cases. -->
136 <margins>
137 <top>0</top>
138 <bottom>0</bottom>
139 <left>0</left>
140 <right>0</right>
141 </margins>
142 <dock>
143 <position>TopLeft</position>
144 <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
145 <floatingX>0</floatingX>
146 <floatingY>0</floatingY>
147 <noStrut>no</noStrut>
148 <stacking>Above</stacking>
149 <!-- 'Above', 'Normal', or 'Below' -->
150 <direction>Vertical</direction>
151 <!-- 'Vertical' or 'Horizontal' -->
152 <autoHide>no</autoHide>
153 <hideDelay>300</hideDelay>
154 <!-- in milliseconds (1000 = 1 second) -->
155 <showDelay>300</showDelay>
156 <!-- in milliseconds (1000 = 1 second) -->
157 <moveButton>Middle</moveButton>
158 </dock>
159 <!-- 'Left', 'Middle', 'Right' -->
160 <keyboard>
161 <chainQuitKey>C-g</chainQuitKey>
162 <!-- Keybindings for desktop switching -->
163 <keybind key='C-A-Left'>
164 <action name='DesktopLeft'>
165 <dialog>no</dialog>
166 <wrap>no</wrap>
167 </action>
168 </keybind>
169 <keybind key='C-A-Right'>
170 <action name='DesktopRight'>
171 <dialog>no</dialog>
172 <wrap>no</wrap>
173 </action>
174 </keybind>
175 <keybind key='C-A-Up'>
176 <action name='DesktopUp'>
177 <dialog>no</dialog>
178 <wrap>no</wrap>
179 </action>
180 </keybind>
181 <keybind key='C-A-Down'>
182 <action name='DesktopDown'>
183 <dialog>no</dialog>
184 <wrap>no</wrap>
185 </action>
186 </keybind>
187 <keybind key='S-A-Left'>
188 <action name='SendToDesktopLeft'>
189 <dialog>no</dialog>
190 <wrap>no</wrap>
191 </action>
192 </keybind>
193 <keybind key='S-A-Right'>
194 <action name='SendToDesktopRight'>
195 <dialog>no</dialog>
196 <wrap>no</wrap>
197 </action>
198 </keybind>
199 <keybind key='S-A-Up'>
200 <action name='SendToDesktopUp'>
201 <dialog>no</dialog>
202 <wrap>no</wrap>
203 </action>
204 </keybind>
205 <keybind key='S-A-Down'>
206 <action name='SendToDesktopDown'>
207 <dialog>no</dialog>
208 <wrap>no</wrap>
209 </action>
210 </keybind>
211 <keybind key='W-F1'>
212 <action name='Desktop'>
213 <desktop>1</desktop>
214 </action>
215 </keybind>
216 <keybind key='W-F2'>
217 <action name='Desktop'>
218 <desktop>2</desktop>
219 </action>
220 </keybind>
221 <keybind key='W-F3'>
222 <action name='Desktop'>
223 <desktop>3</desktop>
224 </action>
225 </keybind>
226 <keybind key='W-F4'>
227 <action name='Desktop'>
228 <desktop>4</desktop>
229 </action>
230 </keybind>
231 <keybind key='W-d'>
232 <action name='ToggleShowDesktop'/>
233 </keybind>
234 <keybind key='C-A-d'>
235 <action name='ToggleShowDesktop'/>
236 </keybind>
237 <!-- Keybindings for windows -->
238 <keybind key='A-F4'>
239 <action name='Close'/>
240 </keybind>
241 <keybind key='A-Escape'>
242 <action name='Lower'/>
243 <action name='FocusToBottom'/>
244 <action name='Unfocus'/>
245 </keybind>
246 <keybind key='A-space'>
247 <action name='ShowMenu'>
248 <menu>client-menu</menu>
249 </action>
250 </keybind>
251 <!-- Keybindings for window switching -->
252 <keybind key='A-Tab'>
253 <action name='NextWindow'/>
254 </keybind>
255 <keybind key='A-S-Tab'>
256 <action name='PreviousWindow'/>
257 </keybind>
258 <keybind key='C-A-Tab'>
259 <action name='NextWindow'>
260 <panels>yes</panels>
261 <desktop>yes</desktop>
262 </action>
263 </keybind>
264 <!-- Keybindings for running applications -->
265 <keybind key='W-e'>
266 <action name='Execute'>
267 <startupnotify>
268 <enabled>true</enabled>
269 <name>PCManFM</name>
270 </startupnotify>
271 <command>pcmanfm</command>
272 </action>
273 </keybind>
274 <!-- Keybindings for finding files -->
275 <keybind key='W-f'>
276 <action name='Execute'>
277 <command>pcmanfm --find-files</command>
278 </action>
279 </keybind>
280 <!-- eybindings for LXPanel -->
281 <keybind key='W-p'>
282 <action name='Execute'>
283 <command>lxpanelctl run</command>
284 </action>
285 </keybind>
286 <keybind key='A-F11'>
287 <action name='ToggleFullscreen'/>
288 </keybind>
289 <!-- Launch Task Manager with Ctrl+Alt+Del -->
290 <keybind key='A-C-Delete'>
291 <action name='Execute'>
292 <command>lxtask</command>
293 </action>
294 </keybind>
295 <!-- Launch LXRandR when Fn+Screen is pressed -->
296 <keybind key='XF86Display'>
297 <action name='Execute'>
298 <command>lxrandr</command>
299 </action>
300 </keybind>
301 <keybind key='XF86MonBrightnessUp'>
302 <action name='Execute'>
303 <command>xbacklight -inc 10</command>
304 </action>
305 </keybind>
306 <keybind key='XF86MonBrightnessDown'>
307 <action name='Execute'>
308 <command>xbacklight -dec 10</command>
309 </action>
310 </keybind>
311 <keybind key='A-C-l'>
312 <action name='Execute'>
313 <command>slock</command>
314 </action>
315 </keybind>
316 <keybind key='XF86Tools'>
317 <action name='Execute'>
318 <command>xset dpms force off</command>
319 </action>
320 </keybind>
321 <keybind key='XF86AudioRaiseVolume'>
322 <action name='Execute'>
323 <command>bash -c &quot;pamixer --allow-boost -u -i 1; v=$HOME/.cache/dunstify_volume; vol=`pamixer --get-volume`; color=`[ $vol -le 100 ] &amp;&amp; echo normal || echo critical`; dunstify -r $(($(cat $v))) -p Volume --hints=int:value:$vol -i &apos; &apos; -a Openbox-volume -t 1000 -u $color &gt; $v&quot;</command>
324 </action>
325 </keybind>
326 <keybind key='XF86AudioLowerVolume'>
327 <action name='Execute'>
328 <command>bash -c &quot;pamixer --allow-boost -u -d 1; v=$HOME/.cache/dunstify_volume; vol=`pamixer --get-volume`; color=`[ $vol -le 100 ] &amp;&amp; echo normal || echo critical`; dunstify -r $(($(cat $v))) -p Volume --hints=int:value:$vol -i &apos; &apos; -a Openbox-volume -t 1000 -u $color &gt; $v&quot;</command>
329 </action>
330 </keybind>
331 <keybind key='XF86AudioMute'>
332 <action name='Execute'>
333 <command>bash -c &quot;v=$HOME/.cache/dunstify_volume; vol=$([ `pamixer -t ; pamixer --get-mute` = \&quot;false\&quot; ] &amp;&amp; echo on || echo off); dunstify -r $(($(cat $v))) -p &apos;Volume &apos;$vol -i &apos; &apos; -a Openbox-mute -t 1000 &gt; $v&quot;</command>
334 </action>
335 </keybind>
336 <keybind key='W-Print'>
337 <action name='Execute'>
338 <command>scrot &quot;%Y-%m-%d_%H_%M_%S.png&quot; -e &apos;mv $f ~&apos;</command>
339 </action>
340 </keybind>
341 <keybind key='S-Print'>
342 <action name='Execute'>
343 <command>scrot -s &quot;%Y-%m-%d_%H_%M_%S.png&quot; -e &apos;mv $f ~&apos;</command>
344 </action>
345 </keybind>
346 </keyboard>
347 <mouse>
348 <dragThreshold>8</dragThreshold>
349 <!-- number of pixels the mouse must move before a drag begins -->
350 <doubleClickTime>200</doubleClickTime>
351 <!-- in milliseconds (1000 = 1 second) -->
352 <screenEdgeWarpTime>400</screenEdgeWarpTime>
353 <!-- Time before changing desktops when the pointer touches the edge of the
354 screen while moving a window, in milliseconds (1000 = 1 second).
355 Set this to 0 to disable warping -->
356 <context name='Frame'>
357 <mousebind button='A-Left' action='Press'>
358 <action name='Focus'/>
359 <action name='Raise'/>
360 </mousebind>
361 <mousebind button='A-Left' action='Click'>
362 <action name='Unshade'/>
363 </mousebind>
364 <mousebind button='A-Left' action='Drag'>
365 <action name='Move'/>
366 </mousebind>
367 <mousebind button='A-Right' action='Press'>
368 <action name='Focus'/>
369 <action name='Raise'/>
370 <action name='Unshade'/>
371 </mousebind>
372 <mousebind button='A-Right' action='Drag'>
373 <action name='Resize'/>
374 </mousebind>
375 <mousebind button='A-Middle' action='Press'>
376 <action name='Lower'/>
377 <action name='FocusToBottom'/>
378 <action name='Unfocus'/>
379 </mousebind>
380 <mousebind button='A-Up' action='Click'>
381 <action name='DesktopPrevious'/>
382 </mousebind>
383 <mousebind button='A-Down' action='Click'>
384 <action name='DesktopNext'/>
385 </mousebind>
386 <mousebind button='C-A-Up' action='Click'>
387 <action name='DesktopPrevious'/>
388 </mousebind>
389 <mousebind button='C-A-Down' action='Click'>
390 <action name='DesktopNext'/>
391 </mousebind>
392 <mousebind button='A-S-Up' action='Click'>
393 <action name='SendToDesktopPrevious'/>
394 </mousebind>
395 <mousebind button='A-S-Down' action='Click'>
396 <action name='SendToDesktopNext'/>
397 </mousebind>
398 </context>
399 <context name='Titlebar'>
400 <mousebind button='Left' action='Press'>
401 <action name='Focus'/>
402 <action name='Raise'/>
403 </mousebind>
404 <mousebind button='Left' action='Drag'>
405 <action name='Move'/>
406 </mousebind>
407 <mousebind button='Left' action='DoubleClick'>
408 <action name='ToggleMaximizeFull'/>
409 </mousebind>
410 <mousebind button='Middle' action='Press'>
411 <action name='Lower'/>
412 <action name='FocusToBottom'/>
413 <action name='Unfocus'/>
414 </mousebind>
415 <mousebind button='Up' action='Click'>
416 <action name='Shade'/>
417 <action name='FocusToBottom'/>
418 <action name='Unfocus'/>
419 <action name='Lower'/>
420 </mousebind>
421 <mousebind button='Down' action='Click'>
422 <action name='Unshade'/>
423 <action name='Raise'/>
424 </mousebind>
425 <mousebind button='Right' action='Press'>
426 <action name='Focus'/>
427 <action name='Raise'/>
428 <action name='ShowMenu'>
429 <menu>client-menu</menu>
430 </action>
431 </mousebind>
432 </context>
433 <context name='Top'>
434 <mousebind button='Left' action='Press'>
435 <action name='Focus'/>
436 <action name='Raise'/>
437 <action name='Unshade'/>
438 </mousebind>
439 <mousebind button='Left' action='Drag'>
440 <action name='Resize'>
441 <edge>top</edge>
442 </action>
443 </mousebind>
444 </context>
445 <context name='Left'>
446 <mousebind button='Left' action='Press'>
447 <action name='Focus'/>
448 <action name='Raise'/>
449 </mousebind>
450 <mousebind button='Left' action='Drag'>
451 <action name='Resize'>
452 <edge>left</edge>
453 </action>
454 </mousebind>
455 </context>
456 <context name='Right'>
457 <mousebind button='Left' action='Press'>
458 <action name='Focus'/>
459 <action name='Raise'/>
460 </mousebind>
461 <mousebind button='Left' action='Drag'>
462 <action name='Resize'>
463 <edge>right</edge>
464 </action>
465 </mousebind>
466 </context>
467 <context name='Bottom'>
468 <mousebind button='Left' action='Press'>
469 <action name='Focus'/>
470 <action name='Raise'/>
471 </mousebind>
472 <mousebind button='Left' action='Drag'>
473 <action name='Resize'>
474 <edge>bottom</edge>
475 </action>
476 </mousebind>
477 <mousebind button='Middle' action='Press'>
478 <action name='Lower'/>
479 <action name='FocusToBottom'/>
480 <action name='Unfocus'/>
481 </mousebind>
482 <mousebind button='Right' action='Press'>
483 <action name='Focus'/>
484 <action name='Raise'/>
485 <action name='ShowMenu'>
486 <menu>client-menu</menu>
487 </action>
488 </mousebind>
489 </context>
490 <context name='BLCorner'>
491 <mousebind button='Left' action='Press'>
492 <action name='Focus'/>
493 <action name='Raise'/>
494 </mousebind>
495 <mousebind button='Left' action='Drag'>
496 <action name='Resize'/>
497 </mousebind>
498 </context>
499 <context name='BRCorner'>
500 <mousebind button='Left' action='Press'>
501 <action name='Focus'/>
502 <action name='Raise'/>
503 </mousebind>
504 <mousebind button='Left' action='Drag'>
505 <action name='Resize'/>
506 </mousebind>
507 </context>
508 <context name='TLCorner'>
509 <mousebind button='Left' action='Press'>
510 <action name='Focus'/>
511 <action name='Raise'/>
512 <action name='Unshade'/>
513 </mousebind>
514 <mousebind button='Left' action='Drag'>
515 <action name='Resize'/>
516 </mousebind>
517 </context>
518 <context name='TRCorner'>
519 <mousebind button='Left' action='Press'>
520 <action name='Focus'/>
521 <action name='Raise'/>
522 <action name='Unshade'/>
523 </mousebind>
524 <mousebind button='Left' action='Drag'>
525 <action name='Resize'/>
526 </mousebind>
527 </context>
528 <context name='Client'>
529 <mousebind button='Left' action='Press'>
530 <action name='Focus'/>
531 <action name='Raise'/>
532 </mousebind>
533 <mousebind button='Middle' action='Press'>
534 <action name='Focus'/>
535 <action name='Raise'/>
536 </mousebind>
537 <mousebind button='Right' action='Press'>
538 <action name='Focus'/>
539 <action name='Raise'/>
540 </mousebind>
541 </context>
542 <context name='Icon'>
543 <mousebind button='Left' action='Press'>
544 <action name='Focus'/>
545 <action name='Raise'/>
546 <action name='Unshade'/>
547 <action name='ShowMenu'>
548 <menu>client-menu</menu>
549 </action>
550 </mousebind>
551 <mousebind button='Right' action='Press'>
552 <action name='Focus'/>
553 <action name='Raise'/>
554 <action name='ShowMenu'>
555 <menu>client-menu</menu>
556 </action>
557 </mousebind>
558 </context>
559 <context name='AllDesktops'>
560 <mousebind button='Left' action='Press'>
561 <action name='Focus'/>
562 <action name='Raise'/>
563 <action name='Unshade'/>
564 </mousebind>
565 <mousebind button='Left' action='Click'>
566 <action name='ToggleOmnipresent'/>
567 </mousebind>
568 </context>
569 <context name='Shade'>
570 <mousebind button='Left' action='Press'>
571 <action name='Focus'/>
572 <action name='Raise'/>
573 </mousebind>
574 <mousebind button='Left' action='Click'>
575 <action name='ToggleShade'/>
576 </mousebind>
577 </context>
578 <context name='Iconify'>
579 <mousebind button='Left' action='Press'>
580 <action name='Focus'/>
581 <action name='Raise'/>
582 </mousebind>
583 <mousebind button='Left' action='Click'>
584 <action name='Iconify'/>
585 </mousebind>
586 </context>
587 <context name='Maximize'>
588 <mousebind button='Left' action='Press'>
589 <action name='Focus'/>
590 <action name='Raise'/>
591 <action name='Unshade'/>
592 </mousebind>
593 <mousebind button='Middle' action='Press'>
594 <action name='Focus'/>
595 <action name='Raise'/>
596 <action name='Unshade'/>
597 </mousebind>
598 <mousebind button='Right' action='Press'>
599 <action name='Focus'/>
600 <action name='Raise'/>
601 <action name='Unshade'/>
602 </mousebind>
603 <mousebind button='Left' action='Click'>
604 <action name='ToggleMaximizeFull'/>
605 </mousebind>
606 <mousebind button='Middle' action='Click'>
607 <action name='ToggleMaximizeVert'/>
608 </mousebind>
609 <mousebind button='Right' action='Click'>
610 <action name='ToggleMaximizeHorz'/>
611 </mousebind>
612 </context>
613 <context name='Close'>
614 <mousebind button='Left' action='Press'>
615 <action name='Focus'/>
616 <action name='Raise'/>
617 <action name='Unshade'/>
618 </mousebind>
619 <mousebind button='Left' action='Click'>
620 <action name='Close'/>
621 </mousebind>
622 </context>
623 <context name='Desktop'>
624 <mousebind button='Up' action='Click'>
625 <action name='DesktopPrevious'/>
626 </mousebind>
627 <mousebind button='Down' action='Click'>
628 <action name='DesktopNext'/>
629 </mousebind>
630 <mousebind button='A-Up' action='Click'>
631 <action name='DesktopPrevious'/>
632 </mousebind>
633 <mousebind button='A-Down' action='Click'>
634 <action name='DesktopNext'/>
635 </mousebind>
636 <mousebind button='C-A-Up' action='Click'>
637 <action name='DesktopPrevious'/>
638 </mousebind>
639 <mousebind button='C-A-Down' action='Click'>
640 <action name='DesktopNext'/>
641 </mousebind>
642 <mousebind button='Left' action='Press'>
643 <action name='Focus'/>
644 <action name='Raise'/>
645 </mousebind>
646 <mousebind button='Right' action='Press'>
647 <action name='Focus'/>
648 <action name='Raise'/>
649 </mousebind>
650 </context>
651 <context name='Root'>
652 <!-- Menus -->
653 <mousebind button='Middle' action='Press'>
654 <action name='ShowMenu'>
655 <menu>client-list-combined-menu</menu>
656 </action>
657 </mousebind>
658 <mousebind button='Right' action='Press'>
659 <action name='ShowMenu'>
660 <menu>root-menu</menu>
661 </action>
662 </mousebind>
663 </context>
664 <context name='MoveResize'>
665 <mousebind button='Up' action='Click'>
666 <action name='DesktopPrevious'/>
667 </mousebind>
668 <mousebind button='Down' action='Click'>
669 <action name='DesktopNext'/>
670 </mousebind>
671 <mousebind button='A-Up' action='Click'>
672 <action name='DesktopPrevious'/>
673 </mousebind>
674 <mousebind button='A-Down' action='Click'>
675 <action name='DesktopNext'/>
676 </mousebind>
677 </context>
678 </mouse>
679 <menu>
680 <!-- default menu file (or custom one in $HOME/.config/openbox/) -->
681 <file>/usr/share/lxde/openbox/menu.xml</file>
682 <hideDelay>200</hideDelay>
683 <!-- if a press-release lasts longer than this setting (in milliseconds), the
684 menu is hidden again -->
685 <middle>no</middle>
686 <!-- center submenus vertically about the parent entry -->
687 <submenuShowDelay>100</submenuShowDelay>
688 <!-- this one is easy, time to delay before showing a submenu after hovering
689 over the parent entry -->
690 <applicationIcons>yes</applicationIcons>
691 <!-- controls if icons appear in the client-list-(combined-)menu -->
692 <manageDesktops>yes</manageDesktops>
693 </menu>
694 <!-- show the manage desktops section in the client-list-(combined-)menu -->
695 <applications/>
696</openbox_config> \ No newline at end of file
diff --git a/dotfiles/lxde/config_files/pcmanfm/LXDE/desktop-items-0.conf b/dotfiles/lxde/config_files/pcmanfm/LXDE/desktop-items-0.conf
new file mode 100644
index 0000000..088cce4
--- /dev/null
+++ b/dotfiles/lxde/config_files/pcmanfm/LXDE/desktop-items-0.conf
@@ -0,0 +1,15 @@
1[*]
2wallpaper_mode=crop
3wallpaper_common=1
4wallpaper=/usr/share/lxde/wallpapers/lxde_blue.jpg
5desktop_bg=#000000
6desktop_fg=#ffffff
7desktop_shadow=#000000
8desktop_font=Sans 12
9folder=
10show_wm_menu=0
11sort=mtime;ascending;
12show_documents=0
13show_trash=1
14show_mounts=0
15
diff --git a/dotfiles/lxde/config_files/pcmanfm/LXDE/pcmanfm.conf b/dotfiles/lxde/config_files/pcmanfm/LXDE/pcmanfm.conf
new file mode 100644
index 0000000..3722eef
--- /dev/null
+++ b/dotfiles/lxde/config_files/pcmanfm/LXDE/pcmanfm.conf
@@ -0,0 +1,27 @@
1[config]
2bm_open_method=0
3
4[volume]
5mount_on_startup=1
6mount_removable=1
7autorun=1
8
9[ui]
10always_show_tabs=0
11max_tab_chars=32
12win_width=640
13win_height=480
14maximized=1
15splitter_pos=150
16media_in_new_tab=0
17desktop_folder_new_win=0
18change_tab_on_drop=1
19close_on_unmount=1
20focus_previous=0
21side_pane_mode=places
22view_mode=icon
23show_hidden=0
24sort=name;ascending;
25toolbar=newtab;navigation;home;
26show_statusbar=1
27pathbar_mode_buttons=0
diff --git a/dotfiles/lxde/config_files/xinitrc b/dotfiles/lxde/config_files/xinitrc
new file mode 100644
index 0000000..e3bd830
--- /dev/null
+++ b/dotfiles/lxde/config_files/xinitrc
@@ -0,0 +1,15 @@
1### replace /etc/X11/xinit/xinitrc and /etc/X11/xinit/xinitrc.d/*
2dbus-update-activation-environment DISPLAY XAUTHORITY
3###
4
5setxkbmap -layout fr -variant oss -model pc104 -option compose:menu -option nbsp:level3 -option shift:breaks_caps -option terminate:ctrl_alt_bksp
6
7#### The rest replaces a `exec startlxde` (To avoid the dbus-update-activation-environment)
8# Enable GTK+2 integration for OpenOffice.org, if available.
9export SAL_USE_VCLPLUGIN=gtk
10
11export XDG_MENU_PREFIX="lxde-"
12export XDG_CURRENT_DESKTOP="LXDE"
13
14# Start the LXDE session
15exec /usr/bin/lxsession -s LXDE -e LXDE
diff --git a/dotfiles/pam_environment b/dotfiles/pam_environment
new file mode 100644
index 0000000..09172e1
--- /dev/null
+++ b/dotfiles/pam_environment
@@ -0,0 +1,70 @@
1# This wil be set correctly in systemd service since the service manager
2# itself goes through /etc/pam.d/system-login (as systemd-user) and
3# takes its environment from pam_env
4# HOME doesn’t even exist when arriving here, but the user’s home is
5# available via @{HOME}. But pam_systemd still sets XDG_RUNTIME_DIR (and
6# only that one in the case of systemd-user)
7
8# Those are already defined in /etc/security/pam_env.conf
9XDG_CONFIG_HOME DEFAULT="@{HOME}/.config"
10XDG_CACHE_HOME DEFAULT="@{HOME}/.cache"
11XDG_DATA_HOME DEFAULT="@{HOME}/.local/share"
12XDG_STATE_HOME DEFAULT="@{HOME}/.local/state"
13
14EDITOR DEFAULT="vim"
15VISUAL DEFAULT="vim"
16PAGER DEFAULT="less"
17BROWSER DEFAULT="firefox"
18
19# VIM
20VIMINIT DEFAULT=":source ${XDG_CONFIG_HOME}/vim/vimrc"
21
22# Mplayer
23MPLAYER_HOME DEFAULT="${XDG_CONFIG_HOME}/mplayer"
24
25# X11
26XAUTHORITY DEFAULT="${XDG_RUNTIME_DIR}/Xauthority"
27
28# GPG
29GNUPGHOME DEFAULT="${XDG_CONFIG_HOME}/gnupg"
30
31# Less
32LESSHISTFILE DEFAULT="${XDG_STATE_HOME}/less/history"
33
34# Pass
35PASSWORD_STORE_DIR DEFAULT="${XDG_DATA_HOME}/pass"
36
37# Postgresql
38PSQLRC DEFAULT="${XDG_CONFIG_HOME}/psql/psqlrc"
39PSQL_HISTORY DEFAULT="${XDG_STATE_HOME}/psql/psql_history"
40PGPASSFILE DEFAULT="${XDG_CONFIG_HOME}/psql/pgpass"
41PGSERVICEFILE DEFAULT="${XDG_CONFIG_HOME}/psql/pg_service.conf"
42
43# Sqlite
44SQLITE_HISTORY DEFAULT="${XDG_STATE_HOME}/sqlite_history"
45
46# Stack
47STACK_ROOT DEFAULT="${XDG_DATA_HOME}/stack"
48
49# Nodejs
50NVM_DIR DEFAULT="${XDG_DATA_HOME}/nvm"
51NPM_CONFIG_USERCONFIG DEFAULT="${XDG_CONFIG_HOME}/npm/npmrc"
52
53# TMUX
54TMUX_TMPDIR DEFAULT="${XDG_RUNTIME_DIR}"
55
56# node_modules/pm2/paths.js
57PM2_HOME DEFAULT="${XDG_DATA_HOME}/pm2"
58PM2_CONF_FILE DEFAULT="${XDG_CONFIG_HOME}/pm2/conf.js"
59PM2_MODULE_CONF_FILE DEFAULT="${XDG_CONFIG_HOME}/pm2/module_conf.js"
60PM2_LOG_FILE_PATH DEFAULT="${XDG_STATE_HOME}/pm2/pm2.log"
61PM2_PID_FILE_PATH DEFAULT="${XDG_RUNTIME_DIR}/pm2/pm2.pid"
62PM2_RELOAD_LOCKFILE DEFAULT="${XDG_RUNTIME_DIR}/pm2/reload.lock"
63PM2_DEFAULT_PID_PATH DEFAULT="${XDG_RUNTIME_DIR}/pm2/pids"
64PM2_DEFAULT_LOG_PATH DEFAULT="${XDG_STATE_HOME}/pm2/logs"
65PM2_DAEMON_RPC_PORT DEFAULT="${XDG_RUNTIME_DIR}/pm2/rpc.sock"
66PM2_DAEMON_PUB_PORT DEFAULT="${XDG_RUNTIME_DIR}/pm2/pub.sock"
67PM2_INTERACTOR_RPC_PORT DEFAULT="${XDG_RUNTIME_DIR}/pm2/interactor.sock"
68PM2_INTERACTOR_LOG_FILE_PATH DEFAULT="${XDG_STATE_HOME}/pm2/agent.log"
69PM2_INTERACTOR_PID_PATH DEFAULT="${XDG_RUNTIME_DIR}/pm2/agent.pid"
70PM2_INTERACTION_CONF DEFAULT="${XDG_CONFIG_HOME}/pm2/agent.json5"
diff --git a/dotfiles/programming/haskell/ghci.conf b/dotfiles/programming/haskell/ghci.conf
new file mode 100644
index 0000000..1de7ca1
--- /dev/null
+++ b/dotfiles/programming/haskell/ghci.conf
@@ -0,0 +1,2 @@
1:set prompt "λ "
2:set -XOverloadedStrings
diff --git a/dotfiles/programming/nodejs/npmrc b/dotfiles/programming/nodejs/npmrc
new file mode 100644
index 0000000..5dc76c3
--- /dev/null
+++ b/dotfiles/programming/nodejs/npmrc
@@ -0,0 +1,3 @@
1cache=${XDG_CACHE_HOME}/npm
2tmp=${XDG_RUNTIME_DIR}/npm
3init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
diff --git a/dotfiles/remind/remind@.service b/dotfiles/remind/remind@.service
new file mode 100644
index 0000000..3fc221d
--- /dev/null
+++ b/dotfiles/remind/remind@.service
@@ -0,0 +1,10 @@
1[Unit]
2Description=Remind daemon
3After=network.target
4
5[Service]
6Type=simple
7ExecStart=/usr/bin/remind -z60 -k'/usr/bin/dunstify -t 0 -a Tracking %%s' %h/.config/remind/%i
8
9[Install]
10WantedBy=default.target
diff --git a/dotfiles/remind/work b/dotfiles/remind/work
new file mode 100644
index 0000000..edc937d
--- /dev/null
+++ b/dotfiles/remind/work
@@ -0,0 +1 @@
REM Mon Tue Wed Thu Fri AT 09:00 MSG Ne pas oublier de démarrer le time tracking !
diff --git a/dotfiles/shell_bash/bash_profile b/dotfiles/shell_bash/bash_profile
new file mode 100644
index 0000000..4de837b
--- /dev/null
+++ b/dotfiles/shell_bash/bash_profile
@@ -0,0 +1,9 @@
1# Some variables are loaded via pam (see .config/pam_environment)
2
3[[ -f ~/.bashrc ]] && . ~/.bashrc
4
5{%@@ if "graphical_vt" in features.get(profile, []) @@%}
6if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
7 exec startx $XDG_CONFIG_HOME/xinitrc
8fi
9{%@@ endif @@%}
diff --git a/dotfiles/shell_bash/bashrc b/dotfiles/shell_bash/bashrc
new file mode 100644
index 0000000..8f43283
--- /dev/null
+++ b/dotfiles/shell_bash/bashrc
@@ -0,0 +1,94 @@
1#
2# ~/.bashrc
3#
4
5if [ -n "$HOME/.local/bin" ]; then
6 PATH="$HOME/.local/bin:$PATH"
7fi
8
9# If not running interactively, don't do anything
10[[ $- != *i* ]] && return
11
12export HISTFILE="$XDG_STATE_HOME/bash/history"
13
14alias vi=vim
15alias ls='ls --color=auto -F -T 0'
16alias tmux='tmux -f $XDG_CONFIG_HOME/tmux/tmux.conf'
17
18alias grep='grep --color=auto'
19alias fgrep='fgrep --color=auto'
20alias egrep='egrep --color=auto'
21
22alias sudo="sudo "
23alias mv="mv -i"
24alias cp="cp -i"
25alias rm="rm -i"
26alias psp="pstree -aUp $USER"
27alias dotdrop="dotdrop --cfg $XDG_CONFIG_HOME/dotdrop/config.yaml"
28
29{%@@ if role.get(profile) == "fretlink" @@%}
30##### Some Fretlink aliases
31alias getDump='s3cmd -c <(pass show Travail/Fretlink/S3) get '
32
33function vpn() {
34 TMPFILE=$(mktemp /tmp/openvpn.XXXXXX)
35 pass show Travail/Fretlink/OpenVPN >> $TMPFILE
36 sudo openvpn $TMPFILE
37 rm -f $TMPFILE
38}
39
40function dev_prompt() {
41 if [ -n "$FRETLINK_ENV" ]; then
42 echo "{$FRETLINK_ENV} "
43 fi
44}
45##### /Fretlink
46{%@@ endif @@%}
47
48# Non-printable chars need to be wrapped by \[ ... \] otherwise bash
49# will wrongly count the size of the prompt and glitch when going
50# through history
51function git_prompt_color() {
52 git diff --quiet 2>/dev/null && git diff --cached --quiet 2>/dev/null
53 gitstatus=$?
54 if [ "$gitstatus" -gt 0 ]; then
55 av=$'\033[01;31m'
56 else
57 av=$'\033[01;34m'
58 fi
59 echo "$av"
60}
61
62function git_prompt() {
63 gitinfo=$(git branch 2>/dev/null | grep "^*" | cut -c3-);
64 git diff --quiet 2>/dev/null && git diff --cached --quiet 2>/dev/null
65 gitstatus=$?
66 gitlsfiles=$(git ls-files . 2>/dev/null | wc -l);
67 if [ "$gitinfo" -a "$gitlsfiles" -gt 0 ]; then
68 echo -e "($gitinfo) "
69 fi
70}
71
72function error_code() {
73 ret=$?
74 if [[ $ret != 0 ]]; then
75 echo "$ret "
76 fi
77}
78
79function running_jobs() {
80 ret=$(jobs | wc -l)
81 if [[ $ret != 0 ]]; then
82 echo "[$ret] "
83 fi
84}
85
86{%@@ if role.get(profile) == "fretlink" @@%}
87PS1='\[\033[01;31m\]$(error_code)\[\033[00;00m\]$(running_jobs)\[\033[01;32m\]$(dev_prompt)\[$(git_prompt_color)\]$(git_prompt)\[\033[00;32m\]\u@\h\[\033[94m\] \w \$\[\033[00m\] '
88{%@@ else @@%}
89PS1='\[\033[01;31m\]$(error_code)\[\033[00;00m\]$(running_jobs)\[$(git_prompt_color)\]$(git_prompt)\[\033[00;32m\]\u@\h\[\033[94m\] \w \$\[\033[00m\] '
90{%@@ endif @@%}
91
92{%@@ if "nodejs" in features.get(profile, []) @@%}
93source /usr/share/nvm/init-nvm.sh
94{%@@ endif @@%}
diff --git a/dotfiles/tools/mplayer b/dotfiles/tools/mplayer
new file mode 100644
index 0000000..21cf775
--- /dev/null
+++ b/dotfiles/tools/mplayer
@@ -0,0 +1,3 @@
1# Write your default config options here!
2
3
diff --git a/dotfiles/tools/psqlrc b/dotfiles/tools/psqlrc
new file mode 100644
index 0000000..c51f46e
--- /dev/null
+++ b/dotfiles/tools/psqlrc
@@ -0,0 +1,5 @@
1\pset null ¤
2\set COMP_KEYWORD_CASE upper
3\x auto
4\set HISTSIZ -1
5\set ECHO_HIDDEN on
diff --git a/dotfiles/tools/tmux.conf b/dotfiles/tools/tmux.conf
new file mode 100644
index 0000000..a2ec113
--- /dev/null
+++ b/dotfiles/tools/tmux.conf
@@ -0,0 +1,88 @@
1# Pour les nostalgiques de screen
2# comme les raccourcis ne sont pas les mêmes, j'évite
3set-option -g prefix C-a
4unbind-key C-b
5bind-key a send-prefix
6
7bind-key C-d detach
8unbind-key C-z
9bind-key C-z resize-pane -Z
10bind-key h switch-client -t remote
11
12unbind-key )
13unbind-key (
14bind-key -r ( switch-client -p
15bind-key -r ) switch-client -n
16
17bind-key -n M-Left previous-window
18bind-key -n M-Right next-window
19bind-key -n M-PageDown switch-client -n
20bind-key -n M-PageUp switch-client -p
21
22bind-key M set-window-option monitor-activity
23bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; new-window -n "urlview" '$SHELL -c "urlview < /tmp/tmux-buffer; rm -f /tmp/tmux-buffer"'
24
25bind-key C-c run-shell -b "tmux save-buffer - | xclip -i -sel clipboard"
26bind-key C-v run-shell "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"
27
28bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-selection-and-cancel \; run-shell -b "tmux save-buffer - | xclip -i -selection primary"
29bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection-and-cancel \; run-shell -b "tmux save-buffer - | xclip -i -selection primary"
30bind-key -T root MouseUp2Pane run-shell "tmux set-buffer \"$(xclip -o -selection primary)\"; tmux paste-buffer"
31
32# même hack que sur screen lorsqu'on veut profiter du scroll du terminal
33# (xterm ...)
34set-option -g terminal-overrides 'xterm*:smcup@:rmcup@:Tc'
35
36# Renumeroter les fenetres quand on en ferme une
37set-option -g renumber-windows on
38
39#Pour les ctrl+arrow
40set-option -g xterm-keys on
41
42# c'est un minimum (defaut 2000)
43set-option -g history-limit 10000
44
45# lorsque j'ai encore un tmux ailleurs seule
46# sa fenetre active réduit la taille de ma fenetre locale
47set-window-option -g aggressive-resize on
48
49# Pour etre alerté sur une alerte dans une autre fenêtre
50set-option -g visual-activity off
51set-option -g visual-bell off
52
53# numéroter a partir de 1, pratique pour l'accès direct
54set-option -g base-index 1
55
56# repercuter le contenu de la fenetre dans la barre de titre
57# reference des string : man tmux (status-left)
58set-option -g set-titles on
59set-option -g set-titles-string '#H #W #T' # host window command
60
61set-option -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY XDG_VTNR"
62
63set-window-option -g window-status-bell-style fg=yellow,bold,underscore
64
65set -g default-terminal screen-256color
66
67set -g mouse on
68
69{%@@ if role.get(profile) == "fretlink" @@%}
70new-session -A -c "$HOME/workdir/admin-root" -s admin-root
71send-keys "../start" C-m
72rename-window "running"
73new-window
74new-session -A -c "$HOME/workdir/carrier-directory" -s carrier-directory
75send-keys "../start" C-m
76rename-window "running"
77new-window
78new-session -A -c "$HOME/workdir/notifier" -s notifier
79send-keys "../start" C-m
80rename-window "running"
81new-window
82new-session -A -c "$HOME/workdir/geodata" -s geodata
83new-session -A -c "$HOME/workdir/app" -s app
84send-keys "../start" C-m
85rename-window "running"
86new-window
87select-window -t 1
88{%@@ endif @@%}
diff --git a/dotfiles/tools/vimrc b/dotfiles/tools/vimrc
new file mode 100644
index 0000000..68a52f7
--- /dev/null
+++ b/dotfiles/tools/vimrc
@@ -0,0 +1,305 @@
1" ---------- Init, config, backup ---------------
2" Respect XDG directories (more below for cache)
3set viminfo+='1000,n$XDG_STATE_HOME/vim/viminfo
4set runtimepath=$XDG_DATA_HOME/vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$XDG_DATA_HOME/vim/after
5
6" Run :PlugInstall after adding plugins there
7call plug#begin(expand($XDG_DATA_HOME) . '/vim/plugged')
8
9Plug 'vim-scripts/cecutil'
10Plug 'vim-scripts/LargeFile'
11Plug 'vim-scripts/Align'
12Plug 'vim-scripts/AutoAlign'
13Plug 'jamessan/vim-gnupg'
14Plug 'vim-scripts/taglist.vim'
15Plug 'chrisbra/csv.vim'
16Plug 'mustache/vim-mustache-handlebars'
17Plug 'cakebaker/scss-syntax.vim'
18Plug 'tpope/vim-bundler'
19Plug 'tpope/vim-rails'
20Plug 'ledger/vim-ledger'
21Plug 'beyondwords/vim-twig'
22Plug 'scrooloose/nerdtree'
23Plug 'kien/ctrlp.vim'
24Plug 'rodjek/vim-puppet'
25Plug 'szw/vim-tags'
26Plug 'neomutt/neomutt.vim'
27Plug 'kchmck/vim-coffee-script'
28Plug 'digitaltoad/vim-pug'
29Plug 'vim-scripts/slapd.vim'
30Plug 'vimwiki/vimwiki', { 'branch': 'dev' }
31Plug 'vim-vdebug/vdebug'
32Plug 'tpope/vim-fugitive'
33Plug 'tomlion/vim-solidity'
34Plug 'chrisbra/SudoEdit.vim'
35
36call plug#end()
37
38" Charge automatiquement les ftplugins/*.vim selon le type de fichier
39filetype plugin on
40" Charge automatiquement les indent/*.vim selon le type de fichier
41filetype indent on
42
43" Pour que vim garde une copie de sauvegarde des fichiers modifiés.
44set backup
45""" Copied from /usr/share/vim/vimfiles/archlinux.vim
46" Move temporary files to a secure location to protect against CVE-2017-1000382
47if exists('$XDG_CACHE_HOME')
48 let &g:directory=$XDG_CACHE_HOME
49else
50 let &g:directory=$HOME . '/.cache'
51endif
52let g:ctrlp_cache_dir=&g:directory . '/vim/ctrlp//'
53let &g:undodir=&g:directory . '/vim/undo//'
54let &g:backupdir=&g:directory . '/vim/backup//'
55let g:vim_tags_cache_dir = &g:directory . '/vim/ctags//'
56let &g:directory.='/vim/swap//'
57" Create directories if they doesn't exist
58if ! isdirectory($XDG_STATE_HOME . '/vim')
59 silent! call mkdir($XDG_STATE_HOME . '/vim')
60endif
61if ! isdirectory(expand(&g:directory))
62 silent! call mkdir(expand(&g:directory), 'p', 0700)
63endif
64if ! isdirectory(expand(&g:backupdir))
65 silent! call mkdir(expand(&g:backupdir), 'p', 0700)
66endif
67if ! isdirectory(expand(&g:undodir))
68 silent! call mkdir(expand(&g:undodir), 'p', 0700)
69endif
70if ! isdirectory(expand(g:vim_tags_cache_dir))
71 silent! call mkdir(expand(g:vim_tags_cache_dir), 'p', 0700)
72endif
73""" /Copied from /usr/share/vim/vimfiles/archlinux.vim
74
75
76" Ne pas sauver un backup spécial pour les fichiers réseau
77let g:netrw_dirhistmax = 0
78
79" ---------- Mappings ---------------------------
80" map : Normal, Visual, Select, Operator-pending
81" map! : Insert and Command-line
82
83" Le BackSpace fonctionne aussi en mode normal.
84map <BS> X
85
86" Les Control-flèches
87map <ESC>[1;5A <C-Up>
88map! <ESC>[1;5A <C-Up>
89map <ESC>[1;5B <C-Down>
90map! <ESC>[1;5B <C-Down>
91map <ESC>[1;5C <C-Right>
92map! <ESC>[1;5C <C-Right>
93map <ESC>[1;5D <C-Left>
94map! <ESC>[1;5D <C-Left>
95
96map <S-Up> {
97map! <S-Up> <C-O>{
98map <S-Down> }
99map! <S-Down> <C-O>}
100
101
102" ---------- Comportement à la frappe -----------
103" <BS> passe à travers l'indentation, les fins de ligne et le début du "insert"
104set backspace=indent,eol,start
105
106" '<BS>e écrit un é (sinon : ctrl+K ' e)
107" set digraph
108
109" La taille d'une ligne, pour la frappe au kilomètre.
110" Permet 4 niveaux de 'citation' pour les mails/forum
111set textwidth=72
112" set textwidth=80
113
114" Les touches qui font passer à la ligne suivante/précédente. backspace (b),
115" espace (s), flèches (<,>,[,]).
116set whichwrap=b,s,<,>,[,]
117
118" Ne pas mettre deux espaces après la ponctuation quand on "join" deux lignes
119set nojoinspaces
120
121" Quand on tape un ), vim montre furtivement le ( correspondant.
122set showmatch
123
124" Les options de formatage.
125set formatoptions=tcq2
126
127
128" ---------- Recherche --------------------------
129" Pour voir tous les matchs d'une recherche
130set hlsearch
131
132" Pour que les matchs soient affichés pendant que vous tapez le mot recherché
133set incsearch
134
135" On ignore la casse des caractères dans les recherches de chaînes en
136" minuscules; par contre, dès qu'une lettre est en majuscule, on tient compte
137" de la casse de toute la chaîne.
138" Pendant la recherche : \c pour ignorer quand même, \C pour case-sensitive
139set ignorecase
140set smartcase
141
142
143" ---------- Fichiers ---------------------------
144" Pour une complétion automatique des noms de fichiers
145set wildmenu
146
147" La façon dont la complétion présente les choix.
148set wildmode=longest,list:longest,full
149
150" La complétion automatique ignore les fichiers suivants.
151set suffixes=.bak.o.aux.dvi.log.toc.tof
152
153
154" ---------- Buffers ----------------------------
155" On veut pouvoir rendre invisible un buffer
156set hidden
157
158" Pour éviter de trop ralentir en faisant défiler le texte pendant l'exécution
159" des macros.
160set lazyredraw
161
162
163" ----------- Interactions ----------------------
164" On affiche en permanence les numéros de ligne et de colonne.
165set ruler
166
167" Pour ne pas se faire bipper tout le temps.
168set noerrorbells
169set visualbell t_vb=
170
171" Pour avoir des messages de vim qui tiennent sur une seule ligne, ce
172" qui évite d'avoir à presser «Enter» pour voir les messages suivants.
173set shortmess=filnrxoOt
174
175" Quand on tape une commande complexe en mode normal, vim affiche ce que l'on
176" a déjà tapé
177set showcmd
178
179
180" ------------ Indentations ---------------------
181" Conserve l'indentation
182set autoindent
183
184" Remplace les <Tab> par des espaces
185set expandtab
186
187" Nombre d'espaces
188set shiftwidth=2
189set softtabstop=2
190
191" Pour que l'indentation ajuste sur un multiple de 'shiftwidth'.
192set shiftround
193
194" ------------ Folding --------------------------
195set foldmethod=indent
196set foldnestmax=10
197set nofoldenable
198set foldlevel=0
199set foldlevelstart=0
200
201
202" ------------ Auto-commandes -------------------
203" On commence par enlever toutes les autocommandes avant de les définir
204" (pour le cas où ce fichier serait lu plusieurs fois.)
205autocmd!
206
207autocmd BufRead,BufNewFile mutt*[0-9] set nobackup nowritebackup
208autocmd BufRead,BufNewFile .article.* set filetype=mail nobackup
209
210" ledger
211" Don't load ftplugin for ledger
212" autocmd BufReadPre,BufNewFile *ledger* let b:did_ftplugin = 1
213autocmd FileType ledger set textwidth=0
214let g:ledger_main = '~/.ledger/perso'
215
216autocmd FileType puppet set textwidth=0
217
218" ----------- Coloration syntaxique -------------
219syntax enable
220
221highlight Comment term=none ctermfg=darkCyan cterm=none
222highlight Constant term=underline ctermfg=Blue cterm=none
223highlight Error term=reverse ctermfg=White ctermbg=Red cterm=none
224highlight Identifier term=none ctermfg=Green cterm=none
225highlight IncSearch term=reverse ctermfg=Blue ctermbg=White
226highlight Operator term=none ctermfg=darkGray cterm=bold
227highlight PreProc term=underline ctermfg=Magenta cterm=none
228highlight Search term=reverse cterm=reverse
229highlight Special term=bold ctermfg=Blue cterm=bold
230highlight Statement term=bold ctermfg=Red cterm=none
231highlight Todo term=standout ctermfg=White ctermbg=Green cterm=bold
232highlight Type term=bold ctermfg=Brown cterm=none
233
234highlight link Delimiter Operator
235highlight link SpecialChar Special
236
237" lignes "foldées"
238highlight Folded term=standout ctermfg=White ctermbg=Blue cterm=bold
239
240" Pour les diffs (commande vimdiff).
241highlight DiffAdd term=bold ctermfg=Green ctermbg=none cterm=bold
242highlight DiffChange term=bold ctermfg=Cyan ctermbg=none
243highlight DiffDelete term=bold ctermfg=Red ctermbg=none cterm=bold
244highlight DiffText term=standout ctermfg=White ctermbg=Cyan cterm=bold
245
246" ------------- Fonctions, commandes, macros ----
247" Identer les fichiers (json, xml)
248function PRangeFunc(command_line, syntax) range
249 if a:firstline==1 && a:lastline==line('$')
250 execute 'set filetype=' . a:syntax
251 execute 'syntax on'
252 endif
253 execute a:firstline . "," . a:lastline . '!' . a:command_line
254endfunction
255
256command -range=% Pjson normal <Esc>`>a<CR><Esc>mb`<i<CR><Esc>ma:'a,'b-1 call PRangeFunc('python -m json.tool', 'json')<CR>
257command -range=% Pxml normal <Esc>`>a<CR><Esc>mb`<i<CR><Esc>ma:'a,'b-1 call PRangeFunc('xmllint --format --encode UTF8 -', 'xml')<CR>
258command -range=% Pdeflate normal <Esc>`>a<CR><Esc>mb`<i<CR><Esc>ma:'a,'b-1 call PRangeFunc('python -c "import zlib; import sys; sys.stdout.buffer.write(zlib.decompress(sys.stdin.buffer.read()))"', '')<CR>
259command -range=% Pinflate normal <Esc>`>a<CR><Esc>mb`<i<CR><Esc>ma:'a,'b-1 call PRangeFunc('python -c "import zlib; import sys; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))"', '')<CR>
260command! -range=% Pastebin execute <line1> . "," . <line2> . "w !curl -F 'c=@-' https://ptpb.pw"
261
262vmap <F8> :Pxml<CR>
263vmap <F9> :Pjson<CR>
264
265" gpg-encryptes files
266let g:GPGPreferArmor=1
267let g:GPGDefaultRecipients=["ismael.bouya@normalesup.org"]
268let g:GPGUsesPipes=1
269
270command Decrypt 1,$!gpg -d -q
271command Encrypt 1,$!gpg -e -q --armor -r ismael.bouya@normalesup.org
272command -range=% Runhash s/:\([_a-zA-Z0-9]\+\)\( \+\)=> \( *\)/\1:\2\3/
273
274function! s:DiffWithSaved()
275 let filetype=&ft
276 diffthis
277 vnew | r # | normal! 1Gdd
278 diffthis
279 exe "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
280endfunction
281command! DiffSaved call s:DiffWithSaved()
282
283" Load NERDTree on startup if no file were specified
284" autocmd StdinReadPre * let s:std_in=1
285" autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
286" Load NERDTree on startup
287"autocmd VimEnter * NERDTree | wincmd p
288let g:vim_tags_auto_generate = 1
289let g:vim_tags_project_tags_command = "ctags -R {OPTIONS} {DIRECTORY} 2>/dev/null"
290map <C-\> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>
291map <A-]> :vsp <CR>:exec("tag ".expand("<cword>"))<CR>
292
293let g:ctrlp_extensions = ['tag', 'buffertag', 'dir', 'undo', 'line']
294set modeline
295
296set grepprg=grep\ -rn\ $*\ /dev/null
297let c_comment_strings=1
298if !exists(":DiffOrig")
299 command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
300 \ | wincmd p | diffthis
301endif
302
303set list
304set listchars=tab:>-,trail:-
305
diff --git a/dotfiles/tools/youtube-viewer.conf b/dotfiles/tools/youtube-viewer.conf
new file mode 100644
index 0000000..de55144
--- /dev/null
+++ b/dotfiles/tools/youtube-viewer.conf
@@ -0,0 +1,89 @@
1#!/usr/bin/perl
2
3# Youtube Viewer 3.3.4 - configuration file
4
5our $CONFIG = {
6 auto_captions => 0,
7 autohide_watched => 0,
8 cache_dir => "{{@@ env["XDG_CACHE_HOME"] @@}}/youtube-viewer",
9 captions_dir => "/tmp",
10 clobber => 0,
11 colors => 1,
12 combine_multiple_videos => 0,
13 confirm => 0,
14 convert_cmd => "ffmpeg -i *IN* *OUT*",
15 convert_to => undef,
16 copy_caption => 0,
17 dash_mp4_audio => 1,
18 dash_support => 1,
19 debug => 0,
20 download_and_play => 0,
21 download_in_parallel => 0,
22 download_with_wget => 0,
23 downloads_dir => ".",
24 env_proxy => 1,
25 fat32safe => 0,
26 fullscreen => 0,
27 get_captions => 1,
28 get_term_width => 1,
29 highlight_color => "bold",
30 highlight_watched => 0,
31 history => 0,
32 history_file => "{{@@ env["XDG_STATE_HOME"] @@}}/youtube-viewer/history.txt",
33 history_limit => 10000,
34 hl => "en_US",
35 http_proxy => undef,
36 interactive => 1,
37 keep_original_video => 0,
38 maxResults => 20,
39 order => undef,
40 page => 1,
41 publishedAfter => undef,
42 publishedBefore => undef,
43 regionCode => undef,
44 remove_played_file => 0,
45 resolution => "original",
46 results_fixed_width => 0,
47 results_with_colors => 0,
48 results_with_details => 0,
49 safeSearch => undef,
50 skip_if_exists => 0,
51 srt_languages => ["en", "fr"],
52 subscriptions_order => "relevance",
53 thousand_separator => ",",
54 video_filename_format => "*FTITLE*.*FORMAT*",
55 video_player_selected => "mplayer",
56 video_players => {
57 mplayer => {
58 arg => "-prefer-ipv4 -really-quiet -title *TITLE*",
59 audio => "-audiofile *AUDIO*",
60 cmd => "/usr/bin/mplayer",
61 fs => "-fs",
62 novideo => "-novideo",
63 srt => "-sub *SUB*",
64 },
65 mpv => {
66 arg => "--really-quiet --title *TITLE* --no-ytdl",
67 audio => "--audio-file *AUDIO*",
68 cmd => "mpv",
69 fs => "--fullscreen",
70 novideo => "--no-video",
71 srt => "--sub-file *SUB*",
72 },
73 vlc => {
74 arg => "--quiet --play-and-exit --no-video-title-show --input-title-format *TITLE*",
75 audio => "--input-slave *AUDIO*",
76 cmd => "vlc",
77 fs => "--fullscreen",
78 novideo => "--intf dummy --novideo",
79 srt => "--sub-file *SUB*",
80 },
81 },
82 videoCaption => undef,
83 videoDefinition => undef,
84 videoDimension => undef,
85 videoDuration => undef,
86 videoLicense => undef,
87 videoSyndicated => undef,
88 youtube_video_url => "https://www.youtube.com/watch?v=%s",
89}