Compare commits

...
This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.

325 Commits
old ... main

Author SHA1 Message Date
lelgenio 370e33c9ba add and use git cleaning scripts 2020-10-23 02:21:18 -03:00
lelgenio 6764ee4285 remove fonts 2020-10-23 02:01:25 -03:00
lelgenio 1ed2194db2 remove .themes 2020-10-23 02:00:34 -03:00
lelgenio eafce70970 remove icons folder 2020-10-23 01:59:53 -03:00
lelgenio 246f962e7f transparent bg 2020-10-22 23:55:32 -03:00
lelgenio ce81746c0d update colors 2020-10-22 17:50:08 -03:00
lelgenio 736591640c use regular yellow 2020-10-22 15:00:06 -03:00
lelgenio 39fe12ba09 add fish colors section 2020-10-22 14:59:11 -03:00
lelgenio d635850229 update colors 2020-10-22 14:58:42 -03:00
lelgenio f5dec578b3 fzf: set highlight color 2020-10-22 14:56:54 -03:00
lelgenio b6cec6d713 add fish yy bind 2020-10-22 14:55:46 -03:00
lelgenio 1186e23540 remove useless function 2020-10-22 14:50:51 -03:00
lelgenio 8fcf3fa374 update colors a little 2020-10-22 13:00:54 -03:00
lelgenio 99ef5a5cad always use capitaine dark 2020-10-22 12:23:37 -03:00
lelgenio 811383bee3 use subprofiles 2020-10-22 12:09:42 -03:00
lelgenio be3cb32d43 add the forbidden one 2020-10-22 02:08:38 -03:00
lelgenio fe19fbdfda add oposite side of selection 2020-10-22 01:41:55 -03:00
lelgenio 26caa8e42e commands are default color 2020-10-21 04:05:08 -03:00
lelgenio 7eeadeca2a Formating 2020-10-21 03:52:40 -03:00
lelgenio a054533388 update colors 2020-10-21 01:05:06 -03:00
lelgenio 7a0da1f026 remove static gtk theme 2020-10-21 01:04:35 -03:00
lelgenio 2fb46d90e4 add abbr's 2020-10-21 00:40:41 -03:00
lelgenio 1323274dd7 change blue 2020-10-21 00:38:54 -03:00
lelgenio 3d1f36baa5 fix selection color 2020-10-21 00:38:42 -03:00
lelgenio 6f8fea3e76 don't auto update 2020-10-21 00:27:51 -03:00
lelgenio 927572c628 don't reset audio if dotdrop 2020-10-21 00:19:55 -03:00
lelgenio 314fc89c05 use SIGHUP 2020-10-21 00:06:47 -03:00
lelgenio fcd7d62bb0 kitty rework 2020-10-20 23:48:52 -03:00
lelgenio 3810bcb88b update fzf 2020-10-20 23:42:50 -03:00
lelgenio e25f16f3e2 fix path 2020-10-20 23:32:26 -03:00
lelgenio eb45798b9c cleanup 2020-10-20 21:06:29 -03:00
lelgenio 51e86e04ce add autoreload to fish 2020-10-20 19:12:49 -03:00
lelgenio 2dab49dc15 extract APPID 2020-10-20 17:55:27 -03:00
lelgenio 1265cddc89 clean header 2020-10-20 17:53:46 -03:00
lelgenio f55dc03544 add tmux.conf 2020-10-20 17:18:52 -03:00
lelgenio 37acf84797 fix notification on cron 2020-10-20 16:56:33 -03:00
lelgenio 4df611886c add move to next/prev workspace 2020-10-20 16:19:29 -03:00
lelgenio 2b6fa172b1 make surround repeatable 2020-10-20 15:46:50 -03:00
lelgenio f77d938a2d format and add update fzf colors 2020-10-20 15:45:23 -03:00
lelgenio e8bf24a68f set global fzf config 2020-10-20 14:58:40 -03:00
lelgenio 2c91ad91c9 allow running templated scripts 2020-10-20 13:54:12 -03:00
lelgenio f1e0b1977a fix color 2020-10-20 03:35:52 -03:00
lelgenio d75ed33539 format and enable spellchecking 2020-10-20 02:54:33 -03:00
lelgenio ae4870c505 update README 2020-10-20 02:33:43 -03:00
lelgenio d202ed3067 enable git for exa 2020-10-20 02:04:24 -03:00
lelgenio ebe6605a7b add ... cd 2020-10-20 01:44:02 -03:00
lelgenio 7535554906 add gpg and pam-gnupg 2020-10-18 14:25:08 -03:00
lelgenio 2866ce2d23 add a delay to ydotool 2020-10-18 13:38:52 -03:00
lelgenio 0576a060cc add option for using wofi or bemenu based on config 2020-10-18 03:01:39 -03:00
lelgenio eb787b093a only use crontab on non root users 2020-10-17 20:22:54 -03:00
lelgenio 3a5604d337 show dst instead of src 2020-10-17 20:09:10 -03:00
lelgenio 683e158342 fix backup script 2020-10-17 19:56:53 -03:00
lelgenio ed1932e86a fixed notification 2020-10-17 17:28:48 -03:00
lelgenio fc419313ed add savegame backup 2020-10-17 17:26:40 -03:00
lelgenio 27e0e0256f add rclone 2020-10-17 14:29:17 -03:00
lelgenio 80e5f59cf7 fix everything about dotdrop default behavior 2020-10-17 04:11:55 -03:00
lelgenio 5f293b4f53 add username and mail options, using templating where possible 2020-10-17 03:32:16 -03:00
lelgenio 7f6018544a remove nextcloud dep 2020-10-17 03:26:05 -03:00
lelgenio 04aedb5ab7 add vdirsyncer action 2020-10-16 21:15:06 -03:00
lelgenio 156829a642 switch to scrollbar style now that bug is fixed 2020-10-16 21:14:30 -03:00
lelgenio b89adc4b57 clean up aliases 2020-10-16 21:13:11 -03:00
lelgenio c0bfa80aa3 . 2020-10-16 03:38:48 -03:00
lelgenio e8a627be24 add terminal and launcher as a dotdrop option 2020-10-16 02:27:00 -03:00
lelgenio c7ab6a0172 use ctrl+n for GFiles 2020-10-16 02:13:47 -03:00
lelgenio 8078541f4f fix dark and light theme 2020-10-16 02:11:27 -03:00
lelgenio dfc285f305 only do LD_PRELOAD if file exists 2020-10-15 16:05:11 -03:00
lelgenio 7ef1c723b0 fix bottom border transition 2020-10-15 16:04:48 -03:00
lelgenio d8a9265999 fix screensharing bug 2020-10-15 14:23:51 -03:00
lelgenio 6b096293c5 fix bemenu pkgname 2020-10-15 14:23:31 -03:00
lelgenio 93c1e159d7 fix fix sudo and doas 2020-10-14 11:18:47 -03:00
lelgenio 9e46937a87 add cargo to path and store dotdrop profile 2020-10-14 02:35:14 -03:00
lelgenio 38a8a84fca add dark theme variant 2020-10-13 13:47:36 -03:00
lelgenio e4d419a139 add themes and fonts 2020-10-12 02:27:12 -03:00
lelgenio 6ee23c8f48 use explicit python path 2020-10-12 00:28:30 -03:00
lelgenio e722580a2e improve dark theme 2020-10-11 12:54:05 -03:00
lelgenio 6d239f1f36 sue white on tty and fix typo 2020-10-11 03:34:36 -03:00
lelgenio 4c64e1ae1b add sshstrap 2020-10-11 02:55:03 -03:00
lelgenio e7ab1404d1 add light option 2020-10-10 22:38:31 -03:00
lelgenio beb686653c fix kvantum 2020-10-10 19:12:02 -03:00
lelgenio 154a9d74a4 change some colors 2020-10-10 19:11:45 -03:00
lelgenio 28eb183052 add imagemagick 2020-10-10 18:21:35 -03:00
lelgenio 6e080d89fd don't autostart terminal 2020-10-10 13:59:24 -03:00
lelgenio 05204166c0 add thunar deps 2020-10-10 03:42:30 -03:00
lelgenio 7df4667af8 add bling to waybar 2020-10-10 03:35:37 -03:00
lelgenio 39bf993bfc use accent selected item 2020-10-10 02:58:14 -03:00
lelgenio 49e9d937b9 fix forecast 2020-10-10 02:43:28 -03:00
lelgenio 656ffdfa73 use wofi 2020-10-10 02:43:08 -03:00
lelgenio 21c126577a rework some colors and remove safety lines from dotdrop formating 2020-10-10 02:19:59 -03:00
lelgenio f5909eb387 improvements to white theme 2020-10-10 01:47:05 -03:00
lelgenio aabce51283 add light theme 2020-10-10 00:14:55 -03:00
lelgenio 274a9735d8 fix kanshi running 2020-10-09 21:38:58 -03:00
lelgenio ce9eee57d1 fix syntax error 2020-10-09 16:48:17 -03:00
lelgenio 2cd9fc99a1 move assigns to separate fold 2020-10-09 12:02:19 -03:00
lelgenio df81b6116d fix display settings 2020-10-09 01:24:27 -03:00
lelgenio b1ad52cf78 test 2020-10-09 00:25:09 -03:00
lelgenio 1f9fefa1d8 organize theme names into a object 2020-10-08 17:19:18 -03:00
lelgenio da636674f8 remove redundant line 2020-10-08 16:53:44 -03:00
lelgenio 57d0059e8a formating 2020-10-08 16:31:32 -03:00
lelgenio 334c30e84d don't backup 2020-10-08 16:22:26 -03:00
lelgenio db5cea8106 cleanup 2020-10-08 16:20:14 -03:00
lelgenio 57b347f045 fix background 2020-10-08 16:10:37 -03:00
lelgenio ae7cb4ef44 clean user agent 2020-10-08 12:39:16 -03:00
lelgenio a4057b344e remove some comments 2020-10-08 12:17:23 -03:00
lelgenio 4bc68de5f8 fix swayidle syntax 2020-10-08 12:14:32 -03:00
lelgenio 753d26521e major clean-up 2020-10-06 22:56:10 -03:00
lelgenio f6c5e1eda4 remove bloat 2020-10-06 22:39:09 -03:00
lelgenio f408944387 revome reference to stow 2020-10-06 22:15:23 -03:00
lelgenio 5f993d838b use thunar 2020-10-06 20:57:35 -03:00
lelgenio da8a5797e8 restore PKGBUILD 2020-10-06 17:58:44 -03:00
lelgenio 35bf63bee3 remove metapkg 2020-10-06 11:03:20 -03:00
lelgenio 2580af8bae use printf 2020-10-06 11:02:31 -03:00
lelgenio 94232e23c4 remove fisher 2020-10-06 11:01:55 -03:00
lelgenio 22579a679b use pidof instead of pgrep 2020-10-06 04:08:16 -03:00
lelgenio 59e97cfaf8 get rid of nemo 2020-10-06 03:59:37 -03:00
lelgenio 6f739f8f12 fixes 2020-10-06 03:58:33 -03:00
lelgenio 302240df65 use a sorted PATH to avoid re-runs 2020-10-05 21:09:07 -03:00
lelgenio 467d4fac4b use more printf and less echo -e, and add cursor_size 2020-10-05 20:58:06 -03:00
lelgenio 65fcf5ddee fix more syntax errors 2020-10-05 19:25:31 -03:00
lelgenio 592011738b use correct syntax 2020-10-05 19:21:51 -03:00
lelgenio 4d0e2d3355 better completion and use ranger by default 2020-10-05 19:04:58 -03:00
lelgenio a3e979aa31 fix syntax 2020-10-05 19:04:39 -03:00
lelgenio fc118808d4 . 2020-10-03 03:21:33 -03:00
lelgenio 0cad708b4c disable bar 2020-10-03 03:10:31 -03:00
lelgenio d4a490c801 map , ^ 2020-10-03 02:33:35 -03:00
lelgenio 2270e7f586 formatting 2020-10-03 01:38:36 -03:00
lelgenio 1a74ac6edb fix bug 2020-10-03 01:02:50 -03:00
lelgenio e43c5de472 add showkeys 2020-10-02 21:34:21 -03:00
lelgenio 416ab47ce3 format 2020-10-02 21:01:15 -03:00
lelgenio b89eb0bee1 ignore .srcinfo 2020-10-02 20:28:03 -03:00
lelgenio 9720ce505d make a replacements section 2020-10-02 20:24:24 -03:00
lelgenio 2e4961ee0a major fixes 2020-10-02 20:24:04 -03:00
lelgenio 749eb9a5c4 separate screen configuration 2020-10-02 18:11:27 -03:00
lelgenio dc8bbd29d0 use the better command for the job 2020-10-02 02:23:05 -03:00
lelgenio 280f04fa78 use natural scrolling 2020-10-02 01:08:00 -03:00
lelgenio 8b0b8e6450 use custom keys 2020-10-02 00:59:45 -03:00
lelgenio c691bd9df6 . 2020-10-02 00:59:36 -03:00
lelgenio cd2de8744b use 4 cols of indent 2020-10-02 00:59:06 -03:00
lelgenio 22e0acbedc Overhaul formating 2020-10-02 00:58:50 -03:00
lelgenio 0a3778361c formating 2020-10-01 23:04:49 -03:00
lelgenio 5f6e4ee7bd swap password and pulseaudio-sink 2020-10-01 22:55:32 -03:00
lelgenio 906364833f add mailview 2020-10-01 19:15:02 -03:00
lelgenio 3801ad3640 temp fix for formating on waybar 2020-09-30 18:56:51 -03:00
lelgenio b7cf0d5e9b go crazy ahhaahah 2020-09-30 18:17:09 -03:00
lelgenio 5603dc6fea Fix swaylock wallpaper 2020-09-30 18:15:58 -03:00
lelgenio 9471ad2c1a add zoxide 2020-09-30 13:32:21 -03:00
lelgenio 77e7a000e8 improve mpv 2020-09-29 22:58:12 -03:00
lelgenio b7ad9e4994 quarentine kk 2020-09-29 01:43:19 -03:00
lelgenio a032920a0f standardize key.insertQuit 2020-09-28 18:41:04 -03:00
lelgenio 3be95bfe94 clean up 2 2020-09-28 16:27:57 -03:00
lelgenio 48ac43e2db clean up 2020-09-28 16:27:48 -03:00
lelgenio b71f0e47c3 indent trash 2020-09-28 05:56:18 -03:00
lelgenio 0200a6505f make the best prompt to ever exist 2020-09-28 05:52:15 -03:00
lelgenio 3165ba01fc Bravo Six, going dark 2020-09-28 05:11:49 -03:00
lelgenio e1ba3758c6 fix stupid parentesis 2020-09-28 05:11:21 -03:00
lelgenio e852733ca8 use controll q to quit 2020-09-28 04:34:19 -03:00
lelgenio 179ae1b7b2 add commenstring 2020-09-28 04:32:01 -03:00
lelgenio 547d9bbb1d fix startup and add quick scroll 2020-09-28 04:31:13 -03:00
lelgenio ab063ef052 back to duck 2020-09-28 04:30:24 -03:00
lelgenio 37e3ee64b7 remove latex plugin 2020-09-28 04:29:43 -03:00
lelgenio a0d6640ba9 add zoxide 2020-09-28 04:29:16 -03:00
lelgenio b49f7764d7 qol 2020-09-26 10:36:53 -03:00
lelgenio 4c98428d93 fix dark background on websites 2020-09-26 03:09:25 -03:00
lelgenio 07f6e10a9d . 2020-09-25 19:26:19 -03:00
lelgenio 1e5c79a204 replace wall of text with templating 2020-09-25 19:26:09 -03:00
lelgenio 9739db6e8a fix keyboard layout switching 2020-09-25 17:38:15 -03:00
lelgenio 280eac37ad add faster scrolling option 2020-09-25 17:31:26 -03:00
lelgenio bfab2bda27 add ranger to config 2020-09-25 17:16:24 -03:00
lelgenio fd84a7b74a add devicons to config 2020-09-25 17:16:05 -03:00
lelgenio 85c50f1d14 minor fixes 2020-09-25 16:56:14 -03:00
lelgenio bfbda39733 major improvements to readability and other kbd layouts 2020-09-25 15:15:28 -03:00
lelgenio 730b71a0b4 make fzf make sense 2020-09-25 14:41:04 -03:00
lelgenio 437e11e87a add key.insert.upper() as insert at beginning of line 2020-09-25 14:35:15 -03:00
lelgenio e14c0c0949 define tab switching keys 2020-09-25 03:28:59 -03:00
lelgenio 19329b587e add vcs and status to prompt 2020-09-25 03:07:59 -03:00
lelgenio 46c5f2a416 fixes for colemak 2020-09-25 02:35:43 -03:00
lelgenio 46fbbb41ed use own version of prompt 2020-09-25 02:35:22 -03:00
lelgenio e19eb28369 update blender version 2020-09-25 02:33:20 -03:00
lelgenio bd842460cd fix pkg name 2020-09-25 02:32:52 -03:00
lelgenio 6040681e76 add metapkg 2020-09-24 15:03:01 -03:00
lelgenio 42d2abedc0 make bindings more generic 2020-09-24 14:46:06 -03:00
lelgenio 4634736c6b make bindings more generic 2020-09-24 14:44:17 -03:00
lelgenio 2a4423c66c add qutebrowser screen sharing 2020-09-24 01:41:07 -03:00
lelgenio 099b1ba7f5 fix object movement 2020-09-24 01:37:37 -03:00
lelgenio 76d83c6803 fix insert mode bind 2020-09-23 16:14:18 -03:00
lelgenio 25d9ddf86c fix window movement 2020-09-23 16:09:10 -03:00
lelgenio bd4fa67f82 fix syntax 2020-09-21 20:30:26 -03:00
lelgenio 5de5fd2577 remove stupid binding 2020-09-21 18:52:53 -03:00
lelgenio 53cf14dbe9 remove gitgutter keybinds 2020-09-20 23:36:40 -03:00
lelgenio 4d5262b6c4 compatibility improvements 2020-09-20 21:46:18 -03:00
lelgenio 85a02ee966 . 2020-09-20 13:17:25 -03:00
lelgenio 62c05d1ef1 . 2020-09-19 22:43:28 -03:00
lelgenio 00365e24ee disable dark mode 2020-09-19 22:42:42 -03:00
lelgenio b24b20737f add clang format 2020-09-19 21:33:48 -03:00
lelgenio 68522b9cba improve vim for colemak 2020-09-19 18:26:04 -03:00
lelgenio 9b1da93454 use '< >' as AltGr 2020-09-19 18:22:36 -03:00
lelgenio cdb2405b89 fix music location 2020-09-19 18:18:41 -03:00
lelgenio 93da409d34 . 2020-08-20 02:10:31 -03:00
lelgenio cc1b3a4331 add sssway 2020-08-13 16:50:49 -03:00
lelgenio 9647846f68 fix greeting function 2020-08-06 21:14:24 -03:00
lelgenio cd0ace88fd add search engines 2020-08-04 12:12:13 -03:00
lelgenio 599d3884ed change volume icon 2020-08-04 12:11:53 -03:00
lelgenio 2d7cc80069 cleanup 2020-08-04 12:10:38 -03:00
lelgenio c2e302aed6 add mpv and imv 2020-07-24 02:19:32 -03:00
lelgenio cbe16320bb use wayland env vars only when starting sway 2020-07-24 01:26:26 -03:00
lelgenio c76628b8dd Use custom mpd status script 2020-07-22 14:25:05 -03:00
lelgenio 5fa0a82417 don't bother me :/ 2020-07-21 15:39:15 -03:00
lelgenio fabf228661 properly export variables 2020-07-20 12:23:27 -03:00
lelgenio b01fbd8225 fix multimonitor bug 2020-07-20 03:09:42 -03:00
lelgenio 496d85e2a3 better window duplication 2020-07-20 00:58:04 -03:00
lelgenio 1e46869b87 add kanshi 2020-07-19 20:07:50 -03:00
lelgenio 46c7bd4b1e save cwd 2020-07-19 19:33:06 -03:00
lelgenio 8902116af4 quiet window movement 2020-07-19 19:32:18 -03:00
lelgenio fbb1ae7eed remove round-vol 2020-07-15 03:25:08 -03:00
lelgenio 96a5bedfc2 add screenshotsh 2020-07-15 03:24:12 -03:00
lelgenio 183602bc79 add volumesh 2020-07-15 03:18:27 -03:00
lelgenio 89aca822df fix fish, add searches and improve kanshi 2020-07-14 18:54:01 -03:00
lelgenio 6ae8b57a35 fix bug 2020-07-13 00:52:55 -03:00
lelgenio 7f829d8535 add theme settings 2020-07-13 00:05:05 -03:00
lelgenio 51c722e3a0 fix greeting 2020-07-12 22:53:35 -03:00
lelgenio a1a5363b7a 😎😎😎😎😎 2020-07-12 03:02:43 -03:00
lelgenio ec34e7dbeb add crontab 2020-07-10 23:33:04 -03:00
lelgenio a17bd2e0f3 wow, such improvement, wow 2020-07-10 04:03:48 -03:00
lelgenio 1a42ecfd0a sway dwt off 2020-07-07 23:55:42 -03:00
lelgenio 2f383223ea start window manager 2020-07-07 15:13:22 -03:00
lelgenio 2459d78ef3 Merge branch 'novo' into main 2020-07-07 02:29:33 -03:00
lelgenio 79664857f3 fish greeting 2020-07-07 02:29:29 -03:00
lelgenio 94e38841d0 a 2020-07-06 18:16:29 -03:00
lelgenio a3ab362819 add neomutt 2020-07-03 20:38:41 -03:00
lelgenio e96cdb899e remove sudo/doas from light command 2020-07-03 20:35:32 -03:00
lelgenio 4540f70f96 fix tabs font 2020-07-03 20:34:40 -03:00
lelgenio 3705301123 v 2020-07-03 16:42:37 -03:00
lelgenio bd7ab5cfd6 move to wget 2020-07-02 02:35:52 -03:00
lelgenio 4a14aed895 Add dav vdirsyncer, khard and khal 2020-07-02 01:46:11 -03:00
lelgenio 8447e4247d Merge branch 'main' of git.disroot.org:lelgenio/dotfiles into main 2020-07-01 02:08:05 -03:00
lelgenio 35182009aa make vim better 2020-07-01 02:07:41 -03:00
lelgenio d7c2b1efee fine tuning 2020-06-30 04:09:45 -03:00
lelgenio 3a82723789 Atualizar 'README.md' 2020-06-29 05:31:41 +00:00
lelgenio 7adf2c6787 very minor stuff 2020-06-28 23:23:15 -03:00
lelgenio a26e27c52e make choosing language server easier 2020-06-26 19:36:36 -03:00
lelgenio fdfe1751ae caps as backspace 2020-06-25 18:14:45 -03:00
lelgenio cb23c2901e fish fix vi mode 2020-06-25 16:35:04 -03:00
lelgenio 871ef81b29 disable nerdtree key 2020-06-25 13:38:40 -03:00
lelgenio c0514aaa9c flatten tree 2020-06-25 12:09:48 -03:00
lelgenio d25ce133a8 bump 2020-06-25 03:00:04 -03:00
Leonardo Eugenio b5f8d1a19f Atualizar README.md, image.png arquivos 2020-06-25 05:54:57 +00:00
Leonardo Eugenio c1ac6d19da Adicionar LICENSE 2020-06-25 05:17:33 +00:00
lelgenio 773d74bc40 prepare for gruv maybe? 2020-06-24 01:08:16 -03:00
lelgenio 3f0ce3de00 stash3 2020-06-24 00:36:42 -03:00
lelgenio 62a075dece stash2 2020-06-24 00:34:36 -03:00
lelgenio e7f89f5db5 stash 2020-06-24 00:34:06 -03:00
lelgenio 7b0d572f3b visual changes 2020-06-23 17:09:22 -03:00
lelgenio 803f81ce59 fix for esc and space 2020-06-23 15:00:45 -03:00
lelgenio a76508a6b7 remove useless files 2020-06-23 14:33:22 -03:00
lelgenio d509d21a7f bump 2020-06-23 14:19:51 -03:00
lelgenio 6267b9ea79 small fixes 2020-06-23 11:52:48 -03:00
lelgenio 94561a176a add emoji picker 2020-06-22 18:39:00 -03:00
lelgenio 13834ac17e fix battery icon 2020-06-22 17:27:42 -03:00
lelgenio 6a5ede9e38 fix missing border sway 2020-06-22 16:44:03 -03:00
lelgenio a4994e6a81 update 2020-06-22 16:06:08 -03:00
lelgenio abc1080aa2 bump 2020-06-21 20:28:39 -03:00
lelgenio d39c2c1c5b update intaller 2020-06-21 20:19:46 -03:00
lelgenio 59fd1908d5 fix disk_clean on LUKS 2020-06-20 19:37:55 -03:00
lelgenio 346e57e5eb BIG COMMIT 2020-06-20 19:07:53 -03:00
lelgenio dd959e90ad update installer 2020-06-20 18:44:50 -03:00
lelgenio a7aa3ea617 move arhc_install to dotdrop 2020-06-20 17:57:50 -03:00
lelgenio 7d913f7cce move to dotdrop 2020-06-20 13:58:49 -03:00
lelgenio 0a3b5f461e :) 2020-06-17 13:52:30 -03:00
lelgenio 29e3fd871d :) 2020-06-17 05:25:10 -03:00
lelgenio 3eee54eb04 :) 2020-06-16 16:58:16 -03:00
lelgenio 0ef6816e8e update accent color 2020-05-21 21:34:08 -03:00
lelgenio 58e355cefc revert to overlay 2020-05-17 19:41:09 -03:00
lelgenio 65991b4e56 adapt to dvorak 2020-05-17 19:40:41 -03:00
lelgenio 36a67cfb6e add bspwm/sxhkd 2020-05-17 19:33:58 -03:00
lelgenio 7f27235ce6 use ly and some fixes to netctl 2020-05-03 02:28:33 -03:00
lelgenio 7361898aa3 use reflector on install 2020-05-03 00:56:17 -03:00
lelgenio 05f523ef90 fix disk size detection 2020-05-03 00:07:58 -03:00
lelgenio 5c1d3aba64 installer: don't use contiguos swap to avoid headache 2020-05-02 23:57:04 -03:00
lelgenio 7d9181bbc1 add round-vol script 2020-05-02 21:28:03 -03:00
lelgenio 5864cdb909 mime: move to transmission 2020-05-02 21:27:49 -03:00
lelgenio 17944a5505 waybar: better battery status 2020-05-02 21:26:47 -03:00
lelgenio 17576297f7 sway: add ignore mode 2020-05-02 21:26:06 -03:00
lelgenio 7d37899d38 fish: better environment variable config 2020-04-29 23:34:35 -03:00
lelgenio ff6af0bfba fish: remove edit-commandline since its already present(alt+e/v) 2020-04-28 00:22:11 -03:00
lelgenio 27cc19a096 add wdmenu 2020-04-27 19:24:16 -03:00
lelgenio 01867a3f01 wpass: fix for bmenu 2020-04-27 19:13:01 -03:00
lelgenio cb8f00e123 add 'launcher script' and add input to default groups 2020-04-27 03:54:08 -03:00
lelgenio 4d5a444596 bmenu: exit fullscreen when running 2020-04-26 03:43:54 -03:00
lelgenio caa2133dbd limit ytdl quality 2020-04-25 14:08:34 -03:00
lelgenio cc644f5feb bump 2020-04-25 01:10:37 -03:00
lelgenio 5237fbcc19 fish: beam on insert mode and other neat stuff 2020-04-24 20:21:12 -03:00
lelgenio cfb93f802e bump 2020-04-24 18:17:08 -03:00
lelgenio 478607389b add devicons 2020-04-24 16:38:24 -03:00
lelgenio efe4a29c3e bump 2020-04-23 18:59:39 -03:00
lelgenio d7386caebf fix in gui-cli 2020-04-23 18:59:14 -03:00
lelgenio b82d1af050 waybar: change from deluge to transmission 2020-04-23 18:58:49 -03:00
lelgenio fbf8c26277 neomutt: add mailcap 2020-04-23 18:58:08 -03:00
lelgenio 6be7682ae8 bump 2020-04-22 15:36:07 -03:00
lelgenio b375199bc4 add swayscreenshare 2020-04-22 14:34:57 -03:00
lelgenio eef7364ba4 mime: xdg on ranger 2020-04-22 00:53:17 -03:00
lelgenio 501237b4bd bump 2020-04-21 19:36:45 -03:00
lelgenio a7d06e8ef7 fix netctl auto-activation 2020-04-19 23:33:16 -03:00
lelgenio 65591f22ea bump 2020-04-19 23:30:25 -03:00
lelgenio 904f9328de bump 2020-04-19 23:27:35 -03:00
lelgenio ce42d42fcf move from dhclient to dhcpd 2020-04-19 17:47:45 -03:00
lelgenio 80075db83c move to netctl 2020-04-19 16:41:24 -03:00
lelgenio 96bd20d50a bump 2020-04-19 16:17:46 -03:00
lelgenio 899ef9cabc fix install 2020-04-18 01:17:07 -03:00
lelgenio 389b41b05d move to redshift git 2020-04-18 00:20:24 -03:00
lelgenio f6e03306de allow install failure on yay 2020-04-18 00:18:28 -03:00
lelgenio 7ca31213e9 bump 2020-04-17 23:37:44 -03:00
lelgenio ba17111257 bump 2020-04-17 23:24:01 -03:00
lelgenio daf82349a2 Merge branch 'master' of gitlab.com:lelgenio/dotfiles 2020-04-17 23:20:39 -03:00
lelgenio d0d5c1b6f9 bump 2020-04-17 23:20:04 -03:00
lelgenio f990dc99c6 bump 2020-04-17 23:17:35 -03:00
lelgenio 4367d4307e bump 2020-04-17 01:54:35 -03:00
lelgenio 99c23891c0 add wpass 2020-04-14 14:51:53 -03:00
lelgenio ccd9e9fd33 Revert "add etwm"
This reverts commit 86bbe1e5dd.
2020-04-14 11:26:40 -03:00
lelgenio cd00f053a4 add etwm 2020-04-14 11:06:27 -03:00
lelgenio 71fe233cd7 add gnupg agent 2020-04-11 18:38:34 -03:00
lelgenio 65aa0e117e script: add update-gdm-monitors 2020-04-06 23:48:09 -03:00
lelgenio ac4aeb4657 move to imv 2020-04-02 14:11:51 -03:00
lelgenio ab3857ea65 forecast fix rain 2020-04-02 02:04:30 -03:00
lelgenio 9702f4f2f9 back to sway 2020-04-02 00:57:15 -03:00
lelgenio 62a3259d5b waybar: remove urgent 2020-04-02 00:38:33 -03:00
lelgenio 2d7b3a835f mpv: add sponsorblock 2020-03-29 14:45:17 -03:00
116 changed files with 14233 additions and 5206 deletions

