Prefer HTTPS in documentation
[instantlauncher.git] / doc / index.html
1 <!doctype html>
2 <html lang="en">
3 <head>
4 <title>Instantlauncher - navigate to your files and programs quickly!</title>
5 <!-- 2019-01-27 P 00:38 -->
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width, initial-scale=1">
8 <meta name="generator" content="Org-mode">
9 <meta name="author" content="Svjatoslav Agejenko">
10 <link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
11 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
12 <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
13 <style type="text/css">
14 footer {background-color: #111 !important;}
15 pre {background-color: #111; color: #ccc;}
16 </style>
17 <style type="text/css">
18 /* org mode styles on top of twbs */
19
20 html {
21     position: relative;
22     min-height: 100%;
23 }
24
25 body {
26     font-size: 18px;
27     margin-bottom: 105px;
28 }
29
30 footer {
31     position: absolute;
32     bottom: 0;
33     width: 100%;
34     height: 101px;
35     background-color: #f5f5f5;
36 }
37
38 footer > div {
39     padding: 10px;
40 }
41
42 footer p {
43     margin: 0 0 5px;
44     text-align: center;
45     font-size: 16px;
46 }
47
48 #table-of-contents {
49     margin-top: 20px;
50     margin-bottom: 20px;
51 }
52
53 blockquote p {
54     font-size: 18px;
55 }
56
57 pre {
58     font-size: 16px;
59 }
60
61 .footpara {
62     display: inline-block;
63 }
64
65 figcaption {
66   font-size: 16px;
67   color: #666;
68   font-style: italic;
69   padding-bottom: 15px;
70 }
71
72 /* from twbs docs */
73
74 .bs-docs-sidebar.affix {
75     position: static;
76 }
77 @media (min-width: 768px) {
78     .bs-docs-sidebar {
79         padding-left: 20px;
80     }
81 }
82
83 /* All levels of nav */
84 .bs-docs-sidebar .nav > li > a {
85     display: block;
86     padding: 4px 20px;
87     font-size: 14px;
88     font-weight: 500;
89     color: #999;
90 }
91 .bs-docs-sidebar .nav > li > a:hover,
92 .bs-docs-sidebar .nav > li > a:focus {
93     padding-left: 19px;
94     color: #A1283B;
95     text-decoration: none;
96     background-color: transparent;
97     border-left: 1px solid #A1283B;
98 }
99 .bs-docs-sidebar .nav > .active > a,
100 .bs-docs-sidebar .nav > .active:hover > a,
101 .bs-docs-sidebar .nav > .active:focus > a {
102     padding-left: 18px;
103     font-weight: bold;
104     color: #A1283B;
105     background-color: transparent;
106     border-left: 2px solid #A1283B;
107 }
108
109 /* Nav: second level (shown on .active) */
110 .bs-docs-sidebar .nav .nav {
111     display: none; /* Hide by default, but at >768px, show it */
112     padding-bottom: 10px;
113 }
114 .bs-docs-sidebar .nav .nav > li > a {
115     padding-top: 1px;
116     padding-bottom: 1px;
117     padding-left: 30px;
118     font-size: 12px;
119     font-weight: normal;
120 }
121 .bs-docs-sidebar .nav .nav > li > a:hover,
122 .bs-docs-sidebar .nav .nav > li > a:focus {
123     padding-left: 29px;
124 }
125 .bs-docs-sidebar .nav .nav > .active > a,
126 .bs-docs-sidebar .nav .nav > .active:hover > a,
127 .bs-docs-sidebar .nav .nav > .active:focus > a {
128     padding-left: 28px;
129     font-weight: 500;
130 }
131
132 /* Nav: third level (shown on .active) */
133 .bs-docs-sidebar .nav .nav .nav {
134     padding-bottom: 10px;
135 }
136 .bs-docs-sidebar .nav .nav .nav > li > a {
137     padding-top: 1px;
138     padding-bottom: 1px;
139     padding-left: 40px;
140     font-size: 12px;
141     font-weight: normal;
142 }
143 .bs-docs-sidebar .nav .nav .nav > li > a:hover,
144 .bs-docs-sidebar .nav .nav .nav > li > a:focus {
145     padding-left: 39px;
146 }
147 .bs-docs-sidebar .nav .nav .nav > .active > a,
148 .bs-docs-sidebar .nav .nav .nav > .active:hover > a,
149 .bs-docs-sidebar .nav .nav .nav > .active:focus > a {
150     padding-left: 38px;
151     font-weight: 500;
152 }
153
154 /* Show and affix the side nav when space allows it */
155 @media (min-width: 992px) {
156     .bs-docs-sidebar .nav > .active > ul {
157         display: block;
158     }
159     /* Widen the fixed sidebar */
160     .bs-docs-sidebar.affix,
161     .bs-docs-sidebar.affix-bottom {
162         width: 213px;
163     }
164     .bs-docs-sidebar.affix {
165         position: fixed; /* Undo the static from mobile first approach */
166         top: 20px;
167     }
168     .bs-docs-sidebar.affix-bottom {
169         position: absolute; /* Undo the static from mobile first approach */
170     }
171     .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
172         margin-top: 0;
173         margin-bottom: 0
174     }
175 }
176 @media (min-width: 1200px) {
177     /* Widen the fixed sidebar again */
178     .bs-docs-sidebar.affix-bottom,
179     .bs-docs-sidebar.affix {
180         width: 263px;
181     }
182 }
183 </style>
184 <script type="text/javascript">
185 $(function() {
186     'use strict';
187
188     $('.bs-docs-sidebar li').first().addClass('active');
189
190     $(document.body).scrollspy({target: '.bs-docs-sidebar'});
191
192     $('.bs-docs-sidebar').affix();
193 });
194 </script>
195 </head>
196 <body>
197 <div id="content" class="container">
198 <div class="row"><div class="col-md-9"><h1 class="title">Instantlauncher - navigate to your files and programs quickly!</h1>
199
200 <div id="outline-container-sec-1" class="outline-2">
201 <h2 id="sec-1"><span class="section-number-2">1</span> General</h2>
202 <div class="outline-text-2" id="text-1">
203 <ul class="org-ul">
204 <li>This program is free software: you can redistribute it and/or modify
205 it under the terms of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a> as
206 published by the Free Software Foundation, either version 3 of the
207 License, or (at your option) any later version.
208 </li>
209
210 <li>Program author:
211 <ul class="org-ul">
212 <li>Svjatoslav Agejenko
213 </li>
214 <li>Homepage: <a href="https://svjatoslav.eu">https://svjatoslav.eu</a>
215 </li>
216 <li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a>
217 </li>
218 </ul>
219 </li>
220
221 <li><a href="https://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a>
222 </li>
223 </ul>
224 </div>
225
226 <div id="outline-container-sec-1-1" class="outline-3">
227 <h3 id="sec-1-1"><span class="section-number-3">1.1</span> Source code</h3>
228 <div class="outline-text-3" id="text-1-1">
229 <ul class="org-ul">
230 <li><a href="https://www2.svjatoslav.eu/gitweb/?p=instantlauncher.git;a=snapshot;h=HEAD;sf=tgz">Download latest snapshot in TAR GZ format</a>
231 </li>
232
233 <li><a href="https://www2.svjatoslav.eu/gitweb/?p=instantlauncher.git;a=summary">Browse Git repository online</a>
234 </li>
235
236 <li>Clone Git repository using command:
237 <pre class="example">
238 git clone https://www2.svjatoslav.eu/git/instantlauncher.git
239
240 </pre>
241 </li>
242 </ul>
243 </div>
244 </div>
245 </div>
246
247 <div id="outline-container-sec-2" class="outline-2">
248 <h2 id="sec-2"><span class="section-number-2">2</span> Purpose</h2>
249 <div class="outline-text-2" id="text-2">
250 <p>
251 Quick filesystem based document/application launcher. It starts by
252 showing content of <a href="#sec-4-4">predefined directory</a>. Sub directories can be chosen
253 by simply moving mouse pointer over corresponding directory.
254 </p>
255
256
257 <figure>
258 <p><img src="screenshot.png" class="img-responsive" alt="screenshot.png">
259 </p>
260 </figure>
261
262 <p>
263 Files types are color-coded.
264 </p>
265 </div>
266 </div>
267
268 <div id="outline-container-sec-3" class="outline-2">
269 <h2 id="sec-3"><span class="section-number-2">3</span> Usage</h2>
270 <div class="outline-text-2" id="text-3">
271 <p>
272 Simply hovering mouse pointer over directory expands its contents in
273 the next right column.
274 </p>
275
276
277 <ul class="org-ul">
278 <li>Executable file (red):
279 <ul class="org-ul">
280 <li>Left mouse click:
281 <ul class="org-ul">
282 <li>Run executable file.
283 </li>
284 </ul>
285 </li>
286 <li>Right mouse click:
287 <ul class="org-ul">
288 <li>Toggle executable state.
289 </li>
290 </ul>
291 </li>
292 </ul>
293 </li>
294
295 <li>Non-executable file (green):
296 <ul class="org-ul">
297 <li>Left mouse click:
298 <ul class="org-ul">
299 <li>Open file using corresponding application.
300 </li>
301 </ul>
302 </li>
303 <li>Right mouse click:
304 <ul class="org-ul">
305 <li>Toggle executable state.
306 </li>
307 </ul>
308 </li>
309 </ul>
310 </li>
311
312 <li>Directory/symlink (blue):
313 <ul class="org-ul">
314 <li>Left mouse click:
315 <ul class="org-ul">
316 <li>Open directory using configured filesystem browser.
317 </li>
318 </ul>
319 </li>
320 <li>Right mouse click:
321 <ul class="org-ul">
322 <li>Open directory using configured text based terminal emulator.
323 </li>
324 </ul>
325 </li>
326 </ul>
327 </li>
328 </ul>
329 </div>
330 </div>
331
332 <div id="outline-container-sec-4" class="outline-2">
333 <h2 id="sec-4"><span class="section-number-2">4</span> Configuration</h2>
334 <div class="outline-text-2" id="text-4">
335 <p>
336 When instantlauncher starts, it looks for configuration file under
337 </p>
338 <pre class="example">
339 ~/.instantlauncher
340
341 </pre>
342
343 <p>
344 If file is not found, it creates new default configuration file in
345 YAML format:
346 </p>
347 <pre class="example">
348 !configuration
349 directoryOpenCommand: nautilus -w {file}
350 directoryTerminalOpenCommand: gnome-terminal --working-directory={file}
351 fileAssociations:
352 -  command: vlc {file}
353    fileRegex: .*\.mkv$
354 -  command: emacs {file}
355    fileRegex: .*\.txt$
356 -  command: eog {file}
357    fileRegex: .*\.jpeg$
358 -  command: eog {file}
359    fileRegex: .*\.png$
360 -  command: vlc {file}
361    fileRegex: .*\.avi$
362 -  command: vlc {file}
363    fileRegex: .*\.mp4$
364 -  command: eog {file}
365    fileRegex: .*\.jpg$
366 -  command: emacs {file}
367    fileRegex: .*\.org$
368 navigationRootPath: /home/svjatoslav/
369 </pre>
370 </div>
371
372 <div id="outline-container-sec-4-1" class="outline-3">
373 <h3 id="sec-4-1"><span class="section-number-3">4.1</span> directoryOpenCommand</h3>
374 <div class="outline-text-3" id="text-4-1">
375 <p>
376 Command to use when opening directory.
377 </p>
378
379 <p>
380 By default instantlauncher assumes that Gnome desktop environment is
381 installed and uses Nautilus file manager:
382 </p>
383 <pre class="example">
384 directoryOpenCommand: nautilus -w {file}
385
386 </pre>
387 </div>
388 </div>
389 <div id="outline-container-sec-4-2" class="outline-3">
390 <h3 id="sec-4-2"><span class="section-number-3">4.2</span> directoryTerminalOpenCommand</h3>
391 <div class="outline-text-3" id="text-4-2">
392 <p>
393 Command to use when opening directory in text terminal based console.
394 </p>
395
396 <p>
397 By default instantlauncher assumes that Gnome desktop environment is
398 installed and uses Gnome Terminal:
399 </p>
400
401 <pre class="example">
402 directoryTerminalOpenCommand: gnome-terminal --working-directory={file}
403
404 </pre>
405 </div>
406 </div>
407 <div id="outline-container-sec-4-3" class="outline-3">
408 <h3 id="sec-4-3"><span class="section-number-3">4.3</span> fileAssociations</h3>
409 <div class="outline-text-3" id="text-4-3">
410 <p>
411 Allows to map file name/extension using regular expression pattern
412 matching to corresponding application.
413 </p>
414
415 <p>
416 Example:
417 </p>
418 <div class="org-src-container">
419
420 <pre class="src src-conf">-  command: vlc {file}
421    fileRegex: .*\.mkv$
422 </pre>
423 </div>
424
425 <p>
426 Where:
427 </p>
428 <dl class="org-dl">
429 <dt> command </dt><dd>Command to execute to open given file. Special variable
430 {file} will point to user chosen file using absolute file
431 path.
432 </dd>
433
434 <dt> fileRegex </dt><dd>Regular expression that must match the file.
435 </dd>
436 </dl>
437 </div>
438 </div>
439 <div id="outline-container-sec-4-4" class="outline-3">
440 <h3 id="sec-4-4"><a id="ID-5ced6bf5-165a-49a0-8de4-3755d810d987" name="ID-5ced6bf5-165a-49a0-8de4-3755d810d987"></a><span class="section-number-3">4.4</span> navigationRootPath</h3>
441 <div class="outline-text-3" id="text-4-4">
442 <p>
443 Root directory from where to start navigation.
444 </p>
445
446 <p>
447 This parameter is user specific! In my case instantlauncher by default
448 pointed this to my home directory. But it can be any directory user
449 chooses.
450 </p>
451
452 <p>
453 I think good use-case is to create special directory to be used for
454 instantlauncher root. This special root directory can in turn contain
455 symlinks to various places user wants to visit often. Instantlauncher
456 will follow symlinks as if they were directories.
457 </p>
458
459 <pre class="example">
460 navigationRootPath: /home/svjatoslav/
461
462 </pre>
463 </div>
464 </div>
465 </div>
466 </div><div class="col-md-3"><nav id="table-of-contents">
467 <div id="text-table-of-contents" class="bs-docs-sidebar">
468 <ul class="nav">
469 <li><a href="#sec-1">1. General</a>
470 <ul class="nav">
471 <li><a href="#sec-1-1">1.1. Source code</a></li>
472 </ul>
473 </li>
474 <li><a href="#sec-2">2. Purpose</a></li>
475 <li><a href="#sec-3">3. Usage</a></li>
476 <li><a href="#sec-4">4. Configuration</a>
477 <ul class="nav">
478 <li><a href="#sec-4-1">4.1. directoryOpenCommand</a></li>
479 <li><a href="#sec-4-2">4.2. directoryTerminalOpenCommand</a></li>
480 <li><a href="#sec-4-3">4.3. fileAssociations</a></li>
481 <li><a href="#sec-4-4">4.4. navigationRootPath</a></li>
482 </ul>
483 </li>
484 </ul>
485 </div>
486 </nav>
487 </div></div></div>
488 <footer id="postamble" class="">
489 <div><p class="author">Author: Svjatoslav Agejenko</p>
490 <p class="date">Created: 2019-01-27 P 00:38</p>
491 <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 26.1 (<a href="http://orgmode.org">Org-mode</a> 9.1.9)</p>
492 </div>
493 </footer>
494 </body>
495 </html>