4609432b8f5281d8b18b661240f26f8c3e978580
[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 <!-- 2018-06-24 Sun 02:49 -->
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="http://svjatoslav.eu">http://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="http://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="http://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="http://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 http://www2.svjatoslav.eu/git/instantlauncher.git
239 </pre>
240 </li>
241 </ul>
242 </div>
243 </div>
244 </div>
245
246 <div id="outline-container-sec-2" class="outline-2">
247 <h2 id="sec-2"><span class="section-number-2">2</span> Purpose</h2>
248 <div class="outline-text-2" id="text-2">
249 <p>
250 Quick filesystem based document/application launcher. It starts by
251 showing content of <a href="#sec-4-4">predefined directory</a>. Sub directories can be chosen
252 by simply moving mouse pointer over corresponding directory.
253 </p>
254
255
256 <figure>
257 <p><img src="screenshot.png" class="img-responsive" alt="screenshot.png">
258 </p>
259 </figure>
260
261 <p>
262 Files types are color-coded.
263 </p>
264 </div>
265 </div>
266
267 <div id="outline-container-sec-3" class="outline-2">
268 <h2 id="sec-3"><span class="section-number-2">3</span> Usage</h2>
269 <div class="outline-text-2" id="text-3">
270 <p>
271 Simply hovering mouse pointer over directory expands its contents in
272 the next right column.
273 </p>
274
275
276 <ul class="org-ul">
277 <li>Executable file (red):
278 <ul class="org-ul">
279 <li>Left mouse click:
280 <ul class="org-ul">
281 <li>Run executable file.
282 </li>
283 </ul>
284 </li>
285 <li>Right mouse click:
286 <ul class="org-ul">
287 <li>Toggle executable state.
288 </li>
289 </ul>
290 </li>
291 </ul>
292 </li>
293
294 <li>Non-executable file (green):
295 <ul class="org-ul">
296 <li>Left mouse click:
297 <ul class="org-ul">
298 <li>Open file using corresponding application.
299 </li>
300 </ul>
301 </li>
302 <li>Right mouse click:
303 <ul class="org-ul">
304 <li>Toggle executable state.
305 </li>
306 </ul>
307 </li>
308 </ul>
309 </li>
310
311 <li>Directory/symlink (blue):
312 <ul class="org-ul">
313 <li>Left mouse click:
314 <ul class="org-ul">
315 <li>Open directory using configured filesystem browser.
316 </li>
317 </ul>
318 </li>
319 <li>Right mouse click:
320 <ul class="org-ul">
321 <li>Open directory using configured text based terminal emulator.
322 </li>
323 </ul>
324 </li>
325 </ul>
326 </li>
327 </ul>
328 </div>
329 </div>
330
331 <div id="outline-container-sec-4" class="outline-2">
332 <h2 id="sec-4"><span class="section-number-2">4</span> Configuration</h2>
333 <div class="outline-text-2" id="text-4">
334 <p>
335 When instantlauncher starts, it looks for configuration file under
336 </p>
337 <pre class="example">
338 ~/.instantlauncher
339 </pre>
340
341 <p>
342 If file is not found, it creates new default configuration file in
343 YAML format:
344 </p>
345 <pre class="example">
346 !configuration
347 directoryOpenCommand: nautilus -w {file}
348 directoryTerminalOpenCommand: gnome-terminal --working-directory={file}
349 fileAssociations:
350 -  command: vlc {file}
351    fileRegex: .*\.mkv$
352 -  command: emacs {file}
353    fileRegex: .*\.txt$
354 -  command: eog {file}
355    fileRegex: .*\.jpeg$
356 -  command: eog {file}
357    fileRegex: .*\.png$
358 -  command: vlc {file}
359    fileRegex: .*\.avi$
360 -  command: vlc {file}
361    fileRegex: .*\.mp4$
362 -  command: eog {file}
363    fileRegex: .*\.jpg$
364 -  command: emacs {file}
365    fileRegex: .*\.org$
366 navigationRootPath: /home/svjatoslav/
367 </pre>
368 </div>
369
370 <div id="outline-container-sec-4-1" class="outline-3">
371 <h3 id="sec-4-1"><span class="section-number-3">4.1</span> directoryOpenCommand</h3>
372 <div class="outline-text-3" id="text-4-1">
373 <p>
374 Command to use when opening directory.
375 </p>
376
377 <p>
378 By default instantlauncher assumes that Gnome desktop environment is
379 installed and uses Nautilus file manager:
380 </p>
381 <pre class="example">
382 directoryOpenCommand: nautilus -w {file}
383 </pre>
384 </div>
385 </div>
386 <div id="outline-container-sec-4-2" class="outline-3">
387 <h3 id="sec-4-2"><span class="section-number-3">4.2</span> directoryTerminalOpenCommand</h3>
388 <div class="outline-text-3" id="text-4-2">
389 <p>
390 Command to use when opening directory in text terminal based console.
391 </p>
392
393 <p>
394 By default instantlauncher assumes that Gnome desktop environment is
395 installed and uses Gnome Terminal:
396 </p>
397
398 <pre class="example">
399 directoryTerminalOpenCommand: gnome-terminal --working-directory={file}
400 </pre>
401 </div>
402 </div>
403 <div id="outline-container-sec-4-3" class="outline-3">
404 <h3 id="sec-4-3"><span class="section-number-3">4.3</span> fileAssociations</h3>
405 <div class="outline-text-3" id="text-4-3">
406 <p>
407 Allows to map file name/extension using regular expression pattern
408 matching to corresponding application.
409 </p>
410
411 <p>
412 Example:
413 </p>
414 <div class="org-src-container">
415
416 <pre class="src src-conf">-  command: vlc {file}
417    fileRegex: .*\.mkv$
418 </pre>
419 </div>
420
421 <p>
422 Where:
423 </p>
424 <dl class="org-dl">
425 <dt> command </dt><dd>Command to execute to open given file. Special variable
426 {file} will point to user chosen file using absolute file
427 path.
428 </dd>
429
430 <dt> fileRegex </dt><dd>Regular expression that must match the file.
431 </dd>
432 </dl>
433 </div>
434 </div>
435 <div id="outline-container-sec-4-4" class="outline-3">
436 <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>
437 <div class="outline-text-3" id="text-4-4">
438 <p>
439 Root directory from where to start navigation.
440 </p>
441
442 <p>
443 This parameter is user specific! In my case instantlauncher by default
444 pointed this to my home directory. But it can be any directory user
445 chooses.
446 </p>
447
448 <p>
449 I think good use-case is to create special directory to be used for
450 instantlauncher root. This special root directory can in turn contain
451 symlinks to various places user wants to visit often. Instantlauncher
452 will follow symlinks as if they were directories.
453 </p>
454
455 <pre class="example">
456 navigationRootPath: /home/svjatoslav/
457 </pre>
458 </div>
459 </div>
460 </div>
461 </div><div class="col-md-3"><nav id="table-of-contents">
462 <div id="text-table-of-contents" class="bs-docs-sidebar">
463 <ul class="nav">
464 <li><a href="#sec-1">1. General</a>
465 <ul class="nav">
466 <li><a href="#sec-1-1">1.1. Source code</a></li>
467 </ul>
468 </li>
469 <li><a href="#sec-2">2. Purpose</a></li>
470 <li><a href="#sec-3">3. Usage</a></li>
471 <li><a href="#sec-4">4. Configuration</a>
472 <ul class="nav">
473 <li><a href="#sec-4-1">4.1. directoryOpenCommand</a></li>
474 <li><a href="#sec-4-2">4.2. directoryTerminalOpenCommand</a></li>
475 <li><a href="#sec-4-3">4.3. fileAssociations</a></li>
476 <li><a href="#sec-4-4">4.4. navigationRootPath</a></li>
477 </ul>
478 </li>
479 </ul>
480 </div>
481 </nav>
482 </div></div></div>
483 <footer id="postamble" class="">
484 <div><p class="author">Author: Svjatoslav Agejenko</p>
485 <p class="date">Created: 2018-06-24 Sun 02:49</p>
486 <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.1.1 (<a href="http://orgmode.org">Org-mode</a> 8.2.10)</p>
487 </div>
488 </footer>
489 </body>
490 </html>