19
.gitignore vendored
View File

@ -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

674
LICENSE Normal file
View File

@ -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>.

View File

@ -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)

View File

@ -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

View File

@ -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"
}
]

View File

@ -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"
}
}

278
config.yaml Normal file
View File

@ -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

564
dotfiles/alacritty.yml Normal file
View File

@ -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

1492
dotfiles/blenderTheme.xml Normal file

File diff suppressed because it is too large Load Diff

2
dotfiles/clang-format Normal file
View File

@ -0,0 +1,2 @@
BasedOnStyle: Mozilla
IndentWidth: 4

12
dotfiles/crontab Normal file
View File

@ -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

28
dotfiles/dav/khal/config Normal file
View File

@ -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

View File

@ -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

View File

@ -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 @@}}" ]

320
dotfiles/fish.fish Normal file
View File

@ -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

View File

@ -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

2
dotfiles/gpg-agent.conf Normal file
View File

@ -0,0 +1,2 @@
allow-preset-passphrase
max-cache-ttl 604800

60
dotfiles/imv.conf Normal file
View File

@ -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

14
dotfiles/kanshi Normal file
View File

@ -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
}

41
dotfiles/kitty.conf Normal file
View File

@ -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

8
dotfiles/lesskey Normal file
View File

@ -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

17
dotfiles/mako.conf Normal file
View File

