Compare commits
325 Commits
Author | SHA1 | Date |
---|---|---|
lelgenio | 370e33c9ba | |
lelgenio | 6764ee4285 | |
lelgenio | 1ed2194db2 | |
lelgenio | eafce70970 | |
lelgenio | 246f962e7f | |
lelgenio | ce81746c0d | |
lelgenio | 736591640c | |
lelgenio | 39fe12ba09 | |
lelgenio | d635850229 | |
lelgenio | f5dec578b3 | |
lelgenio | b6cec6d713 | |
lelgenio | 1186e23540 | |
lelgenio | 8fcf3fa374 | |
lelgenio | 99ef5a5cad | |
lelgenio | 811383bee3 | |
lelgenio | be3cb32d43 | |
lelgenio | fe19fbdfda | |
lelgenio | 26caa8e42e | |
lelgenio | 7eeadeca2a | |
lelgenio | a054533388 | |
lelgenio | 7a0da1f026 | |
lelgenio | 2fb46d90e4 | |
lelgenio | 1323274dd7 | |
lelgenio | 3d1f36baa5 | |
lelgenio | 6f8fea3e76 | |
lelgenio | 927572c628 | |
lelgenio | 314fc89c05 | |
lelgenio | fcd7d62bb0 | |
lelgenio | 3810bcb88b | |
lelgenio | e25f16f3e2 | |
lelgenio | eb45798b9c | |
lelgenio | 51e86e04ce | |
lelgenio | 2dab49dc15 | |
lelgenio | 1265cddc89 | |
lelgenio | f55dc03544 | |
lelgenio | 37acf84797 | |
lelgenio | 4df611886c | |
lelgenio | 2b6fa172b1 | |
lelgenio | f77d938a2d | |
lelgenio | e8bf24a68f | |
lelgenio | 2c91ad91c9 | |
lelgenio | f1e0b1977a | |
lelgenio | d75ed33539 | |
lelgenio | ae4870c505 | |
lelgenio | d202ed3067 | |
lelgenio | ebe6605a7b | |
lelgenio | 7535554906 | |
lelgenio | 2866ce2d23 | |
lelgenio | 0576a060cc | |
lelgenio | eb787b093a | |
lelgenio | 3a5604d337 | |
lelgenio | 683e158342 | |
lelgenio | ed1932e86a | |
lelgenio | fc419313ed | |
lelgenio | 27e0e0256f | |
lelgenio | 80e5f59cf7 | |
lelgenio | 5f293b4f53 | |
lelgenio | 7f6018544a | |
lelgenio | 04aedb5ab7 | |
lelgenio | 156829a642 | |
lelgenio | b89adc4b57 | |
lelgenio | c0bfa80aa3 | |
lelgenio | e8a627be24 | |
lelgenio | c7ab6a0172 | |
lelgenio | 8078541f4f | |
lelgenio | dfc285f305 | |
lelgenio | 7ef1c723b0 | |
lelgenio | d8a9265999 | |
lelgenio | 6b096293c5 | |
lelgenio | 93c1e159d7 | |
lelgenio | 9e46937a87 | |
lelgenio | 38a8a84fca | |
lelgenio | e4d419a139 | |
lelgenio | 6ee23c8f48 | |
lelgenio | e722580a2e | |
lelgenio | 6d239f1f36 | |
lelgenio | 4c64e1ae1b | |
lelgenio | e7ab1404d1 | |
lelgenio | beb686653c | |
lelgenio | 154a9d74a4 | |
lelgenio | 28eb183052 | |
lelgenio | 6e080d89fd | |
lelgenio | 05204166c0 | |
lelgenio | 7df4667af8 | |
lelgenio | 39bf993bfc | |
lelgenio | 49e9d937b9 | |
lelgenio | 656ffdfa73 | |
lelgenio | 21c126577a | |
lelgenio | f5909eb387 | |
lelgenio | aabce51283 | |
lelgenio | 274a9735d8 | |
lelgenio | ce9eee57d1 | |
lelgenio | 2cd9fc99a1 | |
lelgenio | df81b6116d | |
lelgenio | b1ad52cf78 | |
lelgenio | 1f9fefa1d8 | |
lelgenio | da636674f8 | |
lelgenio | 57d0059e8a | |
lelgenio | 334c30e84d | |
lelgenio | db5cea8106 | |
lelgenio | 57b347f045 | |
lelgenio | ae7cb4ef44 | |
lelgenio | a4057b344e | |
lelgenio | 4bc68de5f8 | |
lelgenio | 753d26521e | |
lelgenio | f6c5e1eda4 | |
lelgenio | f408944387 | |
lelgenio | 5f993d838b | |
lelgenio | da8a5797e8 | |
lelgenio | 35bf63bee3 | |
lelgenio | 2580af8bae | |
lelgenio | 94232e23c4 | |
lelgenio | 22579a679b | |
lelgenio | 59e97cfaf8 | |
lelgenio | 6f739f8f12 | |
lelgenio | 302240df65 | |
lelgenio | 467d4fac4b | |
lelgenio | 65fcf5ddee | |
lelgenio | 592011738b | |
lelgenio | 4d0e2d3355 | |
lelgenio | a3e979aa31 | |
lelgenio | fc118808d4 | |
lelgenio | 0cad708b4c | |
lelgenio | d4a490c801 | |
lelgenio | 2270e7f586 | |
lelgenio | 1a74ac6edb | |
lelgenio | e43c5de472 | |
lelgenio | 416ab47ce3 | |
lelgenio | b89eb0bee1 | |
lelgenio | 9720ce505d | |
lelgenio | 2e4961ee0a | |
lelgenio | 749eb9a5c4 | |
lelgenio | dc8bbd29d0 | |
lelgenio | 280f04fa78 | |
lelgenio | 8b0b8e6450 | |
lelgenio | c691bd9df6 | |
lelgenio | cd2de8744b | |
lelgenio | 22e0acbedc | |
lelgenio | 0a3778361c | |
lelgenio | 5f6e4ee7bd | |
lelgenio | 906364833f | |
lelgenio | 3801ad3640 | |
lelgenio | b7cf0d5e9b | |
lelgenio | 5603dc6fea | |
lelgenio | 9471ad2c1a | |
lelgenio | 77e7a000e8 | |
lelgenio | b7ad9e4994 | |
lelgenio | a032920a0f | |
lelgenio | 3be95bfe94 | |
lelgenio | 48ac43e2db | |
lelgenio | b71f0e47c3 | |
lelgenio | 0200a6505f | |
lelgenio | 3165ba01fc | |
lelgenio | e1ba3758c6 | |
lelgenio | e852733ca8 | |
lelgenio | 179ae1b7b2 | |
lelgenio | 547d9bbb1d | |
lelgenio | ab063ef052 | |
lelgenio | 37e3ee64b7 | |
lelgenio | a0d6640ba9 | |
lelgenio | b49f7764d7 | |
lelgenio | 4c98428d93 | |
lelgenio | 07f6e10a9d | |
lelgenio | 1e5c79a204 | |
lelgenio | 9739db6e8a | |
lelgenio | 280eac37ad | |
lelgenio | bfab2bda27 | |
lelgenio | fd84a7b74a | |
lelgenio | 85c50f1d14 | |
lelgenio | bfbda39733 | |
lelgenio | 730b71a0b4 | |
lelgenio | 437e11e87a | |
lelgenio | e14c0c0949 | |
lelgenio | 19329b587e | |
lelgenio | 46c5f2a416 | |
lelgenio | 46fbbb41ed | |
lelgenio | e19eb28369 | |
lelgenio | bd842460cd | |
lelgenio | 6040681e76 | |
lelgenio | 42d2abedc0 | |
lelgenio | 4634736c6b | |
lelgenio | 2a4423c66c | |
lelgenio | 099b1ba7f5 | |
lelgenio | 76d83c6803 | |
lelgenio | 25d9ddf86c | |
lelgenio | bd4fa67f82 | |
lelgenio | 5de5fd2577 | |
lelgenio | 53cf14dbe9 | |
lelgenio | 4d5262b6c4 | |
lelgenio | 85a02ee966 | |
lelgenio | 62c05d1ef1 | |
lelgenio | 00365e24ee | |
lelgenio | b24b20737f | |
lelgenio | 68522b9cba | |
lelgenio | 9b1da93454 | |
lelgenio | cdb2405b89 | |
lelgenio | 93da409d34 | |
lelgenio | cc1b3a4331 | |
lelgenio | 9647846f68 | |
lelgenio | cd0ace88fd | |
lelgenio | 599d3884ed | |
lelgenio | 2d7cc80069 | |
lelgenio | c2e302aed6 | |
lelgenio | cbe16320bb | |
lelgenio | c76628b8dd | |
lelgenio | 5fa0a82417 | |
lelgenio | fabf228661 | |
lelgenio | b01fbd8225 | |
lelgenio | 496d85e2a3 | |
lelgenio | 1e46869b87 | |
lelgenio | 46c7bd4b1e | |
lelgenio | 8902116af4 | |
lelgenio | fbb1ae7eed | |
lelgenio | 96a5bedfc2 | |
lelgenio | 183602bc79 | |
lelgenio | 89aca822df | |
lelgenio | 6ae8b57a35 | |
lelgenio | 7f829d8535 | |
lelgenio | 51c722e3a0 | |
lelgenio | a1a5363b7a | |
lelgenio | ec34e7dbeb | |
lelgenio | a17bd2e0f3 | |
lelgenio | 1a42ecfd0a | |
lelgenio | 2f383223ea | |
lelgenio | 2459d78ef3 | |
lelgenio | 79664857f3 | |
lelgenio | 94e38841d0 | |
lelgenio | a3ab362819 | |
lelgenio | e96cdb899e | |
lelgenio | 4540f70f96 | |
lelgenio | 3705301123 | |
lelgenio | bd7ab5cfd6 | |
lelgenio | 4a14aed895 | |
lelgenio | 8447e4247d | |
lelgenio | 35182009aa | |
lelgenio | d7c2b1efee | |
lelgenio | 3a82723789 | |
lelgenio | 7adf2c6787 | |
lelgenio | a26e27c52e | |
lelgenio | fdfe1751ae | |
lelgenio | cb23c2901e | |
lelgenio | 871ef81b29 | |
lelgenio | c0514aaa9c | |
lelgenio | d25ce133a8 | |
Leonardo Eugenio | b5f8d1a19f | |
Leonardo Eugenio | c1ac6d19da | |
lelgenio | 773d74bc40 | |
lelgenio | 3f0ce3de00 | |
lelgenio | 62a075dece | |
lelgenio | e7f89f5db5 | |
lelgenio | 7b0d572f3b | |
lelgenio | 803f81ce59 | |
lelgenio | a76508a6b7 | |
lelgenio | d509d21a7f | |
lelgenio | 6267b9ea79 | |
lelgenio | 94561a176a | |
lelgenio | 13834ac17e | |
lelgenio | 6a5ede9e38 | |
lelgenio | a4994e6a81 | |
lelgenio | abc1080aa2 | |
lelgenio | d39c2c1c5b | |
lelgenio | 59fd1908d5 | |
lelgenio | 346e57e5eb | |
lelgenio | dd959e90ad | |
lelgenio | a7aa3ea617 | |
lelgenio | 7d913f7cce | |
lelgenio | 0a3b5f461e | |
lelgenio | 29e3fd871d | |
lelgenio | 3eee54eb04 | |
lelgenio | 0ef6816e8e | |
lelgenio | 58e355cefc | |
lelgenio | 65991b4e56 | |
lelgenio | 36a67cfb6e | |
lelgenio | 7f27235ce6 | |
lelgenio | 7361898aa3 | |
lelgenio | 05f523ef90 | |
lelgenio | 5c1d3aba64 | |
lelgenio | 7d9181bbc1 | |
lelgenio | 5864cdb909 | |
lelgenio | 17944a5505 | |
lelgenio | 17576297f7 | |
lelgenio | 7d37899d38 | |
lelgenio | ff6af0bfba | |
lelgenio | 27cc19a096 | |
lelgenio | 01867a3f01 | |
lelgenio | cb8f00e123 | |
lelgenio | 4d5a444596 | |
lelgenio | caa2133dbd | |
lelgenio | cc644f5feb | |
lelgenio | 5237fbcc19 | |
lelgenio | cfb93f802e | |
lelgenio | 478607389b | |
lelgenio | efe4a29c3e | |
lelgenio | d7386caebf | |
lelgenio | b82d1af050 | |
lelgenio | fbf8c26277 | |
lelgenio | 6be7682ae8 | |
lelgenio | b375199bc4 | |
lelgenio | eef7364ba4 | |
lelgenio | 501237b4bd | |
lelgenio | a7d06e8ef7 | |
lelgenio | 65591f22ea | |
lelgenio | 904f9328de | |
lelgenio | ce42d42fcf | |
lelgenio | 80075db83c | |
lelgenio | 96bd20d50a | |
lelgenio | 899ef9cabc | |
lelgenio | 389b41b05d | |
lelgenio | f6e03306de | |
lelgenio | 7ca31213e9 | |
lelgenio | ba17111257 | |
lelgenio | daf82349a2 | |
lelgenio | d0d5c1b6f9 | |
lelgenio | f990dc99c6 | |
lelgenio | 4367d4307e | |
lelgenio | 99c23891c0 | |
lelgenio | ccd9e9fd33 | |
lelgenio | cd00f053a4 | |
lelgenio | 71fe233cd7 | |
lelgenio | 65aa0e117e | |
lelgenio | ac4aeb4657 | |
lelgenio | ab3857ea65 | |
lelgenio | 9702f4f2f9 | |
lelgenio | 62a3259d5b | |
lelgenio | 2d7b3a835f |
|
@ -1,17 +1,2 @@
|
|||
code
|
||||
|
||||
mpd/.config/mpd/database
|
||||
mpd/.config/mpd/pid
|
||||
mpd/.config/mpd/state
|
||||
neomutt/.config/neomutt/password.gpg
|
||||
nvim/.config/nvim/autoload/
|
||||
nvim/.config/nvim/plugged/
|
||||
qutebrowser/.config/qutebrowser/autoconfig.yml
|
||||
qutebrowser/.config/qutebrowser/qsettings/
|
||||
qutebrowser/.config/qutebrowser/quickmarks
|
||||
qutebrowser/.local/
|
||||
theme/.config/gtk-3.0/bookmarks
|
||||
|
||||
|
||||
emacs/.emacs.d
|
||||
!emacs/.emacs.d/init.el
|
||||
__pycache__
|
||||
lelmeta/.SRCINFO
|
||||
|
|
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
My Dotfiles
|
||||
Copyright (C) 2020 Leonardo Eugenio
|
||||
|
||||
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/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
My Dotfiles Copyright (C) 2020 Leonardo Eugenio
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
18
README.md
18
README.md
|
@ -1,2 +1,20 @@
|
|||
# My Dotfiles
|
||||
## What I use:
|
||||
* sway / Waybar
|
||||
* kitty (only way to get ranger image previews on wayland)
|
||||
* fish (fight me!)
|
||||
* nvim / vim-lsp (pure vimscript)
|
||||
* qutebrowser
|
||||
* zathura
|
||||
* mpd (optionally playerctl if installed)
|
||||
* mpv (sponsorblock)
|
||||
* btwOs
|
||||
|
||||
## Install:
|
||||
Most files need to be pre-prossesed with dotdrop.
|
||||
By default mapped to Colemak, edit config.yaml to remap.
|
||||
```bash
|
||||
pip install --user dotdrop
|
||||
dotdrop -c config.yaml install -p dark
|
||||
```
|
||||
![image.png](./image.png)
|
||||
|
|
528
arch_install
528
arch_install
|
@ -27,23 +27,6 @@ echo (){
|
|||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#}}}
|
||||
#ABOUT#{{{
|
||||
# This script will set up an Arch installation with a 100 MB /boot partition
|
||||
# and an encrypted LVM partition with swap and / inside. It also installs
|
||||
# and configures systemd as the init system (removing sysvinit).
|
||||
#
|
||||
# You should read through this script before running it in case you want to
|
||||
# make any modifications, in particular, the variables just below, and the
|
||||
# following functions:
|
||||
#
|
||||
# partition_drive - Customize to change partition sizes (/boot vs LVM)
|
||||
# setup_lvm - Customize for partitions inside LVM
|
||||
# install_packages - Customize packages installed in base system
|
||||
# (desktop environment, etc.)
|
||||
# install_aur_packages - More packages after packer (AUR helper) is
|
||||
# installed
|
||||
# set_netcfg - Preload netcfg profiles
|
||||
#}}}
|
||||
# CONFIGURE THESE VARIABLES{{{
|
||||
# Drive to install to.
|
||||
DRIVE='/dev/sda'
|
||||
|
@ -51,8 +34,8 @@ DRIVE='/dev/sda'
|
|||
# Hostname of the installed machine.
|
||||
HOSTNAME='arch'
|
||||
|
||||
# Encrypt everything (except /boot). Leave blank to disable.
|
||||
ENCRYPT_DRIVE=''
|
||||
# Encrypt everything (except /boot). true or false
|
||||
ENCRYPT_DRIVE=true
|
||||
|
||||
# Passphrase used to encrypt the drive (leave blank to be prompted).
|
||||
DRIVE_PASSPHRASE=''
|
||||
|
@ -62,10 +45,10 @@ ROOT_PASSWORD=''
|
|||
|
||||
# Main user to create (by default, added to wheel group, and others).
|
||||
USER_NAME='lelgenio'
|
||||
# Link to users dotfiles repo(git)
|
||||
# Link to users dotfiles repo(git)
|
||||
# Assumed to have stow-able modules on its root(cd .dotfiles;stow*/)
|
||||
DOTFILES_URL="https://gitlab.com/$USER_NAME/dotfiles"
|
||||
USER_SHELL='zsh'
|
||||
USER_SHELL='fish'
|
||||
|
||||
# The main user's password (leave blank to be prompted).
|
||||
USER_PASSWORD=''
|
||||
|
@ -73,6 +56,9 @@ USER_PASSWORD=''
|
|||
# System timezone.
|
||||
TIMEZONE='America/Sao_Paulo'
|
||||
|
||||
# Country code for pacman repos
|
||||
COUNTRY='brazil'
|
||||
|
||||
# Have /tmp on a tmpfs or not. Leave blank to disable.
|
||||
# Only leave this blank on systems with very little RAM.
|
||||
TMP_ON_TMPFS='TRUE'
|
||||
|
@ -82,111 +68,28 @@ KEYMAP='br-abnt2'
|
|||
|
||||
LANG=pt_BR.UTF-8
|
||||
|
||||
# Choose your video driver
|
||||
# For Intel
|
||||
VIDEO_DRIVER="i915"
|
||||
# For nVidia
|
||||
#VIDEO_DRIVER="nouveau"
|
||||
# For ATI
|
||||
#VIDEO_DRIVER="radeon"
|
||||
# For generic stuff
|
||||
#VIDEO_DRIVER="vesa"
|
||||
|
||||
REMOVE_PKGS=false
|
||||
FULL_INSTALL=false
|
||||
#}}}
|
||||
# PACKAGES{{{
|
||||
set_pkgs() {
|
||||
# sudo to allow to run as a user later
|
||||
sudo pacman -Sy &> /dev/null
|
||||
|
||||
pkgs_base+=' base linux-zen linux-firmware intel-ucode lvm2 '
|
||||
pkgs_base+=' zsh networkmanager bluez cronie git man-db'
|
||||
pkgs_base+=" $(pacman -Sgq base-devel)"
|
||||
if $IS_BIOS;then
|
||||
pkgs_base+=' grub'
|
||||
fi
|
||||
|
||||
pkgs+=" $pkgs_base"
|
||||
# DE
|
||||
pkgs+=' sway waybar ruby-fusuma light mako udiskie bemenu wofi-hg stow yay'
|
||||
pkgs+=' bemenu wofi-hg j4-dmenu-desktop'
|
||||
|
||||
# pkgs+=' i3 termite scrot pamixer'
|
||||
pkgs+=' nemo redshift-wlr-gamma-control '
|
||||
pkgs+=' pkgfile kitty neovim moreutils htop-vim-git'
|
||||
# Audio
|
||||
pkgs+=' pulseaudio pavolume-git'
|
||||
# Fonts
|
||||
pkgs+=' ttf-hack inter-font'
|
||||
if $FULL_INSTALL; then
|
||||
# Screenshot
|
||||
pkgs+=' grim slurp wl-clipboard wf-recorder-git'
|
||||
pkgs+=' httpie jq python-keepmenu-git'
|
||||
# Theme
|
||||
pkgs+=' materia-custom-accent papirus-icon-theme'
|
||||
pkgs+=' papirus-folders-git capitaine-cursors '
|
||||
# Terminal
|
||||
pkgs+=' tmux ranger atool p7zip tree'
|
||||
pkgs+=' neofetch powerline-fonts otf-fira-code'
|
||||
pkgs+=' lolcat cmatrix'
|
||||
# Network
|
||||
pkgs+=' wget curl bluez-utils rsync rclone nmap gnu-netcat tor mtr speedtest-cli'
|
||||
pkgs+=' openssh sshfs fail2ban'
|
||||
# Browser
|
||||
pkgs+=' qutebrowser youtube-dl'
|
||||
# Email
|
||||
pkgs+=' neomutt isync'
|
||||
# Files
|
||||
pkgs+=' syncthing nextcloud-client '
|
||||
pkgs+=' deluge deezloader-remix-bin smloadr'
|
||||
# Media
|
||||
pkgs+=' sxiv mpv mpd mpc ncmpcpp mpv-mpris mpdris2 playerctl'
|
||||
pkgs+=' blender gimp kdenlive picard image_optim'
|
||||
# Office
|
||||
pkgs+=' libreoffice-fresh libreoffice-fresh-pt-br hunspell-pt-br papirus-libreoffice-theme'
|
||||
# Programing
|
||||
pkgs+=' code neovim python-pynvim neovim-symlinks ipython how2'
|
||||
pkgs+=' gdb clang'
|
||||
# Virt
|
||||
pkgs+=' qemu'
|
||||
# Gtk
|
||||
pkgs+=' gtk3-nocsd-git'
|
||||
# Qt
|
||||
pkgs+=' qt5-base qt5-wayland qt5ct kvantum-qt5'
|
||||
# Chat
|
||||
pkgs+=' discord telegram-desktop telegram-cli-git'
|
||||
# Gaming
|
||||
pkgs+=' steam lutris gamemode lutris-wine-meta wine wine-mono winetricks'
|
||||
if [ "$VIDEO_DRIVER" == "i915" ];then
|
||||
pkgs+=' xf86-video-intel '
|
||||
pkgs+=' lib32-mesa vulkan-intel lib32-vulkan-intel vulkan-icd-loader lib32-vulkan-icd-loader'
|
||||
elif [ "$VIDEO_DRIVER" == "radeon" ];then
|
||||
pkgs+=' xf86-video-ati'
|
||||
pkgs+=' lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader'
|
||||
elif [ "$VIDEO_DRIVER" == "nouveau" ];then
|
||||
pkgs+=' xf86-video-nouveau'
|
||||
pkgs+=' nvidia nvidia-utils lib32-nvidia-utils nvidia-settings vulkan-icd-loader lib32-vulkan-icd-loader'
|
||||
elif [ "$VIDEO_DRIVER" == "vesa" ];then
|
||||
packages+=' xf86-video-vesa'
|
||||
fi
|
||||
fi
|
||||
}
|
||||
#}}}
|
||||
# Initial Setup{{{
|
||||
# Base install{{{
|
||||
setup() {
|
||||
local boot_dev="$DRIVE"1
|
||||
local lvm_dev="$DRIVE"2
|
||||
|
||||
if "$ENCRYPT_DRIVE"
|
||||
then
|
||||
local crypt_dev="$DRIVE"2
|
||||
local lvm_dev="/dev/mapper/lvm"
|
||||
else
|
||||
local lvm_dev="$DRIVE"2
|
||||
fi
|
||||
|
||||
echo 'Cleaning disk'
|
||||
disk_clean
|
||||
|
||||
disk_clean "$lvm_dev" "$DRIVE"2
|
||||
|
||||
echo 'Creating partitions'
|
||||
partition_drive "$DRIVE"
|
||||
|
||||
if "$ENCRYPT_DRIVE";then
|
||||
local lvm_part="/dev/mapper/lvm"
|
||||
if "$ENCRYPT_DRIVE"
|
||||
then
|
||||
|
||||
if [ -z "$DRIVE_PASSPHRASE" ];then
|
||||
echo 'Enter a passphrase to encrypt the disk:'
|
||||
|
@ -194,14 +97,11 @@ setup() {
|
|||
fi
|
||||
|
||||
echo 'Encrypting partition'
|
||||
encrypt_drive "$lvm_dev" "$DRIVE_PASSPHRASE" lvm
|
||||
|
||||
else
|
||||
local lvm_part="$lvm_dev"
|
||||
encrypt_drive "$crypt_dev" "$DRIVE_PASSPHRASE" lvm
|
||||
fi
|
||||
|
||||
echo 'Setting up LVM'
|
||||
setup_lvm "$lvm_part" vg00
|
||||
setup_lvm "$lvm_dev" vg00
|
||||
|
||||
echo 'Formatting filesystems'
|
||||
format_filesystems "$boot_dev"
|
||||
|
@ -209,6 +109,9 @@ setup() {
|
|||
echo 'Mounting filesystems'
|
||||
mount_filesystems "$boot_dev"
|
||||
|
||||
echo 'Setting repos'
|
||||
set_repos
|
||||
|
||||
echo 'Installing base system'
|
||||
install_base
|
||||
|
||||
|
@ -232,19 +135,31 @@ setup() {
|
|||
#}}}
|
||||
# Remove old LVMs{{{
|
||||
disk_clean(){
|
||||
|
||||
local lvm_dev="$1"
|
||||
local disk="$2"
|
||||
|
||||
echo 'cleaning disk'
|
||||
|
||||
umount -R /mnt || true
|
||||
umount --recursive --quiet /mnt || true
|
||||
swapoff -a
|
||||
|
||||
pvs "$DRIVE"2 || return 0
|
||||
pvs "$lvm_dev" || return 0
|
||||
|
||||
for vg in $(pvs -o vg_name --nohead "$DRIVE"2)
|
||||
for vg in $(pvs -o vg_name --nohead "$lvm_dev")
|
||||
do
|
||||
vgremove "$vg" --yes
|
||||
done
|
||||
|
||||
pvremove "$DRIVE"2
|
||||
pvremove "$lvm_dev"
|
||||
|
||||
if "$ENCRYPT_DRIVE"
|
||||
then
|
||||
cryptsetup close lvm
|
||||
fi
|
||||
|
||||
wipefs -a "$disk"
|
||||
|
||||
}
|
||||
#}}}
|
||||
# Partition Drive{{{
|
||||
|
@ -253,18 +168,22 @@ partition_drive() {
|
|||
|
||||
# 100 MB /boot partition, everything else under LVM
|
||||
if $IS_BIOS;then
|
||||
parted -s "$dev" \
|
||||
parted \
|
||||
--align optimal \
|
||||
--script "$dev" \
|
||||
mklabel msdos \
|
||||
mkpart primary fat32 1M 100M \
|
||||
mkpart primary ext4 100M 100% \
|
||||
set 1 boot on \
|
||||
set 2 lvm on
|
||||
else
|
||||
parted -s "$dev" \
|
||||
parted \
|
||||
--align optimal \
|
||||
--script "$dev" \
|
||||
mklabel gpt \
|
||||
mkpart boot 1 100M \
|
||||
mkpart lvm 100M 100% \
|
||||
set 1 boot on\
|
||||
set 1 boot on \
|
||||
set 2 lvm on
|
||||
fi
|
||||
}
|
||||
|
@ -283,23 +202,27 @@ encrypt_drive() {
|
|||
setup_lvm() {
|
||||
local partition="$1"; shift
|
||||
local volgroup="$1"; shift
|
||||
|
||||
local d_size=$(lsblk --noheadings --nodeps --bytes --raw $DRIVE)
|
||||
|
||||
local d_size=$(lsblk --noheadings --nodeps --bytes --raw --output SIZE $DRIVE)
|
||||
|
||||
local swap_size=$(free -b | awk '/^Mem/ { printf "%.0fG", 2*$2*10**-9}')
|
||||
|
||||
pvcreate "$partition"
|
||||
vgcreate "$volgroup" "$partition"
|
||||
|
||||
# Create a 1GB swap partition
|
||||
lvcreate --yes -C y -L1G "$volgroup" -n swap
|
||||
# Create a swap partition that is twice the amount of RAM
|
||||
lvcreate --yes -L$swap_size "$volgroup" -n swap
|
||||
|
||||
# if the disk has more than
|
||||
if [ "$d_size" -gt $(( 50*10**9 )) ]; then
|
||||
# if the disk has more than 100Gb
|
||||
if [ "$d_size" -gt $( echo "100*10^9" | bc ) ]
|
||||
then
|
||||
# Create a 50GB root partition
|
||||
lvcreate --yes -L '50G' "$volgroup" -n root
|
||||
else
|
||||
# Create root partition on 50% of free space
|
||||
lvcreate --yes -l '+50%FREE' "$volgroup" -n root
|
||||
fi
|
||||
|
||||
# Use the rest of the space for home
|
||||
lvcreate --yes -l '+100%FREE' "$volgroup" -n home
|
||||
|
||||
|
@ -330,102 +253,6 @@ mount_filesystems() {
|
|||
swapon /dev/vg00/swap
|
||||
}
|
||||
#}}}
|
||||
# install_base #{{{
|
||||
install_base() {
|
||||
pacstrap /mnt $pkgs_base
|
||||
}
|
||||
#}}}
|
||||
# Set fstab {{{
|
||||
set_fstab() {
|
||||
genfstab -Up /mnt > /mnt/etc/fstab
|
||||
}
|
||||
#}}}
|
||||
# Unmount filesystems #{{{
|
||||
unmount_filesystems() {
|
||||
umount -R /mnt
|
||||
swapoff /dev/vg00/swap
|
||||
vgchange -an
|
||||
if [ -n "$ENCRYPT_DRIVE" ];then
|
||||
cryptsetup luksClose lvm
|
||||
fi
|
||||
}
|
||||
#}}}
|
||||
# is_bios{{{
|
||||
if ls /sys/firmware/efi/efivars/ &> /dev/null
|
||||
then
|
||||
IS_BIOS=false
|
||||
else
|
||||
IS_BIOS=true
|
||||
fi
|
||||
#}}}
|
||||
#}}}
|
||||
# Configuration{{{
|
||||
# configure() {#{{{
|
||||
configure() {
|
||||
local boot_dev="$DRIVE"1
|
||||
local lvm_dev="$DRIVE"2
|
||||
|
||||
echo 'Setting repos'
|
||||
set_repos
|
||||
|
||||
echo 'Setting hostname'
|
||||
set_hostname "$HOSTNAME"
|
||||
|
||||
echo 'Setting timezone'
|
||||
set_timezone "$TIMEZONE"
|
||||
|
||||
echo 'Setting locale'
|
||||
set_locale
|
||||
|
||||
echo 'Setting console keymap'
|
||||
set_inputs
|
||||
|
||||
echo 'Configuring initial ramdisk'
|
||||
set_initcpio
|
||||
|
||||
echo 'Setting initial daemons'
|
||||
set_daemons "$TMP_ON_TMPFS"
|
||||
|
||||
echo 'Configuring Bluetooth'
|
||||
set_bluetooth
|
||||
|
||||
echo 'Configuring bootloader'
|
||||
set_bootctl "$boot_dev" "$lvm_dev"
|
||||
|
||||
echo 'Configuring sudo'
|
||||
set_sudoers
|
||||
|
||||
echo 'Configuring PAM'
|
||||
set_pam
|
||||
|
||||
if [ -z "$ROOT_PASSWORD" ];then
|
||||
echo 'Enter the root password:'
|
||||
read -s ROOT_PASSWORD
|
||||
fi
|
||||
|
||||
echo 'Setting root password'
|
||||
set_root_password "$ROOT_PASSWORD"
|
||||
|
||||
if [ -z "$USER_PASSWORD" ];then
|
||||
echo "Enter the password for user $USER_NAME"
|
||||
read -s USER_PASSWORD
|
||||
fi
|
||||
|
||||
echo 'Creating initial user'
|
||||
create_user "$USER_NAME" "$USER_PASSWORD"
|
||||
|
||||
echo 'setting up user'
|
||||
cp $0 "/home/$USER_NAME/setup.sh"
|
||||
chown $USER_NAME "/home/$USER_NAME/setup.sh"
|
||||
su $USER_NAME -c "/home/$USER_NAME/setup.sh"
|
||||
|
||||
echo 'Updating pkgfile database'
|
||||
update_pkgfile
|
||||
|
||||
shred "$0"
|
||||
rm "$0"
|
||||
}
|
||||
#}}}
|
||||
# set_repos() {{{{
|
||||
set_repos() {
|
||||
# /etc/pacman.conf{{{
|
||||
|
@ -440,6 +267,7 @@ Architecture = auto
|
|||
# Misc options
|
||||
#UseSyslog
|
||||
Color
|
||||
ILoveCandy
|
||||
#TotalDownload
|
||||
CheckSpace
|
||||
#VerbosePkgLists
|
||||
|
@ -476,23 +304,115 @@ Include = /etc/pacman.d/mirrorlist
|
|||
|
||||
EOF
|
||||
#}}}
|
||||
# /etc/mirrorlist{{{
|
||||
cat > /etc/mirrorlist <<EOF
|
||||
# /etc/pacman.d/mirrorlist{{{
|
||||
pacman -Sy reflector --noconfirm --needed
|
||||
|
||||
# Server list generated by rankmirrors on 2019-11-24
|
||||
# Brazil
|
||||
Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch
|
||||
Server = https://www.caco.ic.unicamp.br/archlinux/$repo/os/$arch
|
||||
Server = http://mirror.ufscar.br/archlinux/$repo/os/$arch
|
||||
Server = http://br.mirror.archlinux-br.org/$repo/os/$arch
|
||||
Server = http://mirror.ufam.edu.br/archlinux/$repo/os/$arch
|
||||
Server = http://www.caco.ic.unicamp.br/archlinux/$repo/os/$arch
|
||||
Server = http://linorg.usp.br/archlinux/$repo/os/$arch
|
||||
Server = http://archlinux.pop-es.rnp.br/$repo/os/$arch
|
||||
Server = http://pet.inf.ufsc.br/mirrors/archlinux/$repo/os/$arch
|
||||
|
||||
EOF
|
||||
reflector -c $COUNTRY -f 10 -p http -p https
|
||||
#}}}
|
||||
|
||||
mkdir -p /mnt/etc/pacman.d
|
||||
cp -r /mnt/etc/pacman* /etc/
|
||||
}
|
||||
#}}}
|
||||
# install_base #{{{
|
||||
install_base() {
|
||||
pacstrap /mnt \
|
||||
base base-devel linux-zen linux-firmware intel-ucode grub \
|
||||
fish bluez cronie git man-db \
|
||||
iwd dhcpcd
|
||||
}
|
||||
#}}}
|
||||
# Set fstab {{{
|
||||
set_fstab() {
|
||||
genfstab -Up /mnt > /mnt/etc/fstab
|
||||
}
|
||||
#}}}
|
||||
# Unmount filesystems #{{{
|
||||
unmount_filesystems() {
|
||||
umount -R /mnt
|
||||
swapoff /dev/vg00/swap
|
||||
vgchange -an
|
||||
if $ENCRYPT_DRIVE
|
||||
then
|
||||
cryptsetup luksClose lvm
|
||||
fi
|
||||
}
|
||||
#}}}
|
||||
# is_bios{{{
|
||||
if ls /sys/firmware/efi/efivars/ &> /dev/null
|
||||
then
|
||||
IS_BIOS=false
|
||||
else
|
||||
IS_BIOS=true
|
||||
fi
|
||||
#}}}
|
||||
#}}}
|
||||
# Configuration{{{
|
||||
# configure() {#{{{
|
||||
configure() {
|
||||
local boot_dev="$DRIVE"1
|
||||
local lvm_dev="$DRIVE"2
|
||||
|
||||
echo 'Setting hostname'
|
||||
set_hostname "$HOSTNAME"
|
||||
|
||||
echo 'Setting timezone'
|
||||
set_timezone "$TIMEZONE"
|
||||
|
||||
echo 'Setting locale'
|
||||
set_locale
|
||||
|
||||
echo 'Setting console keymap'
|
||||
set_inputs
|
||||
|
||||
echo 'Configuring initial ramdisk'
|
||||
set_initcpio
|
||||
|
||||
echo 'Configuring Bluetooth'
|
||||
set_bluetooth
|
||||
|
||||
echo 'Configuring bootloader'
|
||||
set_bootctl "$boot_dev" "$lvm_dev"
|
||||
|
||||
echo 'Configuring sudo'
|
||||
set_sudoers
|
||||
|
||||
echo 'Configuring PAM'
|
||||
set_pam
|
||||
|
||||
echo 'Configuring logind'
|
||||
set_logind
|
||||
|
||||
if [ -z "$ROOT_PASSWORD" ];then
|
||||
echo 'Enter the root password:'
|
||||
read -s ROOT_PASSWORD
|
||||
fi
|
||||
|
||||
echo 'Setting root password'
|
||||
set_root_password "$ROOT_PASSWORD"
|
||||
|
||||
if [ -z "$USER_PASSWORD" ];then
|
||||
echo "Enter the password for user $USER_NAME"
|
||||
read -s USER_PASSWORD
|
||||
fi
|
||||
|
||||
echo 'Creating initial user'
|
||||
create_user "$USER_NAME" "$USER_PASSWORD"
|
||||
|
||||
echo 'setting up user'
|
||||
cp $0 "/home/$USER_NAME/setup.sh"
|
||||
chown $USER_NAME "/home/$USER_NAME/setup.sh"
|
||||
su $USER_NAME -c "/home/$USER_NAME/setup.sh"
|
||||
|
||||
shred "/home/$USER_NAME/setup.sh"
|
||||
rm "/home/$USER_NAME/setup.sh"
|
||||
|
||||
echo 'Setting initial daemons'
|
||||
set_daemons "$TMP_ON_TMPFS"
|
||||
|
||||
echo 'Updating pkgfile database'
|
||||
update_pkgfile
|
||||
|
||||
}
|
||||
#}}}
|
||||
# set_hostname() {#{{{
|
||||
|
@ -563,7 +483,8 @@ set_initcpio() {
|
|||
fi
|
||||
|
||||
local encrypt=""
|
||||
if [ -n "$ENCRYPT_DRIVE" ];then
|
||||
if $ENCRYPT_DRIVE
|
||||
then
|
||||
encrypt="encrypt keyboard"
|
||||
fi
|
||||
|
||||
|
@ -579,18 +500,33 @@ HOOKS=(base udev autodetect block $encrypt lvm2 filesystems fsck)
|
|||
|
||||
EOF
|
||||
|
||||
mkinitcpio -P
|
||||
# Intall kernel, if necessary
|
||||
[ -f /boot/vmlinuz-linux-zen ] ||
|
||||
mkinitcpio -P
|
||||
}
|
||||
#}}}
|
||||
# set_daemons() {#{{{
|
||||
set_daemons() {
|
||||
local tmp_on_tmpfs="$1"; shift
|
||||
|
||||
systemctl enable cronie.service NetworkManager.service
|
||||
|
||||
if [ -z "$tmp_on_tmpfs" ];then
|
||||
systemctl mask tmp.mount
|
||||
fi
|
||||
|
||||
systemctl enable \
|
||||
cronie.service \
|
||||
iwd.service \
|
||||
dhcpcd.service \
|
||||
ly.service \
|
||||
|
||||
# Ly{{{
|
||||
mkdir -p /etc/ly/
|
||||
cat > /etc/ly/config.ini << EOF
|
||||
animate = true
|
||||
blank_box = true
|
||||
hide_borders = true
|
||||
lang = br
|
||||
EOF
|
||||
#}}}
|
||||
}
|
||||
#}}}
|
||||
# set_bluetooth{{{
|
||||
|
@ -615,7 +551,7 @@ set_bootctl() {
|
|||
local boot_dev="$1"; shift
|
||||
local lvm_dev="$1"; shift
|
||||
|
||||
local lvm_uuid=$(get_uuid "$lvm_dev")
|
||||
local lvm_uuid=$(get_uuid "/dev/vg00/root")
|
||||
|
||||
local k_args="root=UUID=$lvm_uuid"
|
||||
|
||||
|
@ -637,7 +573,7 @@ initrd intel-ucode.img
|
|||
initrd initramfs-linux-zen.img
|
||||
|
||||
options $k_args
|
||||
# options quiet splash loglevel=3 vga=current rd.udev.log_priority=3 rd.systemd.show_status=auto vt.global_cursor_default=0 nmi_watchdog=0 $k_args
|
||||
# options quiet splash loglevel=3 vga=current rd.udev.log_priority=3 rd.systemd.show_status=auto vt.global_cursor_default=0 nmi_watchdog=0
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
@ -668,16 +604,26 @@ EOF
|
|||
#}}}
|
||||
# set_pam{{{
|
||||
set_pam() {
|
||||
cat > /etc/pam.d/login <<EOF
|
||||
#%PAM-1.0
|
||||
cat > /etc/pam.d/system-local-login <<EOF
|
||||
auth include system-login
|
||||
account include system-login
|
||||
password include system-login
|
||||
session include system-login
|
||||
|
||||
auth required pam_securetty.so
|
||||
auth requisite pam_nologin.so
|
||||
auth include system-local-login
|
||||
auth optional pam_gnome_keyring.so
|
||||
account include system-local-login
|
||||
session include system-local-login
|
||||
session optional pam_gnome_keyring.so auto_start
|
||||
auth optional pam_gnupg.so
|
||||
session optional pam_gnupg.so
|
||||
EOF
|
||||
|
||||
}
|
||||
#}}}
|
||||
# set_logind{{{
|
||||
set_logind(){
|
||||
mkdir -p /etc/systemd
|
||||
cat > /etc/systemd/logind.conf <<EOF
|
||||
[Login]
|
||||
HandlePowerKey=suspend
|
||||
HandleSuspendKey=suspend
|
||||
HandleLidSwitch=ignore
|
||||
EOF
|
||||
}
|
||||
#}}}
|
||||
|
@ -693,7 +639,8 @@ create_user() {
|
|||
local name="$1"; shift
|
||||
local password="$1"; shift
|
||||
|
||||
useradd -m -s /usr/bin/$USER_SHELL -G adm,systemd-journal,wheel,rfkill,games,network,video,audio,optical,floppy,storage,scanner,power "$name"
|
||||
grep "^$name" /etc/passwd ||
|
||||
useradd -m -s /usr/bin/$USER_SHELL -G adm,systemd-journal,wheel,rfkill,games,network,video,audio,optical,floppy,storage,scanner,power,input "$name"
|
||||
/bin/echo -en "$password\n$password" | passwd "$name"
|
||||
}
|
||||
#}}}
|
||||
|
@ -719,18 +666,10 @@ user_setup() {
|
|||
echo 'Installing packages'
|
||||
install_aur_packages
|
||||
|
||||
if $REMOVE_PKGS;then
|
||||
echo 'Cleaning packages'
|
||||
clean_packages
|
||||
fi
|
||||
|
||||
echo 'Stowing dotfiles'
|
||||
stow_dots
|
||||
|
||||
shred "$0"
|
||||
rm "$0"
|
||||
echo 'Installing dotfiles'
|
||||
install_dots
|
||||
}
|
||||
# Install AUR packages #{{{
|
||||
# Install AUR helper #{{{
|
||||
install_aur_packages() {
|
||||
|
||||
sudo pacman -S --needed git
|
||||
|
@ -743,53 +682,20 @@ install_aur_packages() {
|
|||
makepkg -si --noconfirm
|
||||
cd -
|
||||
fi
|
||||
|
||||
yay -Syu --needed --noconfirm $pkgs
|
||||
}
|
||||
#}}}
|
||||
# Clean up packages #{{{
|
||||
clean_packages() {
|
||||
# Mark every package as dependency
|
||||
yay -D --asdeps $(yay -Qqe) > /dev/null
|
||||
# Mark some packages as explicit
|
||||
yay -D --asexplicit $pkgs > /dev/null
|
||||
# Query orphan dependencies
|
||||
TO_REMOVE=$(yay -Qtdq)
|
||||
if [ -n "$TO_REMOVE" ];then
|
||||
# Remove queried packages
|
||||
yay -Rns --noconfirm $TO_REMOVE
|
||||
fi
|
||||
}
|
||||
#}}}
|
||||
# Stow dotfiles{{{
|
||||
stow_dots() {
|
||||
# Install dotfiles{{{
|
||||
install_dots() {
|
||||
if [ ! -d ~/.dotfiles ];then
|
||||
git clone $DOTFILES_URL ~/.dotfiles
|
||||
fi
|
||||
cd ~/.dotfiles
|
||||
stow */
|
||||
cd -
|
||||
if [ -f ~/.dotfiles/config.y*ml ]; then
|
||||
dotdrop --cfg ~/.dotfiles/config.y*ml install --force --no-banner
|
||||
fi
|
||||
}
|
||||
#}}}
|
||||
#}}}
|
||||
# Update installer {{{
|
||||
update_installer(){
|
||||
echo "Updating installer..."
|
||||
|
||||
INSTALLER=$(mktemp)
|
||||
|
||||
wget -qO $INSTALLER $DOTFILES_URL/raw/master/arch_install
|
||||
|
||||
chmod +x $INSTALLER
|
||||
exec $INSTALLER updated $@
|
||||
}
|
||||
|
||||
[ "$1" == "updated" ] && shift || is_chroot || update_installer $@
|
||||
echo "Installer updated :D"
|
||||
|
||||
#}}}
|
||||
|
||||
set_pkgs
|
||||
if [ ! "$USER" == "root" ];then
|
||||
user_setup
|
||||
elif is_chroot;then
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
[
|
||||
{
|
||||
"key": "ctrl+shift+c",
|
||||
"command": "workbench.action.terminal.new"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+,",
|
||||
"command": "workbench.action.openSettingsJson"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+,",
|
||||
"command": "workbench.action.openGlobalKeybindingsFile"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b",
|
||||
"command": "workbench.action.toggleSidebarVisibility"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "notifications.clearAll"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+s",
|
||||
"command": "saveAll"
|
||||
}
|
||||
]
|
|
@ -1,148 +0,0 @@
|
|||
{
|
||||
// Remove clutter
|
||||
// "window.titleBarStyle": "custom",
|
||||
"window.menuBarVisibility": "toggle",
|
||||
"workbench.activityBar.visible": false,
|
||||
"workbench.editor.showTabs": false,
|
||||
"workbench.editor.enablePreview": false,
|
||||
"workbench.editor.enablePreviewFromQuickOpen": true,
|
||||
"breadcrumbs.enabled": false,
|
||||
"workbench.editor.closeEmptyGroups": true,
|
||||
"workbench.editor.tabCloseButton": "off",
|
||||
"explorer.openEditors.visible": 0,
|
||||
"debug.openDebug": "openOnDebugBreak",
|
||||
"debug.internalConsoleOptions": "none",
|
||||
// Don't ask
|
||||
"git.autofetch": true,
|
||||
"git.confirmSync": false,
|
||||
"git.enableSmartCommit": true,
|
||||
"explorer.confirmDragAndDrop": false,
|
||||
"explorer.confirmDelete": false,
|
||||
"files.autoSave": "off",
|
||||
"window.closeWhenEmpty": true,
|
||||
// Rendering
|
||||
"terminal.integrated.rendererType": "dom",
|
||||
"editor.renderWhitespace": "none",
|
||||
"window.zoomLevel": 0,
|
||||
"vim.foldfix": true,
|
||||
"editor.minimap.renderCharacters": false,
|
||||
// Fonts
|
||||
"terminal.integrated.fontFamily": "'Fira Code', 'Hack', 'Roboto Mono'",
|
||||
"editor.fontFamily": "'Fira Code', 'Hack','Roboto Mono', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'",
|
||||
"editor.fontSize": 15,
|
||||
"editor.fontLigatures": true,
|
||||
// Vim
|
||||
"vim.useSystemClipboard": true,
|
||||
"vim.enableNeovim": true,
|
||||
"vim.neovimPath": "/usr/bin/nvim",
|
||||
"vim.normalModeKeyBindings": [
|
||||
{
|
||||
"before": [
|
||||
"g",
|
||||
"c"
|
||||
],
|
||||
"commands": [
|
||||
"editor.action.commentLine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"space"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.showCommands"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"t",
|
||||
"t"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.terminal.focus"
|
||||
]
|
||||
}
|
||||
],
|
||||
// Gay colors
|
||||
"workbench.colorTheme": "Community Material Theme Darker High Contrast",
|
||||
"materialTheme.accent": "Red",
|
||||
"workbench.iconTheme": "material-icon-theme",
|
||||
"material-icon-theme.folders.color": "#cc5757",
|
||||
"workbench.colorCustomizations": {
|
||||
"minimap.selectionHighlight": "#CC5757",
|
||||
"editorCursor.background": "#fff",
|
||||
"editorCursor.foreground": "#cc5757dd",
|
||||
"activityBarBadge.background": "#cc5757",
|
||||
"activityBar.activeBorder": "#cc5757",
|
||||
"list.activeSelectionForeground": "#cc5757",
|
||||
"list.inactiveSelectionForeground": "#cc5757",
|
||||
"list.highlightForeground": "#cc5757",
|
||||
"scrollbarSlider.activeBackground": "#cc575750",
|
||||
"editorSuggestWidget.highlightForeground": "#cc5757",
|
||||
"textLink.foreground": "#cc5757",
|
||||
"progressBar.background": "#cc5757",
|
||||
"pickerGroup.foreground": "#cc5757",
|
||||
"tab.activeBorder": "#cc5757",
|
||||
"notificationLink.foreground": "#cc5757",
|
||||
"editorWidget.resizeBorder": "#cc5757",
|
||||
"editorWidget.border": "#cc5757",
|
||||
"settings.modifiedItemIndicator": "#cc5757",
|
||||
"settings.headerForeground": "#cc5757",
|
||||
"panelTitle.activeBorder": "#cc5757",
|
||||
"breadcrumb.activeSelectionForeground": "#cc5757",
|
||||
"menu.selectionForeground": "#cc5757",
|
||||
"menubar.selectionForeground": "#cc5757",
|
||||
"editor.findMatchBorder": "#cc5757",
|
||||
"selection.background": "#cc575740",
|
||||
"editor.background": "#202020",
|
||||
"editorWhitespace.foreground": "#303030",
|
||||
"statusBar.background": "#202020",
|
||||
"statusBar.noFolderBackground": "#202020",
|
||||
"statusBar.debuggingBackground": "#202020",
|
||||
"statusBar.foreground": "#fff"
|
||||
},
|
||||
"editor.formatOnType": true,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.formatOnPaste": true,
|
||||
"editor.suggestSelection": "first",
|
||||
"debug.allowBreakpointsEverywhere": true,
|
||||
"files.exclude": {
|
||||
"**/.classpath": true,
|
||||
"**/.project": true,
|
||||
"**/.settings": true,
|
||||
"**/.factorypath": true,
|
||||
"**/__pycache__": true,
|
||||
".venv": true
|
||||
},
|
||||
"files.associations": {
|
||||
"**/*.html": "html",
|
||||
"**/templates/**/*.html": "jinja-html",
|
||||
"**/templates/**/*": "jinja-txt",
|
||||
"**/requirements{/**,*}.{txt,in}": "pip-requirements"
|
||||
},
|
||||
"emmet.includeLanguages": {
|
||||
"django-html": "html",
|
||||
"jinja-html": "html"
|
||||
},
|
||||
// "editor.defaultFormatter": "HookyQR.beautify",
|
||||
// "[jinja-html]": {
|
||||
// "editor.defaultFormatter": "HookyQR.beautify",
|
||||
// },
|
||||
// "[jsonc]": {
|
||||
// "editor.defaultFormatter": "HookyQR.beautify"
|
||||
// },
|
||||
// "python.testing.unittestEnabled": true,
|
||||
// "python.dataScience.enabled": true,
|
||||
// "python.dataScience.sendSelectionToInteractiveWindow": true,
|
||||
// "python.linting.mypyEnabled": true,
|
||||
// "python.linting.pycodestyleEnabled": true,
|
||||
"python.linting.pylintEnabled": true,
|
||||
"vim.debug.silent": true,
|
||||
"python.jediEnabled": true,
|
||||
"python.formatting.provider": "black",
|
||||
"python.linting.pylintUseMinimalCheckers": false,
|
||||
"python.linting.mypyEnabled": true,
|
||||
"[html]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,278 @@
|
|||
# _ _ _
|
||||
# __| | ___ | |_ __| |_ __ ___ _ __
|
||||
# / _` |/ _ \| __/ _` | '__/ _ \| '_ \
|
||||
# | (_| | (_) | || (_| | | | (_) | |_) |
|
||||
# \__,_|\___/ \__\__,_|_| \___/| .__/
|
||||
# |_|
|
||||
|
||||
variables:
|
||||
username: lelgenio
|
||||
mail: disroot.org
|
||||
cursor_size: 24
|
||||
launcher: wofi
|
||||
terminal: kitty
|
||||
bar: waybar
|
||||
bar_pos: top
|
||||
font:
|
||||
mono: Fira Code
|
||||
interface: Inter
|
||||
profiles: #{{{
|
||||
dark: # {{{
|
||||
variables:
|
||||
gtk_theme: materia-lelgenio-dark
|
||||
kvantum_theme: MateriaDark
|
||||
icon_theme: Papirus-Dark
|
||||
cursor_theme: capitaine-cursors
|
||||
color:
|
||||
type: dark
|
||||
accent: '#D9534F'
|
||||
bg: '#202020'
|
||||
bg_light: '#404040'
|
||||
bg_dark: '#191919'
|
||||
txt: '#ffffff'
|
||||
nontxt: '#252525'
|
||||
normal:
|
||||
black: '#555555'
|
||||
red: '#AB4642'
|
||||
green: '#A1B56C'
|
||||
yellow: '#E6C547'
|
||||
blue: '#6C99DA'
|
||||
magenta: '#C397D8'
|
||||
cyan: '#70C0BA'
|
||||
white: '#EAEAEA'
|
||||
dotfiles:
|
||||
- ALL
|
||||
# }}}
|
||||
light: # {{{
|
||||
variables:
|
||||
gtk_theme: materia-lelgenio
|
||||
kvantum_theme: Materia
|
||||
icon_theme: Papirus-Light
|
||||
cursor_theme: capitaine-cursors
|
||||
color:
|
||||
type: light
|
||||
accent: '#D9534F'
|
||||
bg: '#EAEAEA'
|
||||
bg_light: '#A0A0A0'
|
||||
bg_dark: '#999999'
|
||||
txt: '#303030'
|
||||
nontxt: '#A0A0A0'
|
||||
normal:
|
||||
black: '#555555'
|
||||
red: '#D54E53'
|
||||
green: '#008800'
|
||||
yellow: '#EAB700'
|
||||
blue: '#0D68A8'
|
||||
magenta: '#C397D8'
|
||||
cyan: '#00A0A5'
|
||||
white: '#FFFFFF'
|
||||
# }}}
|
||||
colemak: #{{{
|
||||
variables:
|
||||
key:
|
||||
layout: colemak
|
||||
left: n
|
||||
down: e
|
||||
up: i
|
||||
right: o
|
||||
next: l
|
||||
tabL: U
|
||||
tabR: Y
|
||||
insertMode: s
|
||||
insertQuit: kk
|
||||
#}}}
|
||||
qwerty: #{{{
|
||||
variables:
|
||||
key:
|
||||
layout: qwerty
|
||||
left: h
|
||||
down: j
|
||||
up: k
|
||||
right: l
|
||||
next: l
|
||||
tabL: I
|
||||
tabR: O
|
||||
insertMode: i
|
||||
insertQuit: jj
|
||||
#}}}
|
||||
main: #{{{
|
||||
dotfiles:
|
||||
- ALL
|
||||
include:
|
||||
- "{{@@ key_layout @@}}"
|
||||
- "{{@@ color_type @@}}"
|
||||
#}}}
|
||||
#}}}
|
||||
config: # {{{
|
||||
backup: false
|
||||
banner: false
|
||||
keepdot: false
|
||||
link_dotfile_default: nolink
|
||||
link_on_import: nolink
|
||||
longkey: false
|
||||
default_actions:
|
||||
- notify
|
||||
func_file:
|
||||
- funcs.py
|
||||
dynvariables:
|
||||
key_layout: |
|
||||
if test -n "$_KEYBOARD_LAYOUT"; then
|
||||
echo "$_KEYBOARD_LAYOUT"
|
||||
else
|
||||
grep lelgenio /etc/passwd &>/dev/null &&
|
||||
echo colemak || echo qwerty
|
||||
fi
|
||||
color_type: test -n "$_COLOR_TYPE" && echo "$_COLOR_TYPE" || echo dark
|
||||
# }}}
|
||||
dotfiles: # {{{
|
||||
nvim:
|
||||
src: nvim
|
||||
dst: ~/.config/nvim
|
||||
actions:
|
||||
- vimplug
|
||||
sway:
|
||||
src: sway.conf
|
||||
dst: ~/.config/sway/config
|
||||
actions:
|
||||
- reload_sway
|
||||
fish:
|
||||
src: fish.fish
|
||||
dst: ~/.config/fish/config.fish
|
||||
actions:
|
||||
- reload_fish
|
||||
mako:
|
||||
src: mako.conf
|
||||
dst: ~/.config/mako/config
|
||||
actions:
|
||||
- makoreload
|
||||
waybar:
|
||||
src: waybar
|
||||
dst: ~/.config/waybar
|
||||
actions:
|
||||
- reload_sway
|
||||
kitty:
|
||||
src: kitty.conf
|
||||
dst: ~/.config/kitty/kitty.conf
|
||||
actions:
|
||||
- reload_fish
|
||||
qutebrowser:
|
||||
src: qutebrowser.py
|
||||
dst: ~/.config/qutebrowser/config.py
|
||||
lesskey:
|
||||
src: lesskey
|
||||
dst: ~/.lesskey
|
||||
actions:
|
||||
- lesskey
|
||||
scripts:
|
||||
src: scripts
|
||||
dst: ~/.local/bin
|
||||
wofi:
|
||||
src: wofi
|
||||
dst: ~/.config/wofi
|
||||
ranger:
|
||||
src: ranger
|
||||
dst: ~/.config/ranger
|
||||
actions:
|
||||
- ranger_icons
|
||||
zathura:
|
||||
src: zathura.conf
|
||||
dst: ~/.config/zathura/zathurarc
|
||||
wallpapers:
|
||||
src: wallpapers
|
||||
dst: ~/.local/share/wallpapers
|
||||
mime:
|
||||
src: mime/
|
||||
dst: ~/
|
||||
fusuma:
|
||||
src: fusuma.yml
|
||||
dst: ~/.config/fusuma/config.yml
|
||||
alacritty:
|
||||
src: alacritty.yml
|
||||
dst: ~/.config/alacritty.yml
|
||||
mpd:
|
||||
src: mpd.conf
|
||||
dst: ~/.config/mpd/mpd.conf
|
||||
dav:
|
||||
src: dav/
|
||||
dst: ~/.config
|
||||
actions:
|
||||
- vdirsyncer
|
||||
rclone:
|
||||
src: rclone.conf
|
||||
dst: ~/.config/rclone/rclone.conf
|
||||
mutt:
|
||||
src: neomutt/
|
||||
dst: ~/.config/neomutt/
|
||||
actions:
|
||||
- cpmbsync
|
||||
crontab:
|
||||
src: crontab
|
||||
dst: ~/.local/share/crontab
|
||||
actions:
|
||||
- crontab_install
|
||||
theme:
|
||||
src: theme
|
||||
dst: ~/
|
||||
kanshi:
|
||||
src: kanshi
|
||||
dst: ~/.config/kanshi/config
|
||||
imv:
|
||||
src: imv.conf
|
||||
dst: ~/.config/imv/config
|
||||
mpv:
|
||||
src: mpv.conf
|
||||
dst: ~/.config/mpv/mpv.conf
|
||||
actions:
|
||||
- sponsorblock
|
||||
blender:
|
||||
src: blenderTheme.xml
|
||||
dst: ~/.config/blender/2.90/scripts/presets/interface_theme/blenderTheme.xml
|
||||
clang-format:
|
||||
src: clang-format
|
||||
dst: ~/.clang-format
|
||||
gpg-agent:
|
||||
src: gpg-agent.conf
|
||||
dst: ~/.gnupg/gpg-agent.conf
|
||||
actions:
|
||||
- pam_gpg
|
||||
tmux:
|
||||
src: tmux.conf
|
||||
dst: ~/.tmux.conf
|
||||
# }}}
|
||||
actions: #{{{
|
||||
notify: notify-send "Updating dotfiles" "{{@@ _dotfile_abs_dst.lstrip(env['HOME']) @@}}"
|
||||
makoreload: makoctl reload
|
||||
lesskey: lesskey
|
||||
reload_sway: swaymsg reload
|
||||
reload_fish: pkill -SIGHUP fish
|
||||
vimplug: >
|
||||
nvim
|
||||
+PlugUpgrade
|
||||
+PlugInstall
|
||||
+PlugUpdate
|
||||
+qall
|
||||
&> /dev/null
|
||||
& disown
|
||||
crontab_install: |
|
||||
crontab -r
|
||||
crontab ~/.local/share/crontab
|
||||
vdirsyncer: |
|
||||
yes | vdirsyncer discover & disown
|
||||
cpmbsync: |
|
||||
ln -fs ~/.config/neomutt/mbsyncrc ~/.mbsyncrc
|
||||
sponsorblock: >
|
||||
test -d ~/.config/mpv/scripts/sponsorblock_shared ||
|
||||
git clone
|
||||
https://github.com/po5/mpv_sponsorblock
|
||||
~/.config/mpv/scripts;
|
||||
|
||||
rm -f
|
||||
~/.config/mpv/scripts/LICENSE
|
||||
~/.config/mpv/scripts/README.md
|
||||
ranger_icons:
|
||||
git clone
|
||||
https://github.com/alexanderjeurissen/ranger_devicons
|
||||
~/.config/ranger/plugins/ranger_devicons
|
||||
pam_gpg: _pam-gpg-strap
|
||||
# }}}
|
||||
# vim: fdm=marker
|
|
@ -0,0 +1,564 @@
|
|||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
# env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
# TERM: screen-256color
|
||||
|
||||
#window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Specified in number of columns/lines, not pixels.
|
||||
# If both are `0`, this setting is ignored.
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
#padding:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
#dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background, but no title bar buttons
|
||||
#decorations: full
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
#class:
|
||||
# Application instance name
|
||||
#instance: Alacritty
|
||||
# General application class
|
||||
#general: Alacritty
|
||||
|
||||
# GTK theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
|
||||
# Set this to `None` to use the default theme variant.
|
||||
#theme.gtk_variant: None
|
||||
|
||||
#scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
#history: 10000
|
||||
|
||||
# Number of lines the viewport will move for every line scrolled when
|
||||
# scrollback is enabled (history > 0).
|
||||
#multiplier: 3
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
family: {{@@ font.mono @@}}
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Regular
|
||||
|
||||
# Bold font face
|
||||
#bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold
|
||||
|
||||
# Italic font face
|
||||
#italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
#bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 12.0
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought of
|
||||
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||
# increasing `y` moves the glyph upwards.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Thin stroke font rendering (macOS only)
|
||||
#
|
||||
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||
# it is recommended to set `use_thin_strokes` to `false`
|
||||
#
|
||||
# macOS >= 10.14.x:
|
||||
#
|
||||
# If the font quality on non-retina display looks bad then set
|
||||
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||
# following command:
|
||||
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||
#
|
||||
# This is a global setting and will require a log out or restart to take
|
||||
# effect.
|
||||
#use_thin_strokes: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
draw_bold_text_with_bright_colors: true
|
||||
|
||||
# Colors (Tomorrow Night Bright)
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '{{@@ color.bg @@}}'
|
||||
foreground: '{{@@ color.txt @@}}'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not present.
|
||||
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
|
||||
# is `false`, the normal foreground color will be used.
|
||||
#dim_foreground: '#9a9a9a'
|
||||
#bright_foreground: '#ffffff'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor. If these are unset,
|
||||
# the cursor color will be the inverse of the cell color.
|
||||
cursor:
|
||||
text: '#000000'
|
||||
cursor: '{{@@ color.accent @@}}'
|
||||
|
||||
# Selection colors
|
||||
#
|
||||
# Colors which should be used to draw the selection area. If selection
|
||||
# background is unset, selection color will be the inverse of the cell colors.
|
||||
# If only text is unset the cell text color will remain the same.
|
||||
#selection:
|
||||
# text: '#eaeaea'
|
||||
# background: '#404040'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '{{@@ color.normal.black @@}}'
|
||||
red: '{{@@ color.normal.red @@}}'
|
||||
green: '{{@@ color.normal.green @@}}'
|
||||
yellow: '{{@@ color.normal.yellow @@}}'
|
||||
blue: '{{@@ color.normal.blue @@}}'
|
||||
magenta: '{{@@ color.normal.magenta @@}}'
|
||||
cyan: '{{@@ color.normal.cyan @@}}'
|
||||
white: '{{@@ color.normal.white @@}}'
|
||||
|
||||
# Bright colors
|
||||
#bright:
|
||||
# black: '#666666'
|
||||
# red: '#ff3334'
|
||||
# green: '#9ec400'
|
||||
# yellow: '#e7c547'
|
||||
# blue: '#7aa6da'
|
||||
# magenta: '#b77ee0'
|
||||
# cyan: '#54ced6'
|
||||
# white: '#ffffff'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
#dim:
|
||||
# black: '#000000'
|
||||
# red: '#8c3336'
|
||||
# green: '#7a8530'
|
||||
# yellow: '#97822e'
|
||||
# blue: '#506d8f'
|
||||
# magenta: '#80638e'
|
||||
# cyan: '#497e7a'
|
||||
# white: '#9a9a9a'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '#ff00ff' }`
|
||||
#
|
||||
#indexed_colors: []
|
||||
|
||||
# Visual Bell
|
||||
#
|
||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||
# rung, the terminal background will be set to white and transition back to the
|
||||
# default background color. You can control the rate of this transition by
|
||||
# setting the `duration` property (represented in milliseconds). You can also
|
||||
# configure the transition function by setting the `animation` property.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#
|
||||
# Specifying a `duration` of `0` will disable the visual bell.
|
||||
#visual_bell:
|
||||
# animation: EaseOutExpo
|
||||
# duration: 0
|
||||
# color: '#ffffff'
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
# {%@@ if color.type =="dark" @@%} #
|
||||
background_opacity: 0.98
|
||||
# {%@@ else @@%} #
|
||||
background_opacity: 0.90
|
||||
# {%@@ endif @@%} #
|
||||
|
||||
#selection:
|
||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
#save_to_clipboard: false
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
#cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for `style`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
#style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
#unfocused_hollow: true
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
||||
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) /bin/bash --login
|
||||
# - (Linux/BSD) user login shell
|
||||
# - (Windows) powershell
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
|
||||
# Startup directory
|
||||
#
|
||||
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||
# directory of the parent process will be used.
|
||||
#working_directory: None
|
||||
|
||||
# WinPTY backend (Windows only)
|
||||
#
|
||||
# Alacritty defaults to using the newer ConPTY backend if it is available,
|
||||
# since it resolves a lot of bugs and is quite a bit faster. If it is not
|
||||
# available, the the WinPTY backend will be used instead.
|
||||
#
|
||||
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
|
||||
# even if the ConPTY backend is available.
|
||||
#winpty_backend: false
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
# alt_send_esc: true
|
||||
|
||||
#mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
#double_click: { threshold: 300 }
|
||||
#triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
#hide_when_typing: false
|
||||
|
||||
#url:
|
||||
# URL launcher
|
||||
#
|
||||
# This program is executed when clicking on a text which is recognized as a URL.
|
||||
# The URL is always added to the command as the last parameter.
|
||||
#
|
||||
# When set to `None`, URL launching will be disabled completely.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) open
|
||||
# - (Linux/BSD) xdg-open
|
||||
# - (Windows) explorer
|
||||
#launcher:
|
||||
# program: xdg-open
|
||||
# args: []
|
||||
|
||||
# URL modifiers
|
||||
#
|
||||
# These are the modifiers that need to be held down for opening URLs when clicking
|
||||
# on them. The available modifiers are documented in the key binding section.
|
||||
#modifiers: None
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Mouse bindings are specified as a list of objects, much like the key
|
||||
# bindings further below.
|
||||
#
|
||||
# To trigger mouse bindings when an application running within Alacritty captures the mouse, the
|
||||
# `Shift` modifier is automatically added as a requirement.
|
||||
#
|
||||
# Each mouse binding will specify a:
|
||||
#
|
||||
# - `mouse`:
|
||||
#
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# - `action` (see key bindings)
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods` (see key bindings)
|
||||
#mouse_bindings:
|
||||
# - { mouse: Middle, action: PasteSelection }
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. For example, this is the
|
||||
# default paste binding:
|
||||
#
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Each key binding will specify a:
|
||||
#
|
||||
# - `key`: Identifier of the key pressed
|
||||
#
|
||||
# - A-Z
|
||||
# - F1-F24
|
||||
# - Key0-Key9
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number. This command will allow you to display the hex scancodes
|
||||
# for certain keys:
|
||||
#
|
||||
# `showkey --scancodes`.
|
||||
#
|
||||
# Then exactly one of:
|
||||
#
|
||||
# - `chars`: Send a byte sequence to the running application
|
||||
#
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences. To find escape codes for bindings
|
||||
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||
# to keys. It is therefore required to update the terminfo when changing an
|
||||
# escape sequence.
|
||||
#
|
||||
# - `action`: Execute a predefined action
|
||||
#
|
||||
# - Copy
|
||||
# - Paste
|
||||
# - PasteSelection
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# - Hide
|
||||
# - Minimize
|
||||
# - Quit
|
||||
# - ToggleFullscreen
|
||||
# - SpawnNewInstance
|
||||
# - ClearLogNotice
|
||||
# - ReceiveChar
|
||||
# - None
|
||||
#
|
||||
# (macOS only):
|
||||
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
||||
#
|
||||
# - `command`: Fork and execute a specified command plus arguments
|
||||
#
|
||||
# The `command` field must be a map containing a `program` string and an
|
||||
# `args` array of command line parameter strings. For example:
|
||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods`: Key modifiers to filter binding actions
|
||||
#
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this:
|
||||
# `mods: Control|Shift`.
|
||||
# Whitespace and capitalization are relevant and must match the example.
|
||||
#
|
||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||
#
|
||||
# This is mainly used to send applications the correct escape sequences
|
||||
# when in different modes.
|
||||
#
|
||||
# - AppCursor
|
||||
# - AppKeypad
|
||||
# - Alt
|
||||
#
|
||||
# A `~` operator can be used before a mode to apply the binding whenever
|
||||
# the mode is *not* active, e.g. `~Alt`.
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new
|
||||
# binding with the same triggers is defined. To unset a default binding, it can
|
||||
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||
# a no-op if you do not wish to receive input characters for that binding.
|
||||
#
|
||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||
# at once.
|
||||
#key_bindings:
|
||||
# (Windows, Linux, and BSD only)
|
||||
#- { key: V, mods: Control|Shift, action: Paste }
|
||||
#- { key: C, mods: Control|Shift, action: Copy }
|
||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
# (Windows only)
|
||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||
|
||||
# (macOS only)
|
||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: K, mods: Command, action: ClearHistory }
|
||||
#- { key: K, mods: Command, chars: "\x0c" }
|
||||
#- { key: V, mods: Command, action: Paste }
|
||||
#- { key: C, mods: Command, action: Copy }
|
||||
#- { key: H, mods: Command, action: Hide }
|
||||
#- { key: M, mods: Command, action: Minimize }
|
||||
#- { key: Q, mods: Command, action: Quit }
|
||||
#- { key: W, mods: Command, action: Quit }
|
||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||
|
||||
#- { key: Paste, action: Paste }
|
||||
#- { key: Copy, action: Copy }
|
||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||
#- { key: L, mods: Control, chars: "\x0c" }
|
||||
#- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
#- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
#- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||
#- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||
|
||||
#debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
#render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
#persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - None
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
#log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
#print_events: false
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,2 @@
|
|||
BasedOnStyle: Mozilla
|
||||
IndentWidth: 4
|
|
@ -0,0 +1,12 @@
|
|||
# {{@@ header() @@}}
|
||||
PATH={{@@ ordered_path() @@}}
|
||||
|
||||
# {%@@ if env['USER'] != 'root' @@%} #
|
||||
#minute hour day month day_week cmd
|
||||
*/5 * * * * forecast json
|
||||
*/5 * * * * checkmail update
|
||||
* */5 * * * vdirsyncer sync
|
||||
*/30 * * * * savegame_backup
|
||||
# {%@@ endif @@%} #
|
||||
|
||||
# vim: commentstring=#\ %s
|
|
@ -0,0 +1,28 @@
|
|||
[default]
|
||||
default_calendar = calendar_local
|
||||
|
||||
[calendars]
|
||||
[[calendar_local]]
|
||||
path = ~/.local/share/calendars/personal
|
||||
|
||||
[[contacts_local]]
|
||||
path = ~/.local/share/contacts/contacts
|
||||
type = discover
|
||||
|
||||
[locale]
|
||||
timeformat = %H:%M
|
||||
dateformat = %d
|
||||
longdateformat = %d/%m/%Y
|
||||
datetimeformat = %H:%M %d/%m
|
||||
longdatetimeformat = %H:%M %d/%m/%Y
|
||||
|
||||
[keybindings]
|
||||
left = {{@@ key.left @@}}
|
||||
down = {{@@ key.down @@}}
|
||||
up = {{@@ key.up @@}}
|
||||
right= {{@@ key.right @@}}
|
||||
|
||||
new = c
|
||||
today= g
|
||||
|
||||
# vim: ft=toml
|
|
@ -0,0 +1,49 @@
|
|||
[addressbooks]
|
||||
[[main]]
|
||||
path = ~/.local/share/contacts/contacts
|
||||
|
||||
[general]
|
||||
debug = no
|
||||
default_action = list
|
||||
# These are either strings or comma seperated lists
|
||||
editor = nvim, -i, NONE
|
||||
merge_editor = vimdiff
|
||||
|
||||
[contact table]
|
||||
# display names by first or last name: first_name / last_name / formatted_name
|
||||
display = first_name
|
||||
# group by address book: yes / no
|
||||
group_by_addressbook = no
|
||||
# reverse table ordering: yes / no
|
||||
reverse = no
|
||||
# append nicknames to name column: yes / no
|
||||
show_nicknames = no
|
||||
# show uid table column: yes / no
|
||||
show_uids = no
|
||||
# sort by first or last name: first_name / last_name / formatted_name
|
||||
sort = first_name
|
||||
# localize dates: yes / no
|
||||
localize_dates = yes
|
||||
# set a comma separated list of preferred phone number types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_phone_number_type = pref, cell, home
|
||||
# set a comma separated list of preferred email address types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_email_address_type = pref, work, home
|
||||
|
||||
[vcard]
|
||||
# extend contacts with your own private objects
|
||||
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||
# every object label may only contain letters, digits and the - character
|
||||
# example:
|
||||
# private_objects = Jabber, Skype, Twitter
|
||||
# default: , (the empty list)
|
||||
private_objects = Jabber, Skype, Twitter
|
||||
# preferred vcard version: 3.0 / 4.0
|
||||
preferred_version = 3.0
|
||||
# Look into source vcf files to speed up search queries: yes / no
|
||||
search_in_source_files = no
|
||||
# skip unparsable vcard files: yes / no
|
||||
skip_unparsable = no
|
||||
|
||||
# vim: ft=toml
|
|
@ -0,0 +1,69 @@
|
|||
# An example configuration for vdirsyncer.
|
||||
#
|
||||
# Move it to ~/.vdirsyncer/config or ~/.config/vdirsyncer/config and edit it.
|
||||
# Run `vdirsyncer --help` for CLI usage.
|
||||
#
|
||||
# Optional parameters are commented out.
|
||||
# This file doesn't document all available parameters, see
|
||||
# http://vdirsyncer.pimutils.org/ for the rest of them.
|
||||
|
||||
[general]
|
||||
# A folder where vdirsyncer can store some metadata about each pair.
|
||||
status_path = "~/.vdirsyncer/status/"
|
||||
|
||||
|
||||
# CARDDAV
|
||||
[pair contacts]
|
||||
# A `[pair <name>]` block defines two storages `a` and `b` that should be
|
||||
# synchronized. The definition of these storages follows in `[storage <name>]`
|
||||
# blocks. This is similar to accounts in OfflineIMAP.
|
||||
a = "contacts_local"
|
||||
b = "contacts_remote"
|
||||
|
||||
# Synchronize all collections that can be found.
|
||||
# You need to run `vdirsyncer discover` if new calendars/addressbooks are added
|
||||
# on the server.
|
||||
|
||||
collections = ["from a", "from b"]
|
||||
|
||||
# Synchronize the "display name" property into a local file (~/.contacts/displayname).
|
||||
metadata = ["displayname"]
|
||||
|
||||
# To resolve a conflict the following values are possible:
|
||||
# `null` - abort when collisions occur (default)
|
||||
# `"a wins"` - assume a's items to be more up-to-date
|
||||
# `"b wins"` - assume b's items to be more up-to-date
|
||||
#conflict_resolution = null
|
||||
|
||||
[storage contacts_local]
|
||||
# A storage references actual data on a remote server or on the local disk.
|
||||
# Similar to repositories in OfflineIMAP.
|
||||
type = "filesystem"
|
||||
path = "~/.local/share/contacts/"
|
||||
fileext = ".vcf"
|
||||
|
||||
[storage contacts_remote]
|
||||
type = "carddav"
|
||||
url = "https://cloud.{{@@ mail @@}}/remote.php/dav/addressbooks/users/{{@@ username @@}}/contacts/"
|
||||
username = "{{@@ username @@}}@{{@@ mail @@}}"
|
||||
password.fetch = [ "command", "_get-pass", "{{@@ mail @@}}" ]
|
||||
|
||||
# CALDAV
|
||||
[pair calendar]
|
||||
a = "calendar_local"
|
||||
b = "calendar_remote"
|
||||
collections = ["from a", "from b"]
|
||||
|
||||
# Calendars also have a color property
|
||||
metadata = ["displayname", "color"]
|
||||
|
||||
[storage calendar_local]
|
||||
type = "filesystem"
|
||||
path = "~/.local/share/calendars/"
|
||||
fileext = ".ics"
|
||||
|
||||
[storage calendar_remote]
|
||||
type = "caldav"
|
||||
url = "https://cloud.{{@@ mail @@}}/remote.php/dav/calendars/{{@@ username @@}}/personal/"
|
||||
username = "{{@@ username @@}}@{{@@ mail @@}}"
|
||||
password.fetch = [ "command", "_get-pass", "{{@@ mail @@}}" ]
|
|
@ -0,0 +1,320 @@
|
|||
# {{@@ header() @@}}
|
||||
# __ _ _
|
||||
# / _(_)___| |__
|
||||
# | |_| / __| '_ \
|
||||
# | _| \__ \ | | |
|
||||
# |_| |_|___/_| |_|
|
||||
|
||||
# Environment Vairables {{{
|
||||
set -x QT_QPA_PLATFORMTHEME qt5ct
|
||||
set -x PATH ~/.local/bin ~/.cargo/bin $PATH
|
||||
|
||||
set -x EDITOR nvim
|
||||
set -x VISUAL nvim
|
||||
set -x BROWSER qutebrowser
|
||||
set -x PAGER less
|
||||
|
||||
# if test -n "$XDG_VTRN"; and test -z "$DISPLAY"
|
||||
# or command -qs systemctl;and systemctl -q is-enabled ly
|
||||
|
||||
|
||||
# keep my dirs clean
|
||||
set -x PYTHONPYCACHEPREFIX $HOME/.cache/python
|
||||
|
||||
# end
|
||||
|
||||
#}}}
|
||||
# Aliases{{{
|
||||
|
||||
abbr v nvim
|
||||
|
||||
command -qs sudo &&
|
||||
abbr rv sudo nvim
|
||||
command -qs doas &&
|
||||
abbr rv doas nvim
|
||||
|
||||
command -qs trash &&
|
||||
alias rm trash
|
||||
|
||||
command -qs exa &&
|
||||
alias ls 'exa --git'
|
||||
{%@@ set bat_command = "bat " + ("--theme GitHub" * (color.type == "light")) @@%}
|
||||
command -qs bat &&
|
||||
alias cat "{{@@ bat_command @@}}"
|
||||
|
||||
command -qs zoxide &&
|
||||
zoxide init fish | source
|
||||
|
||||
command -qs khard &&
|
||||
function fish_greeting
|
||||
set -l khalList khal list now 10d --format " {title}"
|
||||
$khalList &> /dev/null
|
||||
or return
|
||||
$khalList | grep '^No events$' &> /dev/null
|
||||
and return
|
||||
$khalList
|
||||
end
|
||||
|
||||
abbr mpn ncmpcpp
|
||||
|
||||
abbr gs git status
|
||||
abbr gd git diff
|
||||
abbr gp 'git pull; git push'
|
||||
|
||||
export _KEYBOARD_LAYOUT="{{@@ key_layout @@}}"
|
||||
export _COLOR_TYPE="{{@@ color_type @@}}"
|
||||
|
||||
export DOTDROP_CONFIG="{{@@ _dotdrop_cfgpath @@}}"
|
||||
export DOTDROP_PROFILE="{{@@ profile @@}}"
|
||||
abbr dot "dotdrop install -f"
|
||||
|
||||
function edit-config #{{{
|
||||
cd "{{@@ parent_dir ( _dotdrop_dotpath ) @@}}"
|
||||
nvim +GFiles
|
||||
end
|
||||
abbr ec edit-config
|
||||
|
||||
#}}}
|
||||
# alias mutt #{{{
|
||||
|
||||
function mutt --wraps=neomutt --description 'alias mutt=neomutt'
|
||||
neomutt $argv;
|
||||
pkill -RTMIN+4 waybar
|
||||
end
|
||||
abbr neomutt mutt
|
||||
#}}}
|
||||
function rcd #{{{
|
||||
set file (mktemp)
|
||||
|
||||
ranger --choosedir=$file
|
||||
cd (cat $file)
|
||||
|
||||
rm $file
|
||||
clear
|
||||
ls
|
||||
fish_prompt
|
||||
end
|
||||
|
||||
# force-repaint to redraw prompt
|
||||
bind -M insert \cr rcd
|
||||
#}}}
|
||||
function etc #{{{
|
||||
cd /etc/
|
||||
set file /etc/(fzf)
|
||||
cd -
|
||||
test -f "$file"
|
||||
and sudo nvim $file
|
||||
end
|
||||
#}}}
|
||||
# cd ...{{{
|
||||
for i in (seq 3 10)
|
||||
set -l dots (string repeat -n $i .)
|
||||
set -l segs (string repeat -n $i ./.)
|
||||
alias $dots "cd $segs"
|
||||
end
|
||||
#}}}
|
||||
# Autoreload{{{
|
||||
function _fish_autoreload --on-signal SIGHUP
|
||||
source {{@@ _dotfile_abs_dst @@}}
|
||||
kitty @ set-colors -a ~/.config/kitty/kitty.conf
|
||||
end
|
||||
#}}}
|
||||
# }}}
|
||||
# Keys{{{
|
||||
|
||||
set fish_key_bindings fish_vi_key_bindings
|
||||
|
||||
if test $fish_key_bindings = fish_vi_key_bindings
|
||||
|
||||
bind {{@@ key.left @@}} backward-char
|
||||
bind -M visual {{@@ key.left @@}} backward-char
|
||||
bind {{@@ key.down @@}} down-or-search
|
||||
bind -M visual {{@@ key.down @@}} down-line
|
||||
bind {{@@ key.up @@}} up-or-search
|
||||
bind -M visual {{@@ key.up @@}} up-line
|
||||
bind {{@@ key.right @@}} forward-char
|
||||
bind -M visual {{@@ key.right @@}} forward-char
|
||||
|
||||
bind -m insert {{@@ key.insertMode @@}} repaint-mode
|
||||
bind -m insert {{@@ key.insertMode.upper() @@}} beginning-of-line repaint-mode
|
||||
|
||||
bind -M insert {{@@ key.insertQuit @@}} repaint-mode -m default
|
||||
|
||||
bind yy fish_clipboard_copy
|
||||
|
||||
end
|
||||
|
||||
#}}}
|
||||
# start window manager if using tty1 {{{
|
||||
#
|
||||
|
||||
function esway
|
||||
clear
|
||||
|
||||
set -x _JAVA_AWT_WM_NONREPARENTING 1
|
||||
|
||||
set -x GTK_CSD 0
|
||||
test -f &&
|
||||
set -x LD_PRELOAD '/usr/lib/libgtk3-nocsd.so.0'
|
||||
|
||||
set -x QT_SCALE_FACTOR 1.0001
|
||||
set -x QPA_PLATFORM wayland
|
||||
set -x QT_QPA_PLATFORM wayland
|
||||
|
||||
export XDG_CURRENT_DESKTOP=sway
|
||||
export XDG_SESSION_TYPE=wayland
|
||||
|
||||
pidof sway || exec sway
|
||||
end
|
||||
|
||||
if test "$XDG_VTNR" = 1 -a -z "$DISPLAY"
|
||||
esway &| tee .swaylog
|
||||
# ei3 &> .i3log
|
||||
# ebsp &> .bsplog
|
||||
end
|
||||
|
||||
# }}}
|
||||
# use tmux{{{
|
||||
|
||||
if test -z "$TMUX" -a -n "$DISPLAY" -a -z "$GNOME_TERMINAL_SCREEN"
|
||||
and not string match -qr kitty "$TERM"
|
||||
and status is-interactive
|
||||
|
||||
set attach_session (tmux 2> /dev/null ls -F \
|
||||
'#{session_attached} #{?#{==:#{session_last_attached},},1,#{session_last_attached}} #{session_id}' |
|
||||
awk '/^0/ { if ($2 > t) { t = $2; s = $3 } }; END { if (s) printf "%s", s }')
|
||||
if test -n "$attach_session"
|
||||
exec tmux attach -t "$attach_session"
|
||||
else
|
||||
exec tmux
|
||||
end
|
||||
end
|
||||
|
||||
# }}}
|
||||
# Prompt customization{{{
|
||||
|
||||
set fish_color_command default --bold
|
||||
set fish_color_param default
|
||||
|
||||
# Fine, I'll do it myself
|
||||
function fish_vi_cursor;end
|
||||
function fish_mode_prompt;end
|
||||
|
||||
function _fish_prompt_color -a color
|
||||
# separate line needed for bold normal
|
||||
set_color $color
|
||||
set_color --bold
|
||||
set -e argv[1]
|
||||
echo -en $argv
|
||||
end
|
||||
|
||||
alias _fish_prompt_accent "_fish_prompt_color '{{@@ color.accent @@}}'"
|
||||
alias _fish_prompt_warn "_fish_prompt_color 'yellow'"
|
||||
|
||||
alias _fish_prompt_normal "_fish_prompt_color 'normal'"
|
||||
|
||||
function _fish_prompt_git_status
|
||||
git status -s | grep "^$argv[1]" &> /dev/null &&
|
||||
_fish_prompt_color $argv[3] $argv[2]
|
||||
end
|
||||
|
||||
function fish_prompt
|
||||
set _status $status
|
||||
|
||||
_fish_prompt_accent $USER
|
||||
_fish_prompt_normal " in "
|
||||
_fish_prompt_accent (prompt_pwd)
|
||||
if fish_vcs_prompt > /dev/null
|
||||
_fish_prompt_normal " on "
|
||||
|
||||
_fish_prompt_git_status '??' '?' '{{@@ color.txt @@}}'
|
||||
_fish_prompt_git_status ' M' '~' '{{@@ color.normal.yellow @@}}'
|
||||
_fish_prompt_git_status ' D' '-' '{{@@ color.normal.red @@}}'
|
||||
_fish_prompt_git_status 'A ' '+' '{{@@ color.normal.green @@}}'
|
||||
_fish_prompt_git_status 'M ' '~' '{{@@ color.normal.green @@}}'
|
||||
|
||||
_fish_prompt_accent (fish_vcs_prompt | string replace -ra ' \(|\)' '')
|
||||
end
|
||||
|
||||
echo
|
||||
|
||||
if test $fish_key_bindings = fish_vi_key_bindings
|
||||
|
||||
# Set cursor shape
|
||||
if test $fish_bind_mode = insert
|
||||
printf '\e[5 q' # Bar
|
||||
else
|
||||
printf '\e[1 q' # Block
|
||||
end
|
||||
|
||||
_fish_prompt_accent (
|
||||
switch $fish_bind_mode
|
||||
case replace_one
|
||||
printf 'o'
|
||||
case default
|
||||
printf 'n'
|
||||
case '*'
|
||||
printf (string match -r '^.' $fish_bind_mode )
|
||||
end | string upper
|
||||
)' '
|
||||
end
|
||||
|
||||
if test $_status -ne 0
|
||||
_fish_prompt_warn $_status' '
|
||||
end
|
||||
|
||||
if test $USER = root
|
||||
_fish_prompt_normal '# '
|
||||
else
|
||||
_fish_prompt_normal '$ '
|
||||
end
|
||||
|
||||
set_color normal
|
||||
end
|
||||
|
||||
# set fish_cursor_default block blink
|
||||
# set fish_cursor_insert line blink
|
||||
# set fish_cursor_replace_one underscore blink
|
||||
# set fish_cursor_visual block
|
||||
|
||||
#}}}
|
||||
# Fish colors{{{
|
||||
|
||||
set fish_color_comment yellow
|
||||
|
||||
set fish_color_redirection purple
|
||||
set fish_color_end purple
|
||||
set fish_color_operator purple
|
||||
|
||||
set fish_color_command green
|
||||
set fish_color_autosuggestion --dim default
|
||||
|
||||
set fish_pager_color_prefix default --bold
|
||||
set fish_pager_color_description yellow
|
||||
|
||||
#}}}
|
||||
# Color man pages{{{
|
||||
|
||||
set -xU LESS_TERMCAP_md (printf "\e[01;31m")
|
||||
set -xU LESS_TERMCAP_me (printf "\e[0m")
|
||||
set -xU LESS_TERMCAP_se (printf "\e[0m")
|
||||
set -xU LESS_TERMCAP_so (printf "\e[01;44;33m")
|
||||
set -xU LESS_TERMCAP_ue (printf "\e[0m")
|
||||
set -xU LESS_TERMCAP_us (printf "\e[01;32m")
|
||||
|
||||
#}}}
|
||||
# Fzf settings{{{
|
||||
|
||||
export FZF_DEFAULT_OPTS="\
|
||||
--preview '{{@@ bat_command @@}} --style=numbers --color=always {}' \
|
||||
--color='\
|
||||
bg+:{{@@ color.bg_light @@}},\
|
||||
hl+:{{@@ color.normal.green @@}},\
|
||||
gutter:{{@@ color.bg @@}},\
|
||||
prompt:{{@@ color.accent @@}},\
|
||||
pointer:{{@@ color.accent @@}},\
|
||||
spinner:{{@@ color.accent @@}}\
|
||||
'"
|
||||
|
||||
#}}}
|
||||
# vim:foldmethod=marker
|
|
@ -1,23 +1,23 @@
|
|||
swipe:
|
||||
3:
|
||||
left:
|
||||
command: 'swaymsg workspace prev'
|
||||
right:
|
||||
command: 'swaymsg workspace next'
|
||||
right:
|
||||
command: 'swaymsg workspace prev'
|
||||
up:
|
||||
command: 'swaymsg fullscreen toggle'
|
||||
down:
|
||||
command: 'wofi -S drun -ip"Iniciar: "'
|
||||
command: 'launcher'
|
||||
# pinch:
|
||||
# in:
|
||||
# command: 'xdotool key ctrl+shift+plus'
|
||||
# out:
|
||||
# command: 'xdotool key ctrl+minus'
|
||||
|
||||
threshold:
|
||||
swipe: 1
|
||||
# pinch: 0.2
|
||||
# threshold:
|
||||
# swipe: 1
|
||||
# # pinch: 0.2
|
||||
|
||||
interval:
|
||||
swipe: 0.5
|
||||
# pinch: 0.2
|
||||
# interval:
|
||||
# swipe: 0.5
|
||||
# # pinch: 0.2
|
|
@ -0,0 +1,2 @@
|
|||
allow-preset-passphrase
|
||||
max-cache-ttl 604800
|
|
@ -0,0 +1,60 @@
|
|||
# Default config for imv
|
||||
|
||||
[options]
|
||||
|
||||
# Suppress built-in key bindings, and specify them explicitly in this
|
||||
# config file.
|
||||
suppress_default_binds = true
|
||||
initial_pan = 50 0
|
||||
scaling_mode = crop
|
||||
|
||||
[aliases]
|
||||
# Define aliases here. Any arguments passed to an alias are appended to the
|
||||
# command.
|
||||
# alias = command to run
|
||||
|
||||
[binds]
|
||||
# Define some key bindings
|
||||
q = quit
|
||||
y = exec wl-copy < $imv_current_file
|
||||
|
||||
# Image navigation
|
||||
<Left> = prev
|
||||
<bracketleft> = prev
|
||||
<Right> = next
|
||||
<bracketright> = next
|
||||
gg = goto 0
|
||||
<Shift+G> = goto -1
|
||||
|
||||
# Panning
|
||||
{{@@ key.left @@}} = pan 50 0
|
||||
{{@@ key.down @@}} = pan 0 -50
|
||||
{{@@ key.up @@}} = pan 0 50
|
||||
{{@@ key.right @@}}= pan -50 0
|
||||
|
||||
# Zooming
|
||||
<Up> = zoom 1
|
||||
<Shift+plus> = zoom 1
|
||||
<Down> = zoom -1
|
||||
<minus> = zoom -1
|
||||
|
||||
# Other commands
|
||||
x = close
|
||||
f = fullscreen
|
||||
d = overlay
|
||||
p = exec echo $imv_current_file
|
||||
c = center
|
||||
{{@@ key.next @@}} = scaling next
|
||||
<Shift+{{@@ key.next.upper() @@}}> = upscaling next
|
||||
a = zoom actual
|
||||
r = reset
|
||||
|
||||
# Gif playback
|
||||
<period> = next_frame
|
||||
<space> = toggle_playing
|
||||
|
||||
# Slideshow control
|
||||
w = slideshow +1
|
||||
<Shift+W> = slideshow -1
|
||||
|
||||
# vim: ft=dosini:cms=#\ %s
|
|
@ -0,0 +1,14 @@
|
|||
profile sedetary {
|
||||
output eDP-1 disable
|
||||
output HDMI-A-1 enable
|
||||
|
||||
exec xrdb .Xresources
|
||||
exec pgrep dotdrop || pacmd set-card-profile 0 output:hdmi-stereo+input:analog-stereo
|
||||
}
|
||||
|
||||
profile nomad {
|
||||
output eDP-1 enable
|
||||
|
||||
exec xrdb .Xresources
|
||||
exec pgrep dotdrop || pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
# {{@@ header() @@}}
|
||||
#
|
||||
# _ ___ _ _
|
||||
# | |/ (_) |_| |_ _ _
|
||||
# | ' /| | __| __| | | |
|
||||
# | . \| | |_| |_| |_| |
|
||||
# |_|\_\_|\__|\__|\__, |
|
||||
# |___/
|
||||
|
||||
font_family {{@@ font.mono @@}}
|
||||
font_size 12
|
||||
|
||||
#colors
|
||||
cursor {{@@ color.accent @@}}
|
||||
background {{@@ color.bg @@}}
|
||||
foreground {{@@ color.txt @@}}
|
||||
background_opacity 0.95
|
||||
|
||||
selection_background {{@@ color.txt @@}}
|
||||
|
||||
color0 {{@@ color.normal.black @@}}
|
||||
color1 {{@@ color.normal.red @@}}
|
||||
color2 {{@@ color.normal.green @@}}
|
||||
color3 {{@@ color.normal.yellow @@}}
|
||||
color4 {{@@ color.normal.blue @@}}
|
||||
color5 {{@@ color.normal.magenta @@}}
|
||||
color6 {{@@ color.normal.cyan @@}}
|
||||
|
||||
scrollback_pager nvim -c "set ft=man noreadonly modifiable" -
|
||||
# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
|
||||
|
||||
map control+shift+0 change_font_size all 0
|
||||
|
||||
# New window in cwd
|
||||
map control+shift+n launch --type=os-window --cwd=current
|
||||
|
||||
enable_audio_bell no
|
||||
|
||||
allow_remote_control yes
|
||||
|
||||
update_check_interval 0
|
|
@ -0,0 +1,8 @@
|
|||
{{@@ key.up @@}} back-line
|
||||
{{@@ key.down @@}} forw-line
|
||||
|
||||
{{@@ key.up .upper() @@}} back-scroll
|
||||
{{@@ key.down.upper() @@}} forw-scroll
|
||||
|
||||
{{@@ key.next @@}} repeat-search
|
||||
{{@@ key.next.upper() @@}} reverse-search
|
|
@ -0,0 +1,17 @@
|
|||
# {{@@ header() @@}}
|
||||
font={{@@ font.interface @@}} 12
|
||||
text-color={{@@ color.txt @@}}
|
||||
background-color={{@@ color.bg @@}}
|
||||
border-color={{@@ color.accent @@}}
|
||||
border-size=5
|
||||
progress-color={{@@ color.accent @@}}
|
||||
icons=1
|
||||
default-timeout=10000
|
||||
markup=1
|
||||
actions=1
|
||||
layer=overlay
|
||||
|
||||
[app-name=volumesh]
|
||||
default-timeout=5000
|
||||
group-by=app-name
|
||||
format=<b>%s</b>\n%b
|
|
@ -0,0 +1,253 @@
|
|||
# {{@@ header() @@}}
|
||||
|
||||
# _
|
||||
# _ __ ___ (_)_ __ ___ ___ __ _ _ __ _ __ ___
|
||||
# | '_ ` _ \| | '_ ` _ \ / _ \/ _` | '_ \| '_ \/ __|
|
||||
# | | | | | | | | | | | | __/ (_| | |_) | |_) \__ \
|
||||
# |_| |_| |_|_|_| |_| |_|\___|\__,_| .__/| .__/|___/
|
||||
# |_| |_|
|
||||
|
||||
|
||||
# {%@@ set image_viewer = 'imv.desktop' @@%}
|
||||
# {%@@ set video_player = 'mpv.desktop' @@%}
|
||||
# {%@@ set web_browser = 'org.qutebrowser.qutebrowser.desktop' @@%}
|
||||
|
||||
[Default Applications]
|
||||
|
||||
text/plain=nvim.desktop
|
||||
inode/directory=thunar.desktop
|
||||
|
||||
application/pdf=org.pwmt.zathura.desktop
|
||||
|
||||
text/html={{@@ web_browser @@}}
|
||||
x-scheme-handler/http={{@@ web_browser @@}}
|
||||
x-scheme-handler/https={{@@ web_browser @@}}
|
||||
|
||||
x-scheme-handler/magnet=torrent.desktop
|
||||
application/x-bittorrent=torrent.desktop
|
||||
|
||||
# image_viewer {{{
|
||||
image/bmp={{@@ image_viewer @@}}
|
||||
image/cgm={{@@ image_viewer @@}}
|
||||
image/dicom-rle={{@@ image_viewer @@}}
|
||||
image/emf={{@@ image_viewer @@}}
|
||||
image/example={{@@ image_viewer @@}}
|
||||
image/fits={{@@ image_viewer @@}}
|
||||
image/g3fax={{@@ image_viewer @@}}
|
||||
image/gif={{@@ image_viewer @@}}
|
||||
image/heic={{@@ image_viewer @@}}
|
||||
image/heif={{@@ image_viewer @@}}
|
||||
image/ief={{@@ image_viewer @@}}
|
||||
image/jls={{@@ image_viewer @@}}
|
||||
image/jp2={{@@ image_viewer @@}}
|
||||
image/jpeg={{@@ image_viewer @@}}
|
||||
image/jpeg={{@@ image_viewer @@}}
|
||||
image/jpg={{@@ image_viewer @@}}
|
||||
image/jpm={{@@ image_viewer @@}}
|
||||
image/jpx={{@@ image_viewer @@}}
|
||||
image/ktx={{@@ image_viewer @@}}
|
||||
image/naplps={{@@ image_viewer @@}}
|
||||
image/pjpeg={{@@ image_viewer @@}}
|
||||
image/png={{@@ image_viewer @@}}
|
||||
image/prs.btif={{@@ image_viewer @@}}
|
||||
image/prs.pti={{@@ image_viewer @@}}
|
||||
image/pwg-raster={{@@ image_viewer @@}}
|
||||
image/svg+xml-compressed={{@@ image_viewer @@}}
|
||||
image/svg+xml={{@@ image_viewer @@}}
|
||||
image/t38={{@@ image_viewer @@}}
|
||||
image/tiff-fx={{@@ image_viewer @@}}
|
||||
image/tiff={{@@ image_viewer @@}}
|
||||
image/vnd.adobe.photoshop={{@@ image_viewer @@}}
|
||||
image/vnd.airzip.accelerator.azv={{@@ image_viewer @@}}
|
||||
image/vnd.cns.inf2={{@@ image_viewer @@}}
|
||||
image/vnd.dece.graphic={{@@ image_viewer @@}}
|
||||
image/vnd.djvu={{@@ image_viewer @@}}
|
||||
image/vnd.dvb.subtitle={{@@ image_viewer @@}}
|
||||
image/vnd.dwg={{@@ image_viewer @@}}
|
||||
image/vnd.dxf={{@@ image_viewer @@}}
|
||||
image/vnd.fastbidsheet={{@@ image_viewer @@}}
|
||||
image/vnd.fpx={{@@ image_viewer @@}}
|
||||
image/vnd.fst={{@@ image_viewer @@}}
|
||||
image/vnd.fujixerox.edmics-mmr={{@@ image_viewer @@}}
|
||||
image/vnd.fujixerox.edmics-rlc={{@@ image_viewer @@}}
|
||||
image/vnd.globalgraphics.pgb={{@@ image_viewer @@}}
|
||||
image/vnd.microsoft.icon={{@@ image_viewer @@}}
|
||||
image/vnd.mix={{@@ image_viewer @@}}
|
||||
image/vnd.mozilla.apng={{@@ image_viewer @@}}
|
||||
image/vnd.ms-modi={{@@ image_viewer @@}}
|
||||
image/vnd.net-fpx={{@@ image_viewer @@}}
|
||||
image/vnd.radiance={{@@ image_viewer @@}}
|
||||
image/vnd.rn-realpix={{@@ image_viewer @@}}
|
||||
image/vnd.sealed.png={{@@ image_viewer @@}}
|
||||
image/vnd.sealedmedia.softseal.gif={{@@ image_viewer @@}}
|
||||
image/vnd.sealedmedia.softseal.jpg={{@@ image_viewer @@}}
|
||||
image/vnd.svf={{@@ image_viewer @@}}
|
||||
image/vnd.tencent.tap={{@@ image_viewer @@}}
|
||||
image/vnd.valve.source.texture={{@@ image_viewer @@}}
|
||||
image/vnd.wap.wbmp={{@@ image_viewer @@}}
|
||||
image/vnd.xiff={{@@ image_viewer @@}}
|
||||
image/vnd.zbrush.pcx={{@@ image_viewer @@}}
|
||||
image/webp={{@@ image_viewer @@}}
|
||||
image/wmf={{@@ image_viewer @@}}
|
||||
image/x-bmp={{@@ image_viewer @@}}
|
||||
image/x-cmu-raster={{@@ image_viewer @@}}
|
||||
image/x-compressed-xcf={{@@ image_viewer @@}}
|
||||
image/x-emf={{@@ image_viewer @@}}
|
||||
image/x-eps={{@@ image_viewer @@}}
|
||||
image/x-exr={{@@ image_viewer @@}}
|
||||
image/x-fits={{@@ image_viewer @@}}
|
||||
image/x-freehand={{@@ image_viewer @@}}
|
||||
image/x-gimp-gbr={{@@ image_viewer @@}}
|
||||
image/x-gimp-gih={{@@ image_viewer @@}}
|
||||
image/x-gimp-pat={{@@ image_viewer @@}}
|
||||
image/x-icon={{@@ image_viewer @@}}
|
||||
image/x-pcx={{@@ image_viewer @@}}
|
||||
image/x-png={{@@ image_viewer @@}}
|
||||
image/x-portable-anymap={{@@ image_viewer @@}}
|
||||
image/x-portable-bitmap={{@@ image_viewer @@}}
|
||||
image/x-portable-graymap={{@@ image_viewer @@}}
|
||||
image/x-portable-pixmap={{@@ image_viewer @@}}
|
||||
image/x-psd={{@@ image_viewer @@}}
|
||||
image/x-psp={{@@ image_viewer @@}}
|
||||
image/x-rgb={{@@ image_viewer @@}}
|
||||
image/x-sgi={{@@ image_viewer @@}}
|
||||
image/x-targa={{@@ image_viewer @@}}
|
||||
image/x-tga={{@@ image_viewer @@}}
|
||||
image/x-vsd={{@@ image_viewer @@}}
|
||||
image/x-webp={{@@ image_viewer @@}}
|
||||
image/x-wmf={{@@ image_viewer @@}}
|
||||
image/x-xbitmap={{@@ image_viewer @@}}
|
||||
image/x-xcdr={{@@ image_viewer @@}}
|
||||
image/x-xcf={{@@ image_viewer @@}}
|
||||
image/x-xcursor={{@@ image_viewer @@}}
|
||||
image/x-xpixmap={{@@ image_viewer @@}}
|
||||
image/x-xwindowdump={{@@ image_viewer @@}}
|
||||
# }}}
|
||||
# video_player {{{
|
||||
video/1d-interleaved-parityfec={{@@ video_player @@}}
|
||||
video/3gp={{@@ video_player @@}}
|
||||
video/3gpp={{@@ video_player @@}}
|
||||
video/3gpp-tt={{@@ video_player @@}}
|
||||
video/3gpp2={{@@ video_player @@}}
|
||||
video/BMPEG={{@@ video_player @@}}
|
||||
video/BT656={{@@ video_player @@}}
|
||||
video/CelB={{@@ video_player @@}}
|
||||
video/DV={{@@ video_player @@}}
|
||||
video/H261={{@@ video_player @@}}
|
||||
video/H263={{@@ video_player @@}}
|
||||
video/H263-1998={{@@ video_player @@}}
|
||||
video/H263-2000={{@@ video_player @@}}
|
||||
video/H264={{@@ video_player @@}}
|
||||
video/H264-RCDO={{@@ video_player @@}}
|
||||
video/H264-SVC={{@@ video_player @@}}
|
||||
video/H265={{@@ video_player @@}}
|
||||
video/JPEG={{@@ video_player @@}}
|
||||
video/MP1S={{@@ video_player @@}}
|
||||
video/MP2P={{@@ video_player @@}}
|
||||
video/MP2T={{@@ video_player @@}}
|
||||
video/MP4V-ES={{@@ video_player @@}}
|
||||
video/MPV={{@@ video_player @@}}
|
||||
video/SMPTE292M={{@@ video_player @@}}
|
||||
video/VP8={{@@ video_player @@}}
|
||||
video/avi={{@@ video_player @@}}
|
||||
video/divx={{@@ video_player @@}}
|
||||
video/dv={{@@ video_player @@}}
|
||||
video/encaprtp={{@@ video_player @@}}
|
||||
video/example={{@@ video_player @@}}
|
||||
video/fli={{@@ video_player @@}}
|
||||
video/flv={{@@ video_player @@}}
|
||||
video/iso.segment={{@@ video_player @@}}
|
||||
video/jpeg2000={{@@ video_player @@}}
|
||||
video/mj2={{@@ video_player @@}}
|
||||
video/mkv={{@@ video_player @@}}
|
||||
video/mp2t={{@@ video_player @@}}
|
||||
video/mp4={{@@ video_player @@}}
|
||||
video/mp4v-es={{@@ video_player @@}}
|
||||
video/mpeg={{@@ video_player @@}}
|
||||
video/mpeg-system={{@@ video_player @@}}
|
||||
video/mpeg4-generic={{@@ video_player @@}}
|
||||
video/msvideo={{@@ video_player @@}}
|
||||
video/nv={{@@ video_player @@}}
|
||||
video/ogg={{@@ video_player @@}}
|
||||
video/parityfec={{@@ video_player @@}}
|
||||
video/pointer={{@@ video_player @@}}
|
||||
video/quicktime={{@@ video_player @@}}
|
||||
video/raptorfec={{@@ video_player @@}}
|
||||
video/raw={{@@ video_player @@}}
|
||||
video/rtp-enc-aescm128={{@@ video_player @@}}
|
||||
video/rtploopback={{@@ video_player @@}}
|
||||
video/rtx={{@@ video_player @@}}
|
||||
video/ulpfec={{@@ video_player @@}}
|
||||
video/vc1={{@@ video_player @@}}
|
||||
video/vnd.CCTV={{@@ video_player @@}}
|
||||
video/vnd.dece.hd={{@@ video_player @@}}
|
||||
video/vnd.dece.mobile={{@@ video_player @@}}
|
||||
video/vnd.dece.mp4={{@@ video_player @@}}
|
||||
video/vnd.dece.pd={{@@ video_player @@}}
|
||||
video/vnd.dece.sd={{@@ video_player @@}}
|
||||
video/vnd.dece.video={{@@ video_player @@}}
|
||||
video/vnd.directv.mpeg={{@@ video_player @@}}
|
||||
video/vnd.directv.mpeg-tts={{@@ video_player @@}}
|
||||
video/vnd.divx={{@@ video_player @@}}
|
||||
video/vnd.dlna.mpeg-tts={{@@ video_player @@}}
|
||||
video/vnd.dvb.file={{@@ video_player @@}}
|
||||
video/vnd.fvt={{@@ video_player @@}}
|
||||
video/vnd.hns.video={{@@ video_player @@}}
|
||||
video/vnd.iptvforum.1dparityfec-1010={{@@ video_player @@}}
|
||||
video/vnd.iptvforum.1dparityfec-2005={{@@ video_player @@}}
|
||||
video/vnd.iptvforum.2dparityfec-1010={{@@ video_player @@}}
|
||||
video/vnd.iptvforum.2dparityfec-2005={{@@ video_player @@}}
|
||||
video/vnd.iptvforum.ttsavc={{@@ video_player @@}}
|
||||
video/vnd.iptvforum.ttsmpeg2={{@@ video_player @@}}
|
||||
video/vnd.motorola.video={{@@ video_player @@}}
|
||||
video/vnd.motorola.videop={{@@ video_player @@}}
|
||||
video/vnd.mpegurl={{@@ video_player @@}}
|
||||
video/vnd.ms-playready.media.pyv={{@@ video_player @@}}
|
||||
video/vnd.nokia.interleaved-multimedia={{@@ video_player @@}}
|
||||
video/vnd.nokia.mp4vr={{@@ video_player @@}}
|
||||
video/vnd.nokia.videovoip={{@@ video_player @@}}
|
||||
video/vnd.objectvideo={{@@ video_player @@}}
|
||||
video/vnd.radgamettools.bink={{@@ video_player @@}}
|
||||
video/vnd.radgamettools.smacker={{@@ video_player @@}}
|
||||
video/vnd.rn-realvideo={{@@ video_player @@}}
|
||||
video/vnd.sealed.mpeg1={{@@ video_player @@}}
|
||||
video/vnd.sealed.mpeg4={{@@ video_player @@}}
|
||||
video/vnd.sealed.swf={{@@ video_player @@}}
|
||||
video/vnd.sealedmedia.softseal.mov={{@@ video_player @@}}
|
||||
video/vnd.uvvu.mp4={{@@ video_player @@}}
|
||||
video/vnd.vivo={{@@ video_player @@}}
|
||||
video/webm={{@@ video_player @@}}
|
||||
video/x-anim={{@@ video_player @@}}
|
||||
video/x-annodex={{@@ video_player @@}}
|
||||
video/x-avi={{@@ video_player @@}}
|
||||
video/x-flc={{@@ video_player @@}}
|
||||
video/x-fli={{@@ video_player @@}}
|
||||
video/x-flic={{@@ video_player @@}}
|
||||
video/x-flv={{@@ video_player @@}}
|
||||
video/x-javafx={{@@ video_player @@}}
|
||||
video/x-m4v={{@@ video_player @@}}
|
||||
video/x-matroska={{@@ video_player @@}}
|
||||
video/x-matroska-3d={{@@ video_player @@}}
|
||||
video/x-mpeg={{@@ video_player @@}}
|
||||
video/x-mpeg-system={{@@ video_player @@}}
|
||||
video/x-mpeg2={{@@ video_player @@}}
|
||||
video/x-mpeg3={{@@ video_player @@}}
|
||||
video/x-ms-afs={{@@ video_player @@}}
|
||||
video/x-ms-asf={{@@ video_player @@}}
|
||||
video/x-ms-asf-plugin={{@@ video_player @@}}
|
||||
video/x-ms-asx={{@@ video_player @@}}
|
||||
video/x-ms-wm={{@@ video_player @@}}
|
||||
video/x-ms-wmv={{@@ video_player @@}}
|
||||
video/x-ms-wmx={{@@ video_player @@}}
|
||||
video/x-ms-wvx={{@@ video_player @@}}
|
||||
video/x-ms-wvxvideo={{@@ video_player @@}}
|
||||
video/x-msvideo={{@@ video_player @@}}
|
||||
video/x-nsv={{@@ video_player @@}}
|
||||
video/x-ogm={{@@ video_player @@}}
|
||||
video/x-ogm+ogg={{@@ video_player @@}}
|
||||
video/x-sgi-movie={{@@ video_player @@}}
|
||||
video/x-theora={{@@ video_player @@}}
|
||||
video/x-theora+ogg={{@@ video_player @@}}
|
||||
# }}}
|
||||
|
||||
# vim: ft=dosini:fdm=marker:cms=#\ %s:
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Torrent
|
||||
Exec=/usr/bin/env transadd %U
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Files and directories #######################################################
|
||||
#
|
||||
music_directory "~/Música"
|
||||
music_directory "~/Music"
|
||||
playlist_directory "~/.config/mpd/playlists"
|
||||
db_file "~/.config/mpd/database"
|
||||
log_file "syslog"
|
||||
|
@ -29,7 +29,7 @@ input {
|
|||
audio_output {
|
||||
type "pulse"
|
||||
name "My Pulse Output"
|
||||
mixer_type "software"
|
||||
mixer_type "hardware"
|
||||
}
|
||||
audio_output {
|
||||
type "fifo"
|
|
@ -0,0 +1,4 @@
|
|||
ytdl-format='bestvideo[height<=1080][vcodec!=vp9]+bestaudio'
|
||||
osd-fractions
|
||||
save-position-on-quit
|
||||
keep-open=yes
|
|
@ -0,0 +1 @@
|
|||
text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -collapse_br_tags -dump %s; nametemplate=%s.html; copiousoutput
|
|
@ -0,0 +1,25 @@
|
|||
IMAPStore mail-remote
|
||||
Host {{@@ mail @@}}
|
||||
Port 993
|
||||
User {{@@ username @@}}@{{@@ mail @@}}
|
||||
PassCmd "_get-pass {{@@ mail @@}}"
|
||||
SSLType IMAPS
|
||||
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
MaildirStore mail-local
|
||||
Subfolders Verbatim
|
||||
Path ~/.local/share/mail/
|
||||
Inbox ~/.local/share/mail/INBOX
|
||||
Flatten .
|
||||
|
||||
Channel mail-remote
|
||||
Expunge Both
|
||||
Master :mail-remote:
|
||||
Slave :mail-local:
|
||||
Patterns * !"[Gmail]/All Mail"
|
||||
Create Both
|
||||
SyncState *
|
||||
# MaxMessages 0
|
||||
# End profile
|
||||
|
||||
# vim: ft=sh
|
|
@ -1,25 +1,23 @@
|
|||
#
|
||||
# LEL
|
||||
# _ _
|
||||
# _ __ ___ ___ _ __ ___ _ _| |_| |_
|
||||
# {{@@ header() @@}}
|
||||
# _ _
|
||||
# _ __ ___ ___ _ __ ___ _ _| |_| |_
|
||||
# | '_ \ / _ \/ _ \| '_ ` _ \| | | | __| __|
|
||||
# | | | | __/ (_) | | | | | | |_| | |_| |_
|
||||
# | | | | __/ (_) | | | | | | |_| | |_| |_
|
||||
# |_| |_|\___|\___/|_| |_| |_|\__,_|\__|\__|
|
||||
|
||||
|
||||
set my_user='lelgenio'
|
||||
set my_host='disroot.org'
|
||||
set my_pass=`gpg -dq $HOME/.config/neomutt/password.gpg`
|
||||
|
||||
set my_user='{{@@ username @@}}'
|
||||
set my_host='{{@@ mail @@}}'
|
||||
set my_pass=`_get-pass "$my_host"`
|
||||
|
||||
# Main settings{{{
|
||||
|
||||
set realname = "Leonardo da Rosa Eugenio"
|
||||
set from = "lelgenio@disroot.org"
|
||||
#alias me Leonardo da Rosa Eugenio <lelgenio@disroot.org>
|
||||
set realname = "$my_user"
|
||||
set from = "${my_user}@${my_host}"
|
||||
|
||||
# Set MailDir
|
||||
set mbox_type = Maildir
|
||||
set folder = ~/.mail
|
||||
set folder = ~/.local/share/mail
|
||||
set header_cache = ~/.cache/mutt/
|
||||
|
||||
# set Mailboxes
|
||||
|
@ -37,11 +35,11 @@ mailboxes \
|
|||
"=Sent" \
|
||||
"=Drafts" \
|
||||
"=Trash" \
|
||||
"=Junk"
|
||||
"=Junk"
|
||||
|
||||
set record = "+Sent"
|
||||
set use_from = yes
|
||||
set smtp_url=smtps://$my_user:$my_pass@$my_host
|
||||
set smtp_url = "smtps://${my_user}:${my_pass}@${my_host}"
|
||||
set ssl_force_tls = yes
|
||||
#
|
||||
set date_format="%y/%m/%d %I:%M%p"
|
||||
|
@ -62,9 +60,15 @@ set sort = 'reverse-date'
|
|||
#set reverse_name # reply as whomever it was to
|
||||
#set include # include message in replies
|
||||
#set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example)
|
||||
|
||||
set display_filter = 'sed -e "s/ */\n/g" '
|
||||
set mailcap_path = ~/.config/neomutt/mailcap
|
||||
auto_view text/html # automatically show html (mailcap uses w3m)
|
||||
auto_view application/pgp-encrypted
|
||||
alternative_order text/plain text/enriched text/html
|
||||
|
||||
set query_command= "khard email --parsable %s"
|
||||
|
||||
bind index,pager i noop
|
||||
bind index,pager g noop
|
||||
bind index \Cf noop
|
||||
|
@ -72,23 +76,38 @@ bind index \Cf noop
|
|||
# }}}
|
||||
# General rebindings{{{
|
||||
|
||||
bind attach <return> view-mailcap
|
||||
bind attach l view-mailcap
|
||||
bind editor <space> noop
|
||||
# index
|
||||
#
|
||||
bind index "{{@@ key.left @@}}" noop
|
||||
bind index "{{@@ key.down @@}}" next-entry
|
||||
bind index "{{@@ key.up @@}}" previous-entry
|
||||
bind index "{{@@ key.right @@}}" display-message
|
||||
|
||||
bind index G last-entry
|
||||
bind index gg first-entry
|
||||
bind pager,attach h exit
|
||||
bind pager j next-line
|
||||
bind pager k previous-line
|
||||
bind pager l view-attachments
|
||||
|
||||
bind index D delete-message
|
||||
bind index U undelete-message
|
||||
|
||||
bind index L limit
|
||||
bind index h noop
|
||||
bind index l display-message
|
||||
bind index <space> tag-entry
|
||||
bind browser h goto-parent
|
||||
macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder"
|
||||
|
||||
# Attachment screen
|
||||
bind attach <return> view-mailcap
|
||||
bind attach "{{@@ key.up @@}}" previous-entry
|
||||
bind attach "{{@@ key.down @@}}" next-entry
|
||||
bind attach "{{@@ key.left @@}}" exit
|
||||
bind attach "{{@@ key.right @@}}" view-mailcap
|
||||
|
||||
bind editor <space> noop
|
||||
|
||||
bind pager "{{@@ key.left @@}}" exit
|
||||
bind pager "{{@@ key.down @@}}" next-line
|
||||
bind pager "{{@@ key.up @@}}" previous-line
|
||||
bind pager "{{@@ key.right @@}}" view-attachments
|
||||
|
||||
bind browser "{{@@ key.left @@}}" goto-parent
|
||||
macro browser "{{@@ key.left @@}}" '<change-dir><kill-line>..<enter>' "Go to parent folder"
|
||||
bind index,pager H view-raw-message
|
||||
bind browser l select-entry
|
||||
bind pager,browser gg top-page
|
||||
|
@ -103,8 +122,8 @@ bind pager \031 previous-line # Mouse wheel
|
|||
bind pager \005 next-line # Mouse wheel
|
||||
bind editor <Tab> complete-query
|
||||
|
||||
#macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
|
||||
#macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
||||
macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
|
||||
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
||||
macro index O "<shell-escape>mbsync -a<enter>" "run mbsync to sync all mail"
|
||||
#macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>read -p 'Enter a search term to find with notmuch: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
|
||||
#macro index A "<limit>all\n" "show all messages (undo limit)"
|
||||
|
@ -118,9 +137,11 @@ set sidebar_short_path = yes
|
|||
set sidebar_next_new_wrap = yes
|
||||
# set mail_check_stats
|
||||
set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?'
|
||||
bind index,pager \Ck sidebar-prev
|
||||
bind index,pager \Cj sidebar-next
|
||||
bind index,pager \Co sidebar-open
|
||||
|
||||
bind index,pager "\C{{@@ key.down @@}}" sidebar-next
|
||||
bind index,pager "\C{{@@ key.up @@}}" sidebar-prev
|
||||
bind index,pager "\C{{@@ key.right @@}}" sidebar-open
|
||||
|
||||
# bind index,pager \Cp sidebar-prev-new
|
||||
# bind index,pager \Cn sidebar-next-new
|
||||
bind index,pager B sidebar-toggle-visible
|
||||
|
@ -128,22 +149,23 @@ bind index,pager B sidebar-toggle-visible
|
|||
# }}}
|
||||
# colors{{{
|
||||
# {{{
|
||||
|
||||
# # Default index colors:
|
||||
color index yellow default '.*'
|
||||
color index_author red default '.*'
|
||||
color index_number blue default
|
||||
color index_subject cyan default '.*'
|
||||
|
||||
#
|
||||
# # New mail is boldened:
|
||||
color index brightyellow black "~N"
|
||||
color index_author brightred black "~N"
|
||||
color index_subject brightcyan black "~N"
|
||||
|
||||
#
|
||||
# # Tagged mail is highlighted:
|
||||
# color index brightyellow blue "~T"
|
||||
# color index_author brightred blue "~T"
|
||||
# color index_subject brightcyan blue "~T"
|
||||
|
||||
#
|
||||
# # Other colors and aesthetic settings:
|
||||
mono bold bold
|
||||
mono underline underline
|
||||
|
@ -174,7 +196,7 @@ color signature brightgreen default
|
|||
color bold black default
|
||||
color underline black default
|
||||
color normal default default
|
||||
|
||||
#
|
||||
# # Regex highlighting:
|
||||
color header blue default ".*"
|
||||
color header brightmagenta default "^(From)"
|
||||
|
@ -199,24 +221,32 @@ color body brightyellow red "^gpg: BAD signature from.*"
|
|||
mono body bold "^gpg: Good signature"
|
||||
mono body bold "^gpg: BAD signature from.*"
|
||||
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
|
||||
|
||||
# }}}
|
||||
# color normal white default
|
||||
# color hdrdefault blue default
|
||||
# color quoted blue white
|
||||
# color signature red white
|
||||
# color attachment red white
|
||||
# color prompt brightmagenta default
|
||||
# color message brightred default
|
||||
# color error brightwhite brightred
|
||||
color indicator brightwhite red
|
||||
color status brightwhite default
|
||||
# color tree black white
|
||||
# color markers red white
|
||||
# color search white black
|
||||
# color tilde brightmagenta default
|
||||
color index blue white ~F
|
||||
color index brightgreen default "~N|~O"
|
||||
color index_author brightred black "~N"
|
||||
color index_subject brightcyan black "~N"
|
||||
# color normal white default
|
||||
# color hdrdefault blue default
|
||||
# color quoted blue white
|
||||
# color signature red white
|
||||
# color attachment red white
|
||||
# color prompt brightmagenta default
|
||||
# color message brightred default
|
||||
# color error brightwhite brightred
|
||||
color indicator brightwhite red
|
||||
# prompt
|
||||
color status default default
|
||||
# color tree black white
|
||||
# color markers red white
|
||||
# color search white black
|
||||
# color tilde brightmagenta default
|
||||
color index blue white "~F"
|
||||
# new messages
|
||||
color index brightgreen default "~N|~O"
|
||||
color index_author brightred default "~N"
|
||||
color index_subject brightcyan default "~N"
|
||||
#sidebar
|
||||
color sidebar_new green default
|
||||
color sidebar_highlight default brightred
|
||||
color sidebar_indicator default red
|
||||
|
||||
# }}}
|
||||
# vim: filetype=neomuttrc:foldmethod=marker
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
|
||||
"python.jediEnabled": true,
|
||||
"python.linting.pylintEnabled": true,
|
||||
"python.linting.mypyEnabled": true,
|
||||
"python.formatting.provider": "black",
|
||||
|
||||
"coc.preferences.formatOnSaveFiletypes": [
|
||||
"python"
|
||||
],
|
||||
|
||||
"languageserver": {
|
||||
"vala": {
|
||||
"command": "vala-language-server",
|
||||
"filetypes": [
|
||||
"vala",
|
||||
"genie"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,559 @@
|
|||
" {{@@ header() @@}}
|
||||
" _
|
||||
" _ ____ _(_)_ __ ___
|
||||
" | '_ \ \ / / | '_ ` _ \
|
||||
" | | | \ V /| | | | | | |
|
||||
" |_| |_|\_/ |_|_| |_| |_|
|
||||
|
||||
" Plugins{{{
|
||||
"
|
||||
" Install plug if it isn't already {{{
|
||||
if empty(glob('~/.config/nvim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
|
||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
augroup PLUG
|
||||
au!
|
||||
autocmd VimEnter * PlugInstall
|
||||
augroup END
|
||||
endif
|
||||
"}}}
|
||||
|
||||
call plug#begin('~/.config/nvim/plugged')
|
||||
|
||||
Plug 'chrisbra/Colorizer'
|
||||
Plug 'tpope/vim-fugitive'
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
let g:gitgutter_map_keys = 0
|
||||
|
||||
" Language server support
|
||||
"
|
||||
" {%@@ set lsp = "vim-lsp" @@%}
|
||||
|
||||
" {%@@ if lsp == "vim-lsp" @@%} "
|
||||
Plug 'prabirshrestha/vim-lsp'
|
||||
Plug 'mattn/vim-lsp-settings'
|
||||
|
||||
Plug 'prabirshrestha/asyncomplete.vim'
|
||||
Plug 'prabirshrestha/asyncomplete-lsp.vim'
|
||||
Plug 'prabirshrestha/asyncomplete-file.vim'
|
||||
Plug 'prabirshrestha/asyncomplete-emmet.vim'
|
||||
Plug 'prabirshrestha/asyncomplete-neosnippet.vim'
|
||||
Plug 'prabirshrestha/asyncomplete-buffer.vim'
|
||||
|
||||
set completeopt+=menu,longest,preview
|
||||
" {%@@ elif lsp == "coc" @@%} "
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
" {%@@ endif @@%}
|
||||
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Fuzzy find
|
||||
Plug 'junegunn/fzf', { 'do': {-> fzf#install() } }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
|
||||
" Completions
|
||||
" Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||
|
||||
" HTML shortcuts
|
||||
Plug 'mattn/emmet-vim'
|
||||
|
||||
Plug 'jiangmiao/auto-pairs'
|
||||
Plug 'junegunn/vim-easy-align'
|
||||
Plug 'tpope/vim-commentary'
|
||||
|
||||
Plug 'Shougo/neosnippet.vim'
|
||||
Plug 'Shougo/neosnippet-snippets'
|
||||
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'tpope/vim-repeat'
|
||||
|
||||
" Select based on indentation
|
||||
Plug 'lelgenio/vim-indent-object-colemak'
|
||||
|
||||
" Status bar
|
||||
" Plug 'vim-airline/vim-airline'
|
||||
|
||||
" Color scheme
|
||||
Plug 'dikiaap/minimalist'
|
||||
Plug 'endel/vim-github-colorscheme'
|
||||
|
||||
" Latex
|
||||
Plug 'xuhdev/vim-latex-live-preview', { 'for': 'tex' }
|
||||
Plug 'vim-scripts/AnsiEsc.vim', { 'for': 'man' }
|
||||
|
||||
Plug 'rbgrouleff/bclose.vim'
|
||||
Plug 'francoiscabrol/ranger.vim'
|
||||
let g:ranger_replace_netrw = 1
|
||||
let g:ranger_map_keys = 0
|
||||
|
||||
call plug#end()
|
||||
|
||||
"}}}
|
||||
" General{{{
|
||||
"
|
||||
" set foldmethod=marker " Friendship with marker ended, new indent is my best friend
|
||||
set smartcase
|
||||
set hidden
|
||||
set autoread
|
||||
|
||||
" Better completion on command line
|
||||
set wildmode=longest:full
|
||||
|
||||
" Show line numbers on the left
|
||||
set number
|
||||
set relativenumber
|
||||
|
||||
" Avoid shifting the text due to git or LSP
|
||||
set signcolumn=yes
|
||||
|
||||
" Auto trimm end of line whitespace
|
||||
autocmd BufWritePre * :call <SID>StripTrailingWhitespaces()
|
||||
function! <SID>StripTrailingWhitespaces()
|
||||
let l = line(".")
|
||||
let c = col(".")
|
||||
%s/\s\+$//e
|
||||
call cursor(l, c)
|
||||
endfun
|
||||
|
||||
" Allow saving of files as sudo when I forget to start vim using sudo.
|
||||
cmap w!! w !sudo tee % >/dev/null
|
||||
|
||||
"}}}
|
||||
" Syntax options{{{
|
||||
"
|
||||
|
||||
syntax on
|
||||
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
set smarttab
|
||||
|
||||
set spelllang=en_us,pt_br
|
||||
autocmd FileType tex set spell
|
||||
|
||||
" Allow moving the cursor anywhere
|
||||
set virtualedit=all
|
||||
|
||||
" When to start scrolling the window
|
||||
set scrolloff=8
|
||||
set sidescrolloff=8
|
||||
|
||||
set linebreak
|
||||
|
||||
" Display whitespace
|
||||
set listchars=space:_,eol:;,tab:>-,trail:~,extends:>,precedes:<
|
||||
" {%@@ if color.type != "light" @@%} "
|
||||
set list
|
||||
" {%@@ endif @@%}
|
||||
|
||||
" Enable mouse
|
||||
set mouse =a
|
||||
set clipboard +=unnamedplus
|
||||
|
||||
" Rename the terminal
|
||||
set title
|
||||
|
||||
let g:python_highlight_all = 1
|
||||
"}}}
|
||||
" Gay colors{{{
|
||||
|
||||
if (has('nvim'))
|
||||
let $NVIM_TUI_ENABLE_TRUE_COLOR = 1
|
||||
endif
|
||||
if (has('termguicolors'))
|
||||
set termguicolors
|
||||
endif
|
||||
|
||||
" {%@@ if color.type == "light" @@%} "
|
||||
colorscheme github
|
||||
set background=light
|
||||
" {%@@ elif color.type == "dark" @@%} "
|
||||
colorscheme minimalist
|
||||
set background=dark
|
||||
" {%@@ endif @@%}
|
||||
|
||||
"background color is transparent
|
||||
highlight Normal guibg=None
|
||||
highlight EndOfBuffer guibg=None guifg={{@@ color.bg_light @@}}
|
||||
highlight SpecialKey guibg=None guifg={{@@ color.accent @@}}
|
||||
highlight Folded guibg=None
|
||||
|
||||
highlight tabLine None
|
||||
highlight tabLineFill None
|
||||
|
||||
highlight SignColumn guibg=None
|
||||
highlight GitGutterAdd guibg=None guifg=lightgreen
|
||||
highlight GitGutterChange guibg=None guifg=yellow
|
||||
highlight GitGutterDelete guibg=None guifg=lightred
|
||||
|
||||
"Line numers
|
||||
highlight LineNr term=bold ctermfg=9 guifg={{@@ color.bg_light @@}} guibg=None
|
||||
|
||||
" Comments
|
||||
highlight Comment guifg={{@@ color.bg_light @@}} guibg=None
|
||||
|
||||
"Make whitespace dark
|
||||
highlight NonText guifg={{@@ color.nontxt @@}} guibg=None
|
||||
" highlight SpecialKey ctermfg=black guifg=#252525 guibg=None
|
||||
|
||||
"Current line
|
||||
" {%@@ if color.type != "light" @@%} "
|
||||
set cursorline
|
||||
highlight CursorLine term=bold cterm=bold gui=Bold guibg={{@@ color.bg_dark @@}}
|
||||
highlight CursorLineNr term=bold cterm=bold gui=Bold guibg={{@@ color.bg_dark @@}}
|
||||
" {%@@ endif @@%} "
|
||||
highlight CursorLineNr guifg={{@@ color.nontxt @@}}
|
||||
|
||||
"Splits
|
||||
highlight VertSplit guibg=None guifg={{@@ color.bg_dark @@}}
|
||||
" set fillchars=vert:/
|
||||
|
||||
highlight Identifier guifg={{@@ color.accent @@}}
|
||||
|
||||
highlight MatchParen gui=bold guifg=yellow
|
||||
|
||||
highlight SpellBad guisp={{@@ color.normal.red @@}} guibg=none
|
||||
highlight SpellRare guisp={{@@ color.normal.blue @@}} guibg=none
|
||||
highlight SpellCap guisp={{@@ color.normal.cyan @@}} guibg=none
|
||||
highlight SpellLocal guisp={{@@ color.normal.yellow @@}} guibg=none
|
||||
|
||||
"}}}
|
||||
" Keys{{{
|
||||
"
|
||||
" The g is for moving between lines broken by wrap.
|
||||
{%@@ set keys = {
|
||||
" h": key.left,
|
||||
"gj": key.down,
|
||||
"gk": key.up,
|
||||
" l": key.right,
|
||||
} @@%}
|
||||
|
||||
" Basic motion
|
||||
{%@@ for old, new in keys.items() @@%}
|
||||
" {{@@ new @@}} -> {{@@ old @@}}
|
||||
noremap {{@@ new @@}} {{@@ old @@}}
|
||||
noremap <silent> <C-w>{{@@ new @@}} :wincmd {{@@ old[-1] @@}}<CR>
|
||||
noremap <silent> <C-w>{{@@ new.upper() @@}} :wincmd {{@@ old[-1].upper() @@}}<CR>
|
||||
{%@@ endfor @@%}
|
||||
|
||||
|
||||
" Skip 8 lines
|
||||
noremap {{@@ key.down.upper() @@}} 8<Down>
|
||||
noremap {{@@ key.up.upper() @@}} 8<Up>
|
||||
|
||||
" Repeat search
|
||||
noremap {{@@ key.next @@}} n
|
||||
noremap {{@@ key.next.upper() @@}} N
|
||||
|
||||
" for/backward on tabs
|
||||
nnoremap {{@@ key.tabL @@}} :tabprev<cr>
|
||||
nnoremap {{@@ key.tabR @@}} :tabnext<cr>
|
||||
|
||||
" Enter insert mode
|
||||
noremap {{@@ key.insertMode @@}} i
|
||||
noremap {{@@ key.insertMode.upper() @@}} I
|
||||
|
||||
" Keyboard Layout specific
|
||||
" {%@@ if key_layout == "colemak" @@%} "
|
||||
|
||||
" Insert on next line
|
||||
noremap h o
|
||||
noremap H O
|
||||
|
||||
" Jump to oposite side of selection
|
||||
vnoremap m o
|
||||
vnoremap M O
|
||||
|
||||
" To end of word
|
||||
noremap t e
|
||||
noremap T E
|
||||
|
||||
noremap , ^
|
||||
|
||||
imap {{@@ key.insertQuit @@}} <ESC>
|
||||
|
||||
" FZF bindings
|
||||
nmap <C-b> :Buffers<CR>
|
||||
nmap <C-k> :Files <CR>
|
||||
nmap <C-n> :GFiles <CR>
|
||||
|
||||
" Snippets
|
||||
imap <C-e> <Plug>(neosnippet_expand_or_jump)
|
||||
smap <C-e> <Plug>(neosnippet_expand_or_jump)
|
||||
xmap <C-e> <Plug>(neosnippet_expand_target)
|
||||
|
||||
" Surround
|
||||
let g:surround_no_mappings = 1
|
||||
nmap dk <Plug>Dsurround
|
||||
nmap ck <Plug>Csurround
|
||||
nmap cK <Plug>CSurround
|
||||
nmap yk <Plug>Ysurround
|
||||
nmap yK <Plug>YSurround
|
||||
nmap ykk <Plug>Yssurround
|
||||
nmap yKk <Plug>YSsurround
|
||||
nmap yKK <Plug>YSsurround
|
||||
xmap K <Plug>VSurround
|
||||
xmap gK <Plug>VgSurround
|
||||
|
||||
" {%@@ elif key_layout == "dvorak" @@%} "
|
||||
|
||||
" Added benefits
|
||||
noremap - $
|
||||
noremap _ ^
|
||||
noremap N <C-w><C-w>
|
||||
noremap T <C-w><C-r>
|
||||
|
||||
" FZF bindings
|
||||
nmap <C-j> :GFiles <CR>
|
||||
nmap <C-k> :Files <CR>
|
||||
nmap <C-b> :Buffers<CR>
|
||||
|
||||
" {%@@ elif key_layout == "qwerty" @@%} "
|
||||
|
||||
" FZF bindings
|
||||
nmap <C-b> :Buffers<CR>
|
||||
nmap <C-n> :Files <CR>
|
||||
nmap <C-m> :GFiles <CR>
|
||||
|
||||
" {%@@ endif @@%} "
|
||||
|
||||
" File Browser
|
||||
nmap F :Ranger <CR>
|
||||
|
||||
" Open folds
|
||||
nmap <silent> {{@@ key.right @@}} <right>
|
||||
nmap <silent> <right> <right>:silent! foldopen<CR>
|
||||
|
||||
"I deserve the death sentence
|
||||
nmap <C-s> :wa<CR>
|
||||
nmap <C-Q> :wqa<CR>
|
||||
|
||||
" Easy comment toggle
|
||||
nmap <silent> gc :Commentary<CR>
|
||||
xmap <silent> gc :Commentary<CR>
|
||||
|
||||
" EasyAlign
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
|
||||
|
||||
" Custom surrounds, should work fine on all layouts
|
||||
" d
|
||||
autocmd FileType * let b:surround_100 = "{{@@ '{{@@ \\r @@}}' @@}}"
|
||||
" s
|
||||
autocmd FileType * let b:surround_115 = "{{@@ '#{%@@ \\r @@%}#\\n#{%@@ @@%}#' @@}}"
|
||||
|
||||
"}}}
|
||||
" Lanugage Server{{{
|
||||
"
|
||||
" {%@@ if lsp == "vim-lsp" @@%} "
|
||||
" vim-lsp{{{
|
||||
|
||||
"allow json comments
|
||||
autocmd FileType json syntax match Comment +\/\/.\+$+
|
||||
|
||||
" Workaround for bug
|
||||
" let g:lsp_documentation_float = 0
|
||||
|
||||
" Complete
|
||||
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
||||
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
||||
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<cr>"
|
||||
imap <c-space> <Plug>(asyncomplete_force_refresh)
|
||||
|
||||
" Fix
|
||||
nmap gf <Plug>(lsp-document-format)
|
||||
vmap gf <Plug>(lsp-document-range-format)
|
||||
nmap gr <plug>(lsp-rename)
|
||||
nmap gl <plug>(lsp-code-action)
|
||||
nmap gs <plug>(lsp-references)
|
||||
|
||||
" Move around
|
||||
nmap <silent> [g <Plug>(lsp-previous-diagnostic)
|
||||
nmap <silent> ]g <Plug>(lsp-next-diagnostic)
|
||||
|
||||
nmap <silent> gd :LspDefinition<cr>
|
||||
nmap <silent> K :LspHover<cr>
|
||||
|
||||
" Lint
|
||||
let g:lsp_diagnostics_echo_cursor = 1
|
||||
let g:lsp_virtual_text_enabled = 0
|
||||
|
||||
" Colors
|
||||
highlight LspErrorHighlight gui=undercurl guisp={{@@ color.normal.red @@}}
|
||||
highlight LspErrorText gui=bold guifg={{@@ color.normal.red @@}} guibg=none
|
||||
highlight LspErrorVirtual gui=underline guifg={{@@ color.normal.red @@}} guibg=none
|
||||
|
||||
highlight LspWarningHighlight gui=undercurl guisp={{@@ color.normal.yellow @@}}
|
||||
highlight LspWarningText gui=bold guifg={{@@ color.normal.yellow @@}} guibg=none
|
||||
highlight LspWarningVirtual gui=underline guifg={{@@ color.normal.yellow @@}} guibg=none
|
||||
|
||||
" Highlight all references, looks pretty *-*
|
||||
let g:lsp_highlight_references_enabled = 1
|
||||
highlight LspReference gui=bold guifg={{@@ color.normal.yellow @@}}
|
||||
|
||||
" Complete File paths{{{
|
||||
au User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#file#get_source_options({
|
||||
\ 'name': 'file',
|
||||
\ 'whitelist': ['*'],
|
||||
\ 'priority': 10,
|
||||
\ 'completor': function('asyncomplete#sources#file#completor')
|
||||
\ }))
|
||||
"}}}
|
||||
" Emmet{{{
|
||||
au User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#emmet#get_source_options({
|
||||
\ 'name': 'emmet',
|
||||
\ 'whitelist': ['html'],
|
||||
\ 'completor': function('asyncomplete#sources#emmet#completor'),
|
||||
\ }))
|
||||
"}}}
|
||||
" Snipets{{{
|
||||
call asyncomplete#register_source(asyncomplete#sources#neosnippet#get_source_options({
|
||||
\ 'name': 'neosnippet',
|
||||
\ 'whitelist': ['*'],
|
||||
\ 'completor': function('asyncomplete#sources#neosnippet#completor'),
|
||||
\ }))
|
||||
|
||||
"}}}
|
||||
"Buffer{{{
|
||||
call asyncomplete#register_source(asyncomplete#sources#buffer#get_source_options({
|
||||
\ 'name': 'buffer',
|
||||
\ 'allowlist': ['*'],
|
||||
\ 'completor': function('asyncomplete#sources#buffer#completor'),
|
||||
\ 'config': {
|
||||
\ 'max_buffer_size': 5000000,
|
||||
\ },
|
||||
\ }))
|
||||
"}}}
|
||||
"}}}
|
||||
" {%@@ elif lsp == "coc" @@%} "
|
||||
"" coc {{{
|
||||
|
||||
"allow json comments
|
||||
autocmd FileType json syntax match Comment +\/\/.\+$+
|
||||
|
||||
" Don't pass messages to |ins-completion-menu|.
|
||||
set shortmess+=c
|
||||
|
||||
" Always show the signcolumn, otherwise it would shift the text each time
|
||||
" diagnostics appear/become resolved.
|
||||
if has("patch-8.1.1564")
|
||||
" Recently vim can merge signcolumn and number column into one
|
||||
set signcolumn=number
|
||||
else
|
||||
set signcolumn=yes
|
||||
endif
|
||||
|
||||
" Use `[g` and `]g` to navigate diagnostics
|
||||
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
|
||||
nmap <silent> [g <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> ]g <Plug>(coc-diagnostic-next)
|
||||
|
||||
" GoTo code navigation.
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <silent> gy <Plug>(coc-type-definition)
|
||||
nmap <silent> gi <Plug>(coc-implementation)
|
||||
nmap <silent> gr <Plug>(coc-references)
|
||||
|
||||
" Use gd to show documentation in preview window.
|
||||
nnoremap <silent> K :call <SID>show_documentation()<CR>
|
||||
function! s:show_documentation()
|
||||
if (index(['vim','help'], &filetype) >= 0)
|
||||
execute 'h '.expand('<cword>')
|
||||
else
|
||||
call CocAction('doHover')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Highlight the symbol and its references when holding the cursor.
|
||||
autocmd CursorHold * silent call CocActionAsync('highlight')
|
||||
|
||||
" Symbol renaming.
|
||||
nmap gr <Plug>(coc-rename)
|
||||
|
||||
" use <tab> for trigger completion and navigate to the next complete item
|
||||
function! s:check_back_space() abort
|
||||
let col = col('.') - 1
|
||||
return !col || getline('.')[col - 1] =~ '\s'
|
||||
endfunction
|
||||
|
||||
inoremap <silent><expr> <Tab>
|
||||
\ pumvisible() ? "\<C-n>" :
|
||||
\ <SID>check_back_space() ? "\<Tab>" :
|
||||
\ coc#refresh()
|
||||
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
|
||||
|
||||
" Formatting selected code.
|
||||
xmap gf <Plug>(coc-format-selected)
|
||||
nmap gf <Plug>(coc-format-selected)
|
||||
|
||||
" Add `:Format` command to format current buffer.
|
||||
command! -nargs=0 Format :call CocAction('format')
|
||||
|
||||
" Map function and class text objects
|
||||
" NOTE: Requires 'textDocument.documentSymbol' support from the language server.
|
||||
xmap if <Plug>(coc-funcobj-i)
|
||||
omap if <Plug>(coc-funcobj-i)
|
||||
xmap af <Plug>(coc-funcobj-a)
|
||||
omap af <Plug>(coc-funcobj-a)
|
||||
xmap ic <Plug>(coc-classobj-i)
|
||||
omap ic <Plug>(coc-classobj-i)
|
||||
xmap ac <Plug>(coc-classobj-a)
|
||||
omap ac <Plug>(coc-classobj-a)
|
||||
|
||||
"}}}
|
||||
" {%@@ endif @@%} "
|
||||
|
||||
"python env{{{
|
||||
let g:python_host_prog = '/usr/bin/python2'
|
||||
let g:python3_host_prog = '/usr/bin/python3'
|
||||
" MUST NOT BE INDENTED!
|
||||
py3 << EOF
|
||||
import os
|
||||
import sys
|
||||
if 'VIRTUAL_ENV' in os.environ:
|
||||
project_base_dir = os.environ['VIRTUAL_ENV']
|
||||
activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
|
||||
execfile(activate_this, dict(__file__=activate_this))
|
||||
EOF
|
||||
"}}}
|
||||
" Latex{{{
|
||||
let g:livepreview_previewer = 'zathura'
|
||||
autocmd FileType tex LLPStartPreview
|
||||
"}}}
|
||||
"groff{{{
|
||||
augroup filetrype_groff
|
||||
autocmd VimEnter *.ms set ft=groff
|
||||
|
||||
autocmd VimEnter *.ms silent !zathura (string replace --regex .ms\$ .pdf "%" ) & jobs -lp > /tmp/groff-preview
|
||||
autocmd VimLeave *.ms silent !kill (cat /tmp/groff-preview )
|
||||
|
||||
autocmd BufWritePost *.ms silent !compile %
|
||||
|
||||
" autocmd FileType groff setlocal commentstring=\\\"\ %s
|
||||
augroup END
|
||||
"}}}
|
||||
"}}}
|
||||
"Hide statusbar{{{
|
||||
let s:hidden_all = 0
|
||||
function! ToggleHiddenAll()
|
||||
if s:hidden_all == 0
|
||||
let s:hidden_all = 1
|
||||
set noshowmode
|
||||
set noruler
|
||||
set laststatus=0
|
||||
set noshowcmd
|
||||
else
|
||||
let s:hidden_all = 0
|
||||
set showmode
|
||||
set ruler
|
||||
set laststatus=2
|
||||
set showcmd
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" nnoremap <S-h> :call ToggleHiddenAll()<CR>
|
||||
call ToggleHiddenAll()
|
||||
"}}}
|
||||
" vim:foldmethod=marker
|
|
@ -0,0 +1,323 @@
|
|||
#!/bin/env python
|
||||
# {{@@ header() @@}}
|
||||
|
||||
# Ignore import error
|
||||
# pylint: disable=E0401,E0602
|
||||
# type: ignore
|
||||
from qutebrowser.config.configfiles import ConfigAPI
|
||||
from qutebrowser.config.config import ConfigContainer
|
||||
|
||||
config = config
|
||||
c = c
|
||||
# Ignore undefined
|
||||
config: ConfigAPI
|
||||
c: ConfigContainer
|
||||
|
||||
# Behavior {{{
|
||||
|
||||
c.aliases = {
|
||||
"q": "close",
|
||||
"qa": "quit",
|
||||
"w": "session-save",
|
||||
"wq": "quit --save",
|
||||
"wqa": "quit --save",
|
||||
}
|
||||
|
||||
# Load a restored tab as soon as it takes focus.
|
||||
c.session.lazy_restore = True
|
||||
|
||||
# Enable screensharing for wayland
|
||||
c.qt.args = ['enable-features=WebRTCPipeWireCapturer']
|
||||
|
||||
# Always restore open sites when qutebrowser is reopened.
|
||||
c.auto_save.session = True
|
||||
|
||||
config.set("content.cookies.accept", "all", "chrome-devtools://*")
|
||||
|
||||
config.set("content.cookies.accept", "all", "devtools://*")
|
||||
|
||||
# Allow websites to request geolocations.
|
||||
config.set("content.geolocation", True, "https://openweathermap.org")
|
||||
|
||||
c.content.headers.user_agent = """\
|
||||
Mozilla/5.0 ({os_info})
|
||||
AppleWebKit/{webkit_version} (KHTML, like Gecko)
|
||||
{qt_key}/{qt_version}
|
||||
{upstream_browser_key}/{upstream_browser_version}
|
||||
Safari/{webkit_version}""".replace("\n","")
|
||||
|
||||
# Enable JavaScript.
|
||||
config.set("content.javascript.enabled", True, "file://*")
|
||||
config.set("content.javascript.enabled", True, "chrome-devtools://*")
|
||||
config.set("content.javascript.enabled", True, "devtools://*")
|
||||
config.set("content.javascript.enabled", True, "chrome://*/*")
|
||||
config.set("content.javascript.enabled", True, "qute://*/*")
|
||||
|
||||
# Allow websites to record audio/video.
|
||||
# config.set("content.media_capture", True, "https://ca.bbcollab.com")
|
||||
config.set("content.media.audio_video_capture", True, "https://ca.bbcollab.com")
|
||||
config.set("content.autoplay", True, "https://ca.bbcollab.com")
|
||||
config.set("content.mute", False, "https://ca.bbcollab.com")
|
||||
|
||||
# Allow websites to show notifications.
|
||||
config.set("content.notifications", False, "*")
|
||||
|
||||
# Allow websites to register protocol handlers via
|
||||
config.set('content.register_protocol_handler', False,
|
||||
'https://mail.disroot.org?mailto&to=%25s')
|
||||
|
||||
c.content.mute = True
|
||||
c.content.autoplay = False
|
||||
# }}}
|
||||
# UI {{{
|
||||
# Shrink the completion to be smaller than the configured size if there
|
||||
# are no scrollbars.
|
||||
# Type: Bool
|
||||
c.completion.shrink = True
|
||||
|
||||
# CSS border value for hints.
|
||||
# Type: String
|
||||
c.hints.border = "2px solid {{@@ color.accent @@}}"
|
||||
|
||||
# Characters used for hint strings.
|
||||
# {%@@ if key_layout == "colemak" @@%} #
|
||||
c.hints.chars = "asrtdhneio"
|
||||
# {%@@ elif key_layout == "dvorak" @@%} #
|
||||
c.hints.chars = "aoeuidnths"
|
||||
# {%@@ endif @@%}
|
||||
|
||||
# c.input.insert_mode.auto_leave = False
|
||||
|
||||
# Scrollbar style
|
||||
c.scrolling.bar = 'overlay'
|
||||
|
||||
c.scrolling.smooth = True
|
||||
|
||||
c.statusbar.widgets = ["keypress", "url", "scroll", "history", "tabs"]
|
||||
|
||||
c.tabs.favicons.show = "always"
|
||||
c.tabs.select_on_remove = "last-used"
|
||||
|
||||
# When to show the status/tab bar.
|
||||
c.tabs.show = "switching"
|
||||
c.statusbar.show = "in-mode"
|
||||
|
||||
c.tabs.show_switching_delay = 2000
|
||||
c.tabs.title.format = "{audio} {current_title}"
|
||||
c.tabs.indicator.width = 0
|
||||
# }}}
|
||||
# Search {{{
|
||||
|
||||
# {%@@ set search_engine = "start.duckduckgo.com" @@%} #
|
||||
|
||||
|
||||
c.url.default_page = "{{@@ search_engine @@}}"
|
||||
|
||||
c.url.searchengines = {
|
||||
"DEFAULT": "{{@@ search_engine @@}}?q={}",
|
||||
"!aw": "wiki.archlinux.org?search={}",
|
||||
"!w": "wikipedia.org/w?search={}",
|
||||
"!wpt": "pt.wikipedia.org/w?search={}",
|
||||
"!au": "aur.archlinux.org/packages/?K={}",
|
||||
"!alt": "alternativeto.net/browse/search?q={}",
|
||||
"!gw": "wiki.gentoo.org/?search={}",
|
||||
"!yt": "youtube.com/results?q={}",
|
||||
}
|
||||
|
||||
# Page(s) to open at the start.
|
||||
# Type: List of FuzzyUrl, or FuzzyUrl
|
||||
c.url.start_pages = "{{@@ search_engine @@}}"
|
||||
# }}}
|
||||
# Colors {{{
|
||||
|
||||
c.colors.completion.category.fg = "{{@@ color.txt @@}}"
|
||||
c.colors.completion.category.bg = "{{@@ color.bg_dark @@}}"
|
||||
c.colors.completion.category.border.top = "{{@@ color.bg_dark @@}}"
|
||||
c.colors.completion.category.border.bottom = "{{@@ color.bg_dark @@}}"
|
||||
|
||||
c.colors.completion.item.selected.bg = "{{@@ color.accent @@}}"
|
||||
c.colors.completion.item.selected.border.top = "{{@@ color.bg_dark @@}}"
|
||||
c.colors.completion.item.selected.border.bottom = "{{@@ color.bg_dark @@}}"
|
||||
|
||||
c.colors.completion.fg = "{{@@ color.txt @@}}"
|
||||
c.colors.completion.even.bg = "{{@@ color.bg_light @@}}"
|
||||
c.colors.completion.odd.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
c.colors.statusbar.command.fg = "{{@@ color.txt @@}}"
|
||||
|
||||
# Foreground color of the matched text in the selected completion item.
|
||||
c.colors.completion.item.selected.match.fg = "{{@@ color.txt @@}}"
|
||||
|
||||
# Color of the scrollbar in the completion view.
|
||||
c.colors.completion.scrollbar.bg = "{{@@ color.bg_light @@}}"
|
||||
|
||||
# Background color for the download bar.
|
||||
c.colors.downloads.bar.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
# Color gradient start for download backgrounds.
|
||||
c.colors.downloads.start.bg = "{{@@ color.normal.blue @@}}"
|
||||
|
||||
# Color gradient stop for download backgrounds.
|
||||
c.colors.downloads.stop.bg = "{{@@ color.normal.green @@}}"
|
||||
|
||||
# Font color for hints.
|
||||
c.colors.hints.fg = "{{@@ color.txt @@}}"
|
||||
|
||||
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||
# for transparency.
|
||||
c.colors.hints.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
# Font color for the matched part of hints.
|
||||
c.colors.hints.match.fg = "{{@@ color.accent @@}}"
|
||||
|
||||
# Highlight color for keys to complete the current keychain.
|
||||
c.colors.keyhint.suffix.fg = "{{@@ color.accent @@}}"
|
||||
|
||||
# Background color of the keyhint widget.
|
||||
c.colors.keyhint.bg = "rgba(30, 30, 30, 95%)"
|
||||
|
||||
# Foreground color of the statusbar.
|
||||
c.colors.statusbar.normal.fg = "{{@@ color.txt @@}}"
|
||||
|
||||
# Background color of the statusbar.
|
||||
c.colors.statusbar.normal.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
# Foreground color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.fg = "{{@@ color.normal.green @@}}"
|
||||
|
||||
# Background color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
# Background color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
# Background color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.bg = "{{@@ color.accent @@}}"
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (https).
|
||||
c.colors.statusbar.url.success.https.fg = "{{@@ color.txt @@}}"
|
||||
|
||||
# Background color of the tab bar.
|
||||
c.colors.tabs.bar.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
# Foreground color of tabs.
|
||||
c.colors.tabs.even.fg = "{{@@ color.txt @@}}"
|
||||
c.colors.tabs.odd.fg = "{{@@ color.txt @@}}"
|
||||
# Background color of tabs.
|
||||
c.colors.tabs.even.bg = "{{@@ color.bg @@}}"
|
||||
c.colors.tabs.odd.bg = "{{@@ color.bg @@}}"
|
||||
|
||||
# Foreground color of selected tabs.
|
||||
c.colors.tabs.selected.even.fg = "{{@@ color.txt @@}}"
|
||||
c.colors.tabs.selected.odd.fg = "{{@@ color.txt @@}}"
|
||||
# Background color of selected tabs.
|
||||
c.colors.tabs.selected.even.bg = "{{@@ color.accent @@}}"
|
||||
c.colors.tabs.selected.odd.bg = "{{@@ color.accent @@}}"
|
||||
|
||||
# Background color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.bg = "{{@@ color.bg_light @@}}"
|
||||
|
||||
# Background color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.bg = "{{@@ color.bg_light @@}}"
|
||||
|
||||
# {%@@ if color.type == "dark" @@%} #
|
||||
c.colors.webpage.bg = "{{@@ color.bg @@}}"
|
||||
c.colors.webpage.prefers_color_scheme_dark = True
|
||||
c.colors.webpage.darkmode.enabled = True
|
||||
c.colors.webpage.darkmode.threshold.background = 256 // 2
|
||||
c.colors.webpage.darkmode.threshold.text = 256 // 2
|
||||
# {%@@ endif @@%}
|
||||
# }}}
|
||||
# Fonts {{{
|
||||
# Font used in the completion widget.
|
||||
c.fonts.completion.entry = "16px {{@@ font.interface @@}}"
|
||||
|
||||
# Font used in the completion categories.
|
||||
c.fonts.completion.category = "16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used for the debugging console.
|
||||
c.fonts.debug_console = "16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used for the downloadbar.
|
||||
c.fonts.downloads = "16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used for the hints.
|
||||
c.fonts.hints = "bold 16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used in the keyhint widget.
|
||||
c.fonts.keyhint = "16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used for error messages.
|
||||
c.fonts.messages.error = "16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used for info messages.
|
||||
c.fonts.messages.info = "16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used for warning messages.
|
||||
c.fonts.messages.warning = "16px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used for prompts.
|
||||
c.fonts.prompts = "16px {{@@ font.interface @@}}"
|
||||
|
||||
# Font used in the statusbar.
|
||||
c.fonts.statusbar = "14px {{@@ font.mono @@}}"
|
||||
|
||||
# Font used in the tab bar.
|
||||
c.fonts.tabs.selected = "14px {{@@ font.interface @@}}"
|
||||
c.fonts.tabs.unselected = "14px {{@@ font.interface @@}}"
|
||||
# }}}
|
||||
# Bindings {{{
|
||||
# Bindings for normal mode
|
||||
config.bind(",d", "spawn --verbose youtube-dl {url}")
|
||||
config.bind(",m", "spawn mpv --fs {url}")
|
||||
config.bind(",r", "spawn --userscript readability")
|
||||
config.bind(";e", "hint links spawn deemix '{hint-url}'")
|
||||
config.bind(";m", "hint links spawn mpv --fs {hint-url}")
|
||||
|
||||
# {%@@ if key_layout == "colemak" @@%} #
|
||||
config.bind("t", "hint all")
|
||||
config.bind("T", "hint all tab")
|
||||
|
||||
config.bind("h", "set-cmd-text -s :open")
|
||||
config.bind("H", "set-cmd-text -s :open -t")
|
||||
|
||||
# {%@@ endif @@%}
|
||||
|
||||
config.bind("{{@@ key.insertMode @@}}", "enter-mode insert")
|
||||
# config.bind("{{@@ key.insertQuit @@}}", "enter-mode normal", mode="insert")
|
||||
|
||||
config.bind("{{@@ key.next @@}}", "search-next")
|
||||
config.bind("{{@@ key.next.upper() @@}}", "search-prev")
|
||||
|
||||
config.bind("{{@@ key.left @@}}", "scroll left")
|
||||
config.bind("{{@@ key.down @@}}", "scroll down")
|
||||
config.bind("{{@@ key.up @@}}", "scroll up")
|
||||
config.bind("{{@@ key.right @@}}", "scroll right")
|
||||
|
||||
config.bind("{{@@ key.left .upper() @@}}", "back")
|
||||
config.bind("{{@@ key.right .upper() @@}}", "forward")
|
||||
|
||||
config.bind("{{@@ key.up .upper() @@}}", "scroll-px 0 -100")
|
||||
config.bind("{{@@ key.down .upper() @@}}", "scroll-px 0 100")
|
||||
|
||||
config.bind("{{@@ key.tabL .upper() @@}}", "tab-prev")
|
||||
config.bind("{{@@ key.tabR .upper() @@}}", "tab-next")
|
||||
|
||||
# Bindings for caret mode
|
||||
config.bind("{{@@ key.left @@}}", "move-to-prev-char", mode="caret")
|
||||
config.bind("{{@@ key.up @@}}", "move-to-prev-line", mode="caret")
|
||||
config.bind("{{@@ key.down @@}}", "move-to-next-line", mode="caret")
|
||||
config.bind("{{@@ key.right @@}}", "move-to-next-char", mode="caret")
|
||||
|
||||
# Bindings for insert mode
|
||||
config.bind(
|
||||
"<Ctrl+i>",
|
||||
"spawn --userscript qute-keepass -p ~/Documentos/senhas/Senhas.kdbx",
|
||||
mode="insert",
|
||||
)
|
||||
|
||||
c.editor.command = ["terminal", "nvim", "-f", "{file}", "+{line}"]
|
||||
# }}}
|
||||
|
||||
# vim: fdm=marker
|
|
@ -1,31 +1,14 @@
|
|||
# ===================================================================
|
||||
# This file contains the default startup commands for ranger.
|
||||
# To change them, it is recommended to create either /etc/ranger/rc.conf
|
||||
# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
|
||||
# commands there.
|
||||
#
|
||||
# If you copy this whole file there, you may want to set the environment
|
||||
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
|
||||
#
|
||||
# The purpose of this file is mainly to define keybindings and settings.
|
||||
# For running more complex python code, please create a plugin in "plugins/" or
|
||||
# a command in "commands.py".
|
||||
#
|
||||
# Each line is a command that will be run before the user interface
|
||||
# is initialized. As a result, you can not use commands which rely
|
||||
# on the UI such as :delete or :mark.
|
||||
# ===================================================================
|
||||
# {{@@ header() @@}}
|
||||
# _ __ __ _ _ __ __ _ ___ _ __
|
||||
# | '__/ _` | '_ \ / _` |/ _ \ '__|
|
||||
# | | | (_| | | | | (_| | __/ |
|
||||
# |_| \__,_|_| |_|\__, |\___|_|
|
||||
# |___/
|
||||
|
||||
# ===================================================================
|
||||
# == Options
|
||||
# ===================================================================
|
||||
# == Options{{{
|
||||
|
||||
# Which viewmode should be used? Possible values are:
|
||||
# miller: Use miller columns which show multiple levels of the hierarchy
|
||||
# multipane: Midnight-commander like multipane view showing all tabs next
|
||||
# to each other
|
||||
# Use miller columns which show multiple levels of the hierarchy
|
||||
set viewmode miller
|
||||
#set viewmode multipane
|
||||
|
||||
# How many columns are there, and what are their relative widths?
|
||||
set column_ratios 1,3,4
|
||||
|
@ -44,7 +27,7 @@ set confirm_on_delete multiple
|
|||
# Use non-default path for file preview script?
|
||||
# ranger ships with scope.sh, a script that calls external programs (see
|
||||
# README.md for dependencies) to preview images, archives, etc.
|
||||
# set preview_script ~/.config/ranger/scope.sh
|
||||
set preview_script ~/.config/ranger/scope.sh
|
||||
|
||||
# Use the external preview script or display simple plain text or image previews?
|
||||
set use_preview_script true
|
||||
|
@ -70,7 +53,7 @@ set vcs_backend_svn disabled
|
|||
# Use one of the supported image preview protocols
|
||||
set preview_images true
|
||||
|
||||
# Set the preview image method. Supported methods:
|
||||
# Set the preview image method. Supported methods:{{{
|
||||
#
|
||||
# * w3m (default):
|
||||
# Preview images in full color with the external command "w3mimgpreview"?
|
||||
|
@ -107,8 +90,8 @@ set preview_images true
|
|||
# for example during an ssh session.
|
||||
# Tmux is unsupported.
|
||||
|
||||
# set preview_images_method kitty
|
||||
|
||||
set preview_images_method kitty
|
||||
# }}}
|
||||
# Delay in seconds before displaying an image with the w3m method.
|
||||
# Increase it in case of experiencing display corruption.
|
||||
set w3m_delay 0.02
|
||||
|
@ -290,17 +273,12 @@ set global_inode_type_filter
|
|||
# This setting allows to freeze the list of files to save I/O bandwidth. It
|
||||
# should be 'false' during start-up, but you can toggle it by pressing F.
|
||||
set freeze_files false
|
||||
|
||||
# ===================================================================
|
||||
# == Local Options
|
||||
# ===================================================================
|
||||
# You can set local options that only affect a single directory.
|
||||
|
||||
# Examples:
|
||||
# setlocal path=~/downloads sort mtime
|
||||
|
||||
# ===================================================================
|
||||
# == Command Aliases in the Console
|
||||
# }}}
|
||||
# == Local Options{{{
|
||||
#
|
||||
setlocal path=~/downloads sort mtime
|
||||
# }}}
|
||||
# == Command Aliases in the Console{{{
|
||||
# ===================================================================
|
||||
|
||||
alias e edit
|
||||
|
@ -319,9 +297,8 @@ alias unmark scout -Mr
|
|||
alias search scout -rs
|
||||
alias search_inc scout -rts
|
||||
alias travel scout -aefklst
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the browser
|
||||
# }}}
|
||||
# == Define keys for the browser{{{
|
||||
# ===================================================================
|
||||
|
||||
# Basic
|
||||
|
@ -337,11 +314,10 @@ map <C-c> abort
|
|||
map <esc> change_mode normal
|
||||
map ~ set viewmode!
|
||||
|
||||
map i display_file
|
||||
map ? help
|
||||
map W display_log
|
||||
map w taskview_open
|
||||
map S shell $SHELL
|
||||
map X shell $SHELL
|
||||
|
||||
map : console
|
||||
map ; console
|
||||
|
@ -399,23 +375,23 @@ map <CR> move right=1
|
|||
map <INSERT> console touch%space
|
||||
|
||||
# VIM-like
|
||||
copymap <UP> k
|
||||
copymap <DOWN> j
|
||||
copymap <LEFT> h
|
||||
copymap <RIGHT> l
|
||||
copymap <LEFT> {{@@ key.left @@}}
|
||||
copymap <UP> {{@@ key.up @@}}
|
||||
copymap <DOWN> {{@@ key.down @@}}
|
||||
copymap <RIGHT> {{@@ key.right @@}}
|
||||
copymap <HOME> gg
|
||||
copymap <END> G
|
||||
copymap <PAGEDOWN> <C-F>
|
||||
copymap <PAGEUP> <C-B>
|
||||
|
||||
map J move down=0.5 pages=True
|
||||
map K move up=0.5 pages=True
|
||||
copymap J <C-D>
|
||||
copymap K <C-U>
|
||||
map T move down=0.5 pages=True
|
||||
map N move up=0.5 pages=True
|
||||
copymap T <C-D>
|
||||
copymap N <C-U>
|
||||
|
||||
# Jumping around
|
||||
map H history_go -1
|
||||
map L history_go 1
|
||||
map S history_go 1
|
||||
map ] move_parent 1
|
||||
map [ move_parent -1
|
||||
map } traverse
|
||||
|
@ -492,8 +468,8 @@ map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
|
|||
|
||||
# Searching
|
||||
map / console search%space
|
||||
map n search_next
|
||||
map N search_next forward=False
|
||||
map l search_next
|
||||
map L search_next forward=False
|
||||
map ct search_next order=tag
|
||||
map cs search_next order=size
|
||||
map ci search_next order=mimetype
|
||||
|
@ -526,25 +502,25 @@ map <a-r> tab_shift 1
|
|||
map <a-l> tab_shift -1
|
||||
|
||||
# Sorting
|
||||
map or set sort_reverse!
|
||||
map oz set sort=random
|
||||
map os chain set sort=size; set sort_reverse=False
|
||||
map ob chain set sort=basename; set sort_reverse=False
|
||||
map on chain set sort=natural; set sort_reverse=False
|
||||
map om chain set sort=mtime; set sort_reverse=False
|
||||
map oc chain set sort=ctime; set sort_reverse=False
|
||||
map oa chain set sort=atime; set sort_reverse=False
|
||||
map ot chain set sort=type; set sort_reverse=False
|
||||
map oe chain set sort=extension; set sort_reverse=False
|
||||
map sr set sort_reverse!
|
||||
map sz set sort=random
|
||||
map ss chain set sort=size; set sort_reverse=False
|
||||
map sb chain set sort=basename; set sort_reverse=False
|
||||
map sn chain set sort=natural; set sort_reverse=False
|
||||
map sm chain set sort=mtime; set sort_reverse=False
|
||||
map sc chain set sort=ctime; set sort_reverse=False
|
||||
map sa chain set sort=atime; set sort_reverse=False
|
||||
map st chain set sort=type; set sort_reverse=False
|
||||
map se chain set sort=extension; set sort_reverse=False
|
||||
|
||||
map oS chain set sort=size; set sort_reverse=True
|
||||
map oB chain set sort=basename; set sort_reverse=True
|
||||
map oN chain set sort=natural; set sort_reverse=True
|
||||
map oM chain set sort=mtime; set sort_reverse=True
|
||||
map oC chain set sort=ctime; set sort_reverse=True
|
||||
map oA chain set sort=atime; set sort_reverse=True
|
||||
map oT chain set sort=type; set sort_reverse=True
|
||||
map oE chain set sort=extension; set sort_reverse=True
|
||||
map sS chain set sort=size; set sort_reverse=True
|
||||
map sB chain set sort=basename; set sort_reverse=True
|
||||
map sN chain set sort=natural; set sort_reverse=True
|
||||
map sM chain set sort=mtime; set sort_reverse=True
|
||||
map sC chain set sort=ctime; set sort_reverse=True
|
||||
map sA chain set sort=atime; set sort_reverse=True
|
||||
map sT chain set sort=type; set sort_reverse=True
|
||||
map sE chain set sort=extension; set sort_reverse=True
|
||||
|
||||
map dc get_cumulative_size
|
||||
|
||||
|
@ -602,13 +578,12 @@ eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
|
|||
eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the console
|
||||
# ===================================================================
|
||||
# Note: Unmapped keys are passed directly to the console.
|
||||
# }}}
|
||||
# Define keys for the console{{{
|
||||
#
|
||||
|
||||
# Basic
|
||||
#
|
||||
cmap <tab> eval fm.ui.console.tab()
|
||||
cmap <s-tab> eval fm.ui.console.tab(-1)
|
||||
cmap <ESC> eval fm.ui.console.close()
|
||||
|
@ -619,6 +594,7 @@ copycmap <ESC> <C-c>
|
|||
copycmap <CR> <C-j>
|
||||
|
||||
# Move around
|
||||
#
|
||||
cmap <up> eval fm.ui.console.history_move(-1)
|
||||
cmap <down> eval fm.ui.console.history_move(1)
|
||||
cmap <left> eval fm.ui.console.move(left=1)
|
||||
|
@ -632,6 +608,7 @@ copycmap <a-b> <a-left>
|
|||
copycmap <a-f> <a-right>
|
||||
|
||||
# Line Editing
|
||||
#
|
||||
cmap <backspace> eval fm.ui.console.delete(-1)
|
||||
cmap <delete> eval fm.ui.console.delete(0)
|
||||
cmap <C-w> eval fm.ui.console.delete_word()
|
||||
|
@ -640,27 +617,14 @@ cmap <C-k> eval fm.ui.console.delete_rest(1)
|
|||
cmap <C-u> eval fm.ui.console.delete_rest(-1)
|
||||
cmap <C-y> eval fm.ui.console.paste()
|
||||
|
||||
# And of course the emacs way
|
||||
copycmap <ESC> <C-g>
|
||||
copycmap <up> <C-p>
|
||||
copycmap <down> <C-n>
|
||||
copycmap <left> <C-b>
|
||||
copycmap <right> <C-f>
|
||||
copycmap <home> <C-a>
|
||||
copycmap <end> <C-e>
|
||||
copycmap <delete> <C-d>
|
||||
copycmap <backspace> <C-h>
|
||||
|
||||
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
|
||||
# and <backspace2> (code 127). To be sure, use both.
|
||||
copycmap <backspace> <backspace2>
|
||||
|
||||
# This special expression allows typing in numerals:
|
||||
cmap <allow_quantifiers> false
|
||||
|
||||
# ===================================================================
|
||||
# == Pager Keybindings
|
||||
# ===================================================================
|
||||
# }}}
|
||||
# Pager Keybindings {{{
|
||||
|
||||
# Movement
|
||||
pmap <down> pager_move down=1
|
||||
|
@ -674,28 +638,26 @@ pmap <pageup> pager_move up=1.0 pages=True
|
|||
pmap <C-d> pager_move down=0.5 pages=True
|
||||
pmap <C-u> pager_move up=0.5 pages=True
|
||||
|
||||
copypmap <UP> k <C-p>
|
||||
copypmap <DOWN> j <C-n> <CR>
|
||||
copypmap <UP> n <C-p>
|
||||
copypmap <DOWN> t <C-n> <CR>
|
||||
copypmap <LEFT> h
|
||||
copypmap <RIGHT> l
|
||||
copypmap <RIGHT> s
|
||||
copypmap <HOME> g
|
||||
copypmap <END> G
|
||||
copypmap <C-d> d
|
||||
copypmap <C-u> u
|
||||
copypmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copypmap <PAGEDOWN> l f <C-F> <Space>
|
||||
copypmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Basic
|
||||
# }}}
|
||||
# Basic{{{
|
||||
pmap <C-l> redraw_window
|
||||
pmap <ESC> pager_close
|
||||
copypmap <ESC> q Q i <F3>
|
||||
pmap E edit_file
|
||||
# }}}
|
||||
# Taskview Keybindings
|
||||
|
||||
# ===================================================================
|
||||
# == Taskview Keybindings
|
||||
# ===================================================================
|
||||
|
||||
# Movement
|
||||
# Movement{{{
|
||||
tmap <up> taskview_move up=1
|
||||
tmap <down> taskview_move down=1
|
||||
tmap <home> taskview_move to=0
|
||||
|
@ -705,26 +667,29 @@ tmap <pageup> taskview_move up=1.0 pages=True
|
|||
tmap <C-d> taskview_move down=0.5 pages=True
|
||||
tmap <C-u> taskview_move up=0.5 pages=True
|
||||
|
||||
copytmap <UP> k <C-p>
|
||||
copytmap <DOWN> j <C-n> <CR>
|
||||
copytmap <UP> n <C-p>
|
||||
copytmap <DOWN> t <C-n> <CR>
|
||||
copytmap <HOME> g
|
||||
copytmap <END> G
|
||||
copytmap <C-u> u
|
||||
copytmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copytmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Changing priority and deleting tasks
|
||||
tmap J eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap K eval -q fm.ui.taskview.task_move(0)
|
||||
# }}}
|
||||
# Changing priority and deleting tasks{{{
|
||||
tmap T eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap N eval -q fm.ui.taskview.task_move(0)
|
||||
tmap dd eval -q fm.ui.taskview.task_remove()
|
||||
tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
|
||||
tmap <delete> eval -q fm.ui.taskview.task_remove()
|
||||
|
||||
# }}}
|
||||
# Basic
|
||||
tmap <C-l> redraw_window
|
||||
tmap <ESC> taskview_close
|
||||
copytmap <ESC> q Q w <C-c>
|
||||
|
||||
# a plugin that adds file glyphs / icon support to Ranger:
|
||||
# https://github.com/alexanderjeurissen/ranger_devicons
|
||||
default_linemode devicons
|
||||
|
||||
# vim: commentstring=#\ %s
|
|
@ -47,7 +47,10 @@
|
|||
# implementation may differ.
|
||||
# Note: When using rifle in ranger, there is an additional flag "c" for
|
||||
# only running the current file even if you have marked multiple files.
|
||||
|
||||
mime ^image, has imv, X, flag f = imv -- "$@"
|
||||
mime ^video, has mpv, X, flag f = mpv -- "$@"
|
||||
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
|
||||
flag f = xdg-open "$@"
|
||||
#-------------------------------------------
|
||||
# Websites
|
||||
#-------------------------------------------
|
|
@ -102,7 +102,8 @@ handle_image() {
|
|||
# needs rotating ("1" means no rotation)...
|
||||
if [[ -n "$orientation" && "$orientation" != 1 ]]; then
|
||||
# ...auto-rotate the image according to the EXIF data.
|
||||
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
|
||||
convert -- "${FILE_PATH}" -resize 64x64 "${IMAGE_CACHE_PATH}" && exit 6
|
||||
fi
|
||||
|
||||
# `w3mimgdisplay` will be called for all images (unless overriden as above),
|
|
@ -0,0 +1,6 @@
|
|||
[{{@@ mail.strip("mail.").split(".")[0] @@}}]
|
||||
type = webdav
|
||||
vendor = nextcloud
|
||||
user = {{@@ username @@}}
|
||||
pass = {{@@ rclone_obscure(mail) @@}}
|
||||
url = https://cloud.{{@@ mail @@}}/remote.php/webdav/
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
pass "$@" | head -n1
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
git rev-list --all --objects | \
|
||||
sed -n $(git rev-list --objects --all | \
|
||||
cut -f1 -d' ' | \
|
||||
git cat-file --batch-check | \
|
||||
grep blob | \
|
||||
sort -n -k 3 | \
|
||||
tail -n40 | \
|
||||
while read hash type size; do
|
||||
echo -n "-e s/$hash/$size/p ";
|
||||
done) | \
|
||||
sort -n -k1
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
read files
|
||||
|
||||
git filter-branch -f --index-filter \
|
||||
"git rm --force --cached --ignore-unmatch $files" \
|
||||
-- --all
|
||||
|
||||
rm -Rf .git/refs/original && \
|
||||
git reflog expire --expire=now --all && \
|
||||
git gc --aggressive && \
|
||||
git prune
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
gpg --list-secret-keys --with-keygrip \
|
||||
"{{@@ username @@}}@{{@@ mail @@}}" |
|
||||
awk '
|
||||
/^ssb/ {
|
||||
ssb=1
|
||||
}
|
||||
/Keygrip/{
|
||||
if (ssb) print $3
|
||||
}' > ~/.pam-gnupg
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
mkdir ~/.ssh
|
||||
touch ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
|
||||
|
||||
chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
|
||||
|
||||
pass SSH\ Private > ~/.ssh/id_rsa
|
||||
pass SSH\ Public > ~/.ssh/id_rsa.pub
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/fish
|
||||
# wrapper around bemenu
|
||||
# bmenu * - use as dmenu, -p for custom prompt (man bemenu)
|
||||
# bmenu run - select from .desktop files and run it
|
||||
# bmenu start - internal option
|
||||
if test "$argv[1]" != "start" || test "$argv[1]" = "run"
|
||||
test -n "$SWAYSOCK" && swaymsg fullscreen off > /dev/null
|
||||
end
|
||||
|
||||
if test "$argv[1]" = "run"
|
||||
test -n "$2" && set t "$2" || set t "terminal"
|
||||
exec j4-dmenu-desktop --dmenu="bmenu start -p Iniciar:" --term "$t"
|
||||
end
|
||||
|
||||
# t title
|
||||
# f filter
|
||||
# n normal
|
||||
# h highlighted
|
||||
# s selected
|
||||
# sc scrollbar
|
||||
|
||||
set -l fn "{{@@ font.mono @@}} 12"
|
||||
|
||||
set -l tb "{{@@ color.bg @@}}"
|
||||
set -l tf "{{@@ color.accent @@}}"
|
||||
|
||||
set -l fb "{{@@ color.bg @@}}"
|
||||
set -l ff "{{@@ color.txt @@}}"
|
||||
|
||||
set -l nb "{{@@ color.bg @@}}"
|
||||
set -l nf "{{@@ color.txt @@}}"
|
||||
|
||||
set -l hb "{{@@ color.bg_light @@}}"
|
||||
set -l hf "{{@@ color.accent @@}}"
|
||||
|
||||
#{%@@ if False @@%}#
|
||||
# Hacks to allow runnning even if not templated
|
||||
set -l fn "Fira Code 12"
|
||||
|
||||
set -l tf "#D9534F"
|
||||
set -l tb "#202020"
|
||||
|
||||
set -l ff "#ffffff"
|
||||
set -l fb "#202020"
|
||||
|
||||
set -l nf "#ffffff"
|
||||
set -l nb "#202020"
|
||||
|
||||
set -l hf "#D9534F"
|
||||
set -l hb "#404040"
|
||||
#{%@@ endif @@%}#
|
||||
|
||||
bemenu \
|
||||
--ignorecase\
|
||||
--bottom\
|
||||
--no-overlap\
|
||||
--list 20\
|
||||
--prefix '->'\
|
||||
--fn "$fn"\
|
||||
--tb "$tb" --tf "$tf" \
|
||||
--fb "$fb" --ff "$ff" \
|
||||
--nb "$nb" --nf "$nf" \
|
||||
--hb "$hb" --hf "$hf" \
|
||||
$argv
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
test -z "$XDG_RUNTIME_DIR" &&
|
||||
export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
||||
|
||||
getnew(){
|
||||
find ~/.local/share/mail/INBOX{,.{Contas,Faculdade,Git,Trabalhos}}/new -type f | wc -l
|
||||
}
|
||||
|
||||
OLD=$(getnew)
|
||||
|
||||
[ "$1" = "update" ] && mbsync -a
|
||||
|
||||
NEW=$(getnew)
|
||||
|
||||
if [ "$NEW" -gt "$OLD" ];then
|
||||
notify-send " New E-Mails!"
|
||||
fi
|
||||
|
||||
echo $NEW | sed 's/^0$//'
|
||||
|
||||
if [ "$(ps -o comm= $PPID)" != "waybar" ] && pidof waybar>/dev/null;then
|
||||
pkill -SIGRTMIN+4 waybar
|
||||
fi
|
||||
|
||||
# vim:ft=sh
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
RED_ON="$(pidof redshift)"
|
||||
|
||||
if test -n "$RED_ON";then
|
||||
pkill redshift
|
||||
fi
|
||||
|
||||
grim -g "$(slurp -b aabbcc00 -p)" - |
|
||||
convert - txt:- |
|
||||
grep -oE '#[0-9A-Fa-f]{6}' |
|
||||
wl-copy
|
||||
|
||||
notify-send "$(wl-paste)" "Copied to clipboard"
|
||||
|
||||
test -n "$RED_ON" && redshift &> /dev/null &
|
|
@ -0,0 +1,38 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This script will compile or run another finishing operation on a document. I
|
||||
# have this script run via vim.
|
||||
#
|
||||
# Compiles .tex. groff (.mom, .ms), .rmd, .md. Opens .sent files as sent
|
||||
# presentations. Runs scripts based on extention or shebang
|
||||
|
||||
file=$(readlink -f "$1")
|
||||
dir=$(dirname "$file")
|
||||
base="${file%.*}"
|
||||
|
||||
cd "$dir" || exit
|
||||
|
||||
textype() { \
|
||||
command="pdflatex"
|
||||
( sed 5q "$file" | grep -i -q 'xelatex' ) && command="xelatex"
|
||||
$command --output-directory="$dir" "$base" &&
|
||||
grep -i addbibresource "$file" >/dev/null &&
|
||||
biber --input-directory "$dir" "$base" &&
|
||||
$command --output-directory="$dir" "$base" &&
|
||||
$command --output-directory="$dir" "$base"
|
||||
}
|
||||
|
||||
case "$file" in
|
||||
*\.ms) refer -PS -e "$file" | groff -me -ms -kept -T pdf > "$base".pdf ;;
|
||||
*\.mom) refer -PS -e "$file" | groff -mom -kept -T pdf > "$base".pdf ;;
|
||||
*\.[0-9]) refer -PS -e "$file" | groff -mandoc -T pdf > "$base".pdf ;;
|
||||
*\.[rR]md) Rscript -e "require(rmarkdown); rmarkdown::render('$file', quiet=TRUE)" ;;
|
||||
*\.tex) textype "$file" ;;
|
||||
*\.md) pandoc "$file" --pdf-engine=xelatex -o "$base".pdf ;;
|
||||
*config.h) sudo make install ;;
|
||||
*\.c) cc "$file" -o "$base" && "$base" ;;
|
||||
*\.py) python "$file" ;;
|
||||
*\.go) go run "$file" ;;
|
||||
*\.sent) setsid sent "$file" 2>/dev/null & ;;
|
||||
*) sed 1q "$file" | grep "^#!/" | sed "s/^#!//" | xargs -r -I % "$file" ;;
|
||||
esac
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
pkill kanshi
|
||||
kanshi
|
|
@ -0,0 +1,71 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
tmpf=$(mktemp)
|
||||
|
||||
choose(){
|
||||
choice=$(grep "$(cat $tmpf | cut -d\| -f1| wdmenu)" $tmpf)
|
||||
choiceId="$(echo $choice| cut -d\| -f2)"
|
||||
choiceUrl=http://deezer.com/$sType/$choiceId
|
||||
choicePreview=$( curl -s "api.deezer.com/$sType/$choiceId/$preview_suffix" |
|
||||
jq -r '.preview, .data[0].preview | select(. != null)' )
|
||||
|
||||
choice=$( printf "Preview\nDownload\nCopy URL" | wdmenu )
|
||||
if [ "$choice" = Preview ]
|
||||
then
|
||||
mpv --quiet "$choicePreview" &
|
||||
mpvPid=$!
|
||||
choice=$(printf "Download\nAnother" | wdmenu -p 'Download?')
|
||||
kill $mpvPid
|
||||
if test "$choice" = "Another"
|
||||
then
|
||||
choose
|
||||
return
|
||||
fi
|
||||
fi
|
||||
if [ "$choice" = Download ]
|
||||
then
|
||||
notify-send "Starting Download"
|
||||
deemix "$choiceUrl" &&
|
||||
notify-send "Download Successful" ||
|
||||
notify-send "Download Failed"
|
||||
mpc add /
|
||||
mpdDup
|
||||
fi
|
||||
if [ "$choice" = "Copy URL" ]
|
||||
then
|
||||
wl-copy "$choiceUrl"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
clean(){
|
||||
set +e
|
||||
kill "$mpvPid"
|
||||
|
||||
rm -f $tmpf
|
||||
}
|
||||
trap clean EXIT
|
||||
|
||||
sType=$(printf "Track\nAlbum\nArtist" | wdmenu | tr [:upper:] [:lower:] )
|
||||
query=$(echo -n | wdmenu | sed 's/[^ a-z]//g;s/ /+/g')
|
||||
case "$sType" in
|
||||
track)
|
||||
jqFilter='.data[]|.title+" - "+.album.title+" - "+.artist.name+"|"+( .id | tostring ) '
|
||||
;;
|
||||
album)
|
||||
jqFilter='.data[]| ( .nb_tracks | tostring ) +" - "+.title+" - "+.artist.name+"|"+ ( .id | tostring ) '
|
||||
preview_suffix=tracks
|
||||
;;
|
||||
artist)
|
||||
jqFilter='.data[]| ( .nb_fan | tostring ) +" - "+.name+"|"+ ( .id | tostring ) '
|
||||
preview_suffix=top
|
||||
;;
|
||||
esac
|
||||
|
||||
curl -s "api.deezer.com/search/$sType?q=${query}" |
|
||||
jq -r "$jqFilter" > $tmpf
|
||||
|
||||
choose
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -10,9 +10,14 @@ owm(){
|
|||
REGI=$(echo $INFO | jq -r '.region')
|
||||
COUN=$(echo $INFO | jq -r '.country')
|
||||
QUERY="$CITY, $REGI, $COUN"
|
||||
APPID="fd68c0fe7951f5ab7e24a240eb0942b8"
|
||||
APPID=`_get-pass OpenWeatherMapAPPID`
|
||||
#{%@@ if False @@%}#
|
||||
notify-send "Get a free appid"
|
||||
xdg-open openweathermap.org &
|
||||
exit 1
|
||||
#{%@@ endif @@%}#
|
||||
|
||||
FORECAST=$(http get http://api.openweathermap.org/data/2.5/forecast\?APPID\=${APPID}\&q="${CITY}"\&units\=metric)
|
||||
FORECAST=$(wget -qO- http://api.openweathermap.org/data/2.5/forecast\?APPID\=${APPID}\&q="${CITY}"\&units\=metric)
|
||||
TEMP=$(echo $FORECAST | jq -r ".list[0].main.temp" |
|
||||
perl -pe 's/(\d*)\.\d*/\1/')
|
||||
WEATHER=$(echo $FORECAST | jq -r ".list[0].weather[0].main")
|
||||
|
@ -36,7 +41,7 @@ format_weather(){
|
|||
WEATHER=""
|
||||
;;
|
||||
"Rain"|"Drizzle")
|
||||
WEATHER=""
|
||||
WEATHER=""
|
||||
;;
|
||||
"Mist")
|
||||
WEATHER=""
|
||||
|
@ -77,8 +82,8 @@ owm_pango(){
|
|||
owm_json(){
|
||||
owm
|
||||
|
||||
cat > .forecast.json <<EOF
|
||||
{
|
||||
tee > .forecast.json <<EOF
|
||||
{
|
||||
"min":"$MIN",
|
||||
"max":"$MAX",
|
||||
"temp":"$TEMP",
|
||||
|
@ -93,19 +98,19 @@ wttrin(){
|
|||
curl -sH "Accept-Language: ${LANG%_*}" --compressed "$request"
|
||||
}
|
||||
|
||||
if [ "$1" == "full" ]
|
||||
then
|
||||
wttrin
|
||||
elif [ "$1" == "short" ]
|
||||
then
|
||||
owm_short
|
||||
elif [ "$1" == "pango" ]
|
||||
then
|
||||
owm_pango
|
||||
elif [ "$1" == "json" ]
|
||||
then
|
||||
owm_json
|
||||
elif [ "$1" == "long" ]
|
||||
then
|
||||
owm_long
|
||||
fi
|
||||
case "$1" in
|
||||
short)
|
||||
owm_short;;
|
||||
pango)
|
||||
owm_pango;;
|
||||
json)
|
||||
owm_json;;
|
||||
long)
|
||||
owm_long;;
|
||||
interactive)
|
||||
clear
|
||||
wttrin
|
||||
read -n1 -p"Press any key to quit..." ;;
|
||||
full|*)
|
||||
wttrin;;
|
||||
esac
|
|
@ -1,5 +1,6 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
# set -e
|
||||
# set -x
|
||||
|
||||
comment(){
|
||||
local file="$1";shift
|
||||
|
@ -12,47 +13,56 @@ uncomment(){
|
|||
}
|
||||
|
||||
gui_off (){
|
||||
sudo chsh -s /usr/bin/zsh $(whoami)
|
||||
# sudo chsh -s /usr/bin/zsh $(whoami)
|
||||
|
||||
rm ~/.config/mimeapps.list
|
||||
cd .dotfiles
|
||||
cd ~/.dotfiles
|
||||
stow mime
|
||||
|
||||
uncomment /etc/mkinitcpio.conf "HOOKS.* (?!plymouth)"
|
||||
comment /etc/mkinitcpio.conf "HOOKS.* plymouth"
|
||||
yay -Rcs plymouth --noconfirm
|
||||
yay -Rcs plymouth --noconfirm || true
|
||||
sudo mkinitcpio -P
|
||||
|
||||
comment /boot/loader/entries/arch.conf "options quiet"
|
||||
|
||||
sudo systemctl disable NetworkManager
|
||||
sudo systemctl enable netctl-auto@wlp1s0
|
||||
sudo systemctl enable netctl-ifplugd@enp2s0
|
||||
sudo systemctl enable netctl
|
||||
|
||||
systemctl -q is-active gdm &&
|
||||
sudo systemctl disable --now gdm &
|
||||
systemctl -q is-active gdm-plymouth &&
|
||||
sudo systemctl disable --now gdm-plymouth &
|
||||
sudo systemctl disable display-manager.service
|
||||
|
||||
sudo systemctl start getty@tty1
|
||||
sudo systemctl enable ly
|
||||
|
||||
}
|
||||
|
||||
gui_on (){
|
||||
sudo chsh -s /usr/bin/fish $(whoami)
|
||||
# sudo chsh -s /usr/bin/fish $(whoami)
|
||||
|
||||
rm ~/.config/mimeapps.list
|
||||
rm -f ~/.config/mimeapps.list
|
||||
yay -S --noconfirm --needed gnome-defaults-list
|
||||
cp /usr/share/applications/gnome-mimeapps.list ~/.config/mimeapps.list
|
||||
|
||||
kvantummanager --set Materia
|
||||
gsettings set org.gnome.desktop.interface icon-theme 'Papirus'
|
||||
gsettings set org.gnome.desktop.interface icon-theme '{{@@ icon_theme @@}}'
|
||||
|
||||
comment /etc/mkinitcpio.conf "HOOKS.* (!?plymouth)"
|
||||
uncomment /etc/mkinitcpio.conf "HOOKS.* plymouth"
|
||||
yay -S plymouth --noconfirm
|
||||
yay -S plymouth plymouth-theme-arch-glow --noconfirm --needed
|
||||
sudo plymouth-set-default-theme arch-glow
|
||||
sudo mkinitcpio -P
|
||||
|
||||
uncomment /boot/loader/entries/arch.conf "options quiet"
|
||||
|
||||
sudo systemctl enable --now gdm-plymouth
|
||||
sudo systemctl disable netctl-auto@wlp1s0
|
||||
sudo systemctl disable netctl-ifplugd@enp2s0
|
||||
sudo systemctl disable netctl
|
||||
sudo systemctl enable NetworkManager
|
||||
|
||||
sudo systemctl disable display-manager.service
|
||||
|
||||
sudo systemctl enable gdm-plymouth
|
||||
}
|
||||
|
||||
restart_gdm(){
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/fish
|
||||
|
||||
# {%@@ if launcher == "wofi" @@%} #
|
||||
command -qs wofi &&
|
||||
exec wofi \
|
||||
--show drun \
|
||||
--allow-images \
|
||||
--no-actions \
|
||||
--prompt 'Iniciar: ' \
|
||||
|
||||
# {%@@ else @@%} #
|
||||
command -qs bmenu &&
|
||||
exec bmenu run
|
||||
# {%@@ endif @@%} #
|
||||
|
||||
notify-send "Error" "Launcher program missing"
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
pidof mpd > /dev/null ||
|
||||
exit 1
|
||||
|
||||
mpc status | grep '^\[playing\]' > /dev/null &&
|
||||
mpc current -f ' %title% - %artist% ' |
|
||||
sed 's/&/and/g'
|
||||
|
||||
true
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
mpc playlist -f '%position%\t%file%' |
|
||||
sort -k 2 |
|
||||
perl -ne 'm/(.*)\t(.*)/; print "$1\n" if $2 eq $prev; $prev=$2' |
|
||||
mpc del
|
|
@ -1,9 +1,11 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
menu=wdmenu
|
||||
|
||||
search(){
|
||||
music=$(mpc playlist --format '%artist% : %title%' | sed '/^ : $/d' | wdmenu)
|
||||
if [ "$music" == "" ]
|
||||
music=$(mpc playlist --format '%artist% : %title%' | sed '/^ : $/d' | $menu)
|
||||
if [ "$music" = "" ]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
@ -15,9 +17,17 @@ search(){
|
|||
}
|
||||
|
||||
delete(){
|
||||
current=~/Música/"$(mpc current -f %file%)"
|
||||
answer=$(echo -e "nothing\n$current" | wdmenu -p"delete?" )
|
||||
if [ "$answer" == "$current" ]
|
||||
[ -n "$XDG_CONFIG_HOME" ] &&
|
||||
config_root="$XDG_CONFIG_HOME" ||
|
||||
config_root="$HOME/.config"
|
||||
music_root=$(awk '/^music_directory/ {
|
||||
gsub(/"/,"");
|
||||
gsub(/~/,"'$HOME'");
|
||||
print $2
|
||||
}' $config_root/mpd/mpd.conf)
|
||||
current="$music_root"/"$(mpc current -f %file%)"
|
||||
answer=$(printf "nothing\n$current" | $menu -p"delete?" )
|
||||
if [ "$answer" = "$current" ]
|
||||
then
|
||||
trash "$answer"
|
||||
mpc --quiet next
|
||||
|
@ -31,10 +41,10 @@ usage(){
|
|||
echo " $0 delete -- prompts to delete the current song"
|
||||
}
|
||||
|
||||
if [ "$1" == "delete" ]
|
||||
if [ "$1" = "delete" ]
|
||||
then
|
||||
delete
|
||||
elif [ "$1" == "search" ]
|
||||
elif [ "$1" = "search" ]
|
||||
then
|
||||
search
|
||||
else
|
|
@ -1,20 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
opts="Fone\nSpeaker\nHDMI"
|
||||
out=$(echo -e $opts | wdmenu -p "Saida:")
|
||||
out=$(printf $opts | wdmenu -p "Saida:")
|
||||
vol=$(pamixer --get-volume)
|
||||
|
||||
if [ "$out" == "HDMI" ]
|
||||
if [ "$out" = "HDMI" ]
|
||||
then
|
||||
pacmd set-card-profile 0 output:hdmi-stereo+input:analog-stereo
|
||||
elif [ "$out" == "Speaker" ] || [ "$out" == "Fone" ]
|
||||
elif [ "$out" = "Speaker" ] || [ "$out" = "Fone" ]
|
||||
then
|
||||
pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
|
||||
|
||||
if [ "$out" == "Speaker" ]
|
||||
if [ "$out" = "Speaker" ]
|
||||
then
|
||||
pacmd set-sink-port @DEFAULT_SINK@ analog-output-speaker
|
||||
else
|
||||
else
|
||||
pacmd set-sink-port @DEFAULT_SINK@ analog-output-headphones
|
||||
fi
|
||||
fi
|
|
@ -0,0 +1,41 @@
|
|||
#!/bin/sh
|
||||
# Simple two way game-save sync
|
||||
# NOTE: This will ALLWAYS replace the backups with local folders,
|
||||
# even if they are empty folders
|
||||
|
||||
command -v xdg-user-dir &> /dev/null &&
|
||||
DOCUMETS="$(xdg-user-dir DOCUMENTS)" ||
|
||||
DOCUMETS=~/Documents
|
||||
|
||||
SAVES_DIR="$DOCUMETS/GameSaves/"
|
||||
test -d "$SAVES_DIR" || exit 1
|
||||
|
||||
test_rsync(){
|
||||
test -d "$1" && {
|
||||
mkdir -p $(dirname "$2")
|
||||
cp --recursive --no-target-directory "$1" "$2"
|
||||
}
|
||||
}
|
||||
|
||||
game_save(){
|
||||
GAME_NAME="$1"; shift
|
||||
INSTALL_DIR="${1/"~"/$HOME}/"; shift
|
||||
|
||||
BACKUP_DIR="$SAVES_DIR/$GAME_NAME/"
|
||||
|
||||
test_rsync "$INSTALL_DIR" "$BACKUP_DIR" ||
|
||||
test_rsync "$BACKUP_DIR" "$INSTALL_DIR" ||
|
||||
echo "Nothing to do for $GAME_NAME"
|
||||
|
||||
while test -n "$1"
|
||||
do
|
||||
find "$BACKUP_DIR" -name "$1" -delete
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
game_save mindustry "~/.local/share/Mindustry"
|
||||
game_save minecraft "~/.minecraft/saves"
|
||||
game_save factorio "~/.factorio" '_autosave*.zip' '*.sync-conflict-*'
|
||||
game_save cuphead "~/Games/cuphead/drive_c/users/lelgenio/Application Data/Cuphead"
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
#!/bin/env sh
|
||||
|
||||
if which xdg-user-dir 1>&2 2> /dev/null
|
||||
then
|
||||
DESTFOLDER=$(xdg-user-dir PICTURES)
|
||||
else
|
||||
for i in Images Imagens Pictures Fotos ""
|
||||
do
|
||||
DESTFOLDER=$HOME/$i
|
||||
test -d "$DESTFOLDER" &&
|
||||
break
|
||||
done
|
||||
mkdir -p $DESTFOLDER
|
||||
fi
|
||||
|
||||
DESTFILE=$DESTFOLDER/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')
|
||||
case $1 in
|
||||
def)
|
||||
# Screenshot to file
|
||||
grim $DESTFILE
|
||||
echo $DESTFILE
|
||||
;;
|
||||
|
||||
area)
|
||||
# Screen area to file
|
||||
grim -g "$(slurp)" $DESTFILE
|
||||
echo $DESTFILE
|
||||
;;
|
||||
area-clip)
|
||||
# Screen area to clipboard
|
||||
grim -g "$(slurp)" - | wl-copy
|
||||
;;
|
||||
|
||||
clip)
|
||||
# Focused monitor to clipboard
|
||||
grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') - | wl-copy
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
pidof wshowkeys && pkill wshowkeys ||
|
||||
exec wshowkeys \
|
||||
-a bottom -a right \
|
||||
-F 'Inter 20' \
|
||||
-b 202020AA \
|
||||
-s DD5050 \
|
||||
-t 1 \
|
||||
-m 100
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Ensure we're not using the wayland backend on SDL
|
||||
unset SDL_VIDEODRIVER
|
||||
|
||||
wf-recorder -c rawvideo --geometry="$(slurp)" -m sdl -f pipe:wayland-mirror
|
||||

|
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/env bash
|
||||
set -x
|
||||
if ! lsmod | grep v4l2loopback > /dev/null; then
|
||||
echo "Adding v42loopback module to kernel"
|
||||
sudo modprobe v4l2loopback
|
||||
fi
|
||||
|
||||
geometry(){
|
||||
windowGeometries=$(
|
||||
# `height - 1` is there because of: https://github.com/ammen99/wf-recorder/pull/56 (I could remove it if it's merged, maybe)
|
||||
swaymsg -t get_workspaces -r | jq -r '.[] | select(.focused) | .rect | "\(.x),\(.y) \(.width)x\(.height - 1)"'; \
|
||||
swaymsg -t get_outputs -r | jq -r '.[] | select(.active) | .rect | "\(.x),\(.y) \(.width)x\(.height)"'
|
||||
)
|
||||
geometry=$(slurp -b "#45858820" -c "#45858880" -w 3 -d <<< "$windowGeometries") || exit $?
|
||||
echo $geometry
|
||||
}
|
||||
|
||||
{
|
||||
if pidof wf-recorder > /dev/null && pidof ffplay > /dev/null
|
||||
then
|
||||
if pidof ffplay > /dev/null; then
|
||||
pkill ffplay > /dev/null
|
||||
fi
|
||||
if pidof wf-recorder > /dev/null; then
|
||||
pkill wf-recorder > /dev/null
|
||||
fi
|
||||
notify-send -t 2000 "Wayland recording has been stopped"
|
||||
else
|
||||
if ! pidof wf-recorder > /dev/null; then
|
||||
geometry=$(geometry) || exit $?
|
||||
wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video2 --geometry="$geometry" &
|
||||
fi
|
||||
if ! pidof ffplay; then
|
||||
swaymsg assign [class=ffplay] workspace 11
|
||||
|
||||
unset SDL_VIDEODRIVER
|
||||
ffplay /dev/video2 -fflags nobuffer &
|
||||
sleep 0.5
|
||||
# a hack so FPS is not dropping
|
||||
swaymsg [class=ffplay] floating enable
|
||||
# swaymsg [class=ffplay] move position 1900 1000
|
||||
# swaymsg focus tiling
|
||||
fi
|
||||
notify-send -t 2000 "Wayland recording has been started"
|
||||
fi
|
||||
} > ~/.wayland-share-screen.log 2>&1
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
# {%@@ if terminal == "alacritty" @@%} #
|
||||
command -v alacritty > /dev/null &&
|
||||
{
|
||||
test "$#" -gt "0" &&
|
||||
exec alacritty -e $@ ||
|
||||
exec alacritty
|
||||
} & exit
|
||||
# {%@@ else @@%} #
|
||||
command -v kitty > /dev/null &&
|
||||
exec kitty $@
|
||||
# {%@@ endif @@%} #
|
||||
|
||||
notify-send "Error" "Terminal program missing"
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Mimeapp script for adding torrent to transmission-daemon, but will also start the daemon first if not running.
|
||||
|
||||
# transmission-daemon sometimes fails to take remote requests in its first moments, hence the sleep.
|
||||
|
||||
pidof transmission-daemon >/dev/null || (transmission-daemon && notify-send "Starting transmission daemon..." && sleep 3)
|
||||
|
||||
transmission-remote -a "$@" && notify-send "🔽 Torrent added."
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
# updates gdm to reflect the curent users monitors configurations
|
||||
|
||||
main(){
|
||||
|
||||
[ "$USER" = "root" ] && echo "Don't run as root" && exit 1
|
||||
|
||||
set -e
|
||||
|
||||
sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/
|
||||
sudo chown gdm:gdm /var/lib/gdm/.config/monitors.xml
|
||||
|
||||
}
|
||||
|
||||
if [ "$1" = "-h" ] || [ "$1" = "--help" ]
|
||||
then
|
||||
echo "Usage:"
|
||||
echo " \$ $0"
|
||||
else
|
||||
main
|
||||
fi
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
#!/bin/sh
|
||||
|
||||
# depends on: awk, pactl, pacmd, notify-send
|
||||
|
||||
# FILLED="◼"
|
||||
# EMPTY="◻"
|
||||
|
||||
MAX_VOL=120
|
||||
STEP=10
|
||||
|
||||
FILLED="■"
|
||||
EMPTY="□"
|
||||
STRIPPED="▨"
|
||||
|
||||
is_muted(){
|
||||
env LC_ALL=C pacmd list-sinks | grep 'muted: yes' 1> /dev/null
|
||||
}
|
||||
|
||||
get_bar(){
|
||||
|
||||
is_muted &&
|
||||
FILLED=$STRIPPED
|
||||
|
||||
round $1 | awk '{
|
||||
for (i=1;i <= $1/10;i++) {
|
||||
if ( i == 11 ) {
|
||||
printf "|";
|
||||
}
|
||||
printf "'$FILLED'"
|
||||
};
|
||||
for (i=1;i <= 10-$1/10;i++) {
|
||||
printf "'$EMPTY'"
|
||||
};
|
||||
}'
|
||||
|
||||
}
|
||||
|
||||
get_vol(){
|
||||
|
||||
env LC_ALL=C pactl list sinks |
|
||||
awk '/^\tVolume/ {
|
||||
gsub(/%/,"");
|
||||
printf $5;
|
||||
}'
|
||||
}
|
||||
|
||||
notify(){
|
||||
volume=$(get_vol)
|
||||
bar=$(get_bar $volume)
|
||||
|
||||
if is_muted ; then
|
||||
s="Muted"
|
||||
else
|
||||
s="Volume"
|
||||
fi
|
||||
|
||||
notify-send "${s}: ${volume}%" "$bar" --app-name=volumesh
|
||||
|
||||
}
|
||||
|
||||
round(){
|
||||
echo $1 | awk '{
|
||||
print int($1/'$STEP')*'$STEP';
|
||||
}'
|
||||
}
|
||||
|
||||
min(){
|
||||
printf '%i\n' ${@} | sort -n | head -n1
|
||||
}
|
||||
|
||||
change_vol(){
|
||||
|
||||
pactl set-sink-volume @DEFAULT_SINK@ "${1}$(min 120 $2)%"
|
||||
|
||||
newvol=$(min $MAX_VOL $(round $(get_vol)))
|
||||
|
||||
pactl set-sink-volume @DEFAULT_SINK@ "${newvol}%"
|
||||
|
||||
}
|
||||
|
||||
toggle_mute(){
|
||||
|
||||
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
|
||||
}
|
||||
|
||||
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
case $1 in
|
||||
-i | --increase)
|
||||
shift
|
||||
change_vol + $1
|
||||
shift
|
||||
;;
|
||||
-d | --decrease)
|
||||
shift
|
||||
change_vol - $1
|
||||
shift
|
||||
;;
|
||||
-t | --toggle)
|
||||
toggle_mute
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo outro = $1
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
notify
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/fish
|
||||
|
||||
# {%@@ if launcher == "wofi" @@%} #
|
||||
command -qs wofi &&
|
||||
exec wofi -d $argv
|
||||
# {%@@ else @@%} #
|
||||
command -qs bmenu &&
|
||||
exec bmenu $argv
|
||||
# {%@@ endif @@%} #
|
||||
|
||||
notify-send "Error" "Launcher program missing"
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/fish
|
||||
|
||||
if not command -v qemu-system-x86_64 > /dev/null
|
||||
echo qemu not installed
|
||||
exit 1
|
||||
end
|
||||
|
||||
# -cdrom ~/Downloads/win10.iso \
|
||||
# -boot order=d \
|
||||
# -nic none\
|
||||
# -usb -device usb-tablet \
|
||||
# -vga qxl \
|
||||
|
||||
qemu-system-x86_64 \
|
||||
-enable-kvm \
|
||||
-m 2G \
|
||||
-cpu host \
|
||||
-smp (nproc) \
|
||||
-display sdl,gl=on \
|
||||
-audiodev pa,id=snd0 \
|
||||
-device ich9-intel-hda \
|
||||
-device hda-output,audiodev=snd0\
|
||||
-drive file="$HOME/.local/share/windows10.img",format=raw
|
|
@ -0,0 +1,52 @@
|
|||
#!/bin/bash
|
||||
|
||||
shopt -s nullglob globstar
|
||||
|
||||
INSERTKEY="{{@@ key.insertMode @@}}"
|
||||
#{%@@ if False @@%}#
|
||||
INSERTKEY="i"
|
||||
#{%@@ endif @@%}#
|
||||
|
||||
prefix=${PASSWORD_STORE_DIR-~/.password-store}
|
||||
password_files=( "$prefix"/**/*.gpg )
|
||||
password_files=( "${password_files[@]#"$prefix"/}" )
|
||||
password_files=( "${password_files[@]%.gpg}" )
|
||||
|
||||
entry=$(printf '%s\n' "${password_files[@]}" | wdmenu -p Password $@)
|
||||
|
||||
[ -n "$entry" ] || exit
|
||||
|
||||
username=$( pass show "$entry" 2>/dev/null | perl -ne 'print $1 if /^login: (.*)/' )
|
||||
password=$( pass show "$entry" 2>/dev/null | head -n 1 )
|
||||
|
||||
action=$(printf "Autotype\nUsername -> $username\nPassword" | wdmenu -p Action)
|
||||
|
||||
autotype(){
|
||||
if swaymsg -t get_inputs | grep -i colemak > /dev/null
|
||||
then
|
||||
swaymsg input \* xkb_layout 'us'
|
||||
restoreKeyLayout='us(colemak)'
|
||||
fi
|
||||
if [ $(swaymsg -t get_tree | jq -r '.. | select(.focused? == true).app_id') = "org.qutebrowser.qutebrowser" ]
|
||||
then
|
||||
ydotool --delay 1 key esc
|
||||
ydotool --delay 1 key "$INSERTKEY"
|
||||
fi
|
||||
ydotool type --delay 100 "$username"
|
||||
ydotool key tab
|
||||
ydotool type --delay 100 "$password"
|
||||
|
||||
[ -n "$restoreKeyLayout" ] &&
|
||||
swaymsg input \* xkb_layout "$restoreKeyLayout"
|
||||
}
|
||||
|
||||
case $action in
|
||||
Autotype)
|
||||
autotype
|
||||
;;
|
||||
Username*)
|
||||
printf '%s' "$username" | wl-copy;;
|
||||
Password)
|
||||
printf '%s' "$password" | wl-copy;;
|
||||
esac
|
||||
|
|
@ -0,0 +1,365 @@
|
|||
# {{@@ header() @@}}
|
||||
# _____ ____ _ _ _
|
||||
# / __\ \ /\ / / _` | | | |
|
||||
# \__ \\ V V / (_| | |_| |
|
||||
# |___/ \_/\_/ \__,_|\__, |
|
||||
# |___/
|
||||
|
||||
# Variables {{{
|
||||
#
|
||||
# Logo key.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left {{@@ key.left @@}}
|
||||
set $down {{@@ key.down @@}}
|
||||
set $up {{@@ key.up @@}}
|
||||
set $right {{@@ key.right @@}}
|
||||
set $menu s
|
||||
set $mus r
|
||||
|
||||
set $term terminal
|
||||
# set $menu wofi --show drun --allow-images --insensitive --term $term -p'Iniciar: '
|
||||
# set $menu bmenu run $term
|
||||
font {{@@ font.interface @@}} 14px
|
||||
|
||||
#{%@@ if color.type == 'dark' @@%}#
|
||||
set $wallPath ~/.local/share/wallpapers/assembly.png
|
||||
#{%@@ else @@%}#
|
||||
set $wallPath ~/.local/share/wallpapers/austria.jpg
|
||||
#{%@@ endif @@%}#
|
||||
|
||||
# }}}
|
||||
# Output configuration {{{
|
||||
#
|
||||
# output * bg '#252525' solid_color
|
||||
output * bg $wallPath fill
|
||||
# Output HDMI-A-1 resolution 1280x720
|
||||
|
||||
# Disable laptop screen if closed, --reload is important
|
||||
set $laptop eDP-1
|
||||
bindswitch --reload lid:on output $laptop disable
|
||||
bindswitch --reload lid:off output $laptop enable
|
||||
|
||||
# output $laptop disable
|
||||
# bindsym $mod+o output eDP-1 toggle
|
||||
# exec_always swaymsg -t get_outputs | grep HDMI || swaymsg 'output eDP-1 enable'
|
||||
|
||||
# Backlight settings for laptops
|
||||
exec light -N 1
|
||||
bindsym XF86MonBrightnessUp exec light -A 5
|
||||
bindsym XF86MonBrightnessDown exec light -U 5
|
||||
|
||||
# }}}
|
||||
# Input configuration {{{
|
||||
|
||||
#hide the mouse after 10 seconds
|
||||
seat * hide_cursor 10000
|
||||
seat * xcursor_theme {{@@ cursor_theme @@}} {{@@ cursor_size @@}}
|
||||
|
||||
input "type:touchpad" {
|
||||
#disable while typing
|
||||
dwt disabled
|
||||
natural_scroll enabled
|
||||
tap enabled
|
||||
}
|
||||
|
||||
input * {
|
||||
# {%@@ if key_layout == "colemak" @@%}
|
||||
#
|
||||
xkb_layout us(colemak)
|
||||
xkb_options lv3:lsgt_switch
|
||||
# {%@@ elif key_layout == "dvorak" @@%}
|
||||
#
|
||||
xkb_layout us(dvorak)
|
||||
# {%@@ endif @@%}
|
||||
xkb_options caps:backspace
|
||||
xkb_numlock enabled
|
||||
}
|
||||
|
||||
# }}}
|
||||
# Key bindings: {{{
|
||||
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
bindsym {
|
||||
# Basic {{{
|
||||
|
||||
# Start a terminal
|
||||
$mod+Return exec $term
|
||||
|
||||
#start web browser
|
||||
$mod+b exec qutebrowser
|
||||
|
||||
#start file manager
|
||||
$mod+m exec thunar
|
||||
|
||||
$mod+g exec emoji
|
||||
|
||||
# Kill focused window
|
||||
$mod+x kill
|
||||
|
||||
# Start your launcher
|
||||
$mod+$menu exec launcher
|
||||
|
||||
# Fill passwords
|
||||
$mod+p exec wpass
|
||||
|
||||
# Reload the configuration file
|
||||
$mod+Shift+c reload
|
||||
|
||||
# Lock Sway
|
||||
$mod+Control+z exec loginctl suspend || systemctl suspend
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
$mod+Shift+q exec swaynag -t warning -m 'Do you really want to exit sway?' -b 'Yes, exit sway' 'swaymsg exit'
|
||||
|
||||
Control+Shift+BackSpace exit
|
||||
|
||||
# }}}
|
||||
# Moving around: {{{
|
||||
|
||||
# Move your focus around
|
||||
#{%@@ for d in "up,down,left,right".split(',') @@%}#
|
||||
$mod+${{@@ d @@}} focus {{@@ d @@}}
|
||||
$mod+{{@@ d.capitalize() @@}} focus {{@@ d @@}}
|
||||
$mod+Shift+${{@@ d @@}} move {{@@ d @@}}
|
||||
#{%@@ endfor @@%}#
|
||||
|
||||
$mod+Shift+{{@@ key.tabL @@}} move workspace prev
|
||||
$mod+Shift+{{@@ key.tabR @@}} move workspace next
|
||||
|
||||
# Resizing containers:
|
||||
$mod+Control+$left resize shrink width 20px
|
||||
$mod+Control+$down resize grow height 20px
|
||||
$mod+Control+$up resize shrink height 20px
|
||||
$mod+Control+$right resize grow width 20px
|
||||
|
||||
#}}}
|
||||
# Workspaces: {{{
|
||||
|
||||
$mod+{{@@ key.tabL @@}} workspace prev
|
||||
$mod+{{@@ key.tabR @@}} workspace next
|
||||
|
||||
# Switch to workspace
|
||||
# Move focused container to workspace
|
||||
#{%@@ for i in range(1,11) @@%}#
|
||||
$mod+{{@@ i % 10 @@}} workspace {{@@ i @@}}
|
||||
$mod+Shift+{{@@ i % 10 @@}} move container to workspace {{@@ i @@}}
|
||||
#{%@@ endfor @@%}#
|
||||
|
||||
# }}}
|
||||
# Layout stuff: {{{
|
||||
#
|
||||
# Splits
|
||||
# bindsym $mod+b splith
|
||||
$mod+v splitv
|
||||
|
||||
# Layout styles
|
||||
$mod+t layout tabbed
|
||||
$mod+r layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
$mod+f fullscreen
|
||||
|
||||
# Floating
|
||||
$mod+Shift+space floating toggle
|
||||
$mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
$mod+a focus parent
|
||||
$mod+z focus child
|
||||
|
||||
# }}}
|
||||
# Screenshots: {{{
|
||||
|
||||
# Screens to file
|
||||
Print exec screenshotsh def
|
||||
|
||||
# Screen area to file
|
||||
Shift+Print exec screenshotsh area
|
||||
|
||||
# Screen area to clipboard
|
||||
Control+Shift+Print exec screenshotsh area-clip
|
||||
|
||||
# Focused monitor to clipboard
|
||||
Control+Print exec screenshotsh clip
|
||||
|
||||
# Screen recorder
|
||||
Control+Alt+Shift+r exec wf-recorder -a
|
||||
|
||||
# Mirror selection as window
|
||||
$mod+Alt+r exec sssway
|
||||
|
||||
# Color picker
|
||||
$mod+c exec color-picker
|
||||
|
||||
# show keys being pressed
|
||||
$mod+k exec showkeys
|
||||
|
||||
# }}}
|
||||
# Audio: {{{
|
||||
#
|
||||
Control+$mod+p exec pulse-sink
|
||||
|
||||
# Volume controll
|
||||
# script in dotfiles
|
||||
--locked XF86AudioRaiseVolume exec volumesh -i 10
|
||||
--locked XF86AudioLowerVolume exec volumesh -d 10
|
||||
--locked XF86AudioMute exec volumesh -t
|
||||
|
||||
# Media player controls
|
||||
--locked XF86AudioPlay exec mpc toggle
|
||||
--locked XF86AudioNext exec mpc next
|
||||
--locked XF86AudioPrev exec mpc prev
|
||||
|
||||
$mod+Shift+$mus exec musmenu delete
|
||||
$mod+Control+$mus exec musmenu search
|
||||
$mod+Control+Shift+$mus exec dzadd
|
||||
|
||||
# }}}
|
||||
# Special Keys{{{
|
||||
|
||||
XF86Calculator exec $term ipython
|
||||
XF86Mail exec $term neomutt
|
||||
XF86Explorer exec thunar
|
||||
XF86HomePage exec xdg-open http://start.duckduckgo.com
|
||||
|
||||
|
||||
# }}}
|
||||
}
|
||||
# Modes {{{
|
||||
|
||||
mode Passthrough {
|
||||
bindsym $mod+escape mode default
|
||||
}
|
||||
bindsym $mod+escape mode Passthrough
|
||||
|
||||
# }}}
|
||||
# }}}
|
||||
# Visual: {{{
|
||||
#
|
||||
set $accent {{@@ color.accent @@}}
|
||||
set $fg_color {{@@ color.txt @@}}
|
||||
set $bg_color {{@@ color.bg_dark @@}}
|
||||
set $alert #000000
|
||||
|
||||
# border background text indicator child_border
|
||||
client.focused $accent $accent $fg_color $accent $accent
|
||||
client.focused_inactive $bg_color $bg_color $fg_color $bg_color $bg_color
|
||||
client.unfocused $bg_color $bg_color $fg_color $bg_color $bg_color
|
||||
client.urgent $alert $alert $fg_color $alert $alert
|
||||
|
||||
{%@@ if bar == "waybar" @@%}
|
||||
# Wake up pulseaudio
|
||||
exec pactl set-sink-volume @DEFAULT_SINK@ +0%
|
||||
|
||||
bar swaybar_command waybar
|
||||
{%@@ else @@%}
|
||||
# I rarely use this
|
||||
bar {
|
||||
position {{@@ bar_pos @@}}
|
||||
# status_command i3blocks
|
||||
|
||||
# gaps 5px
|
||||
icon_theme {{@@ icon_theme @@}}
|
||||
|
||||
font {{@@ font.interface @@}} 14px
|
||||
|
||||
colors {
|
||||
statusline $fg_color
|
||||
background $bg_color
|
||||
focused_workspace $accent $bg_color $fg_color
|
||||
}
|
||||
}
|
||||
{%@@ endif @@%}
|
||||
|
||||
default_border pixel 2px
|
||||
default_floating_border normal 2px
|
||||
gaps inner 5px
|
||||
|
||||
smart_gaps on
|
||||
smart_borders on
|
||||
|
||||
# for_window [app_id=mpv] floating enable
|
||||
for_window [app_id=weather] floating enable
|
||||
# for_window [app_id=weather] resize set 635px 700px
|
||||
for_window [app_id=weather] resize set 1500px 750px
|
||||
|
||||
# set theme
|
||||
set $gnome-schema org.gnome.desktop.interface
|
||||
exec_always {
|
||||
kvantummanager --set '{{@@ kvantum_theme @@}}'
|
||||
gsettings set $gnome-schema gtk-theme '{{@@ gtk_theme @@}}'
|
||||
gsettings set $gnome-schema icon-theme '{{@@ icon_theme @@}}'
|
||||
gsettings set $gnome-schema cursor-theme '{{@@ cursor_theme @@}}'
|
||||
}
|
||||
|
||||
# }}}
|
||||
# Assigns {{{
|
||||
|
||||
for_window [app_id=pavucontrol] floating enable
|
||||
|
||||
assign [app_id=qutebrowser] workspace 2
|
||||
assign [class=qutebrowser] workspace 2
|
||||
assign [class=Steam] workspace 9
|
||||
|
||||
assign [app_id=telegram.?desktop] workspace 10
|
||||
assign [class=TelegramDesktop] workspace 10
|
||||
|
||||
assign [class=discord] workspace 10
|
||||
|
||||
#}}}
|
||||
# Daemons {{{
|
||||
#
|
||||
|
||||
# start dbusd just in case
|
||||
exec 'dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus'
|
||||
|
||||
#Notification Daemon
|
||||
exec mako
|
||||
# Block device Mounter to /run/media/<username>
|
||||
exec udiskie
|
||||
# gesture daemon
|
||||
exec fusuma
|
||||
# exec sh -c 'pkill fusuma; fusuma'
|
||||
# Blue light filter
|
||||
exec pidof redshift || redshift
|
||||
# exec_always sh -c 'pkill redshift;redshift'
|
||||
# kde connect
|
||||
exec /usr/lib/kdeconnectd
|
||||
exec kdeconnect-indicator
|
||||
# Telegram
|
||||
exec telegram-desktop-bin || telegram-desktop
|
||||
# Music Player Daemon
|
||||
exec pidof mpd || mpd
|
||||
exec pgrep -f mpDris2|| mpDris2
|
||||
|
||||
# Prevent the screen from locking if fullscreen
|
||||
for_window [class=.*] inhibit_idle fullscreen
|
||||
|
||||
# Lock configuration
|
||||
set $lock swaylock -f \
|
||||
--image $wallPath \
|
||||
--font '{{@@ font.interface @@}}' \
|
||||
|
||||
set $screenReload \
|
||||
pkill kanshi; \
|
||||
kanshi & disown\
|
||||
|
||||
# Idle daemon
|
||||
exec_always pkill swayidle && false || \
|
||||
exec swayidle -w \
|
||||
before-sleep '$lock' \
|
||||
after-resume '$screenReload' \
|
||||
timeout 1800 '$lock' \
|
||||
resume '$screenReload' \
|
||||
timeout 1800 'swaymsg "output * dpms off"' \
|
||||
resume 'swaymsg "output * dpms on";$screenReload' \
|
||||
|
||||
# Screen manager
|
||||
exec_always $screenReload
|
||||
|
||||
include /etc/sway/config.d/
|
||||
#}}}
|
||||
# vim:filetype=sh:foldmethod=marker
|
|
@ -0,0 +1,15 @@
|
|||
[Settings]
|
||||
gtk-theme-name={{@@ gtk_theme @@}}
|
||||
gtk-icon-theme-name={{@@ icon_theme @@}}
|
||||
gtk-font-name={{@@ font.interface @@}} 12
|
||||
gtk-cursor-theme-name={{@@ cursor_theme @@}}
|
||||
gtk-cursor-theme-size=0
|
||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-menu-images=1
|
||||
gtk-enable-event-sounds=1
|
||||
gtk-enable-input-feedback-sounds=1
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintfull
|
|
@ -2,10 +2,10 @@
|
|||
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||
|
||||
include "/home/lelgenio/.gtkrc-2.0.mine"
|
||||
gtk-theme-name="materia-custom-accent-dark"
|
||||
gtk-icon-theme-name="Papirus-Dark"
|
||||
gtk-font-name="Inter 11"
|
||||
gtk-cursor-theme-name="capitaine-cursors"
|
||||
gtk-theme-name="{{@@ gtk_theme @@}}"
|
||||
gtk-icon-theme-name="{{@@ icon_theme @@}}"
|
||||
gtk-font-name="{{@@ font.interface @@}} 12"
|
||||
gtk-cursor-theme-name="{{@@ cursor_theme @@}}"
|
||||
gtk-cursor-theme-size=0
|
||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
|
@ -0,0 +1,5 @@
|
|||
# This file is written by LXAppearance. Do not edit.
|
||||
[Icon Theme]
|
||||
Name=Default
|
||||
Comment=Default Cursor Theme
|
||||
Inherits={{@@ cursor_theme @@}}
|
|
@ -0,0 +1,24 @@
|
|||
# _____
|
||||
# |_ _| __ ___ _ ___ __
|
||||
# | || '_ ` _ \| | | \ \/ /
|
||||
# | || | | | | | |_| |> <
|
||||
# |_||_| |_| |_|\__,_/_/\_\
|
||||
|
||||
set -g escape-time 0
|
||||
set -g mouse on
|
||||
|
||||
bind n select-pane -L
|
||||
bind e select-pane -D
|
||||
bind i select-pane -U
|
||||
bind o select-pane -R
|
||||
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
|
||||
bind r source-file ~/.tmux.conf
|
||||
|
||||
set -g pane-border-style "fg=default"
|
||||
set -g pane-active-border-style "fg=#cc5757 bg=default"
|
||||
|
||||
set -g status-bg default
|
||||
set -g status off
|
Binary file not shown.
After Width: | Height: | Size: 368 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
@ -1,6 +1,10 @@
|
|||
// {{@@ header() @@}}
|
||||
{
|
||||
"position":"{{@@ bar_pos @@}}",
|
||||
"layer":"top",
|
||||
"modules-left": [
|
||||
"sway/workspaces",
|
||||
"sway/mode",
|
||||
"sway/window"
|
||||
],
|
||||
"modules-center": [
|
||||
|
@ -8,11 +12,12 @@
|
|||
"custom/weather"
|
||||
],
|
||||
"modules-right": [
|
||||
"mpd",
|
||||
"custom/mpd",
|
||||
"custom/recording",
|
||||
"custom/spigot",
|
||||
"tray",
|
||||
"custom/mail",
|
||||
"custom/torrentD",
|
||||
"custom/torrentS",
|
||||
"custom/updates",
|
||||
"pulseaudio",
|
||||
"network",
|
||||
|
@ -25,7 +30,6 @@
|
|||
"1": "",
|
||||
"2": "",
|
||||
"3": "",
|
||||
"8": "",
|
||||
"9": "",
|
||||
"10": "",
|
||||
"urgent": "",
|
||||
|
@ -36,20 +40,11 @@
|
|||
"sway/window":{
|
||||
"max-length":40
|
||||
},
|
||||
"mpd": {
|
||||
"custom/mpd": {
|
||||
"tooltip":false,
|
||||
"format": " {stateIcon} {title} - {artist} 🎜 ",
|
||||
"format-disconnected": " Disconnected 🎜 ",
|
||||
"format-stopped": " Stopped 🎜 ",
|
||||
"timeout":60,
|
||||
"unknown-tag": " N/A ",
|
||||
"tooltip":false,
|
||||
"interval": 2,
|
||||
"max-length":40,
|
||||
"state-icons": {
|
||||
"paused": "",
|
||||
"playing": ""
|
||||
}
|
||||
"exec": "mpd-status",
|
||||
"exec-if": "pidof mpd",
|
||||
"interval": 2
|
||||
},
|
||||
"tray": {
|
||||
"spacing": 7,
|
||||
|
@ -61,36 +56,35 @@
|
|||
"tooltip":false
|
||||
},
|
||||
"battery": {
|
||||
"tooltip":false,
|
||||
"tooltip":true,
|
||||
"states": {
|
||||
"full":100,
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
"warning": 25
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-good": "{time} {icon}",
|
||||
"format": "{icon} ",
|
||||
"format-charging": "",
|
||||
"format-plugged": "",
|
||||
"format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
"format-warning":"{icon} {time}",
|
||||
"format-icons": ["", "", "", "", "", ""]
|
||||
},
|
||||
"network": {
|
||||
"tooltip":false,
|
||||
"on-click": "termite -e nmtui",
|
||||
"format-wifi": "",
|
||||
"format-ethernet": "",
|
||||
"format-linked": "",
|
||||
"format-disconnected": "⚠"
|
||||
"on-click": "terminal nmtui",
|
||||
"format-wifi": "{icon}",
|
||||
"format-icons":[ "", "", "", "", "" ],
|
||||
"format-ethernet": "",
|
||||
"format-linked": "",
|
||||
"format-disconnected": ""
|
||||
},
|
||||
"pulseaudio": {
|
||||
"tooltip":false,
|
||||
"scroll-step": 10,
|
||||
"format": "{icon}",
|
||||
"format-bluetooth": "",
|
||||
"format-bluetooth-muted": "",
|
||||
"format-muted": "",
|
||||
"format-bluetooth-muted": "",
|
||||
"format-muted": "ﱝ",
|
||||
"format-icons": {
|
||||
"headphones": "",
|
||||
"handsfree": "",
|
||||
|
@ -98,38 +92,39 @@
|
|||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
"default": ["奄", "奔", "墳"]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"custom/weather": {
|
||||
"tooltip":false,
|
||||
"exec": "forecast pango",
|
||||
"interval": 1800,
|
||||
"on-click": "kitty --class weather sh -c 'forecast full;read -n1 -p\"Press Any key to quit \"'",
|
||||
"format": "<b>{}</b>",
|
||||
"exec": "jq -r '.temp +\"°C \"+ .weather' ~/.forecast.json",
|
||||
"interval": 30,
|
||||
"on-click": "terminal --class weather 'forecast interactive'",
|
||||
"on-click-right": "xdg-open https://openweathermap.org"
|
||||
},
|
||||
"custom/mail": {
|
||||
"tooltip":false,
|
||||
"format":"{} ",
|
||||
"format":"{} <b></b>",
|
||||
"exec-if":"sleep 30s",
|
||||
"exec": "checkmail",
|
||||
"on-click": "kitty neomutt; pkill -SIGRTMIN+4 waybar",
|
||||
"on-click": "terminal neomutt; pkill -SIGRTMIN+4 waybar",
|
||||
"signal": 4,
|
||||
"interval": 1800
|
||||
"interval": 30
|
||||
},
|
||||
"custom/updates": {
|
||||
"tooltip":false,
|
||||
"format": "{} ",
|
||||
"interval": 43200,
|
||||
"interval": 60,
|
||||
"exec-if":"sleep 60s",
|
||||
"exec": "yay -Syuw --noconfirm> /dev/null; yay -Qqu | wc -l | sed 's/^0$//'",
|
||||
"on-click": "kitty sh -c 'ping -qc1 archlinux.org >/dev/null && yay -Syu || yay -Su; pkill -SIGRTMIN+8 waybar; read'",
|
||||
"exec": "yay -Qqu | wc -l | sed 's/^0$//'",
|
||||
"on-click": "terminal sh -c 'ping -qc1 archlinux.org >/dev/null && yay -Syu || yay -Su; pkill -SIGRTMIN+8 waybar; read'",
|
||||
"signal": 8
|
||||
},
|
||||
"custom/recording": {
|
||||
"tooltip":false,
|
||||
"exec": "pgrep wf-recorder > /dev/null && echo || echo",
|
||||
"exec": "pidof wf-recorder > /dev/null && echo || echo",
|
||||
"interval": 5,
|
||||
"on-click": "pkill wf-recorder; pkill -SIGRTMIN+5 waybar",
|
||||
"signal": 5
|
||||
|
@ -138,8 +133,21 @@
|
|||
"format":"{}",
|
||||
"exec":"pgrep -f spigot.jar>/dev/null && spigot command list | awk '/There are/ {if ($6) print $6}'",
|
||||
"interval":30,
|
||||
"on-click":"kitty spigot console"
|
||||
"on-click":"terminal spigot console"
|
||||
},
|
||||
"custom/torrentD":{
|
||||
"format":" {} ",
|
||||
"exec":"transmission-remote -l | tail -n+2 | grep Down | wc -l | sed 's/^0$//'",
|
||||
"exec-if":"pidof transmission-daemon",
|
||||
"interval":180
|
||||
},
|
||||
"custom/torrentS":{
|
||||
"format":" {} ",
|
||||
"exec":"transmission-remote -l | grep Seeding| wc -l | sed 's/^0$//'",
|
||||
"exec-if":"pidof transmission-daemon",
|
||||
"interval":180
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
# vim:ft=json
|
||||
// vim:ft=json
|
|
@ -0,0 +1,120 @@
|
|||
/* {%@@ set bg_rgb = hex2rgb(color.bg) @@%} */
|
||||
* {
|
||||
font: 14px {{@@ font.interface @@}}, Font Awesome, Fira Code Nerd Font;
|
||||
border-radius:0;
|
||||
margin:0;
|
||||
padding: 0;
|
||||
transition-duration:0;
|
||||
}
|
||||
|
||||
window#waybar.empty * {
|
||||
color: {{@@ color.txt @@}};
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
/* background-color: rgba(30,30,30,.9); */
|
||||
transition-duration: .5s;
|
||||
background-color: rgba({{@@ bg_rgb @@}}, .9);
|
||||
{%@@ if bar_pos == "top" @@%}
|
||||
border-bottom:
|
||||
{%@@ else @@%}
|
||||
border-top:
|
||||
{%@@ endif @@%}
|
||||
2px solid {{@@ color.bg_dark @@}};
|
||||
}
|
||||
|
||||
window#waybar.solo {
|
||||
background-color: {{@@ color.bg @@}};
|
||||
}
|
||||
|
||||
window#waybar.empty {
|
||||
{%@@ if color.type == "dark" @@%}
|
||||
background-color: transparent;
|
||||
{%@@ else @@%}
|
||||
background-color: rgba({{@@ bg_rgb @@}}, 0.3);
|
||||
{%@@ endif @@%}
|
||||
border: 0px solid {{@@ color.bg_dark @@}};
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: {{@@ color.bg_light @@}};
|
||||
|
||||
min-width:50px;
|
||||
background-color: transparent;
|
||||
border: 3px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: {{@@ color.txt @@}};
|
||||
|
||||
{%@@ if bar_pos == "top" @@%}
|
||||
border-top:
|
||||
{%@@ else @@%}
|
||||
border-bottom:
|
||||
{%@@ endif @@%}
|
||||
3px solid {{@@ color.accent @@}};
|
||||
/* border-bottom: 3px solid transparent; */
|
||||
}
|
||||
|
||||
/*Window Title*/
|
||||
#window{
|
||||
color: {{@@ color.txt @@}};
|
||||
margin:0 4px;
|
||||
}
|
||||
|
||||
#mode{
|
||||
color: {{@@ color.accent @@}};
|
||||
}
|
||||
|
||||
#custom-mpd,
|
||||
#tray,
|
||||
#clock,
|
||||
#network,
|
||||
#battery,
|
||||
#backlight,
|
||||
#pulseaudio,
|
||||
#custom-mail,
|
||||
#custom-spigot,
|
||||
#custom-updates,
|
||||
#custom-weather,
|
||||
#custom-torrentD,
|
||||
#custom-torrentS
|
||||
{
|
||||
margin: 0 7px;
|
||||
color: {{@@ color.txt @@}};
|
||||
opacity:.7;
|
||||
}
|
||||
|
||||
#battery{
|
||||
margin-right:15px;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#custom-weather
|
||||
{
|
||||
font-size:15px;
|
||||
}
|
||||
#network,
|
||||
#pulseaudio
|
||||
{
|
||||
margin-top:-1px;
|
||||
font-size:16px;
|
||||
}
|
||||
|
||||
#mpd,
|
||||
#window,
|
||||
#workspaces
|
||||
{
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
|
||||
#custom-recording {
|
||||
min-width:15px;
|
||||
color: #ee4040;
|
||||
}
|
||||
|
||||
#mpd.paused {
|
||||
font-size: 0;
|
||||
border: none;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
show=drun
|
||||
prompt=Iniciar:
|
||||
allow_images=true
|
||||
allow_markup=true
|
||||
term=terminal
|
||||
insensitive=true
|
||||
width=800
|
||||
height=400
|
|
@ -0,0 +1,26 @@
|
|||
*{
|
||||
color:{{@@ color.txt @@}};
|
||||
font: Inter 16;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
border: none;
|
||||
padding: none;
|
||||
background: {{@@ color.accent @@}};
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: {{@@ color.accent @@}};
|
||||
}
|
||||
|
||||
#input {
|
||||
margin-bottom: 5px ;
|
||||
background-color: {{@@ color.bg @@}};
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 2px;
|
||||
padding: 15px ;
|
||||
padding-bottom:0;
|
||||
background-color: {{@@ color.bg @@}};
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
#{%@@ set bg_rgb = hex2rgb(color.bg) @@%}#
|
||||
|
||||
set font "{{@@ font.interface @@}}"
|
||||
set guioptions ""
|
||||
|
||||
|
||||
map {{@@ key.left @@}} scroll left
|
||||
map {{@@ key.down @@}} scroll down
|
||||
map {{@@ key.up @@}} scroll up
|
||||
map {{@@ key.right @@}} scroll right
|
||||
|
||||
map {{@@ key.down.upper() @@}} navigate next
|
||||
map {{@@ key.up .upper() @@}} navigate previous
|
||||
|
||||
map {{@@ key.next @@}} search forward
|
||||
map {{@@ key.next.upper() @@}} search backward
|
||||
|
||||
|
||||
set recolor
|
||||
set recolor-keephue
|
||||
set recolor-lightcolor "rgba(0,0,0,0)"
|
||||
set recolor-darkcolor "{{@@ color.txt @@}}"
|
||||
|
||||
|
||||
set default-bg "rgba({{@@ bg_rgb @@}},0.9)"
|
||||
|
||||
set inputbar-bg "{{@@ color.bg_light @@}}"
|
||||
set inputbar-fg "{{@@ color.txt @@}}"
|
||||
|
||||
set statusbar-bg "{{@@ color.bg @@}}"
|
||||
set statusbar-fg "{{@@ color.txt @@}}"
|
||||
|
||||
set completion-bg "{{@@ color.bg_light @@}}"
|
||||
set completion-fg "{{@@ color.txt @@}}"
|
||||
|
||||
set completion-highlight-bg "{{@@ color.accent @@}}"
|
||||
set completion-highlight-fg "{{@@ color.txt @@}}"
|
||||
|
||||
# vim: commentstring=#\ %s
|
|
@ -1,195 +0,0 @@
|
|||
;;; init.el --- just my settings
|
||||
;;; Commentary:
|
||||
(require 'package)
|
||||
|
||||
(setq package-list '(evil
|
||||
lsp-mode
|
||||
lsp-ui
|
||||
yasnippet
|
||||
company-lsp
|
||||
projectile
|
||||
tide))
|
||||
|
||||
; list the repositories containing them
|
||||
(setq package-archives '(("elpa" . "http://tromey.com/elpa/")
|
||||
("gnu" . "http://elpa.gnu.org/packages/")
|
||||
("marmalade" . "http://marmalade-repo.org/packages/")
|
||||
("org" . "http://orgmode.org/elpa/")
|
||||
("melpa" . "http://melpa.org/packages/")
|
||||
("melpa-stable" . "http://stable.melpa.org/packages/")))
|
||||
(package-initialize)
|
||||
|
||||
;; fetch the list of packages available
|
||||
(unless package-archive-contents
|
||||
(package-refresh-contents))
|
||||
|
||||
;; install the missing packages
|
||||
(dolist (package package-list)
|
||||
(unless (package-installed-p package)
|
||||
(package-install package)))
|
||||
|
||||
; (use-package lsp-mode
|
||||
; :ensure t
|
||||
; :config
|
||||
|
||||
; ;; make sure we have lsp-imenu everywhere we have LSP
|
||||
; (require 'lsp-imenu)
|
||||
; (add-hook 'lsp-after-open-hook 'lsp-enable-imenu)
|
||||
; ;; get lsp-python-enable defined
|
||||
; ;; NB: use either projectile-project-root or ffip-get-project-root-directory
|
||||
; ;; or any other function that can be used to find the root directory of a project
|
||||
; (lsp-define-stdio-client lsp-python "python"
|
||||
; #'projectile-project-root
|
||||
; '("pyls"))
|
||||
|
||||
; ;; make sure this is activated when python-mode is activated
|
||||
; ;; lsp-python-enable is created by macro above
|
||||
; (add-hook 'python-mode-hook
|
||||
; (lambda ()
|
||||
; (lsp-python-enable)))
|
||||
|
||||
; ;; lsp extras
|
||||
; (use-package lsp-ui
|
||||
; :ensure t
|
||||
; :config
|
||||
; (setq lsp-ui-sideline-ignore-duplicate t)
|
||||
; (add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
||||
|
||||
; (use-package company-lsp
|
||||
; :config
|
||||
; (push 'company-lsp company-backends))
|
||||
|
||||
; ;; NB: only required if you prefer flake8 instead of the default
|
||||
; ;; send pyls config via lsp-after-initialize-hook -- harmless for
|
||||
; ;; other servers due to pyls key, but would prefer only sending this
|
||||
; ;; when pyls gets initialised (:initialize function in
|
||||
; ;; lsp-define-stdio-client is invoked too early (before server
|
||||
; ;; start)) -- cpbotha
|
||||
; (defun lsp-set-cfg ()
|
||||
; (let ((lsp-cfg `(:pyls (:configurationSources ("flake8")))))
|
||||
; ;; TODO: check lsp--cur-workspace here to decide per server / project
|
||||
; (lsp--set-configuration lsp-cfg)))
|
||||
|
||||
; (add-hook 'lsp-after-initialize-hook 'lsp-set-cfg))
|
||||
|
||||
|
||||
(require 'evil)
|
||||
(evil-mode 1)
|
||||
|
||||
|
||||
;; language server
|
||||
; (require 'lsp-mode)
|
||||
; (add-hook 'prog-mode-hook 'lsp)
|
||||
; (require 'yasnippet)
|
||||
; (require 'projectile)
|
||||
; (require 'lsp-ui)
|
||||
; (add-hook 'lsp-mode-hook #'lsp-ui-mode)
|
||||
; ;; Typescript
|
||||
; (defun setup-tide-mode ()
|
||||
; (interactive)
|
||||
; (tide-setup)
|
||||
; (flycheck-mode +1)
|
||||
; (setq flycheck-check-syntax-automatically '(save mode-enabled))
|
||||
; (eldoc-mode +1)
|
||||
; (tide-hl-identifier-mode +1)
|
||||
; ;; company is an optional dependency. You have to
|
||||
; ;; install it separately via package-install
|
||||
; ;; `M-x package-install [ret] company`
|
||||
; (company-mode +1))
|
||||
|
||||
; ;; aligns annotation to the right hand side
|
||||
; (setq company-tooltip-align-annotations t)
|
||||
|
||||
; ;; formats the buffer before saving
|
||||
; (add-hook 'before-save-hook 'tide-format-before-save)
|
||||
|
||||
; (add-hook 'typescript-mode-hook #'setup-tide-mode)
|
||||
; ;; Python
|
||||
; (setq lsp-response-timeout 60)
|
||||
|
||||
;; Completion
|
||||
; (add-hook 'after-init-hook 'global-company-mode)
|
||||
; (require 'company-lsp)
|
||||
; (push 'company-lsp company-backends)
|
||||
|
||||
;; Line numbers
|
||||
(add-hook 'prog-mode-hook #'display-line-numbers-mode)
|
||||
(setq display-line-numbers 'relative)
|
||||
(setq-default display-line-numbers-type 'visual
|
||||
display-line-numbers-current-absolute t)
|
||||
|
||||
;; Whitespace
|
||||
(whitespace-mode)
|
||||
(customize-set-variable 'indent-tabs-mode nil)
|
||||
(customize-set-variable 'standard-indent 4)
|
||||
(customize-set-variable 'tab-width 4)
|
||||
(customize-set-variable 'tab-stop-list '(4 8 12))
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
|
||||
;; Keybinds
|
||||
(global-set-key (kbd "C-;") 'comment-line)
|
||||
(global-set-key (kbd "C-,") (lambda() (interactive)
|
||||
(find-file "~/.emacs.d/init.el")))
|
||||
|
||||
;; (set-face-attribute 'default nil :height 140)
|
||||
|
||||
(custom-set-variables
|
||||
;; custom-set-variables was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
;; '(ansi-color-faces-vector
|
||||
;; [default default default italic underline success warning error])
|
||||
'(custom-enabled-themes (quote (wombat)))
|
||||
'(fringe-mode 0 nil (fringe))
|
||||
'(global-whitespace-mode t)
|
||||
'(global-whitespace-newline-mode t)
|
||||
;; '(indent-tabs-mode nil)
|
||||
'(inhibit-startup-screen t)
|
||||
'(package-selected-packages
|
||||
(quote
|
||||
(lsp-typescript lsp-python projectile typescript-mode yasnippet lsp-ui lsp-mode evil)))
|
||||
'(scroll-bar-mode nil)
|
||||
;; '(standard-indent 4)
|
||||
;; '(tab-stop-list (quote (4 8 12)))
|
||||
;; '(tab-width 4)
|
||||
'(menu-bar-mode nil)
|
||||
'(tool-bar-mode nil)
|
||||
'(tooltip-mode nil))
|
||||
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(default
|
||||
((t(
|
||||
:inherit nil
|
||||
;; :stipple nil
|
||||
:background "#202020"
|
||||
:foreground "#f6f3e8"
|
||||
;; :inverse-video nil
|
||||
;; :box nil
|
||||
;; :strike-through nil
|
||||
;; :overline nil
|
||||
;; :underline nil
|
||||
;; :slant normal
|
||||
;; :weight normal
|
||||
;; :width normal
|
||||
;; :foundry "pyrs"
|
||||
:family "Fira Code")
|
||||
)))
|
||||
'(line-number ((t (:inherit (shadow default) :foreground "#cc5757"))))
|
||||
'(line-number-current-line ((t (:inherit line-number :foreground "white"))))
|
||||
'(whitespace-big-indent ((t (:foreground "dark gray"))))
|
||||
'(whitespace-newline ((t (:inherit whitespace-space :weight normal))))
|
||||
'(whitespace-space ((t (:foreground "#303030"))))
|
||||
'(whitespace-tab ((t (:foreground "dim gray")))))
|
||||
|
||||
;; Font-ligatures
|
||||
;;; Fira code
|
||||
;; This works when using emacs --daemon + emacsclient
|
||||
(add-hook 'after-make-frame-functions (lambda (frame) (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")))
|
||||
;; This works when using emacs without server/client
|
||||
(set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")
|
||||
;; I haven't found one statement that makes both of the above situations work, so I use both for now
|
|
@ -1,99 +0,0 @@
|
|||
#
|
||||
# LEL
|
||||
# __ _ _
|
||||
# / _(_)___| |__
|
||||
# | |_| / __| '_ \
|
||||
# | _| \__ \ | | |
|
||||
# |_| |_|___/_| |_|
|
||||
|
||||
# Environment Vairables {{{
|
||||
set -x QT_QPA_PLATFORMTHEME qt5ct
|
||||
set -x PATH $PATH ~/.local/bin
|
||||
|
||||
set -x EDITOR nvim
|
||||
set -x VISUAL nvim
|
||||
# set -x BROWSER=qutebrowser
|
||||
set -x PAGER less
|
||||
|
||||
#}}}
|
||||
# start window manager if using tty1 {{{
|
||||
#
|
||||
function esway
|
||||
clear
|
||||
# export XDG_CURRENT_DESKTOP=Unity
|
||||
export QT_SCALE_FACTOR=1
|
||||
export QPA_PLATFORM=wayland
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
exec sway
|
||||
end
|
||||
function ei3
|
||||
clear
|
||||
exec startx i3
|
||||
end
|
||||
if test "$XDG_VTNR" = 1 -a -z "$DISPLAY" #faster like this
|
||||
if command -v systemctl -a systemctl -q is-active graphical.target
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
export GTK_CSD=0
|
||||
export LD_PRELOAD=/usr/lib/libgtk3-nocsd.so.0
|
||||
export XCURSOR_THEME=capitaine-cursors
|
||||
export GTK_THEME=materia-custom-accent:dark
|
||||
|
||||
esway > .swaylog
|
||||
# ei3 > .i3log
|
||||
end
|
||||
end
|
||||
|
||||
# }}}
|
||||
# use tmux{{{
|
||||
set TMUX 1
|
||||
if test -z "$TMUX" && test "$TERM" != "xterm-kitty" && test -n "$DISPLAY"
|
||||
set attach_session (tmux 2> /dev/null ls -F \
|
||||
'#{session_attached} #{?#{==:#{session_last_attached},},1,#{session_last_attached}} #{session_id}' |
|
||||
awk '/^0/ { if ($2 > t) { t = $2; s = $3 } }; END { if (s) printf "%s", s }')
|
||||
if test -n "$attach_session"
|
||||
exec tmux attach -t "$attach_session"
|
||||
else
|
||||
exec tmux
|
||||
end
|
||||
end
|
||||
|
||||
# }}}
|
||||
# Install fisher{{{
|
||||
if not functions -q fisher
|
||||
set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config
|
||||
curl https://git.io/fisher --create-dirs -sLo $XDG_CONFIG_HOME/fish/functions/fisher.fish
|
||||
fish -c fisher
|
||||
end
|
||||
#}}}
|
||||
# Prompt customization{{{
|
||||
set SPACEFISH_USER_SHOW always
|
||||
set SPACEFISH_USER_COLOR "#cc5757"
|
||||
set SPACEFISH_DIR_COLOR "#cc5757"
|
||||
|
||||
set SPACEFISH_PROMPT_ADD_NEWLINE false
|
||||
|
||||
set SPACEFISH_CHAR_PREFIX ""
|
||||
set SPACEFISH_CHAR_SYMBOL '$'
|
||||
set SPACEFISH_CHAR_SYMBOL_ROOT '#'
|
||||
|
||||
set SPACEFISH_VI_MODE_PREFIX ""
|
||||
set SPACEFISH_VI_MODE_SUFIX ""
|
||||
set SPACEFISH_VI_MODE_INSERT "I"
|
||||
set SPACEFISH_VI_MODE_NORMAL "N"
|
||||
set SPACEFISH_VI_MODE_VISUAL "V"
|
||||
set SPACEFISH_VI_MODE_REPLACE "R"
|
||||
set SPACEFISH_VI_MODE_REPLACE_ONE "S"
|
||||
|
||||
#}}}
|
||||
# Color man pages{{{
|
||||
|
||||
set -xU LESS_TERMCAP_md (printf "\e[01;31m")
|
||||
set -xU LESS_TERMCAP_me (printf "\e[0m")
|
||||
set -xU LESS_TERMCAP_se (printf "\e[0m")
|
||||
set -xU LESS_TERMCAP_so (printf "\e[01;44;33m")
|
||||
set -xU LESS_TERMCAP_ue (printf "\e[0m")
|
||||
set -xU LESS_TERMCAP_us (printf "\e[01;32m")
|
||||
|
||||
#}}}
|
||||
source /usr/share/doc/pkgfile/command-not-found.fish
|
||||
# vim:foldmethod=marker
|
|
@ -1,2 +0,0 @@
|
|||
matchai/spacefish
|
||||
jethrokuan/z
|
|
@ -0,0 +1,52 @@
|
|||
import os
|
||||
from subprocess import check_output
|
||||
import re
|
||||
|
||||
|
||||
def parent_dir(path):
|
||||
return os.path.split(path)[0]
|
||||
|
||||
|
||||
def ordered_path():
|
||||
PATH = os.environ['PATH']
|
||||
|
||||
newPATH = []
|
||||
for i in PATH.split(":"):
|
||||
if i not in newPATH:
|
||||
newPATH.append(i)
|
||||
|
||||
return ':'.join(newPATH)
|
||||
|
||||
|
||||
def hex2rgb(e):
|
||||
assert e.startswith("#")
|
||||
e = e.strip("#").lower()
|
||||
assert len(e) == 6
|
||||
for i in e:
|
||||
assert (i in "0123456789abcdef")
|
||||
|
||||
def h2r(i):
|
||||
return str(eval('0x{}'.format(i)))
|
||||
|
||||
r = e[0:2]
|
||||
g = e[2:4]
|
||||
b = e[4:6]
|
||||
|
||||
return ", ".join([h2r(i) for i in (r, g, b)])
|
||||
|
||||
|
||||
def rclone_obscure(pass_name):
|
||||
try:
|
||||
fPath = os.path.expanduser("~/.config/rclone/rclone.conf")
|
||||
t = open(fPath, 'r').read()
|
||||
|
||||
PASSWORD_PATTERN = r'^pass *= *(.*)$'
|
||||
password = re.search(PASSWORD_PATTERN, t, re.M).group(1)
|
||||
return password
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def sh(*args):
|
||||
return check_output(args).decode().strip()
|
||||
|
||||
return sh("rclone", "obscure", sh("_get-pass", pass_name))
|
|
@ -1,414 +0,0 @@
|
|||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "500x10-30+30"
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
transparency = 0
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 8
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 8
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 3
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#cc5757"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Hack 12.5
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
|
||||
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
|
||||
# Manage dunst's desire for talking
|
||||
# Can be one of the following values:
|
||||
# crit: Critical features. Dunst aborts
|
||||
# warn: Only non-fatal warnings
|
||||
# mesg: Important Messages
|
||||
# info: all unimportant stuff
|
||||
# debug: all less than unimportant stuff
|
||||
verbosity = mesg
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines action of mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: If the notification has exactly one action, or one is marked as default,
|
||||
# invoke it. If there are multiple and no default, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action
|
||||
mouse_right_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
[shortcuts]
|
||||
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification.
|
||||
close = ctrl+space
|
||||
|
||||
# Close all notifications.
|
||||
close_all = ctrl+shift+space
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||
# e.g. check output of 'xmodmap -pke'
|
||||
history = ctrl+grave
|
||||
|
||||
# Context menu.
|
||||
context = ctrl+shift+period
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#252525"
|
||||
foreground = "#888888"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#202020"
|
||||
foreground = "#ffffff"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# timeout
|
||||
# urgency
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
[fullscreen_delay_everything]
|
||||
fullscreen = delay
|
||||
[fullscreen_show_critical]
|
||||
msg_urgency = critical
|
||||
fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
[stack-volumes]
|
||||
appname = pavolume
|
||||
set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
|
@ -1,249 +0,0 @@
|
|||
# LEL
|
||||
#
|
||||
# _ _____
|
||||
# (_)___ /
|
||||
# | | |_ \
|
||||
# | |___) |
|
||||
# |_|____/
|
||||
#
|
||||
# Variables {{{
|
||||
#
|
||||
# Logo key.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
set $term termite
|
||||
# set $menu bmenu run $term
|
||||
set $menu rofi -show drun
|
||||
font pango:Hack 14px
|
||||
|
||||
# }}}
|
||||
# Key bindings: {{{
|
||||
# Basic {{{
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
#start web browser
|
||||
bindsym $mod+q exec qutebrowser
|
||||
|
||||
#start file manager
|
||||
bindsym $mod+m exec nemo
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+x kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
|
||||
# Fill passwords
|
||||
bindsym Control+$mod+p exec keepmenu
|
||||
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Restart i3 inplace
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# Lock i3
|
||||
bindsym $mod+Control+s exec i3lock
|
||||
|
||||
# Exit i3
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Do you really want to exit i3?' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# }}}
|
||||
|
||||
bindsym XF86MonBrightnessUp exec xbacklight -inc 5
|
||||
bindsym XF86MonBrightnessDown exec xbacklight -dec 5
|
||||
|
||||
bindsym mod1+Tab exec rofi -show window
|
||||
# Moving around: {{{
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
# Resizing containers:
|
||||
bindsym $mod+Control+$left resize shrink width 10px
|
||||
bindsym $mod+Control+$down resize grow height 10px
|
||||
bindsym $mod+Control+$up resize shrink height 10px
|
||||
bindsym $mod+Control+$right resize grow width 10px
|
||||
|
||||
# }}}
|
||||
# Workspaces: {{{
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace 1
|
||||
bindsym $mod+2 workspace 2
|
||||
bindsym $mod+3 workspace 3
|
||||
bindsym $mod+4 workspace 4
|
||||
bindsym $mod+5 workspace 5
|
||||
bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace 8
|
||||
bindsym $mod+9 workspace 9
|
||||
bindsym $mod+0 workspace 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace 1
|
||||
bindsym $mod+Shift+2 move container to workspace 2
|
||||
bindsym $mod+Shift+3 move container to workspace 3
|
||||
bindsym $mod+Shift+4 move container to workspace 4
|
||||
bindsym $mod+Shift+5 move container to workspace 5
|
||||
bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace 8
|
||||
bindsym $mod+Shift+9 move container to workspace 9
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
|
||||
# Assign programs to their workspace
|
||||
assign [class=qutebrowser] workspace 2
|
||||
|
||||
assign [class=keepassxc] workspace 8
|
||||
assign [class=Steam] workspace 9
|
||||
|
||||
assign [class=TelegramDesktop] workspace 10
|
||||
assign [class=discord] workspace 10
|
||||
|
||||
# }}}
|
||||
# Layout stuff: {{{
|
||||
#
|
||||
# Splits
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
# }}}
|
||||
# Screenshots: {{{
|
||||
#
|
||||
|
||||
# Screens to file
|
||||
bindsym Print exec grim $(xdg-user-dir PICTURES)/$(date +'%Y-%m-%d-%H%M%S_grim.png')
|
||||
|
||||
# Screen area to file
|
||||
bindsym Shift+Print exec grim -g "$(slurp)" $(xdg-user-dir PICTURES)/$(date +'%Y-%m-%d-%H%M%S_grim-slurp.png')
|
||||
|
||||
# Screen area to clipboard
|
||||
bindsym Control+Shift+Print exec grim -g "$(slurp)" - | wl-copy
|
||||
|
||||
# Focused monitor to clipboard
|
||||
bindsym Control+Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') - | wl-copy
|
||||
|
||||
# Screen recorder
|
||||
bindsym Control+Alt+Shift+r exec wf-recorder -a
|
||||
|
||||
# }}}
|
||||
# Audio: {{{
|
||||
#
|
||||
bindsym $mod+p exec pulse-sink
|
||||
for_window [class=pavucontrol] floating enable
|
||||
|
||||
# Volume controll
|
||||
bindsym XF86AudioRaiseVolume exec pavolume volup 5
|
||||
bindsym XF86AudioLowerVolume exec pavolume voldown 5
|
||||
bindsym XF86AudioMute exec pavolume mutetoggle
|
||||
|
||||
# Media player controls
|
||||
bindsym XF86AudioPlay exec playerctl -p mpd play-pause
|
||||
bindsym XF86AudioNext exec playerctl -p mpd next
|
||||
bindsym XF86AudioPrev exec playerctl -p mpd previous
|
||||
bindsym $mod+Shift+x exec musmenu delete
|
||||
bindsym $mod+Shift+s exec musmenu search
|
||||
|
||||
# }}}
|
||||
# }}}
|
||||
# Visual: {{{
|
||||
#
|
||||
|
||||
exec hsetroot -solid '#252525'
|
||||
|
||||
set $accent #CC575D
|
||||
set $fg_color #ffffff
|
||||
set $bg_color #191919
|
||||
set $alert #000000
|
||||
|
||||
# border background text indicator child_border
|
||||
client.focused $accent $accent $fg_color $accent $accent
|
||||
client.focused_inactive $bg_color $bg_color $fg_color $bg_color $bg_color
|
||||
client.unfocused $bg_color $bg_color $fg_color $bg_color $bg_color
|
||||
client.urgent $alert $alert $fg_color $alert $alert
|
||||
|
||||
exec_always ~/.config/polybar/launch.sh
|
||||
|
||||
default_border pixel 2
|
||||
gaps inner 10
|
||||
|
||||
# smart_gaps on
|
||||
# smart_borders on
|
||||
|
||||
for_window [class=mpv] floating toggle
|
||||
|
||||
# set theme
|
||||
set $gnome-schema org.gnome.desktop.interface
|
||||
exec_always kvantummanager --set MateriaDark
|
||||
exec_always gsettings set $gnome-schema gtk-theme 'materia-custom-accent-dark'
|
||||
exec_always gsettings set $gnome-schema icon-theme 'Papirus-Dark'
|
||||
exec_always gsettings set $gnome-schema cursor-theme 'capitaine-cursors'
|
||||
|
||||
# }}}
|
||||
# Daemons {{{
|
||||
#
|
||||
|
||||
#Compositor
|
||||
exec picom
|
||||
#Notification Daemon
|
||||
exec dunst
|
||||
# Block device Mounter to /run/media/<username>
|
||||
exec udiskie
|
||||
# Blue light filter
|
||||
exec redshift
|
||||
# kde connect
|
||||
exec /usr/lib/kdeconnectd
|
||||
exec kdeconnect-indicator
|
||||
# Telegram
|
||||
exec --no-startup-id telegram-desktop
|
||||
# Music Player Daemon
|
||||
exec mpd --no-daemon
|
||||
exec mpDris2
|
||||
# Use i3lock
|
||||
exec xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
# Network manager icon
|
||||
exec nm-applet
|
||||
# PulseAudio icon
|
||||
exec pasystray --notify=all --volume-max=100 --volume-inc=5
|
||||
# Ouput manager
|
||||
exec autorandr --change
|
||||
#}}}
|
||||
|
||||
# vim:filetype=i3config:foldmethod=marker
|
|
@ -1,307 +0,0 @@
|
|||
;LEL
|
||||
; ____ _ _
|
||||
; | _ \ ___ | |_ _| |__ __ _ _ __
|
||||
; | |_) / _ \| | | | | '_ \ / _` | '__|
|
||||
; | __/ (_) | | |_| | |_) | (_| | |
|
||||
; |_| \___/|_|\__, |_.__/ \__,_|_|
|
||||
; |___/
|
||||
|
||||
; colors{{{
|
||||
[colors]
|
||||
;background = ${xrdb:color0:#222}
|
||||
background = #202020
|
||||
background-alt = #444
|
||||
;foreground = ${xrdb:color7:#222}
|
||||
foreground = #dfdfdf
|
||||
foreground-alt = #555
|
||||
primary = #cc5757
|
||||
secondary = #e60053
|
||||
alert = #bd2c40
|
||||
; }}}
|
||||
; main {{{
|
||||
[bar/main]
|
||||
;monitor = ${env:MONITOR:HDMI-1}
|
||||
width = 100%
|
||||
height = 26
|
||||
;offset-x = 1%
|
||||
;offset-y = 1%
|
||||
; radius = 6.0
|
||||
fixed-center = true
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3
|
||||
line-color = #f00
|
||||
|
||||
border-bottom-size = 2
|
||||
border-bottom-color = #191919
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 2
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 2
|
||||
|
||||
font-0 = Inter: size=12;3
|
||||
font-1 = "Material:size=12;2"
|
||||
font-2 = Font Awesome 5 Free: pixelsize=11;2
|
||||
font-3 = Font Awesome 5 Free Solid: pixelsize=11;2
|
||||
font-4 = Inter:style=Bold;2
|
||||
|
||||
modules-left = bspwm i3 xwindow
|
||||
modules-center = date tempMin tempMax tempCur
|
||||
modules-right = mpd xbacklight pulseaudio wlan eth battery
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 10
|
||||
;tray-background = #0063ff
|
||||
|
||||
;wm-restack = bspwm
|
||||
;wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
; }}}
|
||||
; temp{{{
|
||||
[module/tempMax]
|
||||
type = custom/script
|
||||
exec = jq -r ".max" .forecast.json
|
||||
format = <label>
|
||||
format-suffix =
|
||||
interval = 60
|
||||
|
||||
[module/tempMin]
|
||||
type = custom/script
|
||||
exec = jq -r ".min" .forecast.json
|
||||
format = <label>
|
||||
format-suffix =
|
||||
interval = 60
|
||||
;
|
||||
[module/tempCur]
|
||||
type = custom/script
|
||||
exec = jq -r '.temp + .weather' .forecast.json
|
||||
format = <label>
|
||||
interval = 60
|
||||
; }}}
|
||||
; xwindow {{{
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:50:...%
|
||||
; }}}
|
||||
; bspwm{{{
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
label-focused = %index%
|
||||
label-focused-background = ${colors.background-alt}
|
||||
label-focused-underline= ${colors.primary}
|
||||
label-focused-padding = 2
|
||||
|
||||
label-occupied = %index%
|
||||
label-occupied-padding = 2
|
||||
|
||||
label-urgent = %index%!
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 2
|
||||
|
||||
label-empty = %index%
|
||||
label-empty-foreground = ${colors.foreground-alt}
|
||||
label-empty-padding = 2
|
||||
|
||||
; Separator in between workspaces
|
||||
; label-separator = |
|
||||
; }}}
|
||||
; i3{{{
|
||||
[module/i3]
|
||||
|
||||
type = internal/i3
|
||||
format = <label-state> <label-mode>
|
||||
|
||||
index-sort = true
|
||||
wrapping-scroll = false
|
||||
|
||||
label-focused = %icon%
|
||||
label-unfocused = %icon%
|
||||
label-visible = %icon%
|
||||
label-urgent = %icon%
|
||||
|
||||
label-focused-background = ${colors.background-alt}
|
||||
label-focused-underline= ${colors.primary}
|
||||
|
||||
label-focused-padding = 3
|
||||
label-unfocused-padding = 2
|
||||
|
||||
ws-icon-0 = 1;
|
||||
ws-icon-1 = 2;
|
||||
ws-icon-2 = 3;
|
||||
ws-icon-3 = 8;
|
||||
ws-icon-4 = 9;
|
||||
ws-icon-5 = 10;
|
||||
ws-icon-default =
|
||||
; }}}
|
||||
; mpd {{{
|
||||
[module/mpd]
|
||||
type = internal/mpd
|
||||
format-online = <label-song>
|
||||
format-paused =
|
||||
format-stoped =
|
||||
|
||||
; label-song-maxlen = 25
|
||||
label-song-ellipsis = true
|
||||
; }}}
|
||||
; xbacklight{{{
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
|
||||
format = <label> <bar>
|
||||
label = BL
|
||||
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-indicator-foreground = #fff
|
||||
bar-indicator-font = 2
|
||||
bar-fill = ─
|
||||
bar-fill-font = 2
|
||||
bar-fill-foreground = #9f78e1
|
||||
bar-empty = ─
|
||||
bar-empty-font = 2
|
||||
bar-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/backlight-acpi]
|
||||
inherit = module/xbacklight
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
; }}}
|
||||
;net{{{
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlp1s0
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <ramp-signal>
|
||||
; format-connected-underline = #9f78e1
|
||||
label-connected = %essid%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
|
||||
label-disconnected =
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface = enp2s0
|
||||
interval = 3.0
|
||||
|
||||
format-connected-underline = #55aa55
|
||||
format-connected-prefix = " "
|
||||
format-connected-prefix-foreground = ${colors.foreground-alt}
|
||||
label-connected = %local_ip%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
; }}}
|
||||
;date {{{
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 5
|
||||
|
||||
date = %d de %b
|
||||
time = %H:%M
|
||||
|
||||
label = %date% %time%
|
||||
label-font = 5
|
||||
; }}}
|
||||
;audio {{{
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume = <ramp-volume>
|
||||
; label-volume = VOL %percentage%%
|
||||
; label-volume-foreground = ${root.foreground}
|
||||
|
||||
; label-muted = 🔇 muted
|
||||
; label-muted-foreground = #666
|
||||
|
||||
label-muted = ""
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
ramp-volume-3 =
|
||||
ramp-volume-4 =
|
||||
ramp-headphones-0 =
|
||||
ramp-headphones-1 =
|
||||
|
||||
click-right = pavucontrol &
|
||||
; }}}
|
||||
; battery {{{
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
adapter = AC
|
||||
full-at = 90
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
; format-charging-underline = #ffb52a
|
||||
|
||||
format-discharging = <animation-discharging> <label-discharging>
|
||||
; format-discharging-underline = ${self.format-charging-underline}
|
||||
|
||||
format-full =
|
||||
; format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
; format-full-underline = ${self.format-charging-underline}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-foreground = ${colors.foreground-alt}
|
||||
animation-discharging-framerate = 750
|
||||
; }}}
|
||||
; config {{{
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
;compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
;pseudo-transparency = false
|
||||
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
; }}}
|
||||
;
|
||||
; vim:ft=dosini:foldmethod=marker
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
## Add this to your wm startup file.
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch main bar
|
||||
polybar main &
|
|
@ -1,14 +0,0 @@
|
|||
[dmenu]
|
||||
dmenu_command = rofi
|
||||
|
||||
[dmenu_passphrase]
|
||||
nf = #222222
|
||||
nb = #222222
|
||||
rofi_obscure = True
|
||||
|
||||
[database]
|
||||
database_1 = ~/Nextcloud/Senhas/Senhas.kdbx
|
||||
pw_cache_period_min = 360
|
||||
type_library = ydotool
|
||||
autotype_default = {USERNAME}{TAB}{PASSWORD}{ENTER}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
# font_family Hack
|
||||
font_family Fira Code
|
||||
font_size 12
|
||||
|
||||
#colors
|
||||
cursor #cc5757
|
||||
background #202020
|
||||
foreground #dddddd
|
||||
background_opacity 0.9
|
||||
|
||||
|
||||
# black
|
||||
color0 #555555
|
||||
color8 #888888
|
||||
|
||||
# red
|
||||
color1 #9c3528
|
||||
color9 #cc5757
|
||||
|
||||
# green
|
||||
color2 #61bc3b
|
||||
color10 #86df5d
|
||||
|
||||
# yellow
|
||||
color3 #f3b43a
|
||||
color11 #fdd75a
|
||||
|
||||
# blue
|
||||
color4 #0d68a8
|
||||
color12 #0f75bd
|
||||
|
||||
# magenta
|
||||
color5 #744560
|
||||
color13 #9e5e83
|
||||
|
||||
# cyan
|
||||
color6 #288e9c
|
||||
color14 #37c3d6
|
||||
|
||||
# white
|
||||
color7 #a2a2a2
|
||||
color15 #f9f9f9
|
||||
scrollback_pager nvim -c "set ft=man noreadonly modifiable" -
|
||||
# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
|
|
@ -0,0 +1,105 @@
|
|||
# Maintainer: Leonardo Eugênio <lelgenio@disroot.org>
|
||||
pkgname=lelgenio-meta
|
||||
pkgver=1
|
||||
pkgrel=2
|
||||
pkgdesc="Metapackage for swaywm related programs"
|
||||
arch=('any')
|
||||
url=""
|
||||
license=('GPL')
|
||||
depends=()
|
||||
|
||||
depends=(
|
||||
|
||||
fish cronie git man-db
|
||||
|
||||
# DE
|
||||
# Sway
|
||||
sway swayidle swaylock waybar
|
||||
# Menu
|
||||
bemenu-wlroots j4-dmenu-desktop
|
||||
# Utility
|
||||
ruby-fusuma light mako kanshi udiskie redshift-wayland-git
|
||||
# Configuration manager
|
||||
dotdrop
|
||||
|
||||
# Packages
|
||||
pkgfile yay
|
||||
|
||||
# passwords and auth
|
||||
pass gnupg pam-gnupg
|
||||
|
||||
# Dav
|
||||
vdirsyncer khal khard
|
||||
|
||||
# Audio
|
||||
pulseaudio pamixer
|
||||
|
||||
# Fonts
|
||||
inter-font ttf-material-wifi-icons-git
|
||||
ttf-fira-code otf-nerd-fonts-fira-code
|
||||
|
||||
# Screenshot
|
||||
grim slurp wl-clipboard imagemagick wf-recorder wshowkeys
|
||||
|
||||
# Theme
|
||||
materia-custom-accent papirus-icon-theme
|
||||
papirus-folders capitaine-cursors
|
||||
|
||||
# Terminal
|
||||
ranger atool p7zip tree jq fzf
|
||||
neofetch htop
|
||||
# Replacements
|
||||
#ls cat rm -rf grep find sed cd
|
||||
exa bat trash-cli ripgrep fd sd zoxide
|
||||
|
||||
# Network
|
||||
iwd dhcpcd
|
||||
# Transfer
|
||||
wget curl rsync rclone nmap
|
||||
# Testing
|
||||
gnu-netcat tor mtr speedtest-cli
|
||||
# ssh
|
||||
openssh sshfs fail2ban
|
||||
# Bluetooth
|
||||
bluez bluez-utils
|
||||
|
||||
# Browser
|
||||
qutebrowser youtube-dl
|
||||
|
||||
# Email
|
||||
neomutt urlview isync
|
||||
|
||||
# Files
|
||||
thunar gvfs tumbler thunar-archive-plugin thunar-volman
|
||||
syncthing xdg-user-dirs
|
||||
transmission-sequential-cli deemix
|
||||
|
||||
# Media
|
||||
imv mpv
|
||||
mpd mpc ncmpcpp
|
||||
blender gimp kdenlive
|
||||
|
||||
# Office
|
||||
libreoffice-fresh libreoffice-fresh-pt-br hunspell-pt-br papirus-libreoffice-theme
|
||||
|
||||
# Programing
|
||||
neovim python-pynvim neovim-symlinks ipython
|
||||
rust gcc gdb
|
||||
|
||||
# Virt
|
||||
qemu
|
||||
|
||||
# Gtk
|
||||
gtk3-nocsd-git
|
||||
|
||||
# Qt
|
||||
qt5-base qt5-wayland qt5ct kvantum-qt5
|
||||
|
||||
# Chat
|
||||
discord telegram-desktop
|
||||
|
||||
# Gaming
|
||||
steam lutris lutris-wine-meta wine wine-mono winetricks
|
||||
|
||||
)
|
||||
|
|
@ -1,231 +0,0 @@
|
|||
[Added Associations]
|
||||
image/bmp=feh.desktop;
|
||||
image/cgm=feh.desktop;
|
||||
image/dicom-rle=feh.desktop;
|
||||
image/emf=feh.desktop;
|
||||
image/example=feh.desktop;
|
||||
image/fits=feh.desktop;
|
||||
image/g3fax=feh.desktop;
|
||||
image/gif=feh.desktop;
|
||||
image/heic=feh.desktop;
|
||||
image/heif=feh.desktop;
|
||||
image/ief=feh.desktop;
|
||||
image/jls=feh.desktop;
|
||||
image/jp2=feh.desktop;
|
||||
image/jpeg=feh.desktop;
|
||||
image/jpg=feh.desktop;
|
||||
image/jpm=feh.desktop;
|
||||
image/jpx=feh.desktop;
|
||||
image/ktx=feh.desktop;
|
||||
image/naplps=feh.desktop;
|
||||
image/pjpeg=feh.desktop;
|
||||
image/png=feh.desktop;
|
||||
image/prs.btif=feh.desktop;
|
||||
image/prs.pti=feh.desktop;
|
||||
image/pwg-raster=feh.desktop;
|
||||
image/svg+xml=feh.desktop;
|
||||
image/svg+xml-compressed=feh.desktop;
|
||||
image/t38=feh.desktop;
|
||||
image/tiff=feh.desktop;
|
||||
image/tiff-fx=feh.desktop;
|
||||
image/vnd.adobe.photoshop=feh.desktop;
|
||||
image/vnd.airzip.accelerator.azv=feh.desktop;
|
||||
image/vnd.cns.inf2=feh.desktop;
|
||||
image/vnd.dece.graphic=feh.desktop;
|
||||
image/vnd.djvu=feh.desktop;
|
||||
image/vnd.dvb.subtitle=feh.desktop;
|
||||
image/vnd.dwg=feh.desktop;
|
||||
image/vnd.dxf=feh.desktop;
|
||||
image/vnd.fastbidsheet=feh.desktop;
|
||||
image/vnd.fpx=feh.desktop;
|
||||
image/vnd.fst=feh.desktop;
|
||||
image/vnd.fujixerox.edmics-mmr=feh.desktop;
|
||||
image/vnd.fujixerox.edmics-rlc=feh.desktop;
|
||||
image/vnd.globalgraphics.pgb=feh.desktop;
|
||||
image/vnd.microsoft.icon=feh.desktop;
|
||||
image/vnd.mix=feh.desktop;
|
||||
image/vnd.mozilla.apng=feh.desktop;
|
||||
image/vnd.ms-modi=feh.desktop;
|
||||
image/vnd.net-fpx=feh.desktop;
|
||||
image/vnd.radiance=feh.desktop;
|
||||
image/vnd.rn-realpix=feh.desktop;
|
||||
image/vnd.sealed.png=feh.desktop;
|
||||
image/vnd.sealedmedia.softseal.gif=feh.desktop;
|
||||
image/vnd.sealedmedia.softseal.jpg=feh.desktop;
|
||||
image/vnd.svf=feh.desktop;
|
||||
image/vnd.tencent.tap=feh.desktop;
|
||||
image/vnd.valve.source.texture=feh.desktop;
|
||||
image/vnd.wap.wbmp=feh.desktop;
|
||||
image/vnd.xiff=feh.desktop;
|
||||
image/vnd.zbrush.pcx=feh.desktop;
|
||||
image/webp=feh.desktop;
|
||||
image/wmf=feh.desktop;
|
||||
image/x-bmp=feh.desktop;
|
||||
image/x-cmu-raster=feh.desktop;
|
||||
image/x-compressed-xcf=feh.desktop;
|
||||
image/x-emf=feh.desktop;
|
||||
image/x-eps=feh.desktop;
|
||||
image/x-exr=feh.desktop;
|
||||
image/x-fits=feh.desktop;
|
||||
image/x-freehand=feh.desktop;
|
||||
image/x-gimp-gbr=feh.desktop;
|
||||
image/x-gimp-gih=feh.desktop;
|
||||
image/x-gimp-pat=feh.desktop;
|
||||
image/x-icon=feh.desktop;
|
||||
image/x-pcx=feh.desktop;
|
||||
image/x-png=feh.desktop;
|
||||
image/x-portable-anymap=feh.desktop;
|
||||
image/x-portable-bitmap=feh.desktop;
|
||||
image/x-portable-graymap=feh.desktop;
|
||||
image/x-portable-pixmap=feh.desktop;
|
||||
image/x-psd=feh.desktop;
|
||||
image/x-psp=feh.desktop;
|
||||
image/x-rgb=feh.desktop;
|
||||
image/x-sgi=feh.desktop;
|
||||
image/x-targa=feh.desktop;
|
||||
image/x-tga=feh.desktop;
|
||||
image/x-vsd=feh.desktop;
|
||||
image/x-webp=feh.desktop;
|
||||
image/x-wmf=feh.desktop;
|
||||
image/x-xbitmap=feh.desktop;
|
||||
image/x-xcdr=feh.desktop;
|
||||
image/x-xcf=feh.desktop;
|
||||
image/x-xcursor=feh.desktop;
|
||||
image/x-xpixmap=feh.desktop;
|
||||
image/x-xwindowdump=feh.desktop;
|
||||
text/html=org.qutebrowser.qutebrowser.desktop;browser.desktop;
|
||||
text/plain=nvim.desktop;
|
||||
video/1d-interleaved-parityfec=mpv.desktop;
|
||||
video/3gp=mpv.desktop;
|
||||
video/3gpp=mpv.desktop;
|
||||
video/3gpp-tt=mpv.desktop;
|
||||
video/3gpp2=mpv.desktop;
|
||||
video/BMPEG=mpv.desktop;
|
||||
video/BT656=mpv.desktop;
|
||||
video/CelB=mpv.desktop;
|
||||
video/DV=mpv.desktop;
|
||||
video/H261=mpv.desktop;
|
||||
video/H263=mpv.desktop;
|
||||
video/H263-1998=mpv.desktop;
|
||||
video/H263-2000=mpv.desktop;
|
||||
video/H264=mpv.desktop;
|
||||
video/H264-RCDO=mpv.desktop;
|
||||
video/H264-SVC=mpv.desktop;
|
||||
video/H265=mpv.desktop;
|
||||
video/JPEG=mpv.desktop;
|
||||
video/MP1S=mpv.desktop;
|
||||
video/MP2P=mpv.desktop;
|
||||
video/MP2T=mpv.desktop;
|
||||
video/MP4V-ES=mpv.desktop;
|
||||
video/MPV=mpv.desktop;
|
||||
video/SMPTE292M=mpv.desktop;
|
||||
video/VP8=mpv.desktop;
|
||||
video/avi=mpv.desktop;
|
||||
video/divx=mpv.desktop;
|
||||
video/dv=mpv.desktop;
|
||||
video/encaprtp=mpv.desktop;
|
||||
video/example=mpv.desktop;
|
||||
video/fli=mpv.desktop;
|
||||
video/flv=mpv.desktop;
|
||||
video/iso.segment=mpv.desktop;
|
||||
video/jpeg2000=mpv.desktop;
|
||||
video/mj2=mpv.desktop;
|
||||
video/mkv=mpv.desktop;
|
||||
video/mp2t=mpv.desktop;
|
||||
video/mp4=mpv.desktop;
|
||||
video/mp4v-es=mpv.desktop;
|
||||
video/mpeg=mpv.desktop;
|
||||
video/mpeg-system=mpv.desktop;
|
||||
video/mpeg4-generic=mpv.desktop;
|
||||
video/msvideo=mpv.desktop;
|
||||
video/nv=mpv.desktop;
|
||||
video/ogg=mpv.desktop;
|
||||
video/parityfec=mpv.desktop;
|
||||
video/pointer=mpv.desktop;
|
||||
video/quicktime=mpv.desktop;
|
||||
video/raptorfec=mpv.desktop;
|
||||
video/raw=mpv.desktop;
|
||||
video/rtp-enc-aescm128=mpv.desktop;
|
||||
video/rtploopback=mpv.desktop;
|
||||
video/rtx=mpv.desktop;
|
||||
video/ulpfec=mpv.desktop;
|
||||
video/vc1=mpv.desktop;
|
||||
video/vnd.CCTV=mpv.desktop;
|
||||
video/vnd.dece.hd=mpv.desktop;
|
||||
video/vnd.dece.mobile=mpv.desktop;
|
||||
video/vnd.dece.mp4=mpv.desktop;
|
||||
video/vnd.dece.pd=mpv.desktop;
|
||||
video/vnd.dece.sd=mpv.desktop;
|
||||
video/vnd.dece.video=mpv.desktop;
|
||||
video/vnd.directv.mpeg=mpv.desktop;
|
||||
video/vnd.directv.mpeg-tts=mpv.desktop;
|
||||
video/vnd.divx=mpv.desktop;
|
||||
video/vnd.dlna.mpeg-tts=mpv.desktop;
|
||||
video/vnd.dvb.file=mpv.desktop;
|
||||
video/vnd.fvt=mpv.desktop;
|
||||
video/vnd.hns.video=mpv.desktop;
|
||||
video/vnd.iptvforum.1dparityfec-1010=mpv.desktop;
|
||||
video/vnd.iptvforum.1dparityfec-2005=mpv.desktop;
|
||||
video/vnd.iptvforum.2dparityfec-1010=mpv.desktop;
|
||||
video/vnd.iptvforum.2dparityfec-2005=mpv.desktop;
|
||||
video/vnd.iptvforum.ttsavc=mpv.desktop;
|
||||
video/vnd.iptvforum.ttsmpeg2=mpv.desktop;
|
||||
video/vnd.motorola.video=mpv.desktop;
|
||||
video/vnd.motorola.videop=mpv.desktop;
|
||||
video/vnd.mpegurl=mpv.desktop;
|
||||
video/vnd.ms-playready.media.pyv=mpv.desktop;
|
||||
video/vnd.nokia.interleaved-multimedia=mpv.desktop;
|
||||
video/vnd.nokia.mp4vr=mpv.desktop;
|
||||
video/vnd.nokia.videovoip=mpv.desktop;
|
||||
video/vnd.objectvideo=mpv.desktop;
|
||||
video/vnd.radgamettools.bink=mpv.desktop;
|
||||
video/vnd.radgamettools.smacker=mpv.desktop;
|
||||
video/vnd.rn-realvideo=mpv.desktop;
|
||||
video/vnd.sealed.mpeg1=mpv.desktop;
|
||||
video/vnd.sealed.mpeg4=mpv.desktop;
|
||||
video/vnd.sealed.swf=mpv.desktop;
|
||||
video/vnd.sealedmedia.softseal.mov=mpv.desktop;
|
||||
video/vnd.uvvu.mp4=mpv.desktop;
|
||||
video/vnd.vivo=mpv.desktop;
|
||||
video/webm=mpv.desktop;
|
||||
video/x-anim=mpv.desktop;
|
||||
video/x-annodex=mpv.desktop;
|
||||
video/x-avi=mpv.desktop;
|
||||
video/x-flc=mpv.desktop;
|
||||
video/x-fli=mpv.desktop;
|
||||
video/x-flic=mpv.desktop;
|
||||
video/x-flv=mpv.desktop;
|
||||
video/x-javafx=mpv.desktop;
|
||||
video/x-m4v=mpv.desktop;
|
||||
video/x-matroska=mpv.desktop;
|
||||
video/x-matroska-3d=mpv.desktop;
|
||||
video/x-mpeg=mpv.desktop;
|
||||
video/x-mpeg-system=mpv.desktop;
|
||||
video/x-mpeg2=mpv.desktop;
|
||||
video/x-mpeg3=mpv.desktop;
|
||||
video/x-ms-afs=mpv.desktop;
|
||||
video/x-ms-asf=mpv.desktop;
|
||||
video/x-ms-asf-plugin=mpv.desktop;
|
||||
video/x-ms-asx=mpv.desktop;
|
||||
video/x-ms-wm=mpv.desktop;
|
||||
video/x-ms-wmv=mpv.desktop;
|
||||
video/x-ms-wmx=mpv.desktop;
|
||||
video/x-ms-wvx=mpv.desktop;
|
||||
video/x-ms-wvxvideo=mpv.desktop;
|
||||
video/x-msvideo=mpv.desktop;
|
||||
video/x-nsv=mpv.desktop;
|
||||
video/x-ogm=mpv.desktop;
|
||||
video/x-ogm+ogg=mpv.desktop;
|
||||
video/x-sgi-movie=mpv.desktop;
|
||||
video/x-theora=mpv.desktop;
|
||||
video/x-theora+ogg=mpv.desktop;
|
||||
x-scheme-handler/sms=org.gnome.Shell.Extensions.GSConnect.desktop;
|
||||
x-scheme-handler/tel=org.gnome.Shell.Extensions.GSConnect.desktop;
|
||||
|
||||
[Default Applications]
|
||||
application/pdf=org.pwmt.zathura.desktop;
|
||||
text/html=org.qutebrowser.qutebrowser.desktop
|
||||
x-scheme-handler/http=org.qutebrowser.qutebrowser.desktop
|
||||
x-scheme-handler/https=org.qutebrowser.qutebrowser.desktop
|
||||
application/x-bittorrent=deluge.desktop;
|
||||
x-scheme-handler/magnet=deluge.desktop;
|
|
@ -1,3 +0,0 @@
|
|||
autofit=50%
|
||||
slang=por
|
||||
fullscreen
|
|
@ -1 +0,0 @@
|
|||
/usr/lib/mpv/mpris.so
|
|
@ -1,25 +0,0 @@
|
|||
IMAPStore disroot-remote
|
||||
Host disroot.org
|
||||
Port 993
|
||||
User lelgenio@disroot.org
|
||||
PassCmd "gpg -dq $HOME/.config/neomutt/password.gpg"
|
||||
SSLType IMAPS
|
||||
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
MaildirStore disroot-local
|
||||
Subfolders Verbatim
|
||||
Path ~/.mail/
|
||||
Inbox ~/.mail/INBOX
|
||||
Flatten .
|
||||
|
||||
Channel disroot-remote
|
||||
Expunge Both
|
||||
Master :disroot-remote:
|
||||
Slave :disroot-local:
|
||||
Patterns * !"[Gmail]/All Mail"
|
||||
Create Both
|
||||
SyncState *
|
||||
# MaxMessages 0
|
||||
# End profile
|
||||
|
||||
# vim: ft=sh
|
|
@ -1,248 +0,0 @@
|
|||
" LEL
|
||||
|
||||
" _
|
||||
" _ ____ _(_)_ __ ___
|
||||
" | '_ \ \ / / | '_ ` _ \
|
||||
" | | | \ V /| | | | | | |
|
||||
" |_| |_|\_/ |_|_| |_| |_|
|
||||
|
||||
" Plugins{{{
|
||||
"
|
||||
" Install plug if it isn't already
|
||||
if empty(glob('~/.config/nvim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
|
||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
augroup PLUG
|
||||
au!
|
||||
autocmd VimEnter * PlugInstall
|
||||
augroup END
|
||||
endif
|
||||
|
||||
call plug#begin('~/.config/nvim/plugged')
|
||||
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
Plug 'chrisbra/Colorizer'
|
||||
|
||||
Plug 'junegunn/vim-easy-align'
|
||||
|
||||
" Language server support
|
||||
" Plug 'sheerun/vim-polyglot'
|
||||
" Plug 'dense-analysis/ale'
|
||||
" Plug 'davidhalter/jedi-vim'
|
||||
Plug 'autozimu/LanguageClient-neovim', {
|
||||
\ 'branch': 'next',
|
||||
\ 'do': 'bash install.sh',
|
||||
\}
|
||||
|
||||
" Debugger
|
||||
Plug 'vim-vdebug/vdebug'
|
||||
|
||||
" Fuzzy find
|
||||
Plug 'junegunn/fzf'
|
||||
|
||||
" Completions
|
||||
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||
Plug 'jiangmiao/auto-pairs'
|
||||
|
||||
" Comments
|
||||
Plug 'tpope/vim-commentary'
|
||||
|
||||
" Status bar
|
||||
" Plug 'vim-airline/vim-airline'
|
||||
" Plug 'vim-airline/vim-airline-themes'
|
||||
" let g:airline#extensions#ale#enabled = 1
|
||||
|
||||
" Bufferlist (integrates with airline)
|
||||
"Plug 'bling/vim-bufferline'
|
||||
|
||||
" Color scheme
|
||||
Plug 'dikiaap/minimalist'
|
||||
|
||||
|
||||
" Simplify movement
|
||||
"Plug 'easymotion/vim-easymotion'
|
||||
|
||||
" Simplify file management
|
||||
Plug 'scrooloose/nerdtree'
|
||||
Plug 'Xuyuanp/nerdtree-git-plugin'
|
||||
|
||||
" Format using prettier
|
||||
" Plug 'prettier/vim-prettier', { 'do': 'yarn install' }
|
||||
|
||||
" Make markdown fun again
|
||||
"Plug 'junegunn/limelight.vim'
|
||||
|
||||
" Better buffer management
|
||||
"Plug 'qpkorr/vim-bufkill'
|
||||
|
||||
" Utilities
|
||||
"Plug 'xolox/vim-misc'
|
||||
|
||||
" Notes
|
||||
"Plug 'xolox/vim-notes'
|
||||
|
||||
" Latex
|
||||
Plug 'xuhdev/vim-latex-live-preview', { 'for': 'tex' }
|
||||
Plug 'vim-latex/vim-latex', { 'for': 'tex' }
|
||||
Plug 'vim-scripts/AnsiEsc.vim', { 'for': 'man' }
|
||||
" Plug 'powerman/vim-plugin-AnsiEsc'
|
||||
Plug 'mboughaba/i3config.vim'
|
||||
call plug#end()
|
||||
|
||||
"}}}
|
||||
" Syntax options{{{
|
||||
"
|
||||
|
||||
" Enable syntax and set color scheme
|
||||
syntax on
|
||||
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
set smarttab
|
||||
set virtualedit=block
|
||||
|
||||
"destaque no númer de linhas
|
||||
set number
|
||||
set relativenumber
|
||||
|
||||
"display whitespace
|
||||
set listchars=tab:>-,trail:~,extends:>,precedes:<
|
||||
set listchars=space:_,eol:;,tab:>-,trail:~,extends:>,precedes:<
|
||||
set list
|
||||
|
||||
"ativa o mouse
|
||||
set mouse =a
|
||||
set clipboard +=unnamedplus
|
||||
set title
|
||||
"}}}
|
||||
" Gay colors{{{
|
||||
|
||||
if (empty($TMUX))
|
||||
if (has('nvim'))
|
||||
let $NVIM_TUI_ENABLE_TRUE_COLOR = 1
|
||||
endif
|
||||
if (has('termguicolors'))
|
||||
set termguicolors
|
||||
endif
|
||||
endif
|
||||
|
||||
colorscheme minimalist
|
||||
|
||||
set background=dark
|
||||
|
||||
"background color is transparent
|
||||
highlight Normal guibg=None
|
||||
highlight EndOfBuffer guibg=None guifg=#303030
|
||||
highlight SpecialKey guibg=None guifg=#cc5757
|
||||
|
||||
"Line numers
|
||||
highlight LineNr term=bold ctermfg=9 guifg=#cc5757 guibg=None
|
||||
|
||||
"Make whitespace dark
|
||||
highlight NonText ctermfg=black guifg=#252525 guibg=None
|
||||
" highlight SpecialKey ctermfg=black guifg=#252525 guibg=None
|
||||
|
||||
"Current line
|
||||
set cursorline
|
||||
highlight CursorLine term=bold cterm=bold gui=Bold guibg=#191919
|
||||
highlight CursorLineNr term=bold cterm=bold gui=Bold guibg=#191919 guifg=white
|
||||
"}}}
|
||||
" Keys{{{
|
||||
"
|
||||
|
||||
" Easy comment toggle
|
||||
nmap <silent> gc :Commentary<CR>
|
||||
xmap <silent> gc :Commentary<CR>
|
||||
|
||||
" Toggle file manager
|
||||
map <silent> <C-n> :NERDTreeToggle %:p:h<CR>
|
||||
|
||||
" EasyAlign
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
|
||||
" Simplify window navigation
|
||||
nnoremap <silent> <C-h> <C-w><C-h>
|
||||
nnoremap <silent> <C-j> <C-w><C-j>
|
||||
nnoremap <silent> <C-k> <C-w><C-k>
|
||||
nnoremap <silent> <C-l> <C-w><C-l>
|
||||
|
||||
" Interact with language server
|
||||
" map <silent> <C-Space> :<CR>
|
||||
" nnoremap <silent> gd :ALEGoToDefinition<CR>
|
||||
" nnoremap <silent> gh :call LanguageClient#textDocument_hover()<CR>
|
||||
" nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
|
||||
" nnoremap <silent> gr :call LanguageClient#textDocument_references()<CR>
|
||||
" nnoremap <silent> gs :call LanguageClient#textDocument_documentSymbol()<CR>
|
||||
" nnoremap <silent> gR :call LanguageClient#textDocument_rename()<CR>
|
||||
nnoremap <F5> :call LanguageClient_contextMenu()<CR>
|
||||
" Or map each action separately
|
||||
nnoremap <silent> gh :call LanguageClient#textDocument_hover()<CR>
|
||||
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
|
||||
nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
|
||||
inoremap <C-space> :call LanguageClient#complete()<CR>
|
||||
|
||||
"}}}
|
||||
" Lanugage Server{{{
|
||||
"
|
||||
" Set this variable to 1 to fix files when you save them.
|
||||
" let g:ale_fix_on_save = 1
|
||||
set hidden
|
||||
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'rust': ['rustup', 'run', 'stable', 'rls'],
|
||||
\ 'python': ['/usr/bin/pyls'],
|
||||
\ 'tex': ['texlab'],
|
||||
\ 'c': ['cquery', '--log-file=/tmp/cq.log'],
|
||||
\ 'cpp': ['cquery', '--log-file=/tmp/cq.log'],
|
||||
\ }
|
||||
|
||||
" Auto format on save
|
||||
autocmd BufWritePre *.py call LanguageClient#textDocument_formatting_sync()
|
||||
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
|
||||
call deoplete#custom#source('LanguageClient',
|
||||
\ 'min_pattern_length',
|
||||
\ 2)
|
||||
" Configure deoplete to use language server
|
||||
|
||||
"python env{{{
|
||||
" MUST NOT BE INDENTED!
|
||||
py3 << EOF
|
||||
import os
|
||||
import sys
|
||||
if 'VIRTUAL_ENV' in os.environ:
|
||||
project_base_dir = os.environ['VIRTUAL_ENV']
|
||||
activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
|
||||
execfile(activate_this, dict(__file__=activate_this))
|
||||
EOF
|
||||
"}}}
|
||||
" Latex{{{
|
||||
let g:livepreview_previewer = 'zathura'
|
||||
autocmd FileType tex LLPStartPreview
|
||||
"}}}
|
||||
"}}}
|
||||
"Hide statusbar{{{
|
||||
let s:hidden_all = 0
|
||||
function! ToggleHiddenAll()
|
||||
if s:hidden_all == 0
|
||||
let s:hidden_all = 1
|
||||
set noshowmode
|
||||
set noruler
|
||||
set laststatus=0
|
||||
set noshowcmd
|
||||
else
|
||||
let s:hidden_all = 0
|
||||
set showmode
|
||||
set ruler
|
||||
set laststatus=2
|
||||
set showcmd
|
||||
endif
|
||||
endfunction
|
||||
|
||||
nnoremap <S-h> :call ToggleHiddenAll()<CR>
|
||||
call ToggleHiddenAll()
|
||||
"}}}
|
||||
" vim:foldmethod=marker
|
|
@ -1,23 +0,0 @@
|
|||
set recolor
|
||||
set recolor-keephue
|
||||
set recolor-lightcolor "#202020"
|
||||
set recolor-darkcolor "#AAAAAA"
|
||||
|
||||
set adjust-open width
|
||||
|
||||
set font "FiraCode 11"
|
||||
set guioptions ""
|
||||
|
||||
set default-bg "#202020"
|
||||
|
||||
set inputbar-bg "#303030"
|
||||
set inputbar-fg "#ffffff"
|
||||
|
||||
set statusbar-bg "#202020"
|
||||
set statusbar-fg "#ffffff"
|
||||
|
||||
set completion-bg "#303030"
|
||||
set completion-fg "#ffffff"
|
||||
|
||||
set completion-highlight-bg "#cc5757"
|
||||
set completion-highlight-fg "#ffffff"
|
|
@ -1,7 +0,0 @@
|
|||
https://raw.githubusercontent.com/slashbeast/conf-mgmt/master/roles/home_files/files/DOTzshrc https://raw.githubusercontent.com/slashbeast/conf-mgmt/master/roles/home_files/files/DOTzshrc
|
||||
https://github.com/unixorn/awesome-zsh-plugins GitHub - unixorn/awesome-zsh-plugins: A collection of ZSH frameworks, plugins & themes inspired by the various awesome list collections out there.
|
||||
https://www.qutebrowser.org/quickstart.html qutebrowser quickstart | qutebrowser
|
||||
https://web.whatsapp.com/ WhatsApp Web
|
||||
https://github.com/jakehamilton/dotfiles/blob/master/neovim/init.vim dotfiles/init.vim at master · jakehamilton/dotfiles
|
||||
https://pt.symbolab.com/ Solucionador matemático Symbolab - calculadora passo a passo
|
||||
https://www.invidio.us/ Invidious
|
|
@ -1,294 +0,0 @@
|
|||
# Autogenerated config.py
|
||||
# Documentation:
|
||||
# qute://help/configuring.html
|
||||
# qute://help/settings.html
|
||||
|
||||
# Uncomment this to still load settings configured via autoconfig.yml
|
||||
# config.load_autoconfig()
|
||||
|
||||
# Aliases for commands. The keys of the given dictionary are the
|
||||
# aliases, while the values are the commands they map to.
|
||||
# Type: Dict
|
||||
c.aliases = {'q': 'close', 'qa': 'quit', 'w': 'session-save', 'wq': 'quit --save', 'wqa': 'quit --save'}
|
||||
|
||||
# Load a restored tab as soon as it takes focus.
|
||||
# Type: Bool
|
||||
c.session.lazy_restore = True
|
||||
|
||||
# Always restore open sites when qutebrowser is reopened.
|
||||
# Type: Bool
|
||||
c.auto_save.session = True
|
||||
|
||||
# User agent to send. Unset to send the default. Note that the value
|
||||
# read from JavaScript is always the global value.
|
||||
# Type: String
|
||||
c.content.headers.user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
|
||||
|
||||
# Enable JavaScript.
|
||||
# Type: Bool
|
||||
config.set('content.javascript.enabled', True, 'file://*')
|
||||
|
||||
# Enable JavaScript.
|
||||
# Type: Bool
|
||||
config.set('content.javascript.enabled', True, 'chrome://*/*')
|
||||
|
||||
# Enable JavaScript.
|
||||
# Type: Bool
|
||||
config.set('content.javascript.enabled', True, 'qute://*/*')
|
||||
|
||||
# Allow websites to show notifications.
|
||||
# Type: BoolAsk
|
||||
# Valid values:
|
||||
# - true
|
||||
# - false
|
||||
# - ask
|
||||
config.set('content.notifications', False, 'https://www.1337x.to')
|
||||
|
||||
# Allow websites to show notifications.
|
||||
# Type: BoolAsk
|
||||
# Valid values:
|
||||
# - true
|
||||
# - false
|
||||
# - ask
|
||||
config.set('content.notifications', True, 'https://www.reddit.com')
|
||||
|
||||
# Shrink the completion to be smaller than the configured size if there
|
||||
# are no scrollbars.
|
||||
# Type: Bool
|
||||
c.completion.shrink = True
|
||||
|
||||
# CSS border value for hints.
|
||||
# Type: String
|
||||
c.hints.border = '2px solid #cc5757'
|
||||
|
||||
# Enable smooth scrolling for web pages. Note smooth scrolling does not
|
||||
# work with the `:scroll-px` command.
|
||||
# Type: Bool
|
||||
c.scrolling.smooth = True
|
||||
|
||||
# Hide the statusbar unless a message is shown.
|
||||
# Type: Bool
|
||||
c.statusbar.hide = True
|
||||
|
||||
# When to show favicons in the tab bar.
|
||||
# Type: String
|
||||
# Valid values:
|
||||
# - always: Always show favicons.
|
||||
# - never: Always hide favicons.
|
||||
# - pinned: Show favicons only on pinned tabs.
|
||||
c.tabs.favicons.show = 'never'
|
||||
|
||||
# How to behave when the last tab is closed.
|
||||
# Type: String
|
||||
# Valid values:
|
||||
# - ignore: Don't do anything.
|
||||
# - blank: Load a blank page.
|
||||
# - startpage: Load the start page.
|
||||
# - default-page: Load the default page.
|
||||
# - close: Close the window.
|
||||
c.tabs.last_close = 'close'
|
||||
|
||||
# When to show the tab bar.
|
||||
# Type: String
|
||||
# Valid values:
|
||||
# - always: Always show the tab bar.
|
||||
# - never: Always hide the tab bar.
|
||||
# - multiple: Hide the tab bar if only one tab is open.
|
||||
# - switching: Show the tab bar when switching tabs.
|
||||
c.tabs.show = 'switching'
|
||||
|
||||
# Duration (in milliseconds) to show the tab bar before hiding it when
|
||||
# tabs.show is set to 'switching'.
|
||||
# Type: Int
|
||||
c.tabs.show_switching_delay = 2000
|
||||
|
||||
# Format to use for the tab title. The following placeholders are
|
||||
# defined: * `{perc}`: Percentage as a string like `[10%]`. *
|
||||
# `{perc_raw}`: Raw percentage, e.g. `10`. * `{current_title}`: Title of
|
||||
# the current web page. * `{title_sep}`: The string ` - ` if a title is
|
||||
# set, empty otherwise. * `{index}`: Index of this tab. * `{id}`:
|
||||
# Internal tab ID of this tab. * `{scroll_pos}`: Page scroll position. *
|
||||
# `{host}`: Host of the current web page. * `{backend}`: Either
|
||||
# ''webkit'' or ''webengine'' * `{private}`: Indicates when private mode
|
||||
# is enabled. * `{current_url}`: URL of the current web page. *
|
||||
# `{protocol}`: Protocol (http/https/...) of the current web page. *
|
||||
# `{audio}`: Indicator for audio/mute status.
|
||||
# Type: FormatString
|
||||
c.tabs.title.format = '{current_title}'
|
||||
|
||||
# Width (in pixels) of the progress indicator (0 to disable).
|
||||
# Type: Int
|
||||
c.tabs.indicator.width = 0
|
||||
|
||||
# Background color of the completion widget for odd rows.
|
||||
# Type: QssColor
|
||||
c.colors.completion.odd.bg = '#202020'
|
||||
|
||||
# Background color of the completion widget for even rows.
|
||||
# Type: QssColor
|
||||
c.colors.completion.even.bg = '#303030'
|
||||
|
||||
# Background color of the completion widget category headers.
|
||||
# Type: QssColor
|
||||
c.colors.completion.category.bg = '#303030'
|
||||
|
||||
# Background color of the selected completion item.
|
||||
# Type: QssColor
|
||||
c.colors.completion.item.selected.bg = '#cc5757'
|
||||
|
||||
# Top border color of the selected completion item.
|
||||
# Type: QssColor
|
||||
c.colors.completion.item.selected.border.top = '#550000'
|
||||
|
||||
# Bottom border color of the selected completion item.
|
||||
# Type: QssColor
|
||||
c.colors.completion.item.selected.border.bottom = '#550000'
|
||||
|
||||
# Foreground color of the matched text in the selected completion item.
|
||||
# Type: QtColor
|
||||
c.colors.completion.item.selected.match.fg = 'white'
|
||||
|
||||
# Color of the scrollbar in the completion view.
|
||||
# Type: QssColor
|
||||
c.colors.completion.scrollbar.bg = '#303030'
|
||||
|
||||
# Background color for the download bar.
|
||||
# Type: QssColor
|
||||
c.colors.downloads.bar.bg = '#202020'
|
||||
|
||||
# Color gradient start for download backgrounds.
|
||||
# Type: QtColor
|
||||
c.colors.downloads.start.bg = '#5757cc'
|
||||
|
||||
# Color gradient stop for download backgrounds.
|
||||
# Type: QtColor
|
||||
c.colors.downloads.stop.bg = '#57cc57'
|
||||
|
||||
# Font color for hints.
|
||||
# Type: QssColor
|
||||
c.colors.hints.fg = 'white'
|
||||
|
||||
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||
# for transparency.
|
||||
# Type: QssColor
|
||||
c.colors.hints.bg = '#303030'
|
||||
|
||||
# Font color for the matched part of hints.
|
||||
# Type: QtColor
|
||||
c.colors.hints.match.fg = '#cc5757'
|
||||
|
||||
# Highlight color for keys to complete the current keychain.
|
||||
# Type: QssColor
|
||||
c.colors.keyhint.suffix.fg = '#cc5757'
|
||||
|
||||
# Background color of the keyhint widget.
|
||||
# Type: QssColor
|
||||
c.colors.keyhint.bg = 'rgba(30, 30, 30, 95%)'
|
||||
|
||||
# Background color of the statusbar.
|
||||
# Type: QssColor
|
||||
c.colors.statusbar.normal.bg = '#202020'
|
||||
|
||||
# Background color of the statusbar in command mode.
|
||||
# Type: QssColor
|
||||
c.colors.statusbar.command.bg = '#202020'
|
||||
|
||||
# Background color of the statusbar in caret mode with a selection.
|
||||
# Type: QssColor
|
||||
c.colors.statusbar.caret.selection.bg = '#cc5757'
|
||||
|
||||
# Background color of the tab bar.
|
||||
# Type: QssColor
|
||||
c.colors.tabs.bar.bg = '#202020'
|
||||
|
||||
# Background color of unselected odd tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.odd.bg = '#202020'
|
||||
|
||||
# Background color of unselected even tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.even.bg = '#202020'
|
||||
|
||||
# Foreground color of selected odd tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.selected.odd.fg = 'white'
|
||||
|
||||
# Background color of selected odd tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.selected.odd.bg = '#cc5757'
|
||||
|
||||
# Foreground color of selected even tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.selected.even.fg = 'white'
|
||||
|
||||
# Background color of selected even tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.selected.even.bg = '#cc5757'
|
||||
|
||||
# Background color of pinned selected odd tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.pinned.selected.odd.bg = '#303030'
|
||||
|
||||
# Background color of pinned selected even tabs.
|
||||
# Type: QtColor
|
||||
c.colors.tabs.pinned.selected.even.bg = '#303030'
|
||||
|
||||
# Font used in the completion widget.
|
||||
# Type: Font
|
||||
c.fonts.completion.entry = '16px Inter'
|
||||
|
||||
# Font used in the completion categories.
|
||||
# Type: Font
|
||||
c.fonts.completion.category = '16px Hack'
|
||||
|
||||
# Font used for the debugging console.
|
||||
# Type: QtFont
|
||||
c.fonts.debug_console = '16px Hack'
|
||||
|
||||
# Font used for the downloadbar.
|
||||
# Type: Font
|
||||
c.fonts.downloads = '16px Hack'
|
||||
|
||||
# Font used for the hints.
|
||||
# Type: Font
|
||||
c.fonts.hints = 'bold 16px Hack'
|
||||
|
||||
# Font used in the keyhint widget.
|
||||
# Type: Font
|
||||
c.fonts.keyhint = '16px Hack'
|
||||
|
||||
# Font used for error messages.
|
||||
# Type: Font
|
||||
c.fonts.messages.error = '16px Hack'
|
||||
|
||||
# Font used for info messages.
|
||||
# Type: Font
|
||||
c.fonts.messages.info = '16px Hack'
|
||||
|
||||
# Font used for warning messages.
|
||||
# Type: Font
|
||||
c.fonts.messages.warning = '16px Hack'
|
||||
|
||||
# Font used for prompts.
|
||||
# Type: Font
|
||||
c.fonts.prompts = '16px Inter'
|
||||
|
||||
# Font used in the statusbar.
|
||||
# Type: Font
|
||||
c.fonts.statusbar = '16px Hack'
|
||||
|
||||
# Font used in the tab bar.
|
||||
# Type: QtFont
|
||||
c.fonts.tabs = '14px Inter'
|
||||
|
||||
# Bindings for normal mode
|
||||
config.bind(',m', 'spawn --userscript view_in_mpv')
|
||||
config.bind(';m', 'hint links spawn mpv --fs {hint-url}')
|
||||
config.bind('J', 'tab-prev')
|
||||
config.bind('K', 'tab-next')
|
||||
config.bind('j', 'scroll down')
|
||||
config.bind('k', 'scroll up')
|
||||
config.bind('spawn', '--userscript view_in_mpv')
|
||||
|
||||
# Bindings for insert mode
|
||||
config.bind('<Ctrl+i>', 'spawn --userscript qute-keepass -p ~/Nextcloud/Senhas/Senhas.kdbx', mode='insert')
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue