Compare commits
197 Commits
Author | SHA1 | Date |
---|---|---|
Шашкин Николай | ffee284fbc | |
Шашкин Николай | 0f955fe21f | |
Шашкин Николай | 52affeaee8 | |
Шашкин Николай | 9fe6b9c6a7 | |
Шашкин Николай | e739dd46b8 | |
Шашкин Николай | 1f56ccc8e2 | |
Шашкин Николай | fb7a1ce6f7 | |
Шашкин Николай | 6a0e026c63 | |
Шашкин Николай | 9bc4e1a098 | |
Шашкин Николай | 7a20676ac2 | |
Шашкин Николай | dbe67493c2 | |
Шашкин Николай | de4de65715 | |
Шашкин Николай | 031cc385ac | |
Kolan Sh | 71377a1c6d | |
Kolan Sh | dd61d20960 | |
Kolan Sh | 85615f89a3 | |
Kolan Sh | 2483881bd7 | |
Kolan Sh | f8669f0c66 | |
Kolan Sh | e4a8d2c3ef | |
Kolan Sh | b9008eefb2 | |
Kolan Sh | 66848f4998 | |
Kolan Sh | e6b65d02a8 | |
Kolan Sh | cfa39ab983 | |
Kolan Sh | 6007bcf62f | |
Kolan Sh | d250fe467d | |
Kolan Sh | f145627f93 | |
Kolan Sh | ddc6bb04b4 | |
Kolan Sh | 0417f9f05c | |
Kolan Sh | bc2ab613e6 | |
Kolan Sh | b91f146e47 | |
Kolan Sh | bd0b396eeb | |
Kolan Sh | 91e4049266 | |
Kolan Sh | 3c6bc122a1 | |
Kolan Sh | 91cfb005e0 | |
Kolan Sh | b9af6222f1 | |
Kolan Sh | 6e92c39edf | |
Kolan Sh | 1d514c7bd1 | |
Kolan Sh | 9f46d053ce | |
Kolan Sh | 0a9616200d | |
Kolan Sh | 82e1480b18 | |
Kolan Sh | b461ad5627 | |
Kolan Sh | 4847961a61 | |
Kolan Sh | 46c2db1807 | |
Kolan Sh | 755bb5b060 | |
Kolan Sh | 7566d7aa6f | |
Kolan Sh | a5ddc3da09 | |
Kolan Sh | db4a068577 | |
Kolan Sh | ee006dde18 | |
Kolan Sh | a513bfd8f6 | |
Kolan Sh | 9b3864ce33 | |
Kolan Sh | 8814f4de39 | |
Kolan Sh | 6171c9176c | |
Kolan Sh | effdbcd694 | |
Kolan Sh | 4af3b8822e | |
Kolan Sh | 63f9b60d09 | |
Kolan Sh | e8e0b8844b | |
Kolan Sh | e7c2836cec | |
Kolan Sh | 0dc0d0d634 | |
Kolan Sh | c233c7513a | |
Kolan Sh | 989d90a3ab | |
Kolan Sh | 2f8089b43b | |
Kolan Sh | fb11fbe4c9 | |
Kolan Sh | c65f1029f5 | |
Kolan Sh | 49fe66c32d | |
Kolan Sh | f31756d982 | |
Kolan Sh | 2cb997e0ca | |
Kolan Sh | 5a736a30f9 | |
Kolan Sh | ff184e89c6 | |
Kolan Sh | a5d32e785d | |
Kolan Sh | 260993624f | |
Kolan Sh | f40594c2cc | |
Kolan Sh | 0e7ebaef03 | |
Kolan Sh | 774432d47b | |
Kolan Sh | 635aa1f3b1 | |
Kolan Sh | 4b4fce4494 | |
Kolan Sh | be438bfec3 | |
Kolan Sh | 92acca5575 | |
Kolan Sh | 915daeb626 | |
Kolan Sh | 622e9d7531 | |
Kolan Sh | 162b4490a4 | |
Kolan Sh | be3cd35712 | |
Kolan Sh | b3d46e93bf | |
Kolan Sh | 4abfe55278 | |
Kolan Sh | d4bd05f2d9 | |
Kolan Sh | b8764f4050 | |
Kolan Sh | 9882fa5f89 | |
Kolan Sh | 7b9aa82d33 | |
Kolan Sh | cd6ccd175a | |
Kolan Sh | bbd564c126 | |
Kolan Sh | e6203433ae | |
Kolan Sh | 19c356883c | |
Kolan Sh | a6968146cf | |
Kolan Sh | a8fe971ed4 | |
Kolan Sh | f2db42bed4 | |
Kolan Sh | 1d3f01a1e5 | |
Kolan Sh | 2497f0995a | |
Kolan Sh | 3b14041185 | |
Kolan Sh | 03a830cd52 | |
Kolan Sh | d208dc055b | |
Kolan Sh | d390265394 | |
Kolan Sh | 2766df4be3 | |
Kolan Sh | 00788aecaf | |
Kolan Sh | 868c36140a | |
Kolan Sh | ea9f832f14 | |
Kolan Sh | 8bd9d08ba9 | |
Kolan Sh | 1549eda1ba | |
Kolan Sh | 0b629b5344 | |
Kolan Sh | 2872923c2a | |
Kolan Sh | 8ff3fd6502 | |
Kolan Sh | 7c6674c33c | |
Kolan Sh | 8f494006ac | |
Kolan Sh | 741d1c378d | |
Kolan Sh | a0d6e4479a | |
Kolan Sh | 2bfcead90f | |
Kolan Sh | a7ab079326 | |
Kolan Sh | cfcc27612e | |
Kolan Sh | d980d5a0bd | |
Kolan Sh | 62f9f6ea57 | |
Kolan Sh | 78b7b3e8de | |
Kolan Sh | 81a50e8c1d | |
Kolan Sh | 5cba26b8e1 | |
Kolan Sh | be1e074ddc | |
Kolan Sh | 2620497bb5 | |
Kolan Sh | 20e522bdf5 | |
Kolan Sh | c7b9ca0c56 | |
Kolan Sh | 8c147f5c95 | |
Kolan Sh | 45f2f4fe84 | |
Kolan Sh | bd5fc24a5c | |
Kolan Sh | 12b2ceb9f2 | |
Kolan Sh | 3f408128fd | |
Kolan Sh | e19a772ece | |
Kolan Sh | b3d72e480c | |
Kolan Sh | 2c0b65b6b8 | |
Kolan Sh | 73d71dc8c8 | |
Kolan Sh | 7d7a2cfe93 | |
Kolan Sh | 0a95dacc94 | |
Kolan Sh | 150323a6dd | |
Kolan Sh | 9c632f6c0f | |
Kolan Sh | cc16f5e8a9 | |
Kolan Sh | 47a78885cc | |
Kolan Sh | 0fd6f4b44d | |
Kolan Sh | 2b18421488 | |
Kolan Sh | a57064494c | |
Kolan Sh | 8f8b125903 | |
Kolan Sh | a0a9afd00b | |
Kolan Sh | 51408f76e3 | |
Kolan Sh | 5d74e4c625 | |
Kolan Sh | c611b6d4ab | |
Kolan Sh | 617307229d | |
Kolan Sh | d47499960b | |
Kolan Sh | ff8e17ea6b | |
Kolan Sh | 83cba39ea6 | |
Kolan Sh | e231b5f3a1 | |
Kolan Sh | 7830a3fbae | |
Kolan Sh | be7b3fdd49 | |
Kolan Sh | ab334bb34f | |
Kolan Sh | 4287d70895 | |
Kolan Sh | 8f20345e05 | |
Kolan Sh | 19c3492a6f | |
Kolan Sh | 12186b573b | |
Kolan Sh | 089f43f4c7 | |
Kolan Sh | 22cbc60cbc | |
Kolan Sh | 59a4a156b0 | |
Kolan Sh | 8893d61654 | |
Kolan Sh | 62ca0d2f99 | |
Kolan Sh | fa62459d25 | |
Kolan Sh | c038fe1909 | |
Kolan Sh | d8a56d381e | |
Kolan Sh | 4f1079cb4a | |
Kolan Sh | c03d0cc5a3 | |
Kolan Sh | 5252fc0b13 | |
Kolan Sh | 98ee157bab | |
Kolan Sh | 2b5ff458a3 | |
Kolan Sh | da320771d4 | |
Kolan Sh | 634e5ccc53 | |
Kolan Sh | f5d67b412b | |
Kolan Sh | 72fba07948 | |
Kolan Sh | 07cc143a00 | |
Kolan Sh | 12524a128c | |
Kolan Sh | f5ca74e068 | |
Kolan Sh | 86aeb897d6 | |
Kolan Sh | 4383114911 | |
Kolan Sh | c51d141c4d | |
Kolan Sh | 331eed6fa4 | |
Kolan Sh | f5624e316e | |
Kolan Sh | 8779d80524 | |
Kolan Sh | 037813b7a5 | |
Kolan Sh | 9b1a9c55b6 | |
Kolan Sh | 25dadade47 | |
Kolan Sh | 50bd27e9d3 | |
Kolan Sh | 5c6b062ee1 | |
Kolan Sh | c65839fa98 | |
Kolan Sh | c137bfafb0 | |
Kolan Sh | bc7c651fe5 | |
Kolan Sh | 7358304716 | |
Kolan Sh | 1a65621047 | |
Kolan Sh | ba2c7d83cb |
|
@ -0,0 +1,4 @@
|
||||||
|
#include ".urxvt/Xdefaults"
|
||||||
|
#include ".fonts/Xdefaults"
|
||||||
|
|
||||||
|
! Xcursor.theme: gentoo-silver
|
|
@ -0,0 +1,12 @@
|
||||||
|
-DDEBUG
|
||||||
|
-I/usr/lib64/clang/3.1/include
|
||||||
|
-I/usr/lib64/gcc/x86_64-pc-linux-gnu/4.5.3/include/g++-v4
|
||||||
|
-I/usr/lib64/gcc/x86_64-pc-linux-gnu/4.5.3/include/g++-v4/x86_64-pc-linux-gnu
|
||||||
|
-I/usr/include/linux
|
||||||
|
-I/usr/lib64/gcc/x86_64-pc-linux-gnu/4.5.3/include
|
||||||
|
-I/usr/include/glib-2.0
|
||||||
|
-I/usr/include/glib-2.0/glib
|
||||||
|
-I/usr/lib/glib-2.0/include
|
||||||
|
-I/usr/include/glib-2.0/gio
|
||||||
|
-I/usr/include/glib-2.0/gobject
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
[ui_files]
|
||||||
|
0=/usr/share/lyx/ui/default.ui
|
||||||
|
0\date=@Variant(\0\0\0\x10\0%x\xcd\x3j_\xd8\x1)
|
||||||
|
|
||||||
|
[views]
|
||||||
|
0\pos=@Point(3 30)
|
||||||
|
0\size=@Size(1672 998)
|
||||||
|
0\layout=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x6\0t\0o\0\x63\0\0\0\0\0\xff\xff\xff\xff\0\0\x1[\0\xff\xff\xff\0\0\0\x3\0\0\0\0\0\0\0\0\xfc\x1\0\0\0\x1\xfb\0\0\0\x16\0v\0i\0\x65\0w\0-\0s\0o\0u\0r\0\x63\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xb6\0\xff\xff\xff\0\0\x6\x88\0\0\x3\xa0\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1d\0\0\0\x2\0\0\0\x3\0\0\0\x10\0s\0t\0\x61\0n\0\x64\0\x61\0r\0\x64\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\n\0\x65\0x\0t\0r\0\x61\x1\0\0\x2s\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x16\0v\0i\0\x65\0w\0/\0u\0p\0\x64\0\x61\0t\0\x65\x1\0\0\x4\xfb\0\0\0P\0\0\0\0\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\x1\0\0\0\f\0r\0\x65\0v\0i\0\x65\0w\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0\x2\0\0\0\x1\0\0\0\x6\0v\0\x63\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\n\0t\0\x61\0\x62\0l\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\b\0m\0\x61\0t\0h\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\"\0m\0\x61\0t\0h\0m\0\x61\0\x63\0r\0o\0t\0\x65\0m\0p\0l\0\x61\0t\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x14\0m\0i\0n\0i\0\x62\0u\0\x66\0\x66\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x16\0m\0\x61\0t\0h\0_\0p\0\x61\0n\0\x65\0l\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x12\0\x66\0u\0n\0\x63\0t\0i\0o\0n\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\n\0s\0p\0\x61\0\x63\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x16\0s\0q\0r\0t\0-\0s\0q\0u\0\x61\0r\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\n\0s\0t\0y\0l\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x16\0\x66\0r\0\x61\0\x63\0-\0s\0q\0u\0\x61\0r\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\b\0\x66\0o\0n\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x14\0l\0\x61\0t\0\x65\0x\0_\0\x64\0o\0t\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x14\0l\0\x61\0t\0\x65\0x\0_\0\x64\0\x65\0\x63\0o\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x16\0l\0\x61\0t\0\x65\0x\0_\0\x61\0r\0r\0o\0w\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x12\0l\0\x61\0t\0\x65\0x\0_\0\x62\0o\0p\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x14\0l\0\x61\0t\0\x65\0x\0_\0\x62\0r\0\x65\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x16\0l\0\x61\0t\0\x65\0x\0_\0g\0r\0\x65\0\x65\0k\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x14\0l\0\x61\0t\0\x65\0x\0_\0m\0i\0s\0\x63\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x16\0l\0\x61\0t\0\x65\0x\0_\0v\0\x61\0r\0s\0z\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x1c\0l\0\x61\0t\0\x65\0x\0_\0\x61\0m\0s\0_\0m\0i\0s\0\x63\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0 \0l\0\x61\0t\0\x65\0x\0_\0\x61\0m\0s\0_\0\x61\0r\0r\0o\0w\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x1a\0l\0\x61\0t\0\x65\0x\0_\0\x61\0m\0s\0_\0r\0\x65\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x1c\0l\0\x61\0t\0\x65\0x\0_\0\x61\0m\0s\0_\0n\0r\0\x65\0l\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x1\0\0\0\x1a\0l\0\x61\0t\0\x65\0x\0_\0\x61\0m\0s\0_\0o\0p\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
|
||||||
|
0\icon_size=@Size(14 14)
|
||||||
|
0\extra\visibility=5
|
||||||
|
0\font\visibility=10
|
||||||
|
0\frac-square\visibility=10
|
||||||
|
0\functions\visibility=10
|
||||||
|
0\latex_ams_arrows\visibility=10
|
||||||
|
0\latex_ams_misc\visibility=10
|
||||||
|
0\latex_ams_nrel\visibility=10
|
||||||
|
0\latex_ams_ops\visibility=10
|
||||||
|
0\latex_ams_rel\visibility=10
|
||||||
|
0\latex_arrow\visibility=10
|
||||||
|
0\latex_bop\visibility=10
|
||||||
|
0\latex_brel\visibility=10
|
||||||
|
0\latex_deco\visibility=10
|
||||||
|
0\latex_dots\visibility=10
|
||||||
|
0\latex_greek\visibility=10
|
||||||
|
0\latex_misc\visibility=10
|
||||||
|
0\latex_varsz\visibility=10
|
||||||
|
0\math\visibility=200
|
||||||
|
0\math_panels\visibility=200
|
||||||
|
0\mathmacrotemplate\visibility=1096
|
||||||
|
0\minibuffer\visibility=10
|
||||||
|
0\review\visibility=580
|
||||||
|
0\space\visibility=10
|
||||||
|
0\sqrt-square\visibility=10
|
||||||
|
0\standard\visibility=5
|
||||||
|
0\style\visibility=10
|
||||||
|
0\table\visibility=328
|
||||||
|
0\vcs\visibility=6
|
||||||
|
0\view\update\visibility=5
|
||||||
|
0\aboutlyx\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\x1\x2\0\0\0\xaa\0\0\x2J\0\0\x1\xd6\0\0\x1\x3\0\0\0\xbc\0\0\x2I\0\0\x1\xd5\0\0\0\0\0\0)
|
||||||
|
0\prefs\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\xdd\0\0\0\x17\0\0\x3\xc7\0\0\x1\xf8\0\0\0\xde\0\0\0)\0\0\x3\xc6\0\0\x1\xf7\0\0\0\0\0\0)
|
||||||
|
0\toc\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\xcf\0\0\x1Z\0\0\0\0\0\0\0\0\0\0\0\xcf\0\0\x1Z\0\0\0\0\0\0)
|
||||||
|
0\view-source\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x1\xb5\0\0\0[\0\0\0\0\0\0\0\0\0\0\x1\xb5\0\0\0[\0\0\0\0\0\0)
|
||||||
|
0\view-source\fullsource=false
|
||||||
|
0\view-source\autoupdate=true
|
|
@ -0,0 +1,192 @@
|
||||||
|
|
||||||
|
[geany]
|
||||||
|
default_open_path=/home/kolan
|
||||||
|
cmdline_new_files=true
|
||||||
|
notebook_double_click_hides_widgets=false
|
||||||
|
tab_pos_sidebar=2
|
||||||
|
highlighting_invert_all=false
|
||||||
|
pref_main_suppress_search_dialogs=false
|
||||||
|
pref_main_search_use_current_word=true
|
||||||
|
check_detect_indent=false
|
||||||
|
use_tab_to_indent=true
|
||||||
|
pref_editor_tab_width=8
|
||||||
|
indent_hard_tab_width=8
|
||||||
|
indent_mode=2
|
||||||
|
indent_type=1
|
||||||
|
autocomplete_doc_words=false
|
||||||
|
completion_drops_rest_of_word=false
|
||||||
|
autocompletion_max_entries=30
|
||||||
|
mru_length=10
|
||||||
|
disk_check_timeout=30
|
||||||
|
show_editor_scrollbars=true
|
||||||
|
brace_match_ltgt=false
|
||||||
|
use_gtk_word_boundaries=true
|
||||||
|
complete_snippets_whilst_editing=false
|
||||||
|
show_symbol_list_expanders=true
|
||||||
|
allow_always_save=false
|
||||||
|
use_safe_file_saving=false
|
||||||
|
documents_show_paths=true
|
||||||
|
sidebar_page=2
|
||||||
|
pref_main_load_session=true
|
||||||
|
pref_main_project_session=true
|
||||||
|
pref_main_project_file_in_basedir=true
|
||||||
|
pref_main_save_winpos=true
|
||||||
|
pref_main_confirm_exit=false
|
||||||
|
pref_main_suppress_status_messages=false
|
||||||
|
switch_msgwin_pages=false
|
||||||
|
beep_on_errors=true
|
||||||
|
auto_focus=false
|
||||||
|
sidebar_symbol_visible=true
|
||||||
|
sidebar_openfiles_visible=true
|
||||||
|
editor_font=Liberation Mono 8
|
||||||
|
tagbar_font=Sans 8
|
||||||
|
msgwin_font=Sans 8
|
||||||
|
show_notebook_tabs=true
|
||||||
|
show_tab_cross=true
|
||||||
|
tab_order_ltr=true
|
||||||
|
tab_pos_editor=2
|
||||||
|
tab_pos_msgwin=0
|
||||||
|
show_indent_guide=false
|
||||||
|
show_white_space=false
|
||||||
|
show_line_endings=false
|
||||||
|
show_markers_margin=true
|
||||||
|
show_linenumber_margin=true
|
||||||
|
long_line_type=0
|
||||||
|
long_line_column=72
|
||||||
|
long_line_color=#C2EBC2
|
||||||
|
symbolcompletion_max_height=10
|
||||||
|
symbolcompletion_min_chars=4
|
||||||
|
use_folding=true
|
||||||
|
unfold_all_children=true
|
||||||
|
use_indicators=true
|
||||||
|
line_wrapping=true
|
||||||
|
auto_close_xml_tags=true
|
||||||
|
complete_snippets=true
|
||||||
|
auto_complete_symbols=true
|
||||||
|
pref_editor_disable_dnd=false
|
||||||
|
pref_editor_smart_home_key=true
|
||||||
|
pref_editor_newline_strip=true
|
||||||
|
line_break_column=72
|
||||||
|
auto_continue_multiline=true
|
||||||
|
comment_toggle_mark=~
|
||||||
|
scroll_stop_at_last_line=true
|
||||||
|
autoclose_chars=31
|
||||||
|
pref_editor_default_new_encoding=UTF-8
|
||||||
|
pref_editor_default_open_encoding=WINDOWS-1251
|
||||||
|
default_eol_character=2
|
||||||
|
pref_editor_new_line=true
|
||||||
|
pref_editor_replace_tabs=false
|
||||||
|
pref_editor_trail_space=true
|
||||||
|
pref_toolbar_show=true
|
||||||
|
pref_toolbar_append_to_menu=false
|
||||||
|
pref_toolbar_icon_style=0
|
||||||
|
pref_toolbar_icon_size=0
|
||||||
|
pref_template_developer=Kolan Sh.
|
||||||
|
pref_template_company=InSys Ltd
|
||||||
|
pref_template_mail=mecareful@gmail.com
|
||||||
|
pref_template_initial=SNS
|
||||||
|
pref_template_version=1.0
|
||||||
|
pref_template_year=%Y
|
||||||
|
pref_template_date=%Y-%m-%d
|
||||||
|
pref_template_datetime=%d.%m.%Y %H:%M:%S %Z
|
||||||
|
context_action_cmd=
|
||||||
|
sidebar_visible=true
|
||||||
|
statusbar_visible=true
|
||||||
|
msgwindow_visible=true
|
||||||
|
fullscreen=false
|
||||||
|
scribble_text=
|
||||||
|
scribble_pos=0
|
||||||
|
treeview_position=0
|
||||||
|
msgwindow_position=687
|
||||||
|
geometry=3;30;1672;968;0;
|
||||||
|
custom_date_format=
|
||||||
|
sidebar_pos=0
|
||||||
|
virtualspace=1
|
||||||
|
color_scheme=
|
||||||
|
compiler_tab_autoscroll=true
|
||||||
|
tab_order_beside=false
|
||||||
|
msgwin_status_visible=true
|
||||||
|
msgwin_compiler_visible=true
|
||||||
|
msgwin_messages_visible=true
|
||||||
|
msgwin_scribble_visible=true
|
||||||
|
use_native_windows_dialogs=false
|
||||||
|
long_line_enabled=true
|
||||||
|
pref_toolbar_use_gtk_default_style=false
|
||||||
|
pref_toolbar_use_gtk_default_icon=true
|
||||||
|
gio_unsafe_save_backup=false
|
||||||
|
find_selection_type=0
|
||||||
|
statusbar_template=
|
||||||
|
new_document_after_close=false
|
||||||
|
pref_editor_ensure_convert_line_endings=false
|
||||||
|
|
||||||
|
[search]
|
||||||
|
pref_search_current_file_dir=true
|
||||||
|
find_all_expanded=false
|
||||||
|
replace_all_expanded=true
|
||||||
|
fif_mode=0
|
||||||
|
fif_extra_options=
|
||||||
|
fif_case_sensitive=true
|
||||||
|
fif_match_whole_word=false
|
||||||
|
fif_invert_results=false
|
||||||
|
fif_recursive=false
|
||||||
|
fif_use_extra_options=false
|
||||||
|
position_find_x=90
|
||||||
|
position_find_y=386
|
||||||
|
position_replace_x=800
|
||||||
|
position_replace_y=464
|
||||||
|
position_fif_x=1154
|
||||||
|
position_fif_y=409
|
||||||
|
fif_regexp=false
|
||||||
|
fif_files=
|
||||||
|
fif_use_files=false
|
||||||
|
|
||||||
|
[plugins]
|
||||||
|
load_plugins=true
|
||||||
|
custom_plugin_path=/home/kolan/.geany/plugins
|
||||||
|
active_plugins=/usr/lib64/geany/codenav.so;/usr/lib64/geany/geanyextrasel.so;/usr/lib64/geany/geanylatex.so;/usr/lib64/geany/spellcheck.so;/usr/lib64/geany/treebrowser.so;/usr/lib64/geany/classbuilder.so;/usr/lib64/geany/saveactions.so;/usr/lib64/geany/addons.so;/usr/lib64/geany/splitwindow.so;/usr/lib64/geany/shiftcolumn.so;/usr/lib64/geany/htmlchars.so;/usr/lib64/geany/export.so;
|
||||||
|
|
||||||
|
[tools]
|
||||||
|
make_cmd=make
|
||||||
|
term_cmd=urxvt
|
||||||
|
browser_cmd=firefox
|
||||||
|
grep_cmd=grep
|
||||||
|
|
||||||
|
[printing]
|
||||||
|
print_cmd=
|
||||||
|
use_gtk_printing=true
|
||||||
|
print_line_numbers=true
|
||||||
|
print_page_numbers=true
|
||||||
|
print_page_header=true
|
||||||
|
page_header_basename=false
|
||||||
|
page_header_datefmt=%c
|
||||||
|
|
||||||
|
[VTE]
|
||||||
|
load_vte=true
|
||||||
|
emulation=xterm
|
||||||
|
font=Terminus 10
|
||||||
|
scroll_on_key=true
|
||||||
|
scroll_on_out=true
|
||||||
|
enable_bash_keys=false
|
||||||
|
ignore_menu_bar_accel=false
|
||||||
|
follow_path=true
|
||||||
|
run_in_vte=true
|
||||||
|
skip_run_script=false
|
||||||
|
cursor_blinks=true
|
||||||
|
scrollback_lines=500
|
||||||
|
shell=/bin/bash
|
||||||
|
colour_fore=#FFFFFF
|
||||||
|
colour_back=#000000
|
||||||
|
last_dir=/home/kolan/projects/dataserver
|
||||||
|
send_selection_unsafe=false
|
||||||
|
|
||||||
|
[project]
|
||||||
|
session_file=/home/kolan/projects/dataserver/dataserver.geany
|
||||||
|
project_file_path=/home/kolan/projects
|
||||||
|
|
||||||
|
[files]
|
||||||
|
recent_files=/home/kolan/projects/dataserver/netfuncs.h;/home/kolan/projects/dataserver/netfuncs.c;/home/kolan/projects/dataserver/mpool.h;/home/kolan/projects/dataserver/mpool.c;/home/kolan/projects/dataserver/xerror.c;/home/kolan/projects/dataserver/xerror.h;/home/kolan/projects/dataserver/xmalloc.h;/home/kolan/projects/dataserver/xmalloc.c;/home/kolan/dev/c/malloc_speed_test/pool_list.c;/home/kolan/projects/dataserver/dataserver.c;
|
||||||
|
recent_projects=/home/kolan/projects/dataserver/dataserver.geany;dataserver.geany;/home/kolan/Projects/cpp/sockets/sockets.geany;/home/kolan/Projects/cpp/multithreading/pthread_ex.geany;/home/kolan/Projects/c/tmp2/tmp2.geany;/home/kolan/Projects/c/tmp1/tmp1.geany;/home/kolan/Projects/CPP/hello/hello.geany;/home/kolan/Projects/CPP/multithreading/pthread_ex.geany;/home/kolan/Projects/C/hello/hello.geany;
|
||||||
|
current_page=0
|
||||||
|
FILE_NAME_0=6788;C;0;16;1;1;1;/home/kolan/projects/dataserver/dataserver.c;0
|
||||||
|
FILE_NAME_1=0;C;0;16;1;1;1;/home/kolan/projects/dataserver/dataserver.h;0
|
||||||
|
FILE_NAME_2=0;C;0;16;1;1;1;/home/kolan/projects/dataserver/echo-client.c;0
|
|
@ -0,0 +1,245 @@
|
||||||
|
#Keybindings for Geany
|
||||||
|
#The format looks like "<Control>a" or "<Shift><Alt>F1".
|
||||||
|
#But you can also change the keys in Geany's preferences dialog.
|
||||||
|
|
||||||
|
[Bindings]
|
||||||
|
menu_new=<Control>n
|
||||||
|
menu_open=<Control>o
|
||||||
|
menu_open_selected=<Shift><Control>o
|
||||||
|
menu_save=<Control>s
|
||||||
|
menu_saveas=
|
||||||
|
menu_saveall=<Shift><Control>s
|
||||||
|
menu_print=<Control>p
|
||||||
|
menu_close=<Control>w
|
||||||
|
menu_closeall=<Shift><Control>w
|
||||||
|
menu_reloadfile=<Control>r
|
||||||
|
project_properties=
|
||||||
|
menu_undo=<Control>z
|
||||||
|
menu_redo=<Control>y
|
||||||
|
edit_deleteline=<Control>k
|
||||||
|
edit_duplicateline=<Control>d
|
||||||
|
edit_transposeline=<Control>t
|
||||||
|
edit_scrolltoline=<Shift><Control>l
|
||||||
|
edit_scrolllineup=<Alt>Up
|
||||||
|
edit_scrolllinedown=<Alt>Down
|
||||||
|
edit_completesnippet=Tab
|
||||||
|
edit_suppresssnippetcompletion=
|
||||||
|
move_snippetnextcursor=
|
||||||
|
popup_contextaction=
|
||||||
|
edit_autocomplete=<Control>space
|
||||||
|
edit_calltip=<Shift><Control>space
|
||||||
|
edit_macrolist=<Control>Return
|
||||||
|
edit_deletelinetoend=<Shift><Control>Delete
|
||||||
|
menu_cut=<Control>x
|
||||||
|
menu_copy=<Control>c
|
||||||
|
menu_paste=<Control>v
|
||||||
|
edit_cutline=<Shift><Control>x
|
||||||
|
edit_copyline=<Shift><Control>c
|
||||||
|
menu_selectall=<Control>a
|
||||||
|
edit_selectword=<Shift><Alt>w
|
||||||
|
edit_selectline=<Shift><Alt>l
|
||||||
|
edit_selectparagraph=<Shift><Alt>p
|
||||||
|
edit_togglecase=<Control><Alt>u
|
||||||
|
edit_commentlinetoggle=<Control>e
|
||||||
|
edit_commentline=
|
||||||
|
edit_uncommentline=
|
||||||
|
edit_increaseindent=<Control>i
|
||||||
|
edit_decreaseindent=<Control>u
|
||||||
|
edit_increaseindentbyspace=
|
||||||
|
edit_decreaseindentbyspace=
|
||||||
|
edit_autoindent=
|
||||||
|
edit_sendtocmd1=<Control>1
|
||||||
|
edit_sendtocmd2=<Control>2
|
||||||
|
edit_sendtocmd3=<Control>3
|
||||||
|
edit_sendtovte=
|
||||||
|
format_reflowparagraph=<Control>j
|
||||||
|
menu_insert_date=<Shift><Alt>d
|
||||||
|
edit_insertwhitespace=
|
||||||
|
menu_preferences=<Control><Alt>p
|
||||||
|
menu_find=<Control>f
|
||||||
|
menu_findnext=<Control>g
|
||||||
|
menu_findprevious=<Shift><Control>g
|
||||||
|
menu_findinfiles=<Shift><Control>f
|
||||||
|
menu_replace=<Control>h
|
||||||
|
menu_findnextsel=
|
||||||
|
menu_findprevsel=
|
||||||
|
menu_nextmessage=
|
||||||
|
menu_previousmessage=
|
||||||
|
popup_findusage=
|
||||||
|
popup_finddocumentusage=
|
||||||
|
find_markall=<Shift><Control>m
|
||||||
|
nav_forward=
|
||||||
|
nav_back=
|
||||||
|
menu_gotoline=<Control>l
|
||||||
|
edit_gotolinestart=Home
|
||||||
|
edit_gotolineend=End
|
||||||
|
edit_gotomatchingbrace=<Control>b
|
||||||
|
edit_togglemarker=<Control>m
|
||||||
|
edit_gotonextmarker=<Control>period
|
||||||
|
edit_gotopreviousmarker=<Control>comma
|
||||||
|
edit_prevwordstart=<Control>slash
|
||||||
|
edit_nextwordstart=<Control>backslash
|
||||||
|
popup_gototagdefinition=
|
||||||
|
popup_gototagdeclaration=
|
||||||
|
edit_gotolineendvisual=<Alt>End
|
||||||
|
menu_toggleall=
|
||||||
|
menu_fullscreen=F11
|
||||||
|
menu_messagewindow=
|
||||||
|
toggle_sidebar=
|
||||||
|
menu_zoomin=<Control>plus
|
||||||
|
menu_zoomout=<Control>minus
|
||||||
|
switch_editor=F2
|
||||||
|
switch_scribble=F6
|
||||||
|
switch_vte=F4
|
||||||
|
switch_search_bar=F7
|
||||||
|
switch_sidebar=
|
||||||
|
switch_compiler=
|
||||||
|
switch_tableft=<Control>Page_Up
|
||||||
|
switch_tabright=<Control>Page_Down
|
||||||
|
switch_tablastused=<Control>Tab
|
||||||
|
move_tableft=<Alt>Page_Up
|
||||||
|
move_tabright=<Alt>Page_Down
|
||||||
|
move_tabfirst=
|
||||||
|
move_tablast=
|
||||||
|
menu_replacetabs=
|
||||||
|
menu_replacespaces=
|
||||||
|
menu_togglefold=
|
||||||
|
menu_foldall=
|
||||||
|
menu_unfoldall=
|
||||||
|
reloadtaglist=<Shift><Control>r
|
||||||
|
menu_linewrap=
|
||||||
|
menu_linebreak=
|
||||||
|
build_compile=F8
|
||||||
|
build_link=F9
|
||||||
|
build_make=<Shift>F9
|
||||||
|
build_makeowntarget=<Shift><Control>F9
|
||||||
|
build_makeobject=
|
||||||
|
build_nexterror=
|
||||||
|
build_previouserror=
|
||||||
|
build_run=F5
|
||||||
|
build_run2=
|
||||||
|
build_options=
|
||||||
|
menu_opencolorchooser=
|
||||||
|
menu_help=F1
|
||||||
|
|
||||||
|
file_openlasttab=
|
||||||
|
edit_wordpartcompletion=Tab
|
||||||
|
edit_movelineup=
|
||||||
|
edit_movelinedown=
|
||||||
|
edit_selectwordpartleft=
|
||||||
|
edit_selectwordpartright=
|
||||||
|
menu_pluginpreferences=
|
||||||
|
normal_size=<Control>0
|
||||||
|
switch_messages=
|
||||||
|
switch_message_window=
|
||||||
|
switch_sidebar_doc_list=
|
||||||
|
switch_sidebar_symbol_list=
|
||||||
|
remove_markers=
|
||||||
|
remove_error_indicators=
|
||||||
|
|
||||||
|
[file_browser]
|
||||||
|
focus_file_list=
|
||||||
|
focus_path_entry=
|
||||||
|
|
||||||
|
[split_window]
|
||||||
|
split_horizontal=
|
||||||
|
split_vertical=
|
||||||
|
split_unsplit=
|
||||||
|
|
||||||
|
[html_chars]
|
||||||
|
insert_html_chars=
|
||||||
|
replace_special_characters=
|
||||||
|
htmltoogle_toggle_plugin_status=
|
||||||
|
|
||||||
|
[code_navigation]
|
||||||
|
switch_head_impl=<Shift><Alt>s
|
||||||
|
goto_file=<Shift><Alt>g
|
||||||
|
|
||||||
|
[extra_select]
|
||||||
|
column_mode=
|
||||||
|
goto_line_extend=
|
||||||
|
brace_match_extend=
|
||||||
|
|
||||||
|
[debug]
|
||||||
|
"_Load"=
|
||||||
|
"_Unload"=
|
||||||
|
"_Run"=
|
||||||
|
"_Kill"=
|
||||||
|
"_Pause"=
|
||||||
|
"_Continue"=
|
||||||
|
"_Step"=
|
||||||
|
"Step _Into"=
|
||||||
|
"_Next"=
|
||||||
|
"Ne_xt in"=
|
||||||
|
"Run _To"=
|
||||||
|
"Sta_ck"=
|
||||||
|
"_Break"=
|
||||||
|
"_Watches"=
|
||||||
|
"_Finish"=
|
||||||
|
"_Return"=
|
||||||
|
"En_vironment"=
|
||||||
|
"_Options"=
|
||||||
|
|
||||||
|
[geanylatex]
|
||||||
|
run_latex_wizard=
|
||||||
|
insert_latex_label=
|
||||||
|
insert_latex_ref=
|
||||||
|
insert_new_line=
|
||||||
|
latex_toggle_status=
|
||||||
|
latex_insert_environment=
|
||||||
|
latex_insert_item=
|
||||||
|
latex_replace_chars=
|
||||||
|
format_bold=
|
||||||
|
format_italic=
|
||||||
|
format_typewriter=
|
||||||
|
format_center=
|
||||||
|
format_left=
|
||||||
|
format_right=
|
||||||
|
insert_description_list=
|
||||||
|
insert_itemize_list=
|
||||||
|
insert_enumerate_list=
|
||||||
|
structure_lvl_up=
|
||||||
|
structure_lvl_down=
|
||||||
|
usepackage_dialog=
|
||||||
|
latex_insert_command=
|
||||||
|
|
||||||
|
[geanylipsum]
|
||||||
|
insert_lipsum=
|
||||||
|
|
||||||
|
[sendmail]
|
||||||
|
send_file_as_attachment=
|
||||||
|
|
||||||
|
[geanyvc]
|
||||||
|
vc_show_diff_of_file=
|
||||||
|
vc_show_diff_of_dir=
|
||||||
|
vc_show_diff_of_basedir=
|
||||||
|
vc_commit=
|
||||||
|
vc_status=
|
||||||
|
vc_update=
|
||||||
|
vc_revert_file=
|
||||||
|
vc_revert_dir=
|
||||||
|
vc_revert_basedir=
|
||||||
|
|
||||||
|
[insert_numbers]
|
||||||
|
insert_numbers=
|
||||||
|
|
||||||
|
[spellcheck]
|
||||||
|
spell_check=
|
||||||
|
spell_toggle_typing=
|
||||||
|
|
||||||
|
[prettyprinter]
|
||||||
|
run_pretty_printer_xml=
|
||||||
|
|
||||||
|
[doc_chars]
|
||||||
|
Документация на слово под курсором=
|
||||||
|
Document interactive=
|
||||||
|
|
||||||
|
[addons]
|
||||||
|
focus_bookmark_list=
|
||||||
|
focus_tasks=
|
||||||
|
update_tasks=
|
||||||
|
xml_tagging=
|
||||||
|
|
||||||
|
[shiftcolumn]
|
||||||
|
shift_left=<Control>9
|
||||||
|
shift_right=<Control>0
|
|
@ -0,0 +1,105 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
|
||||||
|
# The name which appears in the menu:
|
||||||
|
Name=Awesome BG 1
|
||||||
|
#Name[cs]=Šablona
|
||||||
|
#Name[fr]=Modèle
|
||||||
|
#Name[de]=Vorlage
|
||||||
|
|
||||||
|
# Replace "command" with the actual command or script:
|
||||||
|
Exec=rm -f ~/.config/awesome/wallpaper1.slink ; ln -sf "%f" ~/.config/awesome/wallpaper1.slink ; killall -s SIGHUP awesome
|
||||||
|
|
||||||
|
# Where <param> may be:
|
||||||
|
# omitted If no parameter is given the command will be executed in the
|
||||||
|
# current folder. If a parameter is given but the current folder
|
||||||
|
# does not contain any files, the command will not be run.
|
||||||
|
#
|
||||||
|
# %f A single file name, even if multiple files are selected. The
|
||||||
|
# system reading the desktop entry should recognize that the program in
|
||||||
|
# question cannot handle multiple file arguments, and it should should
|
||||||
|
# probably spawn and execute multiple copies of a program for each
|
||||||
|
# selected file if the program is not able to handle additional file
|
||||||
|
# arguments. If files are not on the local file system (i.e. are on HTTP
|
||||||
|
# or FTP locations), the files will be copied to the local file system
|
||||||
|
# and %f will be expanded to point at the temporary file. Used for
|
||||||
|
# programs that do not understand the URL syntax.
|
||||||
|
#
|
||||||
|
# %F A list of files. Use for apps that can open several local files
|
||||||
|
# at once. Each file is passed as a separate argument to the executable
|
||||||
|
# program.
|
||||||
|
#
|
||||||
|
# %u A single URL. Local files may either be passed as file: URLs or
|
||||||
|
# as file path.
|
||||||
|
#
|
||||||
|
# %U A list of URLs. Each URL is passed as a separate argument to
|
||||||
|
# the executable program. Local files may either be passed as file: URLs
|
||||||
|
# or as file path.
|
||||||
|
#
|
||||||
|
# %% Percent sign. Use anywhere you want '%' to appear in your command.
|
||||||
|
|
||||||
|
# Change the following line to point to an icon of your choosing
|
||||||
|
Icon=gtk-file
|
||||||
|
|
||||||
|
# Use the following to only show this menu entry if the command is installed
|
||||||
|
#TryExec=command
|
||||||
|
|
||||||
|
# Desktop files that are usable only in Geeqie should be marked like this:
|
||||||
|
Categories=X-Geeqie;
|
||||||
|
OnlyShowIn=X-Geeqie;
|
||||||
|
|
||||||
|
# Uncomment the following line to include in a Geeqie menu
|
||||||
|
# other than in the default path of PluginsMenu
|
||||||
|
#X-Geeqie-Menu-Path=<FileMenuPath>
|
||||||
|
|
||||||
|
# e.g.
|
||||||
|
#X-Geeqie-Menu-Path=SelectMenu/SelectSection
|
||||||
|
|
||||||
|
# Valid sections are:
|
||||||
|
# FileMenu
|
||||||
|
# FileMenu/OpenSection
|
||||||
|
# FileMenu/SearchSection
|
||||||
|
# FileMenu/PrintSection
|
||||||
|
# FileMenu/FileOpsSection
|
||||||
|
# FileMenu/QuitSection
|
||||||
|
# GoMenu
|
||||||
|
# SelectMenu
|
||||||
|
# SelectMenu/SelectSection
|
||||||
|
# SelectMenu/ClipboardSection
|
||||||
|
# SelectMenu/MarksSection
|
||||||
|
# EditMenu
|
||||||
|
# EditMenu/EditSection
|
||||||
|
# EditMenu/OrientationMenu
|
||||||
|
# EditMenu/RatingMenu
|
||||||
|
# EditMenu/PropertiesSection
|
||||||
|
# EditMenu/PreferencesSection
|
||||||
|
# PluginsMenu
|
||||||
|
# ViewMenu
|
||||||
|
# ViewMenu/WindowSection
|
||||||
|
# ViewMenu/FileDirMenu
|
||||||
|
# ViewMenu/FileDirMenu/FolderSection
|
||||||
|
# ViewMenu/FileDirMenu/ListSection
|
||||||
|
# ViewMenu/DirSection
|
||||||
|
# ViewMenu/ZoomMenu
|
||||||
|
# ViewMenu/ZoomMenu/ConnectZoomMenu
|
||||||
|
# ViewMenu/SplitMenu
|
||||||
|
# ViewMenu/StereoMenu
|
||||||
|
# ViewMenu/ColorMenu
|
||||||
|
# ViewMenu/OverlayMenu
|
||||||
|
# ViewMenu/ViewSection
|
||||||
|
# ViewMenu/ToolsSection
|
||||||
|
# ViewMenu/SlideShowSection
|
||||||
|
# WindowsMenu
|
||||||
|
# WindowsMenu/NewWindow
|
||||||
|
# HelpMenu
|
||||||
|
# HelpMenu/HelpSection
|
||||||
|
|
||||||
|
# This is a filter - see symlink.desktop and geeqie-symlink for an example
|
||||||
|
# of how to use this feature, or the Plugins section of the Help file.
|
||||||
|
#X-Geeqie-Filter=true
|
||||||
|
|
||||||
|
# It can be made verbose
|
||||||
|
#X-Geeqie-Verbose=true
|
||||||
|
|
||||||
|
# For other keys such as MimeType see https://developer.gnome.org/desktop-entry-spec/
|
|
@ -0,0 +1,105 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
|
||||||
|
# The name which appears in the menu:
|
||||||
|
Name=Awesome BG 2
|
||||||
|
#Name[cs]=Šablona
|
||||||
|
#Name[fr]=Modèle
|
||||||
|
#Name[de]=Vorlage
|
||||||
|
|
||||||
|
# Replace "command" with the actual command or script:
|
||||||
|
Exec=rm -f ~/.config/awesome/wallpaper2.slink ; ln -sf "%f" ~/.config/awesome/wallpaper2.slink ; killall -s SIGHUP awesome
|
||||||
|
|
||||||
|
# Where <param> may be:
|
||||||
|
# omitted If no parameter is given the command will be executed in the
|
||||||
|
# current folder. If a parameter is given but the current folder
|
||||||
|
# does not contain any files, the command will not be run.
|
||||||
|
#
|
||||||
|
# %f A single file name, even if multiple files are selected. The
|
||||||
|
# system reading the desktop entry should recognize that the program in
|
||||||
|
# question cannot handle multiple file arguments, and it should should
|
||||||
|
# probably spawn and execute multiple copies of a program for each
|
||||||
|
# selected file if the program is not able to handle additional file
|
||||||
|
# arguments. If files are not on the local file system (i.e. are on HTTP
|
||||||
|
# or FTP locations), the files will be copied to the local file system
|
||||||
|
# and %f will be expanded to point at the temporary file. Used for
|
||||||
|
# programs that do not understand the URL syntax.
|
||||||
|
#
|
||||||
|
# %F A list of files. Use for apps that can open several local files
|
||||||
|
# at once. Each file is passed as a separate argument to the executable
|
||||||
|
# program.
|
||||||
|
#
|
||||||
|
# %u A single URL. Local files may either be passed as file: URLs or
|
||||||
|
# as file path.
|
||||||
|
#
|
||||||
|
# %U A list of URLs. Each URL is passed as a separate argument to
|
||||||
|
# the executable program. Local files may either be passed as file: URLs
|
||||||
|
# or as file path.
|
||||||
|
#
|
||||||
|
# %% Percent sign. Use anywhere you want '%' to appear in your command.
|
||||||
|
|
||||||
|
# Change the following line to point to an icon of your choosing
|
||||||
|
Icon=gtk-file
|
||||||
|
|
||||||
|
# Use the following to only show this menu entry if the command is installed
|
||||||
|
#TryExec=command
|
||||||
|
|
||||||
|
# Desktop files that are usable only in Geeqie should be marked like this:
|
||||||
|
Categories=X-Geeqie;
|
||||||
|
OnlyShowIn=X-Geeqie;
|
||||||
|
|
||||||
|
# Uncomment the following line to include in a Geeqie menu
|
||||||
|
# other than in the default path of PluginsMenu
|
||||||
|
#X-Geeqie-Menu-Path=<FileMenuPath>
|
||||||
|
|
||||||
|
# e.g.
|
||||||
|
#X-Geeqie-Menu-Path=SelectMenu/SelectSection
|
||||||
|
|
||||||
|
# Valid sections are:
|
||||||
|
# FileMenu
|
||||||
|
# FileMenu/OpenSection
|
||||||
|
# FileMenu/SearchSection
|
||||||
|
# FileMenu/PrintSection
|
||||||
|
# FileMenu/FileOpsSection
|
||||||
|
# FileMenu/QuitSection
|
||||||
|
# GoMenu
|
||||||
|
# SelectMenu
|
||||||
|
# SelectMenu/SelectSection
|
||||||
|
# SelectMenu/ClipboardSection
|
||||||
|
# SelectMenu/MarksSection
|
||||||
|
# EditMenu
|
||||||
|
# EditMenu/EditSection
|
||||||
|
# EditMenu/OrientationMenu
|
||||||
|
# EditMenu/RatingMenu
|
||||||
|
# EditMenu/PropertiesSection
|
||||||
|
# EditMenu/PreferencesSection
|
||||||
|
# PluginsMenu
|
||||||
|
# ViewMenu
|
||||||
|
# ViewMenu/WindowSection
|
||||||
|
# ViewMenu/FileDirMenu
|
||||||
|
# ViewMenu/FileDirMenu/FolderSection
|
||||||
|
# ViewMenu/FileDirMenu/ListSection
|
||||||
|
# ViewMenu/DirSection
|
||||||
|
# ViewMenu/ZoomMenu
|
||||||
|
# ViewMenu/ZoomMenu/ConnectZoomMenu
|
||||||
|
# ViewMenu/SplitMenu
|
||||||
|
# ViewMenu/StereoMenu
|
||||||
|
# ViewMenu/ColorMenu
|
||||||
|
# ViewMenu/OverlayMenu
|
||||||
|
# ViewMenu/ViewSection
|
||||||
|
# ViewMenu/ToolsSection
|
||||||
|
# ViewMenu/SlideShowSection
|
||||||
|
# WindowsMenu
|
||||||
|
# WindowsMenu/NewWindow
|
||||||
|
# HelpMenu
|
||||||
|
# HelpMenu/HelpSection
|
||||||
|
|
||||||
|
# This is a filter - see symlink.desktop and geeqie-symlink for an example
|
||||||
|
# of how to use this feature, or the Plugins section of the Help file.
|
||||||
|
#X-Geeqie-Filter=true
|
||||||
|
|
||||||
|
# It can be made verbose
|
||||||
|
#X-Geeqie-Verbose=true
|
||||||
|
|
||||||
|
# For other keys such as MimeType see https://developer.gnome.org/desktop-entry-spec/
|
|
@ -0,0 +1,105 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
|
||||||
|
# The name which appears in the menu:
|
||||||
|
Name=Awesome BG 3
|
||||||
|
#Name[cs]=Šablona
|
||||||
|
#Name[fr]=Modèle
|
||||||
|
#Name[de]=Vorlage
|
||||||
|
|
||||||
|
# Replace "command" with the actual command or script:
|
||||||
|
Exec=rm -f ~/.config/awesome/wallpaper3.slink ; ln -sf "%f" ~/.config/awesome/wallpaper3.slink ; killall -s SIGHUP awesome
|
||||||
|
|
||||||
|
# Where <param> may be:
|
||||||
|
# omitted If no parameter is given the command will be executed in the
|
||||||
|
# current folder. If a parameter is given but the current folder
|
||||||
|
# does not contain any files, the command will not be run.
|
||||||
|
#
|
||||||
|
# %f A single file name, even if multiple files are selected. The
|
||||||
|
# system reading the desktop entry should recognize that the program in
|
||||||
|
# question cannot handle multiple file arguments, and it should should
|
||||||
|
# probably spawn and execute multiple copies of a program for each
|
||||||
|
# selected file if the program is not able to handle additional file
|
||||||
|
# arguments. If files are not on the local file system (i.e. are on HTTP
|
||||||
|
# or FTP locations), the files will be copied to the local file system
|
||||||
|
# and %f will be expanded to point at the temporary file. Used for
|
||||||
|
# programs that do not understand the URL syntax.
|
||||||
|
#
|
||||||
|
# %F A list of files. Use for apps that can open several local files
|
||||||
|
# at once. Each file is passed as a separate argument to the executable
|
||||||
|
# program.
|
||||||
|
#
|
||||||
|
# %u A single URL. Local files may either be passed as file: URLs or
|
||||||
|
# as file path.
|
||||||
|
#
|
||||||
|
# %U A list of URLs. Each URL is passed as a separate argument to
|
||||||
|
# the executable program. Local files may either be passed as file: URLs
|
||||||
|
# or as file path.
|
||||||
|
#
|
||||||
|
# %% Percent sign. Use anywhere you want '%' to appear in your command.
|
||||||
|
|
||||||
|
# Change the following line to point to an icon of your choosing
|
||||||
|
Icon=gtk-file
|
||||||
|
|
||||||
|
# Use the following to only show this menu entry if the command is installed
|
||||||
|
#TryExec=command
|
||||||
|
|
||||||
|
# Desktop files that are usable only in Geeqie should be marked like this:
|
||||||
|
Categories=X-Geeqie;
|
||||||
|
OnlyShowIn=X-Geeqie;
|
||||||
|
|
||||||
|
# Uncomment the following line to include in a Geeqie menu
|
||||||
|
# other than in the default path of PluginsMenu
|
||||||
|
#X-Geeqie-Menu-Path=<FileMenuPath>
|
||||||
|
|
||||||
|
# e.g.
|
||||||
|
#X-Geeqie-Menu-Path=SelectMenu/SelectSection
|
||||||
|
|
||||||
|
# Valid sections are:
|
||||||
|
# FileMenu
|
||||||
|
# FileMenu/OpenSection
|
||||||
|
# FileMenu/SearchSection
|
||||||
|
# FileMenu/PrintSection
|
||||||
|
# FileMenu/FileOpsSection
|
||||||
|
# FileMenu/QuitSection
|
||||||
|
# GoMenu
|
||||||
|
# SelectMenu
|
||||||
|
# SelectMenu/SelectSection
|
||||||
|
# SelectMenu/ClipboardSection
|
||||||
|
# SelectMenu/MarksSection
|
||||||
|
# EditMenu
|
||||||
|
# EditMenu/EditSection
|
||||||
|
# EditMenu/OrientationMenu
|
||||||
|
# EditMenu/RatingMenu
|
||||||
|
# EditMenu/PropertiesSection
|
||||||
|
# EditMenu/PreferencesSection
|
||||||
|
# PluginsMenu
|
||||||
|
# ViewMenu
|
||||||
|
# ViewMenu/WindowSection
|
||||||
|
# ViewMenu/FileDirMenu
|
||||||
|
# ViewMenu/FileDirMenu/FolderSection
|
||||||
|
# ViewMenu/FileDirMenu/ListSection
|
||||||
|
# ViewMenu/DirSection
|
||||||
|
# ViewMenu/ZoomMenu
|
||||||
|
# ViewMenu/ZoomMenu/ConnectZoomMenu
|
||||||
|
# ViewMenu/SplitMenu
|
||||||
|
# ViewMenu/StereoMenu
|
||||||
|
# ViewMenu/ColorMenu
|
||||||
|
# ViewMenu/OverlayMenu
|
||||||
|
# ViewMenu/ViewSection
|
||||||
|
# ViewMenu/ToolsSection
|
||||||
|
# ViewMenu/SlideShowSection
|
||||||
|
# WindowsMenu
|
||||||
|
# WindowsMenu/NewWindow
|
||||||
|
# HelpMenu
|
||||||
|
# HelpMenu/HelpSection
|
||||||
|
|
||||||
|
# This is a filter - see symlink.desktop and geeqie-symlink for an example
|
||||||
|
# of how to use this feature, or the Plugins section of the Help file.
|
||||||
|
#X-Geeqie-Filter=true
|
||||||
|
|
||||||
|
# It can be made verbose
|
||||||
|
#X-Geeqie-Verbose=true
|
||||||
|
|
||||||
|
# For other keys such as MimeType see https://developer.gnome.org/desktop-entry-spec/
|
|
@ -0,0 +1,105 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
|
||||||
|
# The name which appears in the menu:
|
||||||
|
Name=Awesome BG 4
|
||||||
|
#Name[cs]=Šablona
|
||||||
|
#Name[fr]=Modèle
|
||||||
|
#Name[de]=Vorlage
|
||||||
|
|
||||||
|
# Replace "command" with the actual command or script:
|
||||||
|
Exec=rm -f ~/.config/awesome/wallpaper4.slink ; ln -sf "%f" ~/.config/awesome/wallpaper4.slink ; killall -s SIGHUP awesome
|
||||||
|
|
||||||
|
# Where <param> may be:
|
||||||
|
# omitted If no parameter is given the command will be executed in the
|
||||||
|
# current folder. If a parameter is given but the current folder
|
||||||
|
# does not contain any files, the command will not be run.
|
||||||
|
#
|
||||||
|
# %f A single file name, even if multiple files are selected. The
|
||||||
|
# system reading the desktop entry should recognize that the program in
|
||||||
|
# question cannot handle multiple file arguments, and it should should
|
||||||
|
# probably spawn and execute multiple copies of a program for each
|
||||||
|
# selected file if the program is not able to handle additional file
|
||||||
|
# arguments. If files are not on the local file system (i.e. are on HTTP
|
||||||
|
# or FTP locations), the files will be copied to the local file system
|
||||||
|
# and %f will be expanded to point at the temporary file. Used for
|
||||||
|
# programs that do not understand the URL syntax.
|
||||||
|
#
|
||||||
|
# %F A list of files. Use for apps that can open several local files
|
||||||
|
# at once. Each file is passed as a separate argument to the executable
|
||||||
|
# program.
|
||||||
|
#
|
||||||
|
# %u A single URL. Local files may either be passed as file: URLs or
|
||||||
|
# as file path.
|
||||||
|
#
|
||||||
|
# %U A list of URLs. Each URL is passed as a separate argument to
|
||||||
|
# the executable program. Local files may either be passed as file: URLs
|
||||||
|
# or as file path.
|
||||||
|
#
|
||||||
|
# %% Percent sign. Use anywhere you want '%' to appear in your command.
|
||||||
|
|
||||||
|
# Change the following line to point to an icon of your choosing
|
||||||
|
Icon=gtk-file
|
||||||
|
|
||||||
|
# Use the following to only show this menu entry if the command is installed
|
||||||
|
#TryExec=command
|
||||||
|
|
||||||
|
# Desktop files that are usable only in Geeqie should be marked like this:
|
||||||
|
Categories=X-Geeqie;
|
||||||
|
OnlyShowIn=X-Geeqie;
|
||||||
|
|
||||||
|
# Uncomment the following line to include in a Geeqie menu
|
||||||
|
# other than in the default path of PluginsMenu
|
||||||
|
#X-Geeqie-Menu-Path=<FileMenuPath>
|
||||||
|
|
||||||
|
# e.g.
|
||||||
|
#X-Geeqie-Menu-Path=SelectMenu/SelectSection
|
||||||
|
|
||||||
|
# Valid sections are:
|
||||||
|
# FileMenu
|
||||||
|
# FileMenu/OpenSection
|
||||||
|
# FileMenu/SearchSection
|
||||||
|
# FileMenu/PrintSection
|
||||||
|
# FileMenu/FileOpsSection
|
||||||
|
# FileMenu/QuitSection
|
||||||
|
# GoMenu
|
||||||
|
# SelectMenu
|
||||||
|
# SelectMenu/SelectSection
|
||||||
|
# SelectMenu/ClipboardSection
|
||||||
|
# SelectMenu/MarksSection
|
||||||
|
# EditMenu
|
||||||
|
# EditMenu/EditSection
|
||||||
|
# EditMenu/OrientationMenu
|
||||||
|
# EditMenu/RatingMenu
|
||||||
|
# EditMenu/PropertiesSection
|
||||||
|
# EditMenu/PreferencesSection
|
||||||
|
# PluginsMenu
|
||||||
|
# ViewMenu
|
||||||
|
# ViewMenu/WindowSection
|
||||||
|
# ViewMenu/FileDirMenu
|
||||||
|
# ViewMenu/FileDirMenu/FolderSection
|
||||||
|
# ViewMenu/FileDirMenu/ListSection
|
||||||
|
# ViewMenu/DirSection
|
||||||
|
# ViewMenu/ZoomMenu
|
||||||
|
# ViewMenu/ZoomMenu/ConnectZoomMenu
|
||||||
|
# ViewMenu/SplitMenu
|
||||||
|
# ViewMenu/StereoMenu
|
||||||
|
# ViewMenu/ColorMenu
|
||||||
|
# ViewMenu/OverlayMenu
|
||||||
|
# ViewMenu/ViewSection
|
||||||
|
# ViewMenu/ToolsSection
|
||||||
|
# ViewMenu/SlideShowSection
|
||||||
|
# WindowsMenu
|
||||||
|
# WindowsMenu/NewWindow
|
||||||
|
# HelpMenu
|
||||||
|
# HelpMenu/HelpSection
|
||||||
|
|
||||||
|
# This is a filter - see symlink.desktop and geeqie-symlink for an example
|
||||||
|
# of how to use this feature, or the Plugins section of the Help file.
|
||||||
|
#X-Geeqie-Filter=true
|
||||||
|
|
||||||
|
# It can be made verbose
|
||||||
|
#X-Geeqie-Verbose=true
|
||||||
|
|
||||||
|
# For other keys such as MimeType see https://developer.gnome.org/desktop-entry-spec/
|
|
@ -0,0 +1,105 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
|
||||||
|
# The name which appears in the menu:
|
||||||
|
Name=Awesome BG
|
||||||
|
#Name[cs]=Šablona
|
||||||
|
#Name[fr]=Modèle
|
||||||
|
#Name[de]=Vorlage
|
||||||
|
|
||||||
|
# Replace "command" with the actual command or script:
|
||||||
|
Exec=rm -f ~/.config/awesome/wallpaper.slink ; ln -sf "%f" ~/.config/awesome/wallpaper.slink ; ~/.config/awesome/set_wall.sh ~/.config/awesome/wallpaper.slink
|
||||||
|
|
||||||
|
# Where <param> may be:
|
||||||
|
# omitted If no parameter is given the command will be executed in the
|
||||||
|
# current folder. If a parameter is given but the current folder
|
||||||
|
# does not contain any files, the command will not be run.
|
||||||
|
#
|
||||||
|
# %f A single file name, even if multiple files are selected. The
|
||||||
|
# system reading the desktop entry should recognize that the program in
|
||||||
|
# question cannot handle multiple file arguments, and it should should
|
||||||
|
# probably spawn and execute multiple copies of a program for each
|
||||||
|
# selected file if the program is not able to handle additional file
|
||||||
|
# arguments. If files are not on the local file system (i.e. are on HTTP
|
||||||
|
# or FTP locations), the files will be copied to the local file system
|
||||||
|
# and %f will be expanded to point at the temporary file. Used for
|
||||||
|
# programs that do not understand the URL syntax.
|
||||||
|
#
|
||||||
|
# %F A list of files. Use for apps that can open several local files
|
||||||
|
# at once. Each file is passed as a separate argument to the executable
|
||||||
|
# program.
|
||||||
|
#
|
||||||
|
# %u A single URL. Local files may either be passed as file: URLs or
|
||||||
|
# as file path.
|
||||||
|
#
|
||||||
|
# %U A list of URLs. Each URL is passed as a separate argument to
|
||||||
|
# the executable program. Local files may either be passed as file: URLs
|
||||||
|
# or as file path.
|
||||||
|
#
|
||||||
|
# %% Percent sign. Use anywhere you want '%' to appear in your command.
|
||||||
|
|
||||||
|
# Change the following line to point to an icon of your choosing
|
||||||
|
Icon=gtk-file
|
||||||
|
|
||||||
|
# Use the following to only show this menu entry if the command is installed
|
||||||
|
#TryExec=command
|
||||||
|
|
||||||
|
# Desktop files that are usable only in Geeqie should be marked like this:
|
||||||
|
Categories=X-Geeqie;
|
||||||
|
OnlyShowIn=X-Geeqie;
|
||||||
|
|
||||||
|
# Uncomment the following line to include in a Geeqie menu
|
||||||
|
# other than in the default path of PluginsMenu
|
||||||
|
#X-Geeqie-Menu-Path=<FileMenuPath>
|
||||||
|
|
||||||
|
# e.g.
|
||||||
|
#X-Geeqie-Menu-Path=SelectMenu/SelectSection
|
||||||
|
|
||||||
|
# Valid sections are:
|
||||||
|
# FileMenu
|
||||||
|
# FileMenu/OpenSection
|
||||||
|
# FileMenu/SearchSection
|
||||||
|
# FileMenu/PrintSection
|
||||||
|
# FileMenu/FileOpsSection
|
||||||
|
# FileMenu/QuitSection
|
||||||
|
# GoMenu
|
||||||
|
# SelectMenu
|
||||||
|
# SelectMenu/SelectSection
|
||||||
|
# SelectMenu/ClipboardSection
|
||||||
|
# SelectMenu/MarksSection
|
||||||
|
# EditMenu
|
||||||
|
# EditMenu/EditSection
|
||||||
|
# EditMenu/OrientationMenu
|
||||||
|
# EditMenu/RatingMenu
|
||||||
|
# EditMenu/PropertiesSection
|
||||||
|
# EditMenu/PreferencesSection
|
||||||
|
# PluginsMenu
|
||||||
|
# ViewMenu
|
||||||
|
# ViewMenu/WindowSection
|
||||||
|
# ViewMenu/FileDirMenu
|
||||||
|
# ViewMenu/FileDirMenu/FolderSection
|
||||||
|
# ViewMenu/FileDirMenu/ListSection
|
||||||
|
# ViewMenu/DirSection
|
||||||
|
# ViewMenu/ZoomMenu
|
||||||
|
# ViewMenu/ZoomMenu/ConnectZoomMenu
|
||||||
|
# ViewMenu/SplitMenu
|
||||||
|
# ViewMenu/StereoMenu
|
||||||
|
# ViewMenu/ColorMenu
|
||||||
|
# ViewMenu/OverlayMenu
|
||||||
|
# ViewMenu/ViewSection
|
||||||
|
# ViewMenu/ToolsSection
|
||||||
|
# ViewMenu/SlideShowSection
|
||||||
|
# WindowsMenu
|
||||||
|
# WindowsMenu/NewWindow
|
||||||
|
# HelpMenu
|
||||||
|
# HelpMenu/HelpSection
|
||||||
|
|
||||||
|
# This is a filter - see symlink.desktop and geeqie-symlink for an example
|
||||||
|
# of how to use this feature, or the Plugins section of the Help file.
|
||||||
|
#X-Geeqie-Filter=true
|
||||||
|
|
||||||
|
# It can be made verbose
|
||||||
|
#X-Geeqie-Verbose=true
|
||||||
|
|
||||||
|
# For other keys such as MimeType see https://developer.gnome.org/desktop-entry-spec/
|
|
@ -0,0 +1,12 @@
|
||||||
|
.window-frame {
|
||||||
|
box-shadow: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.scrollbar.vertical slider,
|
||||||
|
scrollbar.vertical slider {
|
||||||
|
min-width: 12px;
|
||||||
|
}
|
||||||
|
.scrollbar.horizontal slider,
|
||||||
|
scrollbar.horizontal slider {
|
||||||
|
min-height: 12px;
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
[Settings]
|
||||||
|
#gtk-theme-name = Zukitwo
|
||||||
|
|
||||||
|
gtk-font-name=Liberation Sans 12
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||||
|
|
||||||
|
gtk-enable-animations = 0
|
||||||
|
|
||||||
|
gtk-menu-images=0
|
||||||
|
gtk-button-images=0
|
||||||
|
|
||||||
|
#gtk-icon-theme-name= oxygen
|
||||||
|
#gtk-fallback-icon-theme=oxygen
|
||||||
|
|
||||||
|
#gtk-cursor-theme-name = gentoo-silver
|
||||||
|
gtk-cursor-theme-size = 24
|
||||||
|
|
||||||
|
#gtk-xft-antialias = 1
|
||||||
|
#gtk-xft-dpi = 90
|
||||||
|
#gtk-xft-hinting = 1
|
||||||
|
#gtk-xft-hintstyle = hintslight
|
||||||
|
#gtk-xft-rgba = rgb
|
|
@ -101,13 +101,16 @@ filepos_max_saved_entries=1024
|
||||||
preallocate_space=false
|
preallocate_space=false
|
||||||
editor_group_undo=false
|
editor_group_undo=false
|
||||||
|
|
||||||
editor_drop_selection_on_copy=true
|
|
||||||
editor_cursor_after_inserted_block=false
|
editor_cursor_after_inserted_block=false
|
||||||
editor_state_full_filename=false
|
|
||||||
editor_ask_filename_before_edit=false
|
editor_ask_filename_before_edit=false
|
||||||
editor_filesize_threshold=64M
|
editor_filesize_threshold=64M
|
||||||
|
|
||||||
|
editor_drop_selection_on_copy=true
|
||||||
editor_stop_format_chars=-+*\\,.;:&>
|
editor_stop_format_chars=-+*\\,.;:&>
|
||||||
|
|
||||||
|
editor_state_full_filename=false
|
||||||
|
|
||||||
safe_overwrite=false
|
safe_overwrite=false
|
||||||
|
|
||||||
shadows=true
|
shadows=true
|
||||||
|
@ -193,6 +196,9 @@ select_flags=6
|
||||||
|
|
||||||
panel_scroll_center=false
|
panel_scroll_center=false
|
||||||
|
|
||||||
|
[HotlistConfig]
|
||||||
|
expanded_view_of_groups=0
|
||||||
|
|
||||||
[Panelize]
|
[Panelize]
|
||||||
Найти корректуры, отвергнутые командой patch=find . -name \\*.rej -print
|
Найти корректуры, отвергнутые командой patch=find . -name \\*.rej -print
|
||||||
Найти оригиналы (*.orig) после команды patch=find . -name \\*.orig -print
|
Найти оригиналы (*.orig) после команды patch=find . -name \\*.orig -print
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Write your default config options here!
|
||||||
|
[default]
|
||||||
|
stop-screensaver="yes"
|
||||||
|
#heartbeat-cmd="xscreensaver-command -deactivate &"
|
||||||
|
|
||||||
|
save-position-on-quit=yes
|
||||||
|
#subcp=enca:ru:utf8
|
||||||
|
#hwdec=vaapi
|
||||||
|
#hwdec=vdpau
|
||||||
|
#fullscreen=yes
|
||||||
|
vo=gpu
|
||||||
|
|
||||||
|
#osd-status-msg=${playback-time/full} / ${duration} (${percent-pos}%)\nframe: ${estimated-frame-number} / ${estimated-frame-count}
|
|
@ -0,0 +1,4 @@
|
||||||
|
Esc quit
|
||||||
|
Enter quit
|
||||||
|
WHEEL_UP seek 1
|
||||||
|
WHEEL_DOWN seek -1
|
|
@ -0,0 +1,97 @@
|
||||||
|
###
|
||||||
|
# [TypeNameOfPlugin]
|
||||||
|
# Disabled: Set to true to avoid loading the plugin. By default all
|
||||||
|
# plugins are loaded.
|
||||||
|
# Priority: Priority of the plugin if more plugins support the same
|
||||||
|
# uri-scheme / mime-type combination.
|
||||||
|
# Locations: ;-separated path list the plugin will be used in. If the
|
||||||
|
# source file is not a child of one of the locations, the
|
||||||
|
# plugin won't be used and another plugin with a lower
|
||||||
|
# priority will be tried.
|
||||||
|
# Absolute paths, environement variables, ~/ and ~username/
|
||||||
|
# are allowed. Leave empty to allow all locations.
|
||||||
|
# MaxFileSize: Maximum size of the source file the plugin will still
|
||||||
|
# try to generate a plugin for. The size is in bytes,
|
||||||
|
# 0 disabled the check.
|
||||||
|
#
|
||||||
|
# For more information see http://docs.xfce.org/xfce/thunar/tumbler
|
||||||
|
###
|
||||||
|
|
||||||
|
###
|
||||||
|
# Image Thumbnailers
|
||||||
|
###
|
||||||
|
|
||||||
|
# Jpeg thumbnailer (from exif data if possible)
|
||||||
|
[JPEGThumbnailer]
|
||||||
|
Disabled=false
|
||||||
|
Priority=3
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
||||||
|
|
||||||
|
# Supports all type GdkPixbuf supports
|
||||||
|
[PixbufThumbnailer]
|
||||||
|
Disabled=false
|
||||||
|
Priority=2
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
||||||
|
|
||||||
|
# RAW image files using libopenraw
|
||||||
|
[RawThumbnailer]
|
||||||
|
Disabled=false
|
||||||
|
Priority=1
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
||||||
|
|
||||||
|
###
|
||||||
|
# Video Thumbnailers
|
||||||
|
###
|
||||||
|
|
||||||
|
# Download cover from omdbapi.com or themoviedb.org if an
|
||||||
|
# API key is given. This plugin is disabled because it
|
||||||
|
# sends your (private) movie names over the internet.
|
||||||
|
[CoverThumbnailer]
|
||||||
|
Disabled=true
|
||||||
|
Priority=3
|
||||||
|
Locations=~/movies
|
||||||
|
MaxFileSize=0
|
||||||
|
#APIKey=your-api-key-from-themoviedb.org
|
||||||
|
|
||||||
|
# ffmpegthumbnailer plugin
|
||||||
|
[FfmegThumbnailer]
|
||||||
|
Disabled=false
|
||||||
|
Priority=2
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
||||||
|
|
||||||
|
# GStreamer plugin
|
||||||
|
[GstThumbnailer]
|
||||||
|
Disabled=true
|
||||||
|
Priority=1
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
||||||
|
|
||||||
|
###
|
||||||
|
# Other Thumbnailers
|
||||||
|
###
|
||||||
|
|
||||||
|
# FreeType thumbnailer
|
||||||
|
[FontThumbnailer]
|
||||||
|
Disabled=false
|
||||||
|
Priority=1
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
||||||
|
|
||||||
|
|
||||||
|
# PDF/PS thumbnailer
|
||||||
|
[PopplerThumbnailer]
|
||||||
|
Disabled=false
|
||||||
|
Priority=1
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
||||||
|
|
||||||
|
# Open document thumbnailer (ODF)
|
||||||
|
[OdfThumbnailer]
|
||||||
|
Disabled=false
|
||||||
|
Priority=1
|
||||||
|
Locations=
|
||||||
|
MaxFileSize=0
|
|
@ -0,0 +1,8 @@
|
||||||
|
XDG_DESKTOP_DIR="$HOME/.big/tmp/desktop/"
|
||||||
|
XDG_DOCUMENTS_DIR="$HOME/.big/tmp/documents"
|
||||||
|
XDG_MUSIC_DIR="$HOME/.big/tmp/music"
|
||||||
|
XDG_PICTURES_DIR="$HOME/.big/tmp/pictures"
|
||||||
|
XDG_VIDEOS_DIR="$HOME/.big/tmp/videos"
|
||||||
|
XDG_DOWNLOAD_DIR="$HOME/.big/download"
|
||||||
|
XDG_TEMPLATES_DIR="$HOME/.big/templates"
|
||||||
|
XDG_PUBLICSHARE_DIR="$HOME/.big/shares"
|
|
@ -0,0 +1,6 @@
|
||||||
|
! Xft.dpi: 99.0
|
||||||
|
Xft.rgba: none
|
||||||
|
Xft.antialias: true
|
||||||
|
Xft.autohint: false
|
||||||
|
Xft.hinting: true
|
||||||
|
Xft.hintstyle: hintfull
|
|
@ -0,0 +1,243 @@
|
||||||
|
######################################################################
|
||||||
|
# GQview config file version 2.1.5 #
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
# Note: This file is autogenerated. Options can be changed here,
|
||||||
|
# but user comments and formatting will be lost.
|
||||||
|
|
||||||
|
##### General Options #####
|
||||||
|
|
||||||
|
layout_style: 0
|
||||||
|
|
||||||
|
layout_order: "123"
|
||||||
|
|
||||||
|
layout_view_as_icons: true
|
||||||
|
|
||||||
|
layout_view_as_tree: true
|
||||||
|
|
||||||
|
show_icon_names: true
|
||||||
|
|
||||||
|
|
||||||
|
tree_descend_folders: false
|
||||||
|
|
||||||
|
lazy_image_sync: false
|
||||||
|
|
||||||
|
update_on_time_change: true
|
||||||
|
|
||||||
|
exif_auto_rotate: true
|
||||||
|
|
||||||
|
|
||||||
|
enable_startup_path: false
|
||||||
|
|
||||||
|
startup_path:
|
||||||
|
|
||||||
|
zoom_mode: fit
|
||||||
|
two_pass_scaling: true
|
||||||
|
|
||||||
|
zoom_to_fit_allow_expand: true
|
||||||
|
|
||||||
|
|
||||||
|
fit_window_to_image: true
|
||||||
|
|
||||||
|
limit_window_size: false
|
||||||
|
|
||||||
|
max_window_size: 100
|
||||||
|
|
||||||
|
|
||||||
|
progressive_keyboard_scrolling: false
|
||||||
|
|
||||||
|
scroll_reset_method: 0
|
||||||
|
|
||||||
|
|
||||||
|
enable_thumbnails: false
|
||||||
|
|
||||||
|
thumbnail_width: 96
|
||||||
|
|
||||||
|
thumbnail_height: 72
|
||||||
|
|
||||||
|
cache_thumbnails: true
|
||||||
|
|
||||||
|
cache_thumbnails_into_dirs: false
|
||||||
|
|
||||||
|
thumbnail_fast: true
|
||||||
|
|
||||||
|
use_xvpics_thumbnails: true
|
||||||
|
|
||||||
|
thumbnail_spec_standard: true
|
||||||
|
|
||||||
|
|
||||||
|
local_metadata: false
|
||||||
|
|
||||||
|
|
||||||
|
sort_method: 1
|
||||||
|
|
||||||
|
sort_ascending: true
|
||||||
|
|
||||||
|
sort_case_sensitive: false
|
||||||
|
|
||||||
|
|
||||||
|
confirm_delete: true
|
||||||
|
|
||||||
|
enable_delete_key: true
|
||||||
|
|
||||||
|
safe_delete: false
|
||||||
|
|
||||||
|
safe_delete_path: "/home/kolan/.gqview/trash"
|
||||||
|
safe_delete_size: 20
|
||||||
|
|
||||||
|
|
||||||
|
tools_float: false
|
||||||
|
|
||||||
|
tools_hidden: false
|
||||||
|
|
||||||
|
restore_tool_state: false
|
||||||
|
|
||||||
|
toolbar_hidden: false
|
||||||
|
|
||||||
|
mouse_wheel_scrolls: false
|
||||||
|
|
||||||
|
in_place_rename: true
|
||||||
|
|
||||||
|
open_recent_max: 10
|
||||||
|
|
||||||
|
image_cache_size_max: 10
|
||||||
|
|
||||||
|
thumbnail_quality: 1
|
||||||
|
|
||||||
|
zoom_quality: 2
|
||||||
|
|
||||||
|
dither_quality: 1
|
||||||
|
|
||||||
|
zoom_increment: 5
|
||||||
|
|
||||||
|
enable_read_ahead: true
|
||||||
|
|
||||||
|
display_dialogs_under_mouse: false
|
||||||
|
|
||||||
|
black_window_background: false
|
||||||
|
|
||||||
|
fullscreen_screen: -1
|
||||||
|
|
||||||
|
fullscreen_clean_flip: false
|
||||||
|
|
||||||
|
fullscreen_disable_saver: true
|
||||||
|
|
||||||
|
fullscreen_above: false
|
||||||
|
|
||||||
|
custom_similarity_threshold: 99
|
||||||
|
|
||||||
|
|
||||||
|
##### Slideshow Options #####
|
||||||
|
|
||||||
|
slideshow_delay: 15.0
|
||||||
|
|
||||||
|
slideshow_random: false
|
||||||
|
|
||||||
|
slideshow_repeat: false
|
||||||
|
|
||||||
|
|
||||||
|
##### Filtering Options #####
|
||||||
|
|
||||||
|
show_dotfiles: false
|
||||||
|
|
||||||
|
disable_filtering: false
|
||||||
|
|
||||||
|
filter_ext: "icns" ".icns" "Формат изображений ICNS"
|
||||||
|
filter_ext: "gif" ".gif" "Формат изображений GIF"
|
||||||
|
filter_ext: "bmp" ".bmp" "Формат изображений BMP"
|
||||||
|
filter_ext: "pnm" ".pnm;.pbm;.pgm;.ppm" "Семейство форматов изображений PNM/PBM/PGM/PPM"
|
||||||
|
filter_ext: "ico" ".ico;.cur" "Формат изображений ICO"
|
||||||
|
filter_ext: "ani" ".ani" "Формат изображений ANI"
|
||||||
|
filter_ext: "tga" ".tga;.targa" "Формат изображений Targa"
|
||||||
|
filter_ext: "ras" ".ras" "Формат растровых изображений компании Sun"
|
||||||
|
filter_ext: "jpeg" ".jpeg;.jpe;.jpg" "Формат изображений JPEG"
|
||||||
|
filter_ext: "qtif" ".qtif;.qif" "Формат изображений QTIF"
|
||||||
|
filter_ext: "xbm" ".xbm" "Формат изображений XBM"
|
||||||
|
filter_ext: "pcx" ".pcx" "Формат изображений PCX"
|
||||||
|
filter_ext: "xpm" ".xpm" "Формат изображения XPM"
|
||||||
|
filter_ext: "wbmp" ".wbmp" "Формат изображений WBMP"
|
||||||
|
filter_ext: "png" ".png" "Формат изображений PNG"
|
||||||
|
filter_ext: "#tiff" ".tif;.tiff" "Tiff"
|
||||||
|
filter_ext: "#svg" ".svg" "Scalable Vector Graphics"
|
||||||
|
filter_ext: "crw" ".crw;.cr2" "Canon raw format"
|
||||||
|
filter_ext: "raf" ".raf" "Fujifilm raw format"
|
||||||
|
filter_ext: "nef" ".nef" "Nikon raw format"
|
||||||
|
filter_ext: "orf" ".orf" "Olympus raw format"
|
||||||
|
filter_ext: "pef" ".pef" "Pentax raw format"
|
||||||
|
|
||||||
|
##### Color Profiles #####
|
||||||
|
|
||||||
|
# NOTICE: GQview was not built with support for color profiles,
|
||||||
|
# color profile options will have no effect.
|
||||||
|
|
||||||
|
color_profile_enabled: false
|
||||||
|
|
||||||
|
color_profile_use_image: true
|
||||||
|
|
||||||
|
color_profile_input_type: 0
|
||||||
|
|
||||||
|
color_profile_input_file_1:
|
||||||
|
color_profile_input_name_1:
|
||||||
|
color_profile_input_file_2:
|
||||||
|
color_profile_input_name_2:
|
||||||
|
color_profile_input_file_3:
|
||||||
|
color_profile_input_name_3:
|
||||||
|
color_profile_input_file_4:
|
||||||
|
color_profile_input_name_4:
|
||||||
|
|
||||||
|
color_profile_screen_type: 0
|
||||||
|
|
||||||
|
color_profile_screen_file_1:
|
||||||
|
|
||||||
|
##### External Programs #####
|
||||||
|
# Maximum of 10 programs (external_1 through external_10)
|
||||||
|
# format: external_n: "menu name" "command line"
|
||||||
|
|
||||||
|
external_1: "The Gimp" "gimp -n %f"
|
||||||
|
external_2: "XV" "xv %f"
|
||||||
|
external_3: "Xpaint" "xpaint %f"
|
||||||
|
external_4: "Awesome BG" "rm ~/.config/awesome/wallpaper.slink; ln -sf %f ~/.config/awesome/wallpaper.slink && ~/.config/awesome/set_wall.sh ~/.config/awesome/wallpaper.slink"
|
||||||
|
external_5: "Awesome 1 BG" "rm ~/.config/awesome/wallpaper1.slink; ln -sf %f ~/.config/awesome/wallpaper1.slink; killall -s SIGHUP awesome"
|
||||||
|
external_6: "Awesome 2 BG" "rm ~/.config/awesome/wallpaper2.slink; ln -sf %f ~/.config/awesome/wallpaper2.slink; killall -s SIGHUP awesome"
|
||||||
|
external_7: "Awesome 3 BG" "rm ~/.config/awesome/wallpaper3.slink; ln -sf %f ~/.config/awesome/wallpaper3.slink; killall -s SIGHUP awesome"
|
||||||
|
external_8: "" ""
|
||||||
|
external_9: "Повернуть jpeg по часовой стрелк" "%vif jpegtran -rotate 90 -copy all -outfile %p_tmp %p; then mv %p_tmp %p;else rm %p_tmp;fi"
|
||||||
|
external_10: "Повернуть jpeg против часовой ст" "%vif jpegtran -rotate 270 -copy all -outfile %p_tmp %p; then mv %p_tmp %p;else rm %p_tmp;fi"
|
||||||
|
|
||||||
|
##### Collection Options #####
|
||||||
|
|
||||||
|
rectangular_selections: false
|
||||||
|
|
||||||
|
|
||||||
|
##### Window Positions #####
|
||||||
|
|
||||||
|
restore_window_positions: false
|
||||||
|
|
||||||
|
|
||||||
|
main_window_x: 219
|
||||||
|
|
||||||
|
main_window_y: 43
|
||||||
|
|
||||||
|
main_window_width: 700
|
||||||
|
|
||||||
|
main_window_height: 500
|
||||||
|
|
||||||
|
main_window_maximized: false
|
||||||
|
|
||||||
|
float_window_x: 0
|
||||||
|
|
||||||
|
float_window_y: 0
|
||||||
|
|
||||||
|
float_window_width: 260
|
||||||
|
|
||||||
|
float_window_height: 450
|
||||||
|
|
||||||
|
float_window_divider: 200
|
||||||
|
|
||||||
|
divider_position_h: 270
|
||||||
|
|
||||||
|
divider_position_v: 200
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# end of GQview config file #
|
||||||
|
######################################################################
|
10
.gtkrc-2.0
10
.gtkrc-2.0
|
@ -1,16 +1,18 @@
|
||||||
# -- THEME AUTO-WRITTEN DO NOT EDIT
|
# -- THEME AUTO-WRITTEN DO NOT EDIT
|
||||||
include "/usr/share/themes/Equinox/gtk-2.0/gtkrc"
|
include "/usr/share/themes/Adwaita/gtk-2.0/gtkrc"
|
||||||
|
|
||||||
style "user-font" {
|
style "user-font" {
|
||||||
font_name = "Liberation Sans 8"
|
font_name = "Liberation Sans 12"
|
||||||
}
|
}
|
||||||
|
|
||||||
widget_class "*" style "user-font"
|
widget_class "*" style "user-font"
|
||||||
|
|
||||||
gtk-font-name="Liberation Sans 8"
|
gtk-font-name="Liberation Sans 12"
|
||||||
|
|
||||||
gtk-theme-name = "Equinox"
|
gtk-theme-name = "Adwaita"
|
||||||
|
|
||||||
include "/home/kolan/.gtkrc.mine"
|
include "/home/kolan/.gtkrc.mine"
|
||||||
|
|
||||||
|
#gtk-cursor-theme-name = "gentoo-silver"
|
||||||
|
|
||||||
# -- THEME AUTO-WRITTEN DO NOT EDIT
|
# -- THEME AUTO-WRITTEN DO NOT EDIT
|
||||||
|
|
1
.hgrc
1
.hgrc
|
@ -5,6 +5,7 @@ username = Kolan Sh <backbone@backbone.ws>
|
||||||
bitbucket.org=3f:d3:c5:17:23:3c:cd:f5:2d:17:76:06:93:7e:ee:97:42:21:14:aa
|
bitbucket.org=3f:d3:c5:17:23:3c:cd:f5:2d:17:76:06:93:7e:ee:97:42:21:14:aa
|
||||||
hg.backbone.ws=1d:5d:e2:95:c6:ee:1a:63:9a:9b:09:79:f6:30:a9:2a:50:7d:4e:09
|
hg.backbone.ws=1d:5d:e2:95:c6:ee:1a:63:9a:9b:09:79:f6:30:a9:2a:50:7d:4e:09
|
||||||
hg.insysltd.ru=ec:ff:06:cf:59:88:ae:58:eb:f4:79:30:56:f7:36:c2:dd:52:a9:41
|
hg.insysltd.ru=ec:ff:06:cf:59:88:ae:58:eb:f4:79:30:56:f7:36:c2:dd:52:a9:41
|
||||||
|
hg.insysltd.org=ec:ff:06:cf:59:88:ae:58:eb:f4:79:30:56:f7:36:c2:dd:52:a9:41
|
||||||
|
|
||||||
[ui]
|
[ui]
|
||||||
verbose = true
|
verbose = true
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
/dev/null
|
|
@ -0,0 +1,19 @@
|
||||||
|
[default]
|
||||||
|
# Write your default config options here!
|
||||||
|
#heartbeat-cmd="(nice -n 20 /usr/bin/xscreensaver-command -deactivate >/dev/null 2>&1)&"
|
||||||
|
#heartbeat-cmd="xset dpms force on"
|
||||||
|
heartbeat-cmd="xscreensaver-command -deactivate"
|
||||||
|
#stop-xscreensaver=no
|
||||||
|
audiofile-cache=5000
|
||||||
|
cache=16000
|
||||||
|
cache-min=30
|
||||||
|
cache-seek-min=30
|
||||||
|
#af=equalizer=5:5:5:0:0:0:-2:-2:-2
|
||||||
|
|
||||||
|
|
||||||
|
[gnome-mplayer]
|
||||||
|
#vo=vdpau
|
||||||
|
ao=alsa
|
||||||
|
alang=Russian,rus,ru
|
||||||
|
slang=Russian,rus,ru
|
||||||
|
msglevel=all=5
|
|
@ -0,0 +1,33 @@
|
||||||
|
URxvt.cursorBlink: true
|
||||||
|
URxvt*font:-xos4-terminus-medium-r-normal--14-*-*-*-*-*-*
|
||||||
|
URxvt*scrollstyle: next
|
||||||
|
URxvt.url-launcher: firefox
|
||||||
|
URxvt.matcher.button: 1
|
||||||
|
URxvt.colorUL: blue
|
||||||
|
URxvt*saveLines: 32768
|
||||||
|
URxvt.tabbed.tabbar-fg: 7
|
||||||
|
URxvt.tabbed.tabbar-bg: 8
|
||||||
|
URxvt.tabbed.tab-fg: 0
|
||||||
|
URxvt.tabbed.tab-bg: 15
|
||||||
|
URxvt.geometry: 96x32
|
||||||
|
URxvt*perl-ext: tabbedex,matcher
|
||||||
|
|
||||||
|
URxvt*color0: #444444
|
||||||
|
URxvt*color1: #aa0000
|
||||||
|
URxvt*color2: #00aa00
|
||||||
|
URxvt*color3: #999900
|
||||||
|
URxvt*color4: #0000aa
|
||||||
|
URxvt*color5: #990099
|
||||||
|
URxvt*color6: #009999
|
||||||
|
URxvt*color7: grey
|
||||||
|
|
||||||
|
URxvt*color8: #1E2320
|
||||||
|
URxvt*color9: #cc0000
|
||||||
|
URxvt*color10: #00cc00
|
||||||
|
URxvt*color11: #bbbb00
|
||||||
|
URxvt*color12: #0000cc
|
||||||
|
URxvt*color13: #bb00bb
|
||||||
|
URxvt*color14: #00bbbb
|
||||||
|
URxvt*color15: white
|
||||||
|
|
||||||
|
Xcursor.size: 24
|
|
@ -0,0 +1,697 @@
|
||||||
|
#! perl
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Tabbed plugin for rxvt-unicode
|
||||||
|
## Modified by Michal Nazarewicz (mina86/AT/mina86.com), StephenB
|
||||||
|
## (mail4stb/AT/gmail.com), Steven Merrill
|
||||||
|
## <steven dot merrill at gmail.com>, Mark Pustjens
|
||||||
|
## <pustjens@dds.nl> and more...
|
||||||
|
##
|
||||||
|
## The following has been added:
|
||||||
|
##
|
||||||
|
## 1. Depending on time of last activity, activity character differs.
|
||||||
|
## By default, after 4 seconds an asterisk becomes a plus sing,
|
||||||
|
## after next 4 it becomes a colon, and finally, after another 8
|
||||||
|
## seconds it becomes a dot. This can be configured via
|
||||||
|
## tabbar-timeouts resource. It's format is:
|
||||||
|
##
|
||||||
|
## ( <timeout> ":" <character> ":" )* <timeout> ":" <character> ":"
|
||||||
|
##
|
||||||
|
## where <timeout> is timeout in seconds and <character> is
|
||||||
|
## a single activity character.
|
||||||
|
##
|
||||||
|
## 2. The "[NEW]" button can be disabled (who on Earth uses mouse to
|
||||||
|
## create new tab anyways?) by setting new-button resource to yes.
|
||||||
|
##
|
||||||
|
## 3. If title resource is true, tab's title is displayed after last
|
||||||
|
## button. This is handy if you have terminal with no window
|
||||||
|
## decorations. Colours can be configured via title-fg and
|
||||||
|
## title-bg.
|
||||||
|
##
|
||||||
|
## 4. Incorporated Alexey Semenko <asemenko at gmail.com> patch adding
|
||||||
|
## autohide resource. If it's true tab bar is hidden if there is
|
||||||
|
## no more then one tab opened.
|
||||||
|
##
|
||||||
|
## 5. Tabs are indexed in starting with zero hex. :] If you're such
|
||||||
|
## a geek to use urxvt it shouldn't be a problem for you and it
|
||||||
|
## saves few character when many tabs are opened.
|
||||||
|
##
|
||||||
|
## 6. As a minor modification: Final pipe character is removed (unless
|
||||||
|
## title is displayed). This make tab bar look nicer.
|
||||||
|
##
|
||||||
|
## Added by StephenB:
|
||||||
|
##
|
||||||
|
## 7. Tabs can be named with Shift+Up (Enter to confirm, Escape to
|
||||||
|
## cancel).
|
||||||
|
##
|
||||||
|
## 8. "[NEW]" button disabled by default.
|
||||||
|
##
|
||||||
|
## Added by Steven Merrill <steven dot merrill at gmail.com>
|
||||||
|
##
|
||||||
|
## 9. Ability to start a new tab or cycle through tabs via user
|
||||||
|
## commands: tabbedex:(new|next|prev)_tab .
|
||||||
|
## e.g. (in .Xdefaults) URxvt.keysym.M-t: perl:tabbedex:new_tab
|
||||||
|
## (see the urxvt man file for more info about keysym)
|
||||||
|
##
|
||||||
|
## 10. Fix an issue whereby on_user_command would not properly get sent
|
||||||
|
## to other extension packages if the mouse was not over the urxvt
|
||||||
|
## window.
|
||||||
|
##
|
||||||
|
## Added by Thomas Jost:
|
||||||
|
##
|
||||||
|
## 11. Add several user commands: tabbedex:rename_tab,
|
||||||
|
## tabbedex:move_tab_(left|right).
|
||||||
|
## e.g. (see 9.) URxvt.keysym.C-S-Left: perl:tabbex:move_tab_left
|
||||||
|
##
|
||||||
|
## 12. Ability to disable the default keybindings using the
|
||||||
|
## no-tabbedex-keys resource.
|
||||||
|
##
|
||||||
|
## Added by xanf (Illya Klymov):
|
||||||
|
##
|
||||||
|
## 13. Ability to display non-latin characters in tab title.
|
||||||
|
##
|
||||||
|
## Added by jpkotta:
|
||||||
|
##
|
||||||
|
## 14. Tabs inherit command line options.
|
||||||
|
##
|
||||||
|
## Added by Mark Pustjens <pustjens@dds.nl>
|
||||||
|
##
|
||||||
|
## 15. Resources are now read respecting the -name option.
|
||||||
|
##
|
||||||
|
## 16. Ability to prevent the last tab from closing.
|
||||||
|
## Use the following in your ~/.Xdefaults to enable:
|
||||||
|
## URXvt.tabbed.reopen-on-close: yes
|
||||||
|
##
|
||||||
|
|
||||||
|
use Encode qw(decode);
|
||||||
|
|
||||||
|
sub update_autohide {
|
||||||
|
my ($self, $reconfigure) = @_;
|
||||||
|
my $oldh = $self->{tabheight};
|
||||||
|
if ($self->{autohide} && @{ $self->{tabs} } <= 1 &&
|
||||||
|
! (@{ $self->{tabs} } == 1 && $self->{tabs}[-1]->{name})) {
|
||||||
|
$self->{tabheight} = 0;
|
||||||
|
} else {
|
||||||
|
$self->{tabheight} = $self->{maxtabheight};
|
||||||
|
}
|
||||||
|
if ($reconfigure && $self->{tabheight} != $oldh) {
|
||||||
|
$self->configure;
|
||||||
|
$self->copy_properties;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub tab_activity_mark ($$) {
|
||||||
|
my ($self, $tab) = @_;
|
||||||
|
return ' ' unless defined $tab->{lastActivity};
|
||||||
|
return ' ' if $tab == $self->{cur};
|
||||||
|
if (defined $self->{timeouts}) {
|
||||||
|
my $diff = int urxvt::NOW - $tab->{lastActivity};
|
||||||
|
for my $spec (@{ $self->{timeouts} }) {
|
||||||
|
return $spec->[1] if $diff > $spec->[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'*';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub refresh {
|
||||||
|
my ($self) = @_;
|
||||||
|
|
||||||
|
# autohide makes it zero
|
||||||
|
return unless $self->{tabheight};
|
||||||
|
|
||||||
|
my $ncol = $self->ncol;
|
||||||
|
|
||||||
|
my $text = " " x $ncol;
|
||||||
|
my $rend = [($self->{rs_tabbar}) x $ncol];
|
||||||
|
|
||||||
|
my ($ofs, $idx, @ofs) = (0, 0);
|
||||||
|
|
||||||
|
if ($self->{new_button}) {
|
||||||
|
substr $text, 0, 7, "[NEW] |";
|
||||||
|
@$rend[0 .. 5] = ($self->{rs_tab}) x 6;
|
||||||
|
push @ofs, [0, 6, -1 ];
|
||||||
|
$ofs = 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
for my $tab (@{ $self->{tabs} }) {
|
||||||
|
my $name = $tab->{name} ? $tab->{name} : $idx;
|
||||||
|
my $act = $self->tab_activity_mark($tab);
|
||||||
|
my $txt = sprintf "%s%s%s", $act, $name, $act;
|
||||||
|
my $len = length $txt;
|
||||||
|
|
||||||
|
substr $text, $ofs, $len + 1, "$txt|";
|
||||||
|
@$rend[$ofs .. $ofs + $len - 1] = ($self->{rs_tab}) x $len
|
||||||
|
if $tab == $self->{cur};
|
||||||
|
|
||||||
|
push @ofs, [ $ofs, $ofs + $len, $idx ];
|
||||||
|
++$idx;
|
||||||
|
$ofs += $len + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
substr $text, --$ofs, 1, ' '; # remove last '|'
|
||||||
|
|
||||||
|
if ($self->{tab_title} && $ofs + 3 < $ncol) {
|
||||||
|
my $term = $self->{term};
|
||||||
|
my @str = $term->XGetWindowProperty($term->parent, $self->{tab_title});
|
||||||
|
if (@str && $str[2]) {
|
||||||
|
my $str = '| ' . decode("utf8", $str[2]);
|
||||||
|
my $len = length $str;
|
||||||
|
$len = $ncol - $ofs if $ofs + $len > $ncol;
|
||||||
|
substr $text, $ofs, $len, substr $str, 0, $len;
|
||||||
|
@$rend[$ofs + 2 .. $ofs + $len - 1] = ($self->{rs_title}) x ($len - 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->{tabofs} = \@ofs;
|
||||||
|
|
||||||
|
$self->ROW_t (0, $text, 0, 0, $ncol);
|
||||||
|
$self->ROW_r (0, $rend, 0, 0, $ncol);
|
||||||
|
|
||||||
|
$self->want_refresh;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub new_tab {
|
||||||
|
my ($self, @argv) = @_;
|
||||||
|
|
||||||
|
my $offset = $self->fheight;
|
||||||
|
|
||||||
|
$self->{tabheight} = $self->{maxtabheight}
|
||||||
|
unless $self->{autohide} && !(defined $self->{tabs} && @{ $self->{tabs} });
|
||||||
|
|
||||||
|
# save a backlink to us, make sure tabbedex is inactive
|
||||||
|
push @urxvt::TERM_INIT, sub {
|
||||||
|
my ($term) = @_;
|
||||||
|
$term->{parent} = $self;
|
||||||
|
|
||||||
|
for (0 .. urxvt::NUM_RESOURCES - 1) {
|
||||||
|
my $value = $self->{resource}[$_];
|
||||||
|
|
||||||
|
$term->resource ("+$_" => $value)
|
||||||
|
if defined $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$term->resource (perl_ext_2 => $term->resource ("perl_ext_2") . ",-tabbedex");
|
||||||
|
};
|
||||||
|
|
||||||
|
push @urxvt::TERM_EXT, urxvt::ext::tabbedex::tab::;
|
||||||
|
|
||||||
|
my $term = new urxvt::term
|
||||||
|
$self->env, $urxvt::RXVTNAME,
|
||||||
|
-embed => $self->parent,
|
||||||
|
@argv;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub configure {
|
||||||
|
my ($self) = @_;
|
||||||
|
|
||||||
|
my $tab = $self->{cur};
|
||||||
|
|
||||||
|
# this is an extremely dirty way to force a configurenotify, but who cares
|
||||||
|
$tab->XMoveResizeWindow (
|
||||||
|
$tab->parent,
|
||||||
|
0, $self->{tabheight} + 1,
|
||||||
|
$self->width, $self->height - $self->{tabheight}
|
||||||
|
);
|
||||||
|
$tab->XMoveResizeWindow (
|
||||||
|
$tab->parent,
|
||||||
|
0, $self->{tabheight},
|
||||||
|
$self->width, $self->height - $self->{tabheight}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub copy_properties {
|
||||||
|
my ($self) = @_;
|
||||||
|
my $tab = $self->{cur};
|
||||||
|
|
||||||
|
my $wm_normal_hints = $self->XInternAtom ("WM_NORMAL_HINTS");
|
||||||
|
|
||||||
|
my $current = delete $self->{current_properties};
|
||||||
|
|
||||||
|
# pass 1: copy over properties different or nonexisting
|
||||||
|
for my $atom ($tab->XListProperties ($tab->parent)) {
|
||||||
|
my ($type, $format, $items) = $self->XGetWindowProperty ($tab->parent, $atom);
|
||||||
|
|
||||||
|
# fix up size hints
|
||||||
|
if ($atom == $wm_normal_hints) {
|
||||||
|
my (@hints) = unpack "l!*", $items;
|
||||||
|
|
||||||
|
$hints[$_] += $self->{tabheight} for (4, 6, 16);
|
||||||
|
|
||||||
|
$items = pack "l!*", @hints;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $cur = delete $current->{$atom};
|
||||||
|
|
||||||
|
# update if changed, we assume empty items and zero type and format will not happen
|
||||||
|
$self->XChangeProperty ($self->parent, $atom, $type, $format, $items)
|
||||||
|
if $cur->[0] != $type or $cur->[1] != $format or $cur->[2] ne $items;
|
||||||
|
|
||||||
|
$self->{current_properties}{$atom} = [$type, $format, $items];
|
||||||
|
}
|
||||||
|
|
||||||
|
# pass 2, delete all extraneous properties
|
||||||
|
$self->XDeleteProperty ($self->parent, $_) for keys %$current;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub my_resource {
|
||||||
|
my $self = shift;
|
||||||
|
$self->x_resource ("tabbed.$_[0]");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub make_current {
|
||||||
|
my ($self, $tab) = @_;
|
||||||
|
|
||||||
|
if (my $cur = $self->{cur}) {
|
||||||
|
delete $cur->{lastActivity};
|
||||||
|
$cur->XUnmapWindow ($cur->parent) if $cur->mapped;
|
||||||
|
$cur->focus_out;
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->{cur} = $tab;
|
||||||
|
|
||||||
|
$self->configure;
|
||||||
|
$self->copy_properties;
|
||||||
|
|
||||||
|
$tab->focus_out; # just in case, should be a nop
|
||||||
|
$tab->focus_in if $self->focus;
|
||||||
|
|
||||||
|
$tab->XMapWindow ($tab->parent);
|
||||||
|
delete $tab->{lastActivity};
|
||||||
|
$self->refresh;
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub on_focus_in {
|
||||||
|
my ($self, $event) = @_;
|
||||||
|
$self->{cur}->focus_in;
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
sub on_focus_out {
|
||||||
|
my ($self, $event) = @_;
|
||||||
|
$self->{cur}->focus_out;
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
sub on_key_press {
|
||||||
|
my ($self, $event) = @_;
|
||||||
|
$self->{cur}->key_press ($event->{state}, $event->{keycode}, $event->{time});
|
||||||
|
1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub on_key_release {
|
||||||
|
my ($self, $event) = @_;
|
||||||
|
$self->{cur}->key_release ($event->{state}, $event->{keycode}, $event->{time});
|
||||||
|
1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub on_button_release {
|
||||||
|
my ($self, $event) = @_;
|
||||||
|
|
||||||
|
if ($event->{row} == 0) {
|
||||||
|
my $col = $event->{col};
|
||||||
|
for my $button (@{ $self->{tabofs} }) {
|
||||||
|
last if $col < $button->[0];
|
||||||
|
next unless $col <= $button->[1];
|
||||||
|
if ($button->[2] == -1) {
|
||||||
|
$self->new_tab;
|
||||||
|
} else {
|
||||||
|
$self->make_current($self->{tabs}[$button->[2]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
sub on_init {
|
||||||
|
my ($self) = @_;
|
||||||
|
|
||||||
|
$self->{resource} = [map $self->resource ("+$_"), 0 .. urxvt::NUM_RESOURCES - 1];
|
||||||
|
|
||||||
|
$self->resource (int_bwidth => 0);
|
||||||
|
$self->resource (pty_fd => -1);
|
||||||
|
|
||||||
|
$self->{option} = {};
|
||||||
|
for my $key (keys %urxvt::OPTION) {
|
||||||
|
$self->{option}{$key} = $self->option($urxvt::OPTION{$key});
|
||||||
|
}
|
||||||
|
|
||||||
|
# this is for the tabs terminal; order is important
|
||||||
|
$self->option ($urxvt::OPTION{scrollBar}, 0);
|
||||||
|
|
||||||
|
my $fg = $self->my_resource ("tabbar-fg");
|
||||||
|
my $bg = $self->my_resource ("tabbar-bg");
|
||||||
|
my $tabfg = $self->my_resource ("tab-fg");
|
||||||
|
my $tabbg = $self->my_resource ("tab-bg");
|
||||||
|
my $titfg = $self->my_resource ("title-fg");
|
||||||
|
my $titbg = $self->my_resource ("title-bg");
|
||||||
|
|
||||||
|
defined $fg or $fg = 3;
|
||||||
|
defined $bg or $bg = 0;
|
||||||
|
defined $tabfg or $tabfg = 0;
|
||||||
|
defined $tabbg or $tabbg = 1;
|
||||||
|
defined $titfg or $titfg = 15;
|
||||||
|
defined $titbg or $titbg = 8;
|
||||||
|
|
||||||
|
$self->{rs_tabbar} = urxvt::SET_COLOR (urxvt::DEFAULT_RSTYLE, $fg + 2, $bg + 2);
|
||||||
|
$self->{rs_tab} = urxvt::SET_COLOR (urxvt::DEFAULT_RSTYLE, $tabfg + 2, $tabbg + 2);
|
||||||
|
$self->{rs_title} = urxvt::SET_COLOR (urxvt::DEFAULT_RSTYLE, $titfg + 2, $titbg + 2);
|
||||||
|
|
||||||
|
|
||||||
|
my $timeouts = $self->my_resource ("tabbar-timeouts");
|
||||||
|
$timeouts = '16:.:8:::4:+' unless defined $timeouts;
|
||||||
|
if ($timeouts ne '') {
|
||||||
|
my @timeouts;
|
||||||
|
while ($timeouts =~ /^(\d+):(.)(?::(.*))?$/) {
|
||||||
|
push @timeouts, [ int $1, $2 ];
|
||||||
|
$timeouts = defined $3 ? $3 : '';
|
||||||
|
}
|
||||||
|
if (@timeouts) {
|
||||||
|
$self->{timeouts} = [ sort { $b->[0] <=> $a-> [0] } @timeouts ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->{new_button} =
|
||||||
|
($self->my_resource ('new-button') or 'false') !~ /^(?:false|0|no)/i;
|
||||||
|
$self->{tab_title} =
|
||||||
|
($self->my_resource ('title') or 'true') !~ /^(?:false|0|no)/i;
|
||||||
|
$self->{autohide} =
|
||||||
|
($self->my_resource ('autohide') or 'false') !~ /^(?:false|0|no)/i;
|
||||||
|
$self->{no_default_keys} =
|
||||||
|
($self->my_resource ('no-tabbedex-keys') or 'false') !~ /^(?:false|0|no)/i;
|
||||||
|
$self->{reopen_on_close} =
|
||||||
|
($self->my_resource ('reopen-on-close') or 'false') !~ /^(?:false|0|no)/i;
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub on_start {
|
||||||
|
my ($self) = @_;
|
||||||
|
|
||||||
|
$self->{maxtabheight} = $self->int_bwidth + $self->fheight + $self->lineSpace;
|
||||||
|
$self->{tabheight} = $self->{autohide} ? 0 : $self->{maxtabheight};
|
||||||
|
|
||||||
|
$self->{running_user_command} = 0;
|
||||||
|
|
||||||
|
$self->cmd_parse ("\033[?25l");
|
||||||
|
|
||||||
|
my @argv = $self->argv;
|
||||||
|
|
||||||
|
do {
|
||||||
|
shift @argv;
|
||||||
|
} while @argv && $argv[0] ne "-e";
|
||||||
|
|
||||||
|
if ($self->{tab_title}) {
|
||||||
|
$self->{tab_title} = $self->{term}->XInternAtom("_NET_WM_NAME", 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->new_tab (@argv);
|
||||||
|
|
||||||
|
if (defined $self->{timeouts}) {
|
||||||
|
my $interval = ($self->{timeouts}[@{ $self->{timeouts} } - 1]->[0]);
|
||||||
|
$interval = int($interval / 4);
|
||||||
|
$self->{timer} = urxvt::timer->new
|
||||||
|
->interval($interval < 1 ? 1 : $interval)
|
||||||
|
->cb ( sub { $self->refresh; } );
|
||||||
|
}
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub on_configure_notify {
|
||||||
|
my ($self, $event) = @_;
|
||||||
|
|
||||||
|
$self->configure;
|
||||||
|
$self->refresh;
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub on_user_command {
|
||||||
|
my ($self, $event) = @_;
|
||||||
|
|
||||||
|
$self->{cur}->{term}->{parent}->tab_user_command($self->{cur}, $event, 1);
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub on_wm_delete_window {
|
||||||
|
my ($self) = @_;
|
||||||
|
$_->destroy for @{ $self->{tabs} };
|
||||||
|
1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub tab_start {
|
||||||
|
my ($self, $tab) = @_;
|
||||||
|
|
||||||
|
$tab->XChangeInput ($tab->parent, urxvt::PropertyChangeMask);
|
||||||
|
|
||||||
|
push @{ $self->{tabs} }, $tab;
|
||||||
|
|
||||||
|
# $tab->{name} ||= scalar @{ $self->{tabs} };
|
||||||
|
$self->make_current ($tab);
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub tab_destroy {
|
||||||
|
my ($self, $tab) = @_;
|
||||||
|
|
||||||
|
if ($self->{reopen_on_close} && $#{ $self->{tabs} } == 0) {
|
||||||
|
$self->new_tab;
|
||||||
|
$self->make_current ($self->{tabs}[-1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->{tabs} = [ grep $_ != $tab, @{ $self->{tabs} } ];
|
||||||
|
$self->update_autohide ();
|
||||||
|
|
||||||
|
if (@{ $self->{tabs} }) {
|
||||||
|
if ($self->{cur} == $tab) {
|
||||||
|
delete $self->{cur};
|
||||||
|
$self->make_current ($self->{tabs}[-1]);
|
||||||
|
} else {
|
||||||
|
$self->refresh;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
# delay destruction a tiny bit
|
||||||
|
$self->{destroy} = urxvt::iw->new->start->cb (sub { $self->destroy });
|
||||||
|
}
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub tab_key_press {
|
||||||
|
my ($self, $tab, $event, $keysym, $str) = @_;
|
||||||
|
|
||||||
|
# setting binding keys
|
||||||
|
#open FILE, ">/tmp/key.txt" or die $!;
|
||||||
|
#printf FILE $keysym;
|
||||||
|
#close FILE;
|
||||||
|
|
||||||
|
if ($tab->{is_inputting_name}) {
|
||||||
|
if ($keysym == 0xff0d || $keysym == 0xff8d) { # enter
|
||||||
|
$tab->{name} = $tab->{new_name};
|
||||||
|
$tab->{is_inputting_name} = 0;
|
||||||
|
$self->update_autohide (1);
|
||||||
|
} elsif ($keysym == 0xff1b) { # escape
|
||||||
|
$tab->{name} = $tab->{old_name};
|
||||||
|
$tab->{is_inputting_name} = 0;
|
||||||
|
$self->update_autohide (1);
|
||||||
|
} elsif ($keysym == 0xff08) { # backspace
|
||||||
|
substr $tab->{new_name}, -1, 1, "";
|
||||||
|
$tab->{name} = "$tab->{new_name}█";
|
||||||
|
} elsif ($str !~ /[\x00-\x1f\x80-\xaf]/) {
|
||||||
|
$tab->{new_name} .= $str;
|
||||||
|
$tab->{name} = "$tab->{new_name}█";
|
||||||
|
}
|
||||||
|
$self->refresh;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return () if ($self->{no_default_keys});
|
||||||
|
|
||||||
|
if ($event->{state} & urxvt::ControlMask) {
|
||||||
|
if ($keysym == 0x004a || $keysym == 0x006a) {
|
||||||
|
if (@{ $self->{tabs} } > 1) {
|
||||||
|
$self->change_tab($tab, -1);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
} elsif ($keysym == 0x004b || $keysym == 0x006b) {
|
||||||
|
if (@{ $self->{tabs} } > 1) {
|
||||||
|
$self->change_tab($tab, 1);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
} elsif ($keysym == 0x003b) {
|
||||||
|
$self->new_tab;
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
} elsif ($keysym == 0xff52) {
|
||||||
|
$self->rename_tab($tab);
|
||||||
|
return 1;
|
||||||
|
} elsif ($keysym == 0x0047 || $keysym == 0x0067) {
|
||||||
|
$self->move_tab($tab, 1);
|
||||||
|
return 1;
|
||||||
|
} elsif ($keysym == 0x0048 || $keysym == 0x0068) {
|
||||||
|
$self->move_tab($tab, -1);
|
||||||
|
return 1;
|
||||||
|
} elsif ($keysym == 0x0044) {
|
||||||
|
$tab->destroy;
|
||||||
|
return 1;
|
||||||
|
} elsif ($keysym == 0x0054 || $keysym == 0x0074) {
|
||||||
|
$tab->{is_inputting_name} = 1;
|
||||||
|
$tab->{old_name} = $tab->{name} ? $tab->{name} : "";
|
||||||
|
$tab->{new_name} = "";
|
||||||
|
$tab->{name} = "█";
|
||||||
|
$self->update_autohide (1);
|
||||||
|
$self->refresh;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub tab_property_notify {
|
||||||
|
my ($self, $tab, $event) = @_;
|
||||||
|
|
||||||
|
$self->copy_properties
|
||||||
|
if $event->{window} == $tab->parent;
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub tab_add_lines {
|
||||||
|
my ($self, $tab) = @_;
|
||||||
|
my $mark = $self->tab_activity_mark($tab);
|
||||||
|
$tab->{lastActivity} = int urxvt::NOW;
|
||||||
|
$self->refresh if $mark ne $self->tab_activity_mark($tab);
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub tab_user_command {
|
||||||
|
my ($self, $tab, $cmd, $proxy_events) = @_;
|
||||||
|
|
||||||
|
if ($cmd eq 'tabbedex:new_tab') {
|
||||||
|
$self->new_tab;
|
||||||
|
}
|
||||||
|
elsif ($cmd eq 'tabbedex:next_tab') {
|
||||||
|
$self->change_tab($tab, 1);
|
||||||
|
}
|
||||||
|
elsif ($cmd eq 'tabbedex:prev_tab') {
|
||||||
|
$self->change_tab($tab, -1);
|
||||||
|
}
|
||||||
|
elsif ($cmd eq 'tabbedex:move_tab_left') {
|
||||||
|
$self->move_tab($tab, -1);
|
||||||
|
}
|
||||||
|
elsif ($cmd eq 'tabbedex:move_tab_right') {
|
||||||
|
$self->move_tab($tab, 1);
|
||||||
|
}
|
||||||
|
elsif ($cmd eq 'tabbedex:rename_tab') {
|
||||||
|
$self->rename_tab($tab);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# Proxy the user command through to the tab's term, while taking care not
|
||||||
|
# to get caught in an infinite loop.
|
||||||
|
if ($proxy_events && $self->{running_user_command} == 0) {
|
||||||
|
$self->{running_user_command} = 1;
|
||||||
|
urxvt::invoke($tab->{term}, 20, $cmd);
|
||||||
|
$self->{running_user_command} = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
sub change_tab {
|
||||||
|
my ($self, $tab, $direction) = @_;
|
||||||
|
|
||||||
|
my $idx = 0;
|
||||||
|
++$idx while $self->{tabs}[$idx] != $tab;
|
||||||
|
$idx += $direction;
|
||||||
|
$self->make_current ($self->{tabs}[$idx % @{ $self->{tabs}}]);
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
sub move_tab {
|
||||||
|
my ($self, $tab, $direction) = @_;
|
||||||
|
|
||||||
|
if (@{ $self->{tabs} } > 1) {
|
||||||
|
my $idx1 = 0;
|
||||||
|
++$idx1 while $self->{tabs}[$idx1] != $tab;
|
||||||
|
my $idx2 = ($idx1 + $direction) % @{ $self->{tabs} };
|
||||||
|
|
||||||
|
($self->{tabs}[$idx1], $self->{tabs}[$idx2]) =
|
||||||
|
($self->{tabs}[$idx2], $self->{tabs}[$idx1]);
|
||||||
|
$self->make_current ($self->{tabs}[$idx2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
sub rename_tab {
|
||||||
|
my ($self, $tab) = @_;
|
||||||
|
|
||||||
|
$tab->{is_inputting_name} = 1;
|
||||||
|
$tab->{old_name} = $tab->{name} ? $tab->{name} : "";
|
||||||
|
$tab->{new_name} = "";
|
||||||
|
$tab->{name} = "█";
|
||||||
|
$self->update_autohide (1);
|
||||||
|
$self->refresh;
|
||||||
|
|
||||||
|
();
|
||||||
|
}
|
||||||
|
|
||||||
|
package urxvt::ext::tabbedex::tab;
|
||||||
|
|
||||||
|
# helper extension implementing the subwindows of a tabbed terminal.
|
||||||
|
# simply proxies all interesting calls back to the tabbedex class.
|
||||||
|
|
||||||
|
{
|
||||||
|
for my $hook (qw(start destroy user_command key_press property_notify add_lines)) {
|
||||||
|
eval qq{
|
||||||
|
sub on_$hook {
|
||||||
|
my \$parent = \$_[0]{term}{parent}
|
||||||
|
or return;
|
||||||
|
\$parent->tab_$hook (\@_)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
die if $@;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,326 @@
|
||||||
|
" pathogen.vim - path option manipulation
|
||||||
|
" Maintainer: Tim Pope <http://tpo.pe/>
|
||||||
|
" Version: 2.2
|
||||||
|
|
||||||
|
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
|
||||||
|
"
|
||||||
|
" For management of individually installed plugins in ~/.vim/bundle (or
|
||||||
|
" ~\vimfiles\bundle), adding `call pathogen#infect()` to the top of your
|
||||||
|
" .vimrc is the only other setup necessary.
|
||||||
|
"
|
||||||
|
" The API is documented inline below. For maximum ease of reading,
|
||||||
|
" :set foldmethod=marker
|
||||||
|
|
||||||
|
if exists("g:loaded_pathogen") || &cp
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_pathogen = 1
|
||||||
|
|
||||||
|
function! s:warn(msg)
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg a:msg
|
||||||
|
echohl NONE
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Point of entry for basic default usage. Give a relative path to invoke
|
||||||
|
" pathogen#incubate() (defaults to "bundle/{}"), or an absolute path to invoke
|
||||||
|
" pathogen#surround(). For backwards compatibility purposes, a full path that
|
||||||
|
" does not end in {} or * is given to pathogen#runtime_prepend_subdirectories()
|
||||||
|
" instead.
|
||||||
|
function! pathogen#infect(...) abort " {{{1
|
||||||
|
for path in a:0 ? reverse(copy(a:000)) : ['bundle/{}']
|
||||||
|
if path =~# '^[^\\/]\+$'
|
||||||
|
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||||
|
call pathogen#incubate(path . '/{}')
|
||||||
|
elseif path =~# '^[^\\/]\+[\\/]\%({}\|\*\)$'
|
||||||
|
call pathogen#incubate(path)
|
||||||
|
elseif path =~# '[\\/]\%({}\|\*\)$'
|
||||||
|
call pathogen#surround(path)
|
||||||
|
else
|
||||||
|
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||||
|
call pathogen#surround(path . '/{}')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call pathogen#cycle_filetype()
|
||||||
|
return ''
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Split a path into a list.
|
||||||
|
function! pathogen#split(path) abort " {{{1
|
||||||
|
if type(a:path) == type([]) | return a:path | endif
|
||||||
|
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
|
||||||
|
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Convert a list to a path.
|
||||||
|
function! pathogen#join(...) abort " {{{1
|
||||||
|
if type(a:1) == type(1) && a:1
|
||||||
|
let i = 1
|
||||||
|
let space = ' '
|
||||||
|
else
|
||||||
|
let i = 0
|
||||||
|
let space = ''
|
||||||
|
endif
|
||||||
|
let path = ""
|
||||||
|
while i < a:0
|
||||||
|
if type(a:000[i]) == type([])
|
||||||
|
let list = a:000[i]
|
||||||
|
let j = 0
|
||||||
|
while j < len(list)
|
||||||
|
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
|
||||||
|
let path .= ',' . escaped
|
||||||
|
let j += 1
|
||||||
|
endwhile
|
||||||
|
else
|
||||||
|
let path .= "," . a:000[i]
|
||||||
|
endif
|
||||||
|
let i += 1
|
||||||
|
endwhile
|
||||||
|
return substitute(path,'^,','','')
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
|
||||||
|
function! pathogen#legacyjoin(...) abort " {{{1
|
||||||
|
return call('pathogen#join',[1] + a:000)
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Remove duplicates from a list.
|
||||||
|
function! pathogen#uniq(list) abort " {{{1
|
||||||
|
let i = 0
|
||||||
|
let seen = {}
|
||||||
|
while i < len(a:list)
|
||||||
|
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
|
||||||
|
call remove(a:list,i)
|
||||||
|
elseif a:list[i] ==# ''
|
||||||
|
let i += 1
|
||||||
|
let empty = 1
|
||||||
|
else
|
||||||
|
let seen[a:list[i]] = 1
|
||||||
|
let i += 1
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
return a:list
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" \ on Windows unless shellslash is set, / everywhere else.
|
||||||
|
function! pathogen#separator() abort " {{{1
|
||||||
|
return !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Convenience wrapper around glob() which returns a list.
|
||||||
|
function! pathogen#glob(pattern) abort " {{{1
|
||||||
|
let files = split(glob(a:pattern),"\n")
|
||||||
|
return map(files,'substitute(v:val,"[".pathogen#separator()."/]$","","")')
|
||||||
|
endfunction "}}}1
|
||||||
|
|
||||||
|
" Like pathogen#glob(), only limit the results to directories.
|
||||||
|
function! pathogen#glob_directories(pattern) abort " {{{1
|
||||||
|
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
|
||||||
|
endfunction "}}}1
|
||||||
|
|
||||||
|
" Turn filetype detection off and back on again if it was already enabled.
|
||||||
|
function! pathogen#cycle_filetype() " {{{1
|
||||||
|
if exists('g:did_load_filetypes')
|
||||||
|
filetype off
|
||||||
|
filetype on
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Check if a bundle is disabled. A bundle is considered disabled if it ends
|
||||||
|
" in a tilde or its basename or full name is included in the list
|
||||||
|
" g:pathogen_disabled.
|
||||||
|
function! pathogen#is_disabled(path) " {{{1
|
||||||
|
if a:path =~# '\~$'
|
||||||
|
return 1
|
||||||
|
elseif !exists("g:pathogen_disabled")
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let blacklist = g:pathogen_disabled
|
||||||
|
return index(blacklist, strpart(a:path, strridx(a:path, sep)+1)) != -1 && index(blacklist, a:path) != 1
|
||||||
|
endfunction "}}}1
|
||||||
|
|
||||||
|
" Prepend the given directory to the runtime path and append its corresponding
|
||||||
|
" after directory. If the directory is already included, move it to the
|
||||||
|
" outermost position. Wildcards are added as is. Ending a path in /{} causes
|
||||||
|
" all subdirectories to be added (except those in g:pathogen_disabled).
|
||||||
|
function! pathogen#surround(path) abort " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let rtp = pathogen#split(&rtp)
|
||||||
|
if a:path =~# '[\\/]{}$'
|
||||||
|
let path = fnamemodify(a:path[0:-4], ':p:s?[\\/]\=$??')
|
||||||
|
let before = filter(pathogen#glob_directories(path.sep.'*'), '!pathogen#is_disabled(v:val)')
|
||||||
|
let after = filter(reverse(pathogen#glob_directories(path.sep."*".sep."after")), '!pathogen#is_disabled(v:val[0:-7])')
|
||||||
|
call filter(rtp,'v:val[0:strlen(path)-1] !=# path')
|
||||||
|
else
|
||||||
|
let path = fnamemodify(a:path, ':p:s?[\\/]\=$??')
|
||||||
|
let before = [path]
|
||||||
|
let after = [path . sep . 'after']
|
||||||
|
call filter(rtp, 'index(before + after, v:val) == -1')
|
||||||
|
endif
|
||||||
|
let &rtp = pathogen#join(before, rtp, after)
|
||||||
|
return &rtp
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Prepend all subdirectories of path to the rtp, and append all 'after'
|
||||||
|
" directories in those subdirectories. Deprecated.
|
||||||
|
function! pathogen#runtime_prepend_subdirectories(path) " {{{1
|
||||||
|
call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#surround('.string(a:path.'/{}').')')
|
||||||
|
return pathogen#surround(a:path . pathogen#separator() . '{}')
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" For each directory in the runtime path, add a second entry with the given
|
||||||
|
" argument appended. If the argument ends in '/{}', add a separate entry for
|
||||||
|
" each subdirectory. The default argument is 'bundle/{}', which means that
|
||||||
|
" .vim/bundle/*, $VIM/vimfiles/bundle/*, $VIMRUNTIME/bundle/*,
|
||||||
|
" $VIM/vim/files/bundle/*/after, and .vim/bundle/*/after will be added (on
|
||||||
|
" UNIX).
|
||||||
|
function! pathogen#incubate(...) abort " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let name = a:0 ? a:1 : 'bundle/{}'
|
||||||
|
if "\n".s:done_bundles =~# "\\M\n".name."\n"
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
let s:done_bundles .= name . "\n"
|
||||||
|
let list = []
|
||||||
|
for dir in pathogen#split(&rtp)
|
||||||
|
if dir =~# '\<after$'
|
||||||
|
if name =~# '{}$'
|
||||||
|
let list += filter(pathogen#glob_directories(substitute(dir,'after$',name[0:-3],'').'*'.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])') + [dir]
|
||||||
|
else
|
||||||
|
let list += [dir, substitute(dir, 'after$', '', '') . name . sep . 'after']
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if name =~# '{}$'
|
||||||
|
let list += [dir] + filter(pathogen#glob_directories(dir.sep.name[0:-3].'*'), '!pathogen#is_disabled(v:val)')
|
||||||
|
else
|
||||||
|
let list += [dir . sep . name, dir]
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
let &rtp = pathogen#join(pathogen#uniq(list))
|
||||||
|
return 1
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Deprecated alias for pathogen#incubate().
|
||||||
|
function! pathogen#runtime_append_all_bundles(...) abort " {{{1
|
||||||
|
if a:0
|
||||||
|
call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#incubate('.string(a:1.'/{}').')')
|
||||||
|
else
|
||||||
|
call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#incubate()')
|
||||||
|
endif
|
||||||
|
return call('pathogen#incubate', map(copy(a:000),'v:val . "/{}"'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:done_bundles = ''
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
|
||||||
|
function! pathogen#helptags() abort " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
for glob in pathogen#split(&rtp)
|
||||||
|
for dir in split(glob(glob), "\n")
|
||||||
|
if (dir.sep)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir.sep.'doc') == 2 && !empty(filter(split(glob(dir.sep.'doc'.sep.'*'),"\n>"),'!isdirectory(v:val)')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags'))
|
||||||
|
silent! execute 'helptags' pathogen#fnameescape(dir.'/doc')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
command! -bar Helptags :call pathogen#helptags()
|
||||||
|
|
||||||
|
" Execute the given command. This is basically a backdoor for --remote-expr.
|
||||||
|
function! pathogen#execute(...) abort " {{{1
|
||||||
|
for command in a:000
|
||||||
|
execute command
|
||||||
|
endfor
|
||||||
|
return ''
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Like findfile(), but hardcoded to use the runtimepath.
|
||||||
|
function! pathogen#runtime_findfile(file,count) abort "{{{1
|
||||||
|
let rtp = pathogen#join(1,pathogen#split(&rtp))
|
||||||
|
let file = findfile(a:file,rtp,a:count)
|
||||||
|
if file ==# ''
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return fnamemodify(file,':p')
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
" Backport of fnameescape().
|
||||||
|
function! pathogen#fnameescape(string) abort " {{{1
|
||||||
|
if exists('*fnameescape')
|
||||||
|
return fnameescape(a:string)
|
||||||
|
elseif a:string ==# '-'
|
||||||
|
return '\-'
|
||||||
|
else
|
||||||
|
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
if exists(':Vedit')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:vopen_warning = 0
|
||||||
|
|
||||||
|
function! s:find(count,cmd,file,lcd) " {{{1
|
||||||
|
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
|
||||||
|
let file = pathogen#runtime_findfile(a:file,a:count)
|
||||||
|
if file ==# ''
|
||||||
|
return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
|
||||||
|
endif
|
||||||
|
if !s:vopen_warning
|
||||||
|
let s:vopen_warning = 1
|
||||||
|
let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE'
|
||||||
|
else
|
||||||
|
let warning = ''
|
||||||
|
endif
|
||||||
|
if a:lcd
|
||||||
|
let path = file[0:-strlen(a:file)-2]
|
||||||
|
execute 'lcd `=path`'
|
||||||
|
return a:cmd.' '.pathogen#fnameescape(a:file) . warning
|
||||||
|
else
|
||||||
|
return a:cmd.' '.pathogen#fnameescape(file) . warning
|
||||||
|
endif
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
function! s:Findcomplete(A,L,P) " {{{1
|
||||||
|
let sep = pathogen#separator()
|
||||||
|
let cheats = {
|
||||||
|
\'a': 'autoload',
|
||||||
|
\'d': 'doc',
|
||||||
|
\'f': 'ftplugin',
|
||||||
|
\'i': 'indent',
|
||||||
|
\'p': 'plugin',
|
||||||
|
\'s': 'syntax'}
|
||||||
|
if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
|
||||||
|
let request = cheats[a:A[0]].a:A[1:-1]
|
||||||
|
else
|
||||||
|
let request = a:A
|
||||||
|
endif
|
||||||
|
let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*'
|
||||||
|
let found = {}
|
||||||
|
for path in pathogen#split(&runtimepath)
|
||||||
|
let path = expand(path, ':p')
|
||||||
|
let matches = split(glob(path.sep.pattern),"\n")
|
||||||
|
call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
|
||||||
|
call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
|
||||||
|
for match in matches
|
||||||
|
let found[match] = 1
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
return sort(keys(found))
|
||||||
|
endfunction " }}}1
|
||||||
|
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
|
||||||
|
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
|
||||||
|
|
||||||
|
" vim:set et sw=2:
|
|
@ -0,0 +1,698 @@
|
||||||
|
" File: AutoFenc.vim
|
||||||
|
" Brief: Tries to automatically detect file encoding
|
||||||
|
" Author: Petr Zemek, s3rvac AT gmail DOT com
|
||||||
|
" Version: 1.5
|
||||||
|
" Last Change: Sat Mar 17 11:39:56 CET 2012
|
||||||
|
"
|
||||||
|
" License:
|
||||||
|
" Copyright (C) 2009-2012 Petr Zemek
|
||||||
|
" This program is free software; you can redistribute it and/or modify it
|
||||||
|
" under the terms of the GNU General Public License as published by the Free
|
||||||
|
" Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
" any later version.
|
||||||
|
"
|
||||||
|
" This program is distributed in the hope that it will be useful, but
|
||||||
|
" WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
" or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
" for more details.
|
||||||
|
"
|
||||||
|
" You should have received a copy of the GNU General Public License along
|
||||||
|
" with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
" 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
"
|
||||||
|
" Description:
|
||||||
|
" This script tries to automatically detect and set file encoding when
|
||||||
|
" opening a file in Vim. It does this in several possible ways (according
|
||||||
|
" to the configuration) in this order (when a method fails, it tries
|
||||||
|
" the following one):
|
||||||
|
" (1) detection of BOM (byte-order-mark) at the beginning of the file,
|
||||||
|
" only for some multibyte encodings
|
||||||
|
" (2) HTML way of encoding detection (via <meta> tag), only for HTML based
|
||||||
|
" file types
|
||||||
|
" (3) XML way of encoding detection (via <?xml ... ?> declaration), only
|
||||||
|
" for XML based file types
|
||||||
|
" (4) CSS way of encoding detection (via @charset 'at-rule'), only for
|
||||||
|
" CSS files
|
||||||
|
" (5) checks whether the encoding is specified in a comment (like
|
||||||
|
" '# Encoding: latin2'), for all file types
|
||||||
|
" (6) tries to detect the encoding via specified external program
|
||||||
|
" (the default one is enca), for all file types
|
||||||
|
"
|
||||||
|
" If the autodetection fails, it's up to Vim (and your configuration)
|
||||||
|
" to set the encoding.
|
||||||
|
"
|
||||||
|
" Configuration options for this plugin (you can set them in your $HOME/.vimrc):
|
||||||
|
" - g:autofenc_enable (0 or 1, default 1)
|
||||||
|
" Enables/disables this plugin.
|
||||||
|
" - g:autofenc_emit_messages (0 or 1, default 0)
|
||||||
|
" Emits messages about the detected/used encoding upon opening a file.
|
||||||
|
" - g:autofenc_max_file_size (number >= 0, default 10485760)
|
||||||
|
" If the size of a file is higher than this value (in bytes), then
|
||||||
|
" the autodetection will not be performed.
|
||||||
|
" - g:autofenc_disable_for_files_matching (regular expression, see below)
|
||||||
|
" If the file (with complete path) matches this regular expression,
|
||||||
|
" then the autodetection will not be performed. It is by default set
|
||||||
|
" to disable autodetection for non-local files (e.g. accessed via ftp,
|
||||||
|
" scp etc., because the script can't handle some kind of autodetection
|
||||||
|
" for these files). The regular expression is matched case-sensitively.
|
||||||
|
" - g:autofenc_disable_for_file_types (list of strings, default [])
|
||||||
|
" If the file type matches some of the filetypes specified in this list,
|
||||||
|
" then the autodetection will not be performed. Comparison is done
|
||||||
|
" case-sensitively.
|
||||||
|
" - g:autofenc_autodetect_bom (0 or 1, default 0 if 'ucs-bom' is in
|
||||||
|
" 'fileencodings', 1 otherwise)
|
||||||
|
" Enables/disables detection of encoding by BOM.
|
||||||
|
" - g:autofenc_autodetect_html (0 or 1, default 1)
|
||||||
|
" Enables/disables detection of encoding for HTML based documents.
|
||||||
|
" - g:autofenc_autodetect_html_filetypes (regular expression, see below)
|
||||||
|
" Regular expression for all supported HTML file types.
|
||||||
|
" - g:autofenc_autodetect_xml (0 or 1, default 1)
|
||||||
|
" Enables/disables detection of encoding for XML based documents.
|
||||||
|
" - g:autofenc_autodetect_xml_filetypes (regular expression, see below)
|
||||||
|
" Regular expression for all supported XML file types.
|
||||||
|
" - g:autofenc_autodetect_css (0 or 1, default 1)
|
||||||
|
" Enables/disables detection of encoding for CSS documents.
|
||||||
|
" - g:autofenc_autodetect_css_filetypes (regular expression, see below)
|
||||||
|
" Regular expression for all supported CSS file types.
|
||||||
|
" - g:autofenc_autodetect_comment (0 or 1, default 1)
|
||||||
|
" Enables/disables detection of encoding in comments.
|
||||||
|
" - g:autofenc_autodetect_commentexpr (regular expression, see below)
|
||||||
|
" Pattern for detection of encodings specified in a comment.
|
||||||
|
" - g:autofenc_autodetect_num_of_lines (number >= 0, default 5)
|
||||||
|
" How many lines from the beginning and from the end of the file should
|
||||||
|
" be searched for the possible encoding declaration.
|
||||||
|
" - g:autofenc_autodetect_ext_prog (0 or 1, default 1)
|
||||||
|
" Enables/disables detection of encoding via external program
|
||||||
|
" (see additional settings below).
|
||||||
|
" - g:autofenc_ext_prog_path (string, default 'enca')
|
||||||
|
" Path to the external program. It can be either relative or absolute.
|
||||||
|
" The external program can take any number of arguments, but
|
||||||
|
" the last one must be a path to the file for which the encoding
|
||||||
|
" is to be detected (it will be supplied by this plugin).
|
||||||
|
" Output of the program must be the name of encoding in which the file
|
||||||
|
" is saved (string on a single line).
|
||||||
|
" - g:autofenc_ext_prog_args (string, default '-i -L czech')
|
||||||
|
" Additional program arguments (can be none, i.e. '').
|
||||||
|
" - g:autofenc_ext_prog_unknown_fenc (string, default '???')
|
||||||
|
" If the output of the external program is this string, then it means
|
||||||
|
" that the file encoding was not detected successfully. The string must
|
||||||
|
" be case-sensitive.
|
||||||
|
" - g:autofenc_enc_blacklist (regular expression, default '')
|
||||||
|
" If the detected encoding matches this regular expression, it is
|
||||||
|
" ignored.
|
||||||
|
"
|
||||||
|
" Requirements:
|
||||||
|
" - filetype plugin must be enabled (a line like 'filetype plugin on' must
|
||||||
|
" be in your $HOME/.vimrc [*nix] or %UserProfile%\_vimrc [MS Windows])
|
||||||
|
"
|
||||||
|
" Installation Details:
|
||||||
|
" Put this file into your $HOME/.vim/plugin directory [*nix]
|
||||||
|
" or %UserProfile%\vimfiles\plugin folder [MS Windows].
|
||||||
|
"
|
||||||
|
" Notes:
|
||||||
|
" This script is by all means NOT perfect, but it works for me and suits my
|
||||||
|
" needs very well, so it might be also useful for you. Your feedback,
|
||||||
|
" opinion, suggestions, bug reports, patches, simply anything you have
|
||||||
|
" to say is welcomed!
|
||||||
|
"
|
||||||
|
" There are similar plugins to this one, so if you don't like this one,
|
||||||
|
" you can test these:
|
||||||
|
" - FencView.vim (http://www.vim.org/scripts/script.php?script_id=1708)
|
||||||
|
" Mainly supports detection of encodings for asian languages.
|
||||||
|
" - MultiEnc.vim (http://www.vim.org/scripts/script.php?script_id=1806)
|
||||||
|
" Obsolete, merged with the previous one.
|
||||||
|
" - charset.vim (http://www.vim.org/scripts/script.php?script_id=199)
|
||||||
|
" Not very complete/correct and last update in 2002.
|
||||||
|
" - http://vim.wikia.com/wiki/Detect_encoding_from_the_charset_specified_in_HTML_files
|
||||||
|
" Same basic ideas but only for HTML files.
|
||||||
|
" Let me know if there are others and I'll add them here.
|
||||||
|
"
|
||||||
|
" Changelog:
|
||||||
|
" 1.5 (2012-03-17) Thanks to Ingo Karkat for the updates in this version.
|
||||||
|
" - Supported HTML/XML/CSS file types have been made configurable and added more defaults.
|
||||||
|
" - Do not emit the "unrecognized charset" message when the encoding is known.
|
||||||
|
"
|
||||||
|
" 1.4 (2012-03-11) Thanks to Ingo Karkat for the updates in this version.
|
||||||
|
" - Improved the detection regexp for comments:
|
||||||
|
" - added "fileencoding" and "charset";
|
||||||
|
" - demands that there is a whitespace in front of the keyword, so that
|
||||||
|
" "daycoding" doesn't match;
|
||||||
|
" - g:autofenc_autodetect_commentexpr allows to configure the pattern
|
||||||
|
" for comment detection.
|
||||||
|
" - Introduced g:autofenc_enc_blacklist to disable some encodings. For
|
||||||
|
" example, the enca tool has a tendency to detect plain text files as
|
||||||
|
" UTF-7. With the blacklist, AutoFenc can be instructed to ignore those
|
||||||
|
" encodings.
|
||||||
|
" - The check for ASCII is set to be case-insensitive because enca reports
|
||||||
|
" this in uppercase, so the condition fails unless ignorecase is set.
|
||||||
|
" - Keeps changed CWD with 'autochdir' setting by temporarily disabling it.
|
||||||
|
" For example, suppose that a user has ":lcd .." in
|
||||||
|
" after/ftplugin/gitcommit.vim and that he is in the Git root directory,
|
||||||
|
" not the .git subdir when composing a commit message. The reload of the
|
||||||
|
" buffer by AutoFenc (via :edit) again triggered the automatic change of
|
||||||
|
" the working dir, and therefore the customization was lost. The
|
||||||
|
" 'autochdir' setting needs to be temporarily disabled to avoid that.
|
||||||
|
" - Added a support for plain Vim 7.0 in the shellescape() emulation from
|
||||||
|
" version 1.3.4. Otherwise, there were errors in Vim 7.0.
|
||||||
|
"
|
||||||
|
" 1.3.4 (2012-02-27)
|
||||||
|
" - Don't override when the user explicitly sets file encoding with ++enc
|
||||||
|
" (thanks to Benjamin Fritz).
|
||||||
|
" - Fixed TOhtml version detection (again) and made sure line continuations
|
||||||
|
" can actually be used (thanks to Benjamin Fritz and Ingo Karkat).
|
||||||
|
" - Disabled the option shellslash on Windows before calling shellescape()
|
||||||
|
" (it may cause problems on Windows, thanks for the tip goes to Benjamin
|
||||||
|
" Fritz).
|
||||||
|
"
|
||||||
|
" 1.3.3 (2011-11-29) Thanks to Ingo Karkat for the updates in this version.
|
||||||
|
" - Fixed a problem in the TOhtml detection when, for example,
|
||||||
|
" g:loaded_2html_plugin = 'vim7.3_v6'.
|
||||||
|
" - The return code of the call of an external program via
|
||||||
|
" system(ext_prog_cmd) is now checked. This prevents Vim interpreting an
|
||||||
|
" error message as an encoding.
|
||||||
|
" - shellescape() is now used instead of quoting file_path manually.
|
||||||
|
"
|
||||||
|
" 1.3.2 (2011-11-24) Thanks to Benjamin Fritz for the updates in this version.
|
||||||
|
" - Fixed the detection of the version of the TOhtml plugin.
|
||||||
|
"
|
||||||
|
" 1.3.1 (2011-07-23) Thanks to Benjamin Fritz for the updates in this version.
|
||||||
|
" - Fixed the plugin behavior when reloading a file with different settings.
|
||||||
|
"
|
||||||
|
" 1.3 (2011-04-22) Thanks to Benjamin Fritz for the updates in this version.
|
||||||
|
" - Added support for HTML version 5 encoding detection.
|
||||||
|
" - The script now dies gracefully in old Vims.
|
||||||
|
" - 'g:autofenc_autodetect_comment_num_of_lines' renamed to 'g:autofenc_autodetect_num_of_lines'
|
||||||
|
"
|
||||||
|
" 1.2.1 (2011-04-13)
|
||||||
|
" - Fixed a typo in a variable name (this resulted in an error in some
|
||||||
|
" occasions). Thanks to Charles Lee for pointing this bug out.
|
||||||
|
"
|
||||||
|
" 1.2 (2011-03-31) Thanks to Benjamin Fritz for the updates in this version.
|
||||||
|
" - TOhtml's IANA name/Vim encoding conversion functions are now used.
|
||||||
|
" - Changed BOM detection so it does not duplicate a check Vim already did by
|
||||||
|
" default (i.e. default to off if ucs-bom is in the 'fileencodings').
|
||||||
|
" - Put autocmds in the AutoFenc augroup for easier handling.
|
||||||
|
" - Made autocmd nested so we don't need to worry about restoring everything
|
||||||
|
" that other autocmds may set (e.g. syntax).
|
||||||
|
" - Jumplist or cursor position during detection are not affected.
|
||||||
|
" - The g:autofenc_autodetect_num_of_lines option is now used also in
|
||||||
|
" HTML/XML/CSS detection routines (previously only used for encoding
|
||||||
|
" specified in comments).
|
||||||
|
" - Improved HTML charset line regex.
|
||||||
|
" - Added an option (g:autofenc_emit_message) to emit messages about the
|
||||||
|
" detected/used encoding upon opening a file.
|
||||||
|
"
|
||||||
|
" 1.1.1 (2009-10-03)
|
||||||
|
" - Fixed the comment encoding detection function (the encoding was not
|
||||||
|
" detected if there were some alphanumeric characters before
|
||||||
|
" the "encoding" string, like in "# vim:fileencoding=<encoding-name>").
|
||||||
|
"
|
||||||
|
" 1.1 (2009-08-16)
|
||||||
|
" - Added three configuration possibilites to disable autodetection for
|
||||||
|
" specific files (based on file size, file type and file path).
|
||||||
|
" See script description for more info.
|
||||||
|
"
|
||||||
|
" 1.0.2 (2009-08-11)
|
||||||
|
" - Fixed the XML encoding detection function.
|
||||||
|
" - Minor code and documentation fixes.
|
||||||
|
"
|
||||||
|
" 1.0.1 (2009-08-02)
|
||||||
|
" - Encoding autodetection is now performed only if the opened file
|
||||||
|
" exists (is stored somewhere). So, for example, the autodetection
|
||||||
|
" is now not performed when a new file is opened.
|
||||||
|
" - Correctly works with .viminfo, where the last cursor position
|
||||||
|
" in the file is stored when exiting the file. In the previous version
|
||||||
|
" of this script, this information was sometimes ignored and the cursor
|
||||||
|
" was initially on the very last line in a file. If the user does not
|
||||||
|
" use this .viminfo feature (or he does not use .viminfo at all),
|
||||||
|
" then the cursor will be initially placed on the very first line.
|
||||||
|
" - (Hopefully) fixed the implementation of the function which sets
|
||||||
|
" the detected encoding.
|
||||||
|
"
|
||||||
|
" 1.0 (2009-07-26)
|
||||||
|
" - Initial release version of this script.
|
||||||
|
"
|
||||||
|
|
||||||
|
" Check if the plugin was already loaded. Also, die gracefully if the used Vim
|
||||||
|
" version is too old.
|
||||||
|
if exists('autofenc_loaded') || v:version < 700
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
" Make the loaded variable actually useful by including the version number
|
||||||
|
let autofenc_loaded = '1.5'
|
||||||
|
|
||||||
|
" This plugin uses line continuations
|
||||||
|
if &cpo =~ 'C'
|
||||||
|
let s:oldcpo = &cpo
|
||||||
|
set cpo-=C
|
||||||
|
endif
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Checks whether the selected variable (first parameter) is already set and
|
||||||
|
" if not, it sets it to the value of the second parameter.
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:CheckAndSetVar(var, value)
|
||||||
|
if !exists(a:var)
|
||||||
|
exec 'let ' . a:var . ' = ' . string(a:value)
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Variables initialization (see script description for more information)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_enable', 1)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_emit_messages', 0)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_max_file_size', 10485760)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_disable_for_files_matching', '^[-_a-zA-Z0-9]\+://')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_disable_for_file_types', [])
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_bom', (&fileencodings !~# 'ucs-bom'))
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_html', 1)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_html_filetypes', '^\(html.*\|xhtml\|aspperl\|aspvbs\|cf\|dtml\|gsp\|jsp\|mason\|php\|plp\|smarty\|spyce\|webmacro\)$')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_xml', 1)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_xml_filetypes', '^\(xml\|xquery\|xsd\|xslt\?\|ant\|dsl\|mxml\|svg\|wsh\|xbl\)$')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_css', 1)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_css_filetypes', '^\(css\|sass\)$')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_comment', 1)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_commentexpr', '\c^\A\(.*\s\)\?\(\(\(file\)\?en\)\?coding\|charset\)[:=]\?\s*\zs[-A-Za-z0-9_]\+')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_num_of_lines', 5)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_autodetect_ext_prog', 1)
|
||||||
|
call s:CheckAndSetVar('g:autofenc_ext_prog_path', 'enca')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_ext_prog_args', '-i -L czech')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_ext_prog_unknown_fenc', '???')
|
||||||
|
call s:CheckAndSetVar('g:autofenc_enc_blacklist', '')
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Normalizes selected encoding and returns it, so it can be safely used as
|
||||||
|
" a new encoding. This function should be called before a new encoding is set.
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:NormalizeEncoding(enc)
|
||||||
|
let nenc = tolower(a:enc)
|
||||||
|
|
||||||
|
" Recent versions of TOhtml runtime plugin have some nice charset to encoding
|
||||||
|
" functions which even allow user overrides. Use them if available.
|
||||||
|
let nenc2 = ""
|
||||||
|
silent! let nenc2 = tohtml#EncodingFromCharset(nenc)
|
||||||
|
if nenc2 != ""
|
||||||
|
return nenc2
|
||||||
|
" If the TOhtml function is unavailable, at least handle some canonical
|
||||||
|
" encoding names in Vim.
|
||||||
|
elseif nenc =~ 'iso[-_]8859-1'
|
||||||
|
return 'latin1'
|
||||||
|
elseif nenc =~ 'iso[-_]8859-2'
|
||||||
|
return 'latin2'
|
||||||
|
elseif nenc ==? 'gb2312'
|
||||||
|
return 'cp936' " GB2312 imprecisely means CP936 in HTML
|
||||||
|
elseif nenc =~ '\(cp\|win\(dows\)\?\)-125\d'
|
||||||
|
return 'cp125'.nenc[strlen(nenc)-1]
|
||||||
|
elseif nenc == 'utf8'
|
||||||
|
return 'utf-8'
|
||||||
|
elseif g:autofenc_emit_messages && nenc !~ '^\%(8bit-\|2byte-\)\?\%(latin[12]\|utf-8\|utf-16\%(le\)\?\|ucs-[24]\%(le\)\?\|iso-8859-\d\{1,2}\|cp\d\{3,4}\)$'
|
||||||
|
echomsg 'AutoFenc: detected unrecognized charset, trying fenc='.nenc
|
||||||
|
endif
|
||||||
|
|
||||||
|
return nenc
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Sets the selected file encoding. Returns 1 if the file was reloaded,
|
||||||
|
" 0 otherwise.
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:SetFileEncoding(enc)
|
||||||
|
let nenc = s:NormalizeEncoding(a:enc)
|
||||||
|
|
||||||
|
" Check whether we're not trying to set the current file encoding
|
||||||
|
if nenc != "" && nenc !=? &fenc
|
||||||
|
if exists('&autochdir') && &autochdir
|
||||||
|
" Other autocmds may have changed the window's working directory;
|
||||||
|
" when 'autochdir' is set, the :edit will reset that, so temporarily
|
||||||
|
" disable the setting.
|
||||||
|
let old_autochdir = &autochdir
|
||||||
|
set noautochdir
|
||||||
|
endif
|
||||||
|
try
|
||||||
|
" Set the file encoding and reload it, keeping any user-specified
|
||||||
|
" fileformat, and keeping any bad bytes in case the header is wrong
|
||||||
|
" (this won't let the user save if a conversion error happened on
|
||||||
|
" read)
|
||||||
|
exec 'edit ++enc='.nenc.' ++ff='.&ff.' ++bad=keep'
|
||||||
|
finally
|
||||||
|
if exists('old_autochdir')
|
||||||
|
let &autochdir = old_autochdir
|
||||||
|
endif
|
||||||
|
endtry
|
||||||
|
|
||||||
|
" File was reloaded
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
" File was not reloaded
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Tries to detect a BOM (byte order mark) at the beginning of the file to
|
||||||
|
" detect a multibyte encoding. If there is a BOM, it returns the appropriate
|
||||||
|
" encoding, otherwise the empty string is returned.
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:BOMEncodingDetection()
|
||||||
|
" Implementation of this function is based on a part of the FencsView.vim
|
||||||
|
" plugin by Ming Bai (http://www.vim.org/scripts/script.php?script_id=1708)
|
||||||
|
|
||||||
|
" Get the first line of the file
|
||||||
|
let file_content = readfile(expand('%:p'), 'b', 1)
|
||||||
|
if file_content == []
|
||||||
|
" Empty file
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
|
let first_line = file_content[0]
|
||||||
|
|
||||||
|
" Check whether it contains BOM and if so, return appropriate encoding
|
||||||
|
" Note: If the index is out of bounds, ahx is set to '' automatically
|
||||||
|
let ah1 = first_line[0]
|
||||||
|
let ah2 = first_line[1]
|
||||||
|
let ah3 = first_line[2]
|
||||||
|
let ah4 = first_line[3]
|
||||||
|
" TODO: I don't know why but if there is a NUL byte, the char2nr()
|
||||||
|
" function transforms it to a newline (0x0A) instead of 0x00...
|
||||||
|
let a1 = char2nr(ah1) == 0x0A ? 0x00 : char2nr(ah1)
|
||||||
|
let a2 = char2nr(ah2) == 0x0A ? 0x00 : char2nr(ah2)
|
||||||
|
let a3 = char2nr(ah3) == 0x0A ? 0x00 : char2nr(ah3)
|
||||||
|
let a4 = char2nr(ah4) == 0x0A ? 0x00 : char2nr(ah4)
|
||||||
|
if a1.a2.a3.a4 == 0x00.0x00.0xfe.0xff
|
||||||
|
return 'utf-32'
|
||||||
|
elseif a1.a2.a3.a4 == 0xff.0xfe.0x00.0x00
|
||||||
|
return 'utf-32le'
|
||||||
|
elseif a1.a2.a3 == 0xef.0xbb.0xbf
|
||||||
|
return 'utf-8'
|
||||||
|
elseif a1.a2 == 0xfe.0xff
|
||||||
|
return 'utf-16'
|
||||||
|
elseif a1.a2 == 0xff.0xfe
|
||||||
|
return 'utf-16le'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" There was no legal BOM
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Tries the HTML way of encoding detection of the current file and returns the
|
||||||
|
" detected encoding (or the empty string, if the encoding was not detected).
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:HTMLEncodingDetection()
|
||||||
|
" This method is based on the meta tag in the head of the HTML document
|
||||||
|
" (<meta http-equiv="Content-Type" ...)
|
||||||
|
|
||||||
|
" Store the actual position in the file and move to the very first line
|
||||||
|
" in the file
|
||||||
|
let curpos=getpos('.')
|
||||||
|
keepjumps 1
|
||||||
|
|
||||||
|
let enc = ''
|
||||||
|
|
||||||
|
" The following regexp is a modified version of the regexp found here:
|
||||||
|
" http://vim.wikia.com/wiki/Detect_encoding_from_the_charset_specified_in_HTML_files
|
||||||
|
let charset_line = search('\c<meta\_s\+http-equiv=\([''"]\?\)Content-Type\1\_s\+content=\([''"]\)[A-Za-z]\+/[+A-Za-z]\+;\_s*charset=[-A-Za-z0-9_]\+\2', 'nc', g:autofenc_autodetect_num_of_lines)
|
||||||
|
" If charset line was not found, try attributes in reverse order since order is
|
||||||
|
" not actually important.
|
||||||
|
if charset_line == 0
|
||||||
|
let charset_line = search('\c<meta\_s\+content=\([''"]\)[A-Za-z]\+/[+A-Za-z]\+;\_s*charset=[-A-Za-z0-9_]\+\1\_s\+http-equiv=\([''"]\?\)Content-Type\2', 'nc', g:autofenc_autodetect_num_of_lines)
|
||||||
|
endif
|
||||||
|
" Detect in HTML version 5
|
||||||
|
if charset_line == 0
|
||||||
|
let charset_line = search('\c<meta\_s\+charset=\([''"]\)[-A-Za-z0-9_]\+\1', 'nc', g:autofenc_autodetect_num_of_lines)
|
||||||
|
endif
|
||||||
|
if charset_line != 0
|
||||||
|
let enc = matchstr(getline(charset_line), 'charset=\([''"]\)\?\zs[-A-Za-z0-9_]\+\ze\1')
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Restore the original position in the file
|
||||||
|
|
||||||
|
call setpos('.', curpos)
|
||||||
|
|
||||||
|
return enc
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Tries the XML way of encoding detection of the current file and returns the
|
||||||
|
" detected encoding (or the empty string, if the encoding was not detected).
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:XMLEncodingDetection()
|
||||||
|
" The first part of this method is based on the first line of XML files
|
||||||
|
" (<?xml version="..." encoding="..."?>)
|
||||||
|
|
||||||
|
" Store the actual position in the file and move to the very first line
|
||||||
|
" in the file
|
||||||
|
let curpos=getpos('.')
|
||||||
|
keepjumps 1
|
||||||
|
|
||||||
|
let enc = ''
|
||||||
|
|
||||||
|
let charset_line = search('\c<?xml\s\+version="[.0-9]\+"\s\+encoding="[-A-Za-z0-9_]\+"', 'nc', g:autofenc_autodetect_num_of_lines)
|
||||||
|
if charset_line != 0
|
||||||
|
let enc = matchstr(getline(charset_line), 'encoding="\zs[-A-Za-z0-9_]\+')
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Restore the original position in the file
|
||||||
|
call setpos('.', curpos)
|
||||||
|
|
||||||
|
" If there was no encoding specified, return utf-8 (the check for BOM
|
||||||
|
" should be done in another function - if the user wish that)
|
||||||
|
return enc != '' ? enc : 'utf-8'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Tries the CSS way of encoding detection of the current file and returns the
|
||||||
|
" detected encoding (or the empty string, if the encoding was not detected).
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:CSSEncodingDetection()
|
||||||
|
" This method is based on the @charset 'at-rule'
|
||||||
|
" (see http://www.w3.org/International/questions/qa-css-charset)
|
||||||
|
|
||||||
|
" Store the actual position in the file and move to the very first line
|
||||||
|
" in the file
|
||||||
|
let curpos=getpos('.')
|
||||||
|
keepjumps 1
|
||||||
|
|
||||||
|
let enc = ''
|
||||||
|
|
||||||
|
" Note: The specs says that this line should be the first line in the file,
|
||||||
|
" but I'm searching every line in the file (some comments could perhaps
|
||||||
|
" precede the @charset in practice). If you don't like it, you are
|
||||||
|
" encouraged to change the code :).
|
||||||
|
let charset_line = search('\c^\s*@charset\s\+"[-A-Za-z0-9_]\+"', 'nc', g:autofenc_autodetect_num_of_lines)
|
||||||
|
if charset_line != 0
|
||||||
|
let enc = matchstr(getline(charset_line), '^\s*@charset\s\+"\zs[-A-Za-z0-9_]\+')
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Restore the original position in the file
|
||||||
|
call setpos('.', curpos)
|
||||||
|
|
||||||
|
return enc
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Tries to detect encoding via encoding specified in a comment. The file is
|
||||||
|
" searched for a line like '# encoding: utf-8' and the file encoding is
|
||||||
|
" returned according to this line. If there is no such line, the empty string
|
||||||
|
" is returned.
|
||||||
|
"
|
||||||
|
" The default format of the comment that specifies encoding is some
|
||||||
|
" non-alphabetic characters at the beginning of the line, then 'charset'
|
||||||
|
" or '[[file]en]coding' (without quotes, case insensitive), which is followed
|
||||||
|
" by optional ':' (and whitespace) and the name of the encoding.
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:CommentEncodingDetection()
|
||||||
|
" Get first and last X lines from the file (according to the configuration)
|
||||||
|
let num_of_lines = g:autofenc_autodetect_num_of_lines
|
||||||
|
let lines_to_search_enc = readfile(expand('%:p'), '', num_of_lines)
|
||||||
|
let lines_to_search_enc += readfile(expand('%:p'), '', -num_of_lines)
|
||||||
|
|
||||||
|
" Check all of the returned lines
|
||||||
|
for line in lines_to_search_enc
|
||||||
|
let enc = matchstr(line, g:autofenc_autodetect_commentexpr)
|
||||||
|
if enc != ''
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" A safe version of shellescape. Use it instead of shellescape().
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:SafeShellescape(path)
|
||||||
|
try
|
||||||
|
if exists('*shellescape')
|
||||||
|
" On MS Windows, we need to disable the option shellslash before calling
|
||||||
|
" shellescape() because otherwise, it may do stupid things (see, e.g.,
|
||||||
|
" http://vim.1045645.n5.nabble.com/shellescape-doesn-t-work-in-Windows-with-shellslash-set-td1211618.html).
|
||||||
|
if has("win32") || has("win64")
|
||||||
|
let old_ssl = &shellslash
|
||||||
|
set noshellslash
|
||||||
|
endif
|
||||||
|
return shellescape(a:path)
|
||||||
|
else
|
||||||
|
" The shellescape({string}) function only exists since Vim 7.0.111
|
||||||
|
" Try to crudely support plain Vim 7.0, too.
|
||||||
|
return '"'.substitute(a:path, '"', '\\"', 'g').'"'
|
||||||
|
endif
|
||||||
|
finally
|
||||||
|
if exists('old_ssl')
|
||||||
|
let &shellslash = old_ssl
|
||||||
|
endif
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Tries to detect the file encoding via selected external program.
|
||||||
|
" If the program is not executable or there is some error, it returns
|
||||||
|
" the empty string. Otherwise, the detected encoding is returned.
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:ExtProgEncodingDetection()
|
||||||
|
if executable(g:autofenc_ext_prog_path)
|
||||||
|
" Get full path of the currently edited file
|
||||||
|
let file_path = expand('%:p')
|
||||||
|
|
||||||
|
" Create the complete external program command by appending program
|
||||||
|
" arguments and the current file path to the external program.
|
||||||
|
"
|
||||||
|
let ext_prog_cmd = g:autofenc_ext_prog_path.' '.g:autofenc_ext_prog_args.' '.s:SafeShellescape(file_path)
|
||||||
|
|
||||||
|
" Run it to get the encoding
|
||||||
|
let enc = system(ext_prog_cmd)
|
||||||
|
if v:shell_error != 0
|
||||||
|
" An error occurred
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Remove trailing newline from the output
|
||||||
|
" (system() removes any \r from the result automatically)
|
||||||
|
let enc = substitute(enc, '\n', '', '')
|
||||||
|
|
||||||
|
if enc != g:autofenc_ext_prog_unknown_fenc
|
||||||
|
" Encoding was (probably) detected successfully
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Tries to detect encoding of the current file via several ways (according
|
||||||
|
" to the configuration) and returns it. If the encoding was not detected
|
||||||
|
" successfully, it returns the empty string - this can happen because:
|
||||||
|
" - the file is in unknown encoding
|
||||||
|
" - the file is not stored anywhere (e.g. a new file was opened)
|
||||||
|
" - autodetection is disabled for this file (either the file is too large
|
||||||
|
" or autodetection is disabled for this file, see configuration)
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:DetectFileEncoding()
|
||||||
|
" Check whether the autodetection should be performed
|
||||||
|
" (see function description for more information)
|
||||||
|
let file_path = expand('%:p')
|
||||||
|
let file_size = getfsize(file_path)
|
||||||
|
if file_path == '' ||
|
||||||
|
\ file_size > g:autofenc_max_file_size || file_size < 0 ||
|
||||||
|
\ file_path =~ g:autofenc_disable_for_files_matching ||
|
||||||
|
\ index(g:autofenc_disable_for_file_types, &ft, 0, 1) != -1
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
|
|
||||||
|
" BOM encoding detection
|
||||||
|
if g:autofenc_autodetect_bom
|
||||||
|
let enc = s:BOMEncodingDetection()
|
||||||
|
if enc != ''
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" HTML encoding detection
|
||||||
|
if g:autofenc_autodetect_html && &filetype =~? g:autofenc_autodetect_html_filetypes
|
||||||
|
let enc = s:HTMLEncodingDetection()
|
||||||
|
if enc != ''
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" XML encoding detection
|
||||||
|
if g:autofenc_autodetect_xml && &filetype =~? g:autofenc_autodetect_xml_filetypes
|
||||||
|
let enc = s:XMLEncodingDetection()
|
||||||
|
if enc != ''
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" CSS encoding detection
|
||||||
|
if g:autofenc_autodetect_css && &filetype =~? g:autofenc_autodetect_css_filetypes
|
||||||
|
let enc = s:CSSEncodingDetection()
|
||||||
|
if enc != ''
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Comment encoding detection
|
||||||
|
if g:autofenc_autodetect_comment
|
||||||
|
let enc = s:CommentEncodingDetection()
|
||||||
|
if enc != ''
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" External program encoding detection
|
||||||
|
if g:autofenc_autodetect_ext_prog
|
||||||
|
let enc = s:ExtProgEncodingDetection()
|
||||||
|
if enc != ''
|
||||||
|
return enc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Encoding was not detected
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
" Main plugin function. Tries to autodetect the correct file encoding
|
||||||
|
" and sets the detected one (if any). If the ASCII encoding is detected,
|
||||||
|
" it does nothing so allow Vim to set its internal encoding instead.
|
||||||
|
"-------------------------------------------------------------------------------
|
||||||
|
function s:DetectAndSetFileEncoding()
|
||||||
|
let enc = s:DetectFileEncoding()
|
||||||
|
|
||||||
|
" don't call again on the nested trigger from the edit
|
||||||
|
let b:autofenc_done = enc
|
||||||
|
|
||||||
|
if (enc != '') && (enc !=? 'ascii') &&
|
||||||
|
\ (g:autofenc_enc_blacklist == '' || enc !~? g:autofenc_enc_blacklist)
|
||||||
|
if s:SetFileEncoding(enc)
|
||||||
|
if g:autofenc_emit_messages
|
||||||
|
echomsg "AutoFenc: Detected [".enc."] from file, loaded with fenc=".&fenc
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Set the detected file encoding
|
||||||
|
if g:autofenc_enable
|
||||||
|
augroup AutoFenc
|
||||||
|
au!
|
||||||
|
" We need to check that we're not in the middle of a reload due to this
|
||||||
|
" plugin otherwise can recurse forever. But unlet the variable to allow
|
||||||
|
" re-detection on the next read of this buffer if it is just unloaded.
|
||||||
|
au BufRead * nested
|
||||||
|
\ if !exists('b:autofenc_done') |
|
||||||
|
\ if v:cmdarg !~ '++enc' |
|
||||||
|
\ call s:DetectAndSetFileEncoding() |
|
||||||
|
\ endif |
|
||||||
|
\ else |
|
||||||
|
\ unlet b:autofenc_done |
|
||||||
|
\ endif
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Restore line continuations (and the rest of &cpo) when done
|
||||||
|
if exists('s:oldcpo')
|
||||||
|
let &cpo = s:oldcpo
|
||||||
|
unlet s:oldcpo
|
||||||
|
endif
|
||||||
|
|
||||||
|
" vim: noet
|
|
@ -5,3 +5,9 @@ source! /home/kolan/.vimperatorrc.local
|
||||||
" vim: set ft=vimperator:
|
" vim: set ft=vimperator:
|
||||||
map <C-S-p> :tabm -1<CR>
|
map <C-S-p> :tabm -1<CR>
|
||||||
map <C-S-n> :tabm +1<CR>
|
map <C-S-n> :tabm +1<CR>
|
||||||
|
|
||||||
|
" Valadoc.org: disable 'new window' in 'edit mode'
|
||||||
|
:imap <C-n> <Esc>gt<Esc>
|
||||||
|
:imap <C-S-n> <Esc>gt<Esc>
|
||||||
|
:imap <C-p> <Esc>gT<Esc>
|
||||||
|
:imap <C-S-p> <Esc>gT<Esc>
|
||||||
|
|
8
.vimrc
8
.vimrc
|
@ -6,7 +6,7 @@ set ts=4 " у меня табуляция (tabstop) 4 символ
|
||||||
set tabstop=4
|
set tabstop=4
|
||||||
set shiftwidth=4
|
set shiftwidth=4
|
||||||
set textwidth=79
|
set textwidth=79
|
||||||
set tw=79
|
set tw=159
|
||||||
set colorcolumn=80,120,160
|
set colorcolumn=80,120,160
|
||||||
"set expandtab
|
"set expandtab
|
||||||
set autoindent
|
set autoindent
|
||||||
|
@ -27,7 +27,7 @@ nmap <F6> :set invlist<cr>
|
||||||
" set breakindent " https://www.linux.org.ru/forum/general/10615635?lastmod=1403800233259
|
" set breakindent " https://www.linux.org.ru/forum/general/10615635?lastmod=1403800233259
|
||||||
|
|
||||||
" https://ru.wikibooks.org/wiki/Vim#%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_2
|
" https://ru.wikibooks.org/wiki/Vim#%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_2
|
||||||
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбю;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.,ЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
|
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбю;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.,ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
|
||||||
|
|
||||||
" Setup for the GNU coding format standard
|
" Setup for the GNU coding format standard
|
||||||
function! GnuIndent()
|
function! GnuIndent()
|
||||||
|
@ -191,7 +191,7 @@ map <F4> [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>
|
||||||
|
|
||||||
" Foldging
|
" Foldging
|
||||||
set foldenable
|
set foldenable
|
||||||
set foldmethod=syntax
|
" set foldmethod=syntax
|
||||||
|
|
||||||
" VUNDLE "
|
" VUNDLE "
|
||||||
set nocompatible " be iMproved
|
set nocompatible " be iMproved
|
||||||
|
@ -209,7 +209,7 @@ Bundle 'gmarik/vundle'
|
||||||
" original repos on github
|
" original repos on github
|
||||||
Bundle 'tpope/vim-fugitive'
|
Bundle 'tpope/vim-fugitive'
|
||||||
Bundle 'Lokaltog/vim-easymotion'
|
Bundle 'Lokaltog/vim-easymotion'
|
||||||
"Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
|
" Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
|
||||||
Bundle 'tpope/vim-rails.git'
|
Bundle 'tpope/vim-rails.git'
|
||||||
" vim-scripts repos
|
" vim-scripts repos
|
||||||
Bundle 'L9'
|
Bundle 'L9'
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
DEFAULT_SESSION=awesome
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
urxvt)
|
||||||
|
exec urxvt
|
||||||
|
;;
|
||||||
|
awesome)
|
||||||
|
exec awesome
|
||||||
|
;;
|
||||||
|
fvwm-crystal)
|
||||||
|
exec fvwm-crystal
|
||||||
|
;;
|
||||||
|
fvwm) exec fvwm
|
||||||
|
;;
|
||||||
|
kde)
|
||||||
|
exec startkde
|
||||||
|
;;
|
||||||
|
xfce4)
|
||||||
|
exec startxfce4
|
||||||
|
;;
|
||||||
|
fluxbox)
|
||||||
|
exec startfluxbox
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exec $DEFAULT_SESSION
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,299 @@
|
||||||
|
# XScreenSaver Preferences File
|
||||||
|
# Written by xscreensaver-settings 6.07 for kolan on Fri Nov 17 11:56:11 2023.
|
||||||
|
# https://www.jwz.org/xscreensaver/
|
||||||
|
|
||||||
|
timeout: 0:08:00
|
||||||
|
cycle: 0:00:00
|
||||||
|
lock: True
|
||||||
|
lockTimeout: 0:30:00
|
||||||
|
passwdTimeout: 0:00:30
|
||||||
|
visualID: default
|
||||||
|
installColormap: True
|
||||||
|
verbose: False
|
||||||
|
splash: True
|
||||||
|
splashDuration: 0:00:05
|
||||||
|
demoCommand: xscreensaver-settings
|
||||||
|
nice: 10
|
||||||
|
fade: True
|
||||||
|
unfade: False
|
||||||
|
fadeSeconds: 0:00:03
|
||||||
|
ignoreUninstalledPrograms:False
|
||||||
|
dpmsEnabled: True
|
||||||
|
dpmsQuickOff: True
|
||||||
|
dpmsStandby: 0:08:00
|
||||||
|
dpmsSuspend: 0:08:00
|
||||||
|
dpmsOff: 0:08:00
|
||||||
|
grabDesktopImages: False
|
||||||
|
grabVideoFrames: False
|
||||||
|
chooseRandomImages: False
|
||||||
|
imageDirectory:
|
||||||
|
|
||||||
|
mode: blank
|
||||||
|
selected: -1
|
||||||
|
|
||||||
|
textMode: date
|
||||||
|
textLiteral: XScreenSaver
|
||||||
|
textFile: /etc/gentoo-release
|
||||||
|
textProgram: fortune
|
||||||
|
textURL: https://planet.gentoo.org/rss20.xml
|
||||||
|
dialogTheme: default
|
||||||
|
settingsGeom: 1920,15 -1,-1
|
||||||
|
|
||||||
|
programs: \
|
||||||
|
maze --root \n\
|
||||||
|
GL: superquadrics --root \n\
|
||||||
|
attraction --root \n\
|
||||||
|
blitspin --root \n\
|
||||||
|
greynetic --root \n\
|
||||||
|
helix --root \n\
|
||||||
|
hopalong --root \n\
|
||||||
|
imsmap --root \n\
|
||||||
|
- noseguy --root \n\
|
||||||
|
- pyro --root \n\
|
||||||
|
qix --root \n\
|
||||||
|
- rocks --root \n\
|
||||||
|
rorschach --root \n\
|
||||||
|
decayscreen --root \n\
|
||||||
|
flame --root \n\
|
||||||
|
halo --root \n\
|
||||||
|
slidescreen --root \n\
|
||||||
|
pedal --root \n\
|
||||||
|
bouboule --root \n\
|
||||||
|
- braid --root \n\
|
||||||
|
coral --root \n\
|
||||||
|
deco --root \n\
|
||||||
|
drift --root \n\
|
||||||
|
- fadeplot --root \n\
|
||||||
|
galaxy --root \n\
|
||||||
|
goop --root \n\
|
||||||
|
grav --root \n\
|
||||||
|
ifs --root \n\
|
||||||
|
GL: jigsaw --root \n\
|
||||||
|
julia --root \n\
|
||||||
|
- kaleidescope --root \n\
|
||||||
|
GL: moebius --root \n\
|
||||||
|
moire --root \n\
|
||||||
|
GL: morph3d --root \n\
|
||||||
|
mountain --root \n\
|
||||||
|
munch --root \n\
|
||||||
|
penrose --root \n\
|
||||||
|
GL: pipes --root \n\
|
||||||
|
rdbomb --root \n\
|
||||||
|
GL: rubik --root \n\
|
||||||
|
- sierpinski --root \n\
|
||||||
|
slip --root \n\
|
||||||
|
GL: sproingies --root \n\
|
||||||
|
starfish --root \n\
|
||||||
|
strange --root \n\
|
||||||
|
swirl --root \n\
|
||||||
|
triangle --root \n\
|
||||||
|
xjack --root \n\
|
||||||
|
xlyap --root \n\
|
||||||
|
GL: atlantis --root \n\
|
||||||
|
bsod --root \n\
|
||||||
|
GL: bubble3d --root \n\
|
||||||
|
GL: cage --root \n\
|
||||||
|
- crystal --root \n\
|
||||||
|
cynosure --root \n\
|
||||||
|
discrete --root \n\
|
||||||
|
distort --root \n\
|
||||||
|
epicycle --root \n\
|
||||||
|
flow --root \n\
|
||||||
|
GL: glplanet --root \n\
|
||||||
|
interference --root \n\
|
||||||
|
kumppa --root \n\
|
||||||
|
GL: lament --root \n\
|
||||||
|
moire2 --root \n\
|
||||||
|
GL: sonar --root \n\
|
||||||
|
GL: stairs --root \n\
|
||||||
|
truchet --root \n\
|
||||||
|
- vidwhacker --root \n\
|
||||||
|
- webcollage --root \n\
|
||||||
|
blaster --root \n\
|
||||||
|
bumps --root \n\
|
||||||
|
ccurve --root \n\
|
||||||
|
compass --root \n\
|
||||||
|
deluxe --root \n\
|
||||||
|
- demon --root \n\
|
||||||
|
- GL: extrusion --root \n\
|
||||||
|
- loop --root \n\
|
||||||
|
penetrate --root \n\
|
||||||
|
petri --root \n\
|
||||||
|
phosphor --root \n\
|
||||||
|
GL: pulsar --root \n\
|
||||||
|
ripples --root \n\
|
||||||
|
shadebobs --root \n\
|
||||||
|
GL: sierpinski3d --root \n\
|
||||||
|
spotlight --root \n\
|
||||||
|
squiral --root \n\
|
||||||
|
wander --root \n\
|
||||||
|
xflame --root \n\
|
||||||
|
xmatrix --root \n\
|
||||||
|
GL: gflux --root \n\
|
||||||
|
- nerverot --root \n\
|
||||||
|
xrayswarm --root \n\
|
||||||
|
xspirograph --root \n\
|
||||||
|
GL: circuit --root \n\
|
||||||
|
GL: dangerball --root \n\
|
||||||
|
- GL: dnalogo --root \n\
|
||||||
|
GL: engine --root \n\
|
||||||
|
GL: flipscreen3d --root \n\
|
||||||
|
GL: gltext --root \n\
|
||||||
|
GL: menger --root \n\
|
||||||
|
GL: molecule --root \n\
|
||||||
|
rotzoomer --root \n\
|
||||||
|
scooter --root \n\
|
||||||
|
speedmine --root \n\
|
||||||
|
GL: starwars --root \n\
|
||||||
|
GL: stonerview --root \n\
|
||||||
|
vermiculate --root \n\
|
||||||
|
whirlwindwarp --root \n\
|
||||||
|
zoom --root \n\
|
||||||
|
anemone --root \n\
|
||||||
|
apollonian --root \n\
|
||||||
|
GL: boxed --root \n\
|
||||||
|
GL: cubenetic --root \n\
|
||||||
|
GL: endgame --root \n\
|
||||||
|
euler2d --root \n\
|
||||||
|
fluidballs --root \n\
|
||||||
|
GL: flurry --root \n\
|
||||||
|
- GL: glblur --root \n\
|
||||||
|
GL: glsnake --root \n\
|
||||||
|
halftone --root \n\
|
||||||
|
GL: juggler3d --root \n\
|
||||||
|
GL: lavalite --root \n\
|
||||||
|
- polyominoes --root \n\
|
||||||
|
GL: queens --root \n\
|
||||||
|
- GL: sballs --root \n\
|
||||||
|
GL: spheremonics --root \n\
|
||||||
|
twang --root \n\
|
||||||
|
- GL: antspotlight --root \n\
|
||||||
|
apple2 --root \n\
|
||||||
|
GL: atunnel --root \n\
|
||||||
|
barcode --root \n\
|
||||||
|
GL: blinkbox --root \n\
|
||||||
|
GL: blocktube --root \n\
|
||||||
|
GL: bouncingcow --root \n\
|
||||||
|
cloudlife --root \n\
|
||||||
|
GL: cubestorm --root \n\
|
||||||
|
eruption --root \n\
|
||||||
|
GL: flipflop --root \n\
|
||||||
|
GL: flyingtoasters --root \n\
|
||||||
|
fontglide --root \n\
|
||||||
|
GL: gleidescope --root \n\
|
||||||
|
GL: glknots --root \n\
|
||||||
|
GL: glmatrix --root \n\
|
||||||
|
- GL: glslideshow --root \n\
|
||||||
|
GL: hypertorus --root \n\
|
||||||
|
- GL: jigglypuff --root \n\
|
||||||
|
metaballs --root \n\
|
||||||
|
GL: mirrorblob --root \n\
|
||||||
|
piecewise --root \n\
|
||||||
|
GL: polytopes --root \n\
|
||||||
|
pong --root \n\
|
||||||
|
popsquares --root \n\
|
||||||
|
GL: surfaces --root \n\
|
||||||
|
xanalogtv --root \n\
|
||||||
|
abstractile --root \n\
|
||||||
|
anemotaxis --root \n\
|
||||||
|
- GL: antinspect --root \n\
|
||||||
|
fireworkx --root \n\
|
||||||
|
fuzzyflakes --root \n\
|
||||||
|
interaggregate --root \n\
|
||||||
|
intermomentary --root \n\
|
||||||
|
memscroller --root \n\
|
||||||
|
GL: noof --root \n\
|
||||||
|
pacman --root \n\
|
||||||
|
GL: pinion --root \n\
|
||||||
|
GL: polyhedra --root \n\
|
||||||
|
- GL: providence --root \n\
|
||||||
|
substrate --root \n\
|
||||||
|
wormhole --root \n\
|
||||||
|
- GL: antmaze --root \n\
|
||||||
|
GL: boing --root \n\
|
||||||
|
boxfit --root \n\
|
||||||
|
GL: carousel --root \n\
|
||||||
|
celtic --root \n\
|
||||||
|
GL: crackberg --root \n\
|
||||||
|
GL: cube21 --root \n\
|
||||||
|
fiberlamp --root \n\
|
||||||
|
GL: fliptext --root \n\
|
||||||
|
GL: glhanoi --root \n\
|
||||||
|
GL: tangram --root \n\
|
||||||
|
GL: timetunnel --root \n\
|
||||||
|
GL: glschool --root \n\
|
||||||
|
GL: topblock --root \n\
|
||||||
|
GL: cubicgrid --root \n\
|
||||||
|
cwaves --root \n\
|
||||||
|
GL: gears --root \n\
|
||||||
|
GL: glcells --root \n\
|
||||||
|
GL: lockward --root \n\
|
||||||
|
m6502 --root \n\
|
||||||
|
GL: moebiusgears --root \n\
|
||||||
|
GL: voronoi --root \n\
|
||||||
|
GL: hypnowheel --root \n\
|
||||||
|
GL: klein --root \n\
|
||||||
|
- lcdscrub --root \n\
|
||||||
|
GL: photopile --root \n\
|
||||||
|
GL: skytentacles --root \n\
|
||||||
|
GL: rubikblocks --root \n\
|
||||||
|
GL: companioncube --root \n\
|
||||||
|
GL: hilbert --root \n\
|
||||||
|
GL: tronbit --root \n\
|
||||||
|
GL: geodesic --root \n\
|
||||||
|
hexadrop --root \n\
|
||||||
|
GL: kaleidocycle --root \n\
|
||||||
|
GL: quasicrystal --root \n\
|
||||||
|
GL: unknownpleasures --root \n\
|
||||||
|
binaryring --root \n\
|
||||||
|
GL: cityflow --root \n\
|
||||||
|
GL: geodesicgears --root \n\
|
||||||
|
GL: projectiveplane --root \n\
|
||||||
|
GL: romanboy --root \n\
|
||||||
|
tessellimage --root \n\
|
||||||
|
GL: winduprobot --root \n\
|
||||||
|
GL: splitflap --root \n\
|
||||||
|
GL: cubestack --root \n\
|
||||||
|
GL: cubetwist --root \n\
|
||||||
|
GL: discoball --root \n\
|
||||||
|
GL: dymaxionmap --root \n\
|
||||||
|
GL: energystream --root \n\
|
||||||
|
GL: hexstrut --root \n\
|
||||||
|
GL: hydrostat --root \n\
|
||||||
|
GL: raverhoop --root \n\
|
||||||
|
GL: splodesic --root \n\
|
||||||
|
GL: unicrud --root \n\
|
||||||
|
GL: esper --root \n\
|
||||||
|
GL: vigilance --root \n\
|
||||||
|
GL: crumbler --root \n\
|
||||||
|
filmleader --root \n\
|
||||||
|
glitchpeg --root \n\
|
||||||
|
GL: handsy --root \n\
|
||||||
|
GL: maze3d --root \n\
|
||||||
|
GL: peepers --root \n\
|
||||||
|
GL: razzledazzle --root \n\
|
||||||
|
vfeedback --root \n\
|
||||||
|
GL: deepstars --root \n\
|
||||||
|
GL: gravitywell --root \n\
|
||||||
|
GL: beats --root \n\
|
||||||
|
GL: covid19 --root \n\
|
||||||
|
GL: etruscanvenus --root \n\
|
||||||
|
GL: gibson --root \n\
|
||||||
|
GL: headroom --root \n\
|
||||||
|
GL: sphereeversion --root \n\
|
||||||
|
binaryhorizon --root \n\
|
||||||
|
marbling --root \n\
|
||||||
|
GL: chompytower --root \n\
|
||||||
|
GL: hextrail --root \n\
|
||||||
|
GL: mapscroller --root \n\
|
||||||
|
GL: nakagin --root \n\
|
||||||
|
GL: squirtorus --root \n\
|
||||||
|
GL: cubocteversion --root \n\
|
||||||
|
droste --root \n\
|
||||||
|
GL: papercube --root \n\
|
||||||
|
GL: skulloop --root \n\
|
||||||
|
|
||||||
|
|
||||||
|
pointerHysteresis: 10
|
||||||
|
authWarningSlack: 20
|
||||||
|
|
Loading…
Reference in New Issue