@ -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

View File

@ -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:

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=Torrent
Exec=/usr/bin/env transadd %U

View File

@ -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"

4
dotfiles/mpv.conf Normal file
View File

@ -0,0 +1,4 @@
ytdl-format='bestvideo[height<=1080][vcodec!=vp9]+bestaudio'
osd-fractions
save-position-on-quit
keep-open=yes

1
dotfiles/neomutt/mailcap Normal file
View File

@ -0,0 +1 @@
text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -collapse_br_tags -dump %s; nametemplate=%s.html; copiousoutput

25
dotfiles/neomutt/mbsyncrc Normal file
View File

@ -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

View File

@ -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/&nbsp;*/\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

View File

@ -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"
]
}
}
}

559
dotfiles/nvim/init.vim Normal file
View File

@ -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

323
dotfiles/qutebrowser.py Normal file
View File

@ -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

View File

@ -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

View File

@ -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
#-------------------------------------------

View File

@ -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),

6
dotfiles/rclone.conf Normal file
View File

@ -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/

3
dotfiles/scripts/_get-pass Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
pass "$@" | head -n1

View File

@ -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

View File

@ -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

12
dotfiles/scripts/_pam-gpg-strap Executable file
View File

@ -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

10
dotfiles/scripts/_sshstrap Executable file
View File

