458fd01f13c8db387de7786f40f19713ae465c98
[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 <!-- 2020-05-01 Fri 23:42 -->
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: released under Creative Commons Zero
205 (CC0) license
206 </li>
207
208 <li>Program author:
209 <ul class="org-ul">
210 <li>Svjatoslav Agejenko
211 </li>
212 <li>Homepage: <a href="https://svjatoslav.eu">https://svjatoslav.eu</a>
213 </li>
214 <li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a>
215 </li>
216 </ul>
217 </li>
218
219 <li><a href="https://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a>
220 </li>
221 </ul>
222 </div>
223
224 <div id="outline-container-sec-1-1" class="outline-3">
225 <h3 id="sec-1-1"><span class="section-number-3">1.1</span> Source code</h3>
226 <div class="outline-text-3" id="text-1-1">
227 <ul class="org-ul">
228 <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>
229 </li>
230
231 <li><a href="https://www2.svjatoslav.eu/gitweb/?p=instantlauncher.git;a=summary">Browse Git repository online</a>
232 </li>
233
234 <li>Clone Git repository using command:
235 <pre class="example">
236 git clone https://www2.svjatoslav.eu/git/instantlauncher.git
237
238 </pre>
239 </li>
240 </ul>
241 </div>
242 </div>
243 </div>
244
245 <div id="outline-container-sec-2" class="outline-2">
246 <h2 id="sec-2"><span class="section-number-2">2</span> Purpose</h2>
247 <div class="outline-text-2" id="text-2">
248 <p>
249 Quick filesystem based document/application launcher. It starts by
250 showing content of <a href="#sec-4-4">predefined directory</a>. Sub directories can be chosen
251 by simply moving mouse pointer over corresponding directory.
252 </p>
253
254
255 <figure>
256 <p><img src="screenshot.png" class="img-responsive" alt="screenshot.png">
257 </p>
258 </figure>
259
260 <p>
261 Files types are color-coded.
262 </p>
263 </div>
264 </div>
265
266 <div id="outline-container-sec-3" class="outline-2">
267 <h2 id="sec-3"><span class="section-number-2">3</span> Usage</h2>
268 <div class="outline-text-2" id="text-3">
269 <p>
270 Simply hovering mouse pointer over directory expands its contents in
271 the next right column.
272 </p>
273
274
275 <ul class="org-ul">
276 <li>Executable file (red):
277 <ul class="org-ul">
278 <li>Left mouse click:
279 <ul class="org-ul">
280 <li>Run executable file.
281 </li>
282 </ul>
283 </li>
284 <li>Right mouse click:
285 <ul class="org-ul">
286 <li>Toggle executable state.
287 </li>
288 </ul>
289 </li>
290 </ul>
291 </li>
292
293 <li>Non-executable file (green):
294 <ul class="org-ul">
295 <li>Left mouse click:
296 <ul class="org-ul">
297 <li>Open file using corresponding application.
298 </li>
299 </ul>
300 </li>
301 <li>Right mouse click:
302 <ul class="org-ul">
303 <li>Toggle executable state.
304 </li>
305 </ul>
306 </li>
307 </ul>
308 </li>
309
310 <li>Directory/symlink (blue):
311 <ul class="org-ul">
312 <li>Left mouse click:
313 <ul class="org-ul">
314 <li>Open directory using configured filesystem browser.
315 </li>
316 </ul>
317 </li>
318 <li>Right mouse click:
319 <ul class="org-ul">
320 <li>Open directory using configured text based terminal emulator.
321 </li>
322 </ul>
323 </li>
324 </ul>
325 </li>
326 </ul>
327 </div>
328 </div>
329
330 <div id="outline-container-sec-4" class="outline-2">
331 <h2 id="sec-4"><span class="section-number-2">4</span> Configuration</h2>
332 <div class="outline-text-2" id="text-4">
333 <p>
334 When instantlauncher starts, it looks for configuration file under
335 </p>
336 <pre class="example">
337 ~/.instantlauncher
338
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
384 </pre>
385 </div>
386 </div>
387 <div id="outline-container-sec-4-2" class="outline-3">
388 <h3 id="sec-4-2"><span class="section-number-3">4.2</span> directoryTerminalOpenCommand</h3>
389 <div class="outline-text-3" id="text-4-2">
390 <p>
391 Command to use when opening directory in text terminal based console.
392 </p>
393
394 <p>
395 By default instantlauncher assumes that Gnome desktop environment is
396 installed and uses Gnome Terminal:
397 </p>
398
399 <pre class="example">
400 directoryTerminalOpenCommand: gnome-terminal --working-directory={file}
401
402 </pre>
403 </div>
404 </div>
405 <div id="outline-container-sec-4-3" class="outline-3">
406 <h3 id="sec-4-3"><span class="section-number-3">4.3</span> fileAssociations</h3>
407 <div class="outline-text-3" id="text-4-3">
408 <p>
409 Allows to map file name/extension using regular expression pattern
410 matching to corresponding application.
411 </p>
412
413 <p>
414 Example:
415 </p>
416 <div class="org-src-container">
417
418 <pre class="src src-conf">-  command: vlc {file}
419    fileRegex: .*\.mkv$
420 </pre>
421 </div>
422
423 <p>
424 Where:
425 </p>
426 <dl class="org-dl">
427 <dt> command </dt><dd>Command to execute to open given file. Special variable
428 {file} will point to user chosen file using absolute file
429 path.
430 </dd>
431
432 <dt> fileRegex </dt><dd>Regular expression that must match the file.
433 </dd>
434 </dl>
435 </div>
436 </div>
437 <div id="outline-container-sec-4-4" class="outline-3">
438 <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>
439 <div class="outline-text-3" id="text-4-4">
440 <p>
441 Root directory from where to start navigation.
442 </p>
443
444 <p>
445 This parameter is user specific! In my case instantlauncher by default
446 pointed this to my home directory. But it can be any directory user
447 chooses.
448 </p>
449
450 <p>
451 I think good use-case is to create special directory to be used for
452 instantlauncher root. This special root directory can in turn contain
453 symlinks to various places user wants to visit often. Instantlauncher
454 will follow symlinks as if they were directories.
455 </p>
456
457 <pre class="example">
458 navigationRootPath: /home/svjatoslav/
459
460 </pre>
461 </div>
462 </div>
463 </div>
464 </div><div class="col-md-3"><nav id="table-of-contents">
465 <div id="text-table-of-contents" class="bs-docs-sidebar">
466 <ul class="nav">
467 <li><a href="#sec-1">1. General</a>
468 <ul class="nav">
469 <li><a href="#sec-1-1">1.1. Source code</a></li>
470 </ul>
471 </li>
472 <li><a href="#sec-2">2. Purpose</a></li>
473 <li><a href="#sec-3">3. Usage</a></li>
474 <li><a href="#sec-4">4. Configuration</a>
475 <ul class="nav">
476 <li><a href="#sec-4-1">4.1. directoryOpenCommand</a></li>
477 <li><a href="#sec-4-2">4.2. directoryTerminalOpenCommand</a></li>
478 <li><a href="#sec-4-3">4.3. fileAssociations</a></li>
479 <li><a href="#sec-4-4">4.4. navigationRootPath</a></li>
480 </ul>
481 </li>
482 </ul>
483 </div>
484 </nav>
485 </div></div></div>
486 <footer id="postamble" class="">
487 <div><p class="author">Author: Svjatoslav Agejenko</p>
488 <p class="date">Created: 2020-05-01 Fri 23:42</p>
489 <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>
490 </div>
491 </footer>
492 </body>
493 </html>