@ -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

64
dotfiles/scripts/bmenu Executable file
View File

@ -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

27
dotfiles/scripts/checkmail Executable file
View File

@ -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

17
dotfiles/scripts/color-picker Executable file
View File

@ -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 &

38
dotfiles/scripts/compile Executable file
View File

@ -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

4
dotfiles/scripts/displayd Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
pkill kanshi
kanshi

71
dotfiles/scripts/dzadd Executable file
View File

@ -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

7413
dotfiles/scripts/emoji Executable file

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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(){

16
dotfiles/scripts/launcher Executable file
View File

@ -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"

10
dotfiles/scripts/mpd-status Executable file
View File

@ -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

5
dotfiles/scripts/mpdDup Executable file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

38
dotfiles/scripts/screenshotsh Executable file
View File

@ -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

10
dotfiles/scripts/showkeys Executable file
View File

@ -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

7
dotfiles/scripts/sssway Executable file
View File

@ -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

View File

@ -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

15
dotfiles/scripts/terminal Executable file
View File

@ -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"

9
dotfiles/scripts/transadd Executable file
View File

@ -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."

View File

@ -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

113
dotfiles/scripts/volumesh Executable file
View File

@ -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

11
dotfiles/scripts/wdmenu Executable file
View File

@ -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"

23
dotfiles/scripts/windows10 Executable file
View File

@ -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

52
dotfiles/scripts/wpass Executable file
View File

@ -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

365
dotfiles/sway.conf Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
# This file is written by LXAppearance. Do not edit.
[Icon Theme]
Name=Default
Comment=Default Cursor Theme
Inherits={{@@ cursor_theme @@}}

24
dotfiles/tmux.conf Normal file
View File

@ -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

View File

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -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

120
dotfiles/waybar/style.css Normal file
View File

@ -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;
}

8
dotfiles/wofi/config Normal file
View File

@ -0,0 +1,8 @@
show=drun
prompt=Iniciar:
allow_images=true
allow_markup=true
term=terminal
insensitive=true
width=800
height=400

26
dotfiles/wofi/style.css Normal file
View File

@ -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 @@}};
}

39
dotfiles/zathura.conf Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,2 +0,0 @@
matchai/spacefish
jethrokuan/z

52
funcs.py Normal file
View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 &

BIN
image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 KiB

View File

@ -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}

View File

@ -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

105
lelmeta/PKGBUILD Executable file
View File

@ -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
)

View File

@ -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;

View File

@ -1,3 +0,0 @@
autofit=50%
slang=por
fullscreen

View File

@ -1 +0,0 @@
/usr/lib/mpv/mpris.so

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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