~mdkcore/dotfiles

743e8c28410c2606a4815cd0fa2ed18a8e1706f4 — Rodrigo Oliveira 10 days ago 3c1fe6d + 880408f main
Merge branch 'sync'
M .install.conf.yaml => .install.conf.yaml +10 -0
@@ 108,6 108,16 @@
    ~/.config/senpai/highlight:
        create: true
        path: senpai/highlight
    # aerc
    ~/.config/aerc/accounts.conf:
        create: true
        path: aerc/accounts.conf
    ~/.config/aerc/aerc.conf:
        create: true
        path: aerc/aerc.conf
    ~/.config/aerc/binds.conf:
        create: true
        path: aerc/binds.conf
    # scripts
    ~/.local/bin/udev-handler:
        create: true

A aerc/accounts.conf => aerc/accounts.conf +11 -0
@@ 0,0 1,11 @@
[mdkcore@qtrnn.io]
source   = imaps://mdkcore%40qtrnn.io@mail.runbox.com
outgoing = smtps://mdkcore%40qtrnn.io@mail.runbox.com
source-cred-cmd = pass runbox.com/aerc

default  = INBOX
from     = Rodrigo Oliveira <mdkcore@qtrnn.io>
aliases  = Rodrigo Oliveira <rodrigo@qtrnn.io>
copy-to  = Sent

folders-sort = INBOX,Sent,Archive,Drafts,Spam,Trash

A aerc/aerc.conf => aerc/aerc.conf +566 -0
@@ 0,0 1,566 @@
#
# aerc main configuration

[general]
#
# Used as a default path for save operations if no other path is specified.
# ~ is expanded to the current user home dir.
#
#default-save-path=

# If set to "gpg", aerc will use system gpg binary and keystore for all crypto
# operations. If set to "internal", the internal openpgp keyring will be used.
# If set to "auto", the system gpg will be preferred unless the internal
# keyring already exists, in which case the latter will be used.
#
# Default: auto
#pgp-provider=auto

# By default, the file permissions of accounts.conf must be restrictive and
# only allow reading by the file owner (0600). Set this option to true to
# ignore this permission check. Use this with care as it may expose your
# credentials.
#
# Default: false
#unsafe-accounts-conf=false

# Output log messages to specified file. A path starting with ~/ is expanded to
# the user home dir. When redirecting aerc's output to a file using > shell
# redirection, this setting is ignored and log messages are printed to stdout.
#
#log-file=

# Only log messages above the specified level to log-file. Supported levels
# are: trace, debug, info, warn and error. When redirecting aerc's output to
# a file using > shell redirection, this setting is ignored and the log level
# is forced to trace.
#
# Default: info
#log-level=info

# Set the $TERM environment variable used for the embedded terminal.
#
# Default: xterm-256color
term=alacritty

# Display OSC8 strings in the embedded terminal
#
# Default: false
#enable-osc8=false

[ui]
#
# Describes the format for each row in a mailbox view. This is a comma
# separated list of column names with an optional align and width suffix. After
# the column name, one of the '<' (left), ':' (center) or '>' (right) alignment
# characters can be added (by default, left) followed by an optional width
# specifier. The width is either an integer representing a fixed number of
# characters, or a percentage between 1% and 99% representing a fraction of the
# terminal width. It can also be one of the '*' (auto) or '=' (fit) special
# width specifiers. Auto width columns will be equally attributed the remaining
# terminal width. Fit width columns take the width of their contents. If no
# width specifier is set, '*' is used by default.
#
# Default: date<20,name<17,flags>4,subject<*
#index-columns=date<20,name<17,flags>4,subject<*

#
# Each name in index-columns must have a corresponding column-$name setting.
# All column-$name settings accept golang text/template syntax. See
# aerc-templates(7) for available template attributes and functions.
#
# Default settings
#column-date={{.DateAutoFormat .Date.Local}}
#column-name={{index (.From | names) 0}}
#column-flags={{.Flags | join ""}}
#column-subject={{.ThreadPrefix}}{{.Subject}}

#
# String separator inserted between columns. When the column width specifier is
# an exact number of characters, the separator is added to it (i.e. the exact
# width will be fully available for the column contents).
#
# Default: "  "
#column-separator="  "

#
# See time.Time#Format at https://godoc.org/time#Time.Format
#
# Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time)
#timestamp-format=2006-01-02 03:04 PM
timestamp-format=2006-01-02 15:04

#
# Index-only time format for messages that were received/sent today.
# If this is not specified, timestamp-format is used instead.
#
#this-day-time-format=

#
# Index-only time format for messages that were received/sent within the last
# 7 days. If this is not specified, timestamp-format is used instead.
#
#this-week-time-format=

#
# Index-only time format for messages that were received/sent this year.
# If this is not specified, timestamp-format is used instead.
#
#this-year-time-format=

#
# Width of the sidebar, including the border.
#
# Default: 20
#sidebar-width=20

#
# Message to display when viewing an empty folder.
#
# Default: (no messages)
#empty-message=(no messages)

# Message to display when no folders exists or are all filtered
#
# Default: (no folders)
#empty-dirlist=(no folders)

# Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel
#
# Default: false
#mouse-enabled=false

#
# Ring the bell when new messages are received
#
# Default: true
#new-message-bell=true

#
# Template to use for Account tab titles
#
# Default: {{.Account}}
#tab-title-account={{.Account}}

# Marker to show before a pinned tab's name.
#
# Default: `
#pinned-tab-marker='`'

# Template for the left side of the directory list.
# See aerc-templates(7) for all available fields and functions.
#
# Default: {{.Folder}}
#dirlist-left={{.Folder}}

# Template for the right side of the directory list.
# See aerc-templates(7) for all available fields and functions.
#
# Default: {{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}
#dirlist-right={{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}

# Delay after which the messages are actually listed when entering a directory.
# This avoids loading messages when skipping over folders and makes the UI more
# responsive. If you do not want that, set it to 0s.
#
# Default: 200ms
#dirlist-delay=200ms
dirlist-delay=500ms

# Display the directory list as a foldable tree that allows to collapse and
# expand the folders.
#
# Default: false
#dirlist-tree=false

# If dirlist-tree is enabled, set level at which folders are collapsed by
# default. Set to 0 to disable.
#
# Default: 0
#dirlist-collapse=0

# List of space-separated criteria to sort the messages by, see *sort*
# command in *aerc*(1) for reference. Prefixing a criterion with "-r "
# reverses that criterion.
#
# Example: "from -r date"
#
#sort=

# Moves to next message when the current message is deleted
#
# Default: true
#next-message-on-delete=true

# Automatically set the "seen" flag when a message is opened in the message
# viewer.
#
# Default: true
#auto-mark-read=true

# The directories where the stylesets are stored. It takes a colon-separated
# list of directories. If this is unset or if a styleset cannot be found, the
# following paths will be used as a fallback in that order:
#
#   ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
#   ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
#   /usr/local/share/aerc/stylesets
#   /usr/share/aerc/stylesets
#
#stylesets-dirs=

# Uncomment to use box-drawing characters for vertical and horizontal borders.
#
# Default: " "
#border-char-vertical=" "
#border-char-horizontal=" "

# Sets the styleset to use for the aerc ui elements.
#
# Default: default
# styleset-name=colors

# Activates fuzzy search in commands and their arguments: the typed string is
# searched in the command or option in any position, and need not be
# consecutive characters in the command or option.
#
# Default: false
#fuzzy-complete=false

# How long to wait after the last input before auto-completion is triggered.
#
# Default: 250ms
#completion-delay=250ms

# The minimum required characters to allow auto-completion to be triggered after
# completion-delay.
#
# Default: 1
#completion-min-chars=1

#
# Global switch for completion popovers
#
# Default: true
#completion-popovers=true

# Uncomment to use UTF-8 symbols to indicate PGP status of messages
#
# Default: ASCII
#icon-unencrypted=
#icon-encrypted=✔
#icon-signed=✔
#icon-signed-encrypted=✔
#icon-unknown=✘
#icon-invalid=⚠

# Reverses the order of the message list. By default, the message list is
# ordered with the newest (highest UID) message on top. Reversing the order
# will put the oldest (lowest UID) message on top. This can be useful in cases
# where the backend does not support sorting.
#
# Default: false
#reverse-msglist-order = false

# Reverse display of the mesage threads. Default order is the the intial
# message is on the top with all the replies being displayed below. The
# reverse option will put the initial message at the bottom with the
# replies on top.
#
# Default: false
#reverse-thread-order=false

# Sort the thread siblings according to the sort criteria for the messages. If
# sort-thread-siblings is false, the thread siblings will be sorted based on
# the message UID in ascending order. This option is only applicable for
# client-side threading with a backend that enables sorting. Note that there's
# a performance impact when sorting is activated.
#
# Default: false
#sort-thread-siblings=false

#[ui:account=foo]
#
# Enable a threaded view of messages. If this is not supported by the backend
# (IMAP server or notmuch), threads will be built by the client.
#
# Default: false
#threading-enabled=false

# Force client-side thread building
#
# Default: false
#force-client-threads=false

# Debounce client-side thread building
#
# Default: 50ms
#client-threads-delay=50ms

[statusline]
#
# Describes the format for the status line. This is a comma separated list of
# column names with an optional align and width suffix. See [ui].index-columns
# for more details. To completely mute the status line except for push
# notifications, explicitly set status-columns to an empty string.
#
# Default: left<*,center:=,right>*
#status-columns=left<*,center:=,right>*

#
# Each name in status-columns must have a corresponding column-$name setting.
# All column-$name settings accept golang text/template syntax. See
# aerc-templates(7) for available template attributes and functions.
#
# Default settings
#column-left=[{{.Account}}] {{.StatusInfo}}
#column-center={{.PendingKeys}}
#column-right={{.TrayInfo}}

#
# String separator inserted between columns.
# See [ui].column-separator for more details.
#
#column-separator=" "

# Specifies the separator between grouped statusline elements.
#
# Default: " | "
#separator=" | "

# Defines the mode for displaying the status elements.
# Options: text, icon
#
# Default: text
#display-mode=text

[viewer]
#
# Specifies the pager to use when displaying emails. Note that some filters
# may add ANSI codes to add color to rendered emails, so you may want to use a
# pager which supports ANSI codes.
#
# Default: less -R
#pager=less -R
pager=cat

#
# If an email offers several versions (multipart), you can configure which
# mimetype to prefer. For example, this can be used to prefer plaintext over
# html emails.
#
# Default: text/plain,text/html
#alternatives=text/plain,text/html

#
# Default setting to determine whether to show full headers or only parsed
# ones in message viewer.
#
# Default: false
#show-headers=false

#
# Layout of headers when viewing a message. To display multiple headers in the
# same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if
# none of their specified headers are present in the message.
#
# Default: From|To,Cc|Bcc,Date,Subject
#header-layout=From|To,Cc|Bcc,Date,Subject

# Whether to always show the mimetype of an email, even when it is just a single part
#
# Default: false
#always-show-mime=false

# Parses and extracts http links when viewing a message. Links can then be
# accessed with the open-link command.
#
# Default: true
#parse-http-links=true

[compose]
#
# Specifies the command to run the editor with. It will be shown in an embedded
# terminal, though it may also launch a graphical window if the environment
# supports it. Defaults to $EDITOR, or vi.
#editor=

#
# Default header fields to display when composing a message. To display
# multiple headers in the same row, separate them with a pipe, e.g. "To|From".
#
# Default: To|From,Subject
#header-layout=To|From,Subject

#
# Specifies the command to be used to tab-complete email addresses. Any
# occurrence of "%s" in the address-book-cmd will be replaced with what the
# user has typed so far.
#
# The command must output the completions to standard output, one completion
# per line. Each line must be tab-delimited, with an email address occurring as
# the first field. Only the email address field is required. The second field,
# if present, will be treated as the contact name. Additional fields are
# ignored.
#
# This parameter can also be set per account in accounts.conf.
#address-book-cmd=

# Specifies the command to be used to select attachments. Any occurence of '%s'
# in the file-picker-cmd will be replaced the argument <arg> to :attach -m
# <arg>.
#
# The command must output the selected files to standard output, one file per
# line.
#file-picker-cmd=

#
# Allow to address yourself when replying
#
# Default: true
#reply-to-self=true

#
# Warn before sending an email that matches the specified regexp but does not
# have any attachments. Leave empty to disable this feature.
#
# Uses Go's regexp syntax, documented at https://golang.org/s/re2syntax. The
# "(?im)" flags are set by default (case-insensitive and multi-line).
#
# Example:
# no-attachment-warning=^[^>]*attach(ed|ment)
#
#no-attachment-warning=

#
# When set, aerc will generate "format=flowed" bodies with a content type of
# "text/plain; format=flowed" as described in RFC3676. This format is easier to
# handle for some mailing software, and generally just looks like ordinary
# text. To actually make use of this format's features, you'll need support in
# your editor.
#
#format-flowed=false

[multipart-converters]
#
# Converters allow to generate multipart/alternative messages by converting the
# main text/plain part into any other MIME type. Only exact MIME types are
# accepted. The commands are invoked with sh -c and are expected to output
# valid UTF-8 text.
#
# Example (obviously, this requires that you write your main text/plain body
# using the markdown syntax):
#text/html=pandoc -f markdown -t html --standalone

[filters]
#
# Filters allow you to pipe an email body through a shell command to render
# certain emails differently, e.g. highlighting them with ANSI escape codes.
#
# The commands are invoked with sh -c. The following folders are appended to
# the system $PATH to allow referencing filters from their name only:
#
#   ${XDG_CONFIG_HOME:-~/.config}/aerc/filters
#   ${XDG_DATA_HOME:-~/.local/share}/aerc/filters
#   $PREFIX/share/aerc/filters
#   /usr/share/aerc/filters
#
# The following variables are defined in the filter command environment:
#
#   AERC_MIME_TYPE      the part MIME type/subtype
#   AERC_FORMAT         the part content type format= parameter
#   AERC_FILENAME       the attachment filename (if any)
#   AERC_SUBJECT        the message Subject header value
#   AERC_FROM           the message From header value
#
# The first filter which matches the email's mimetype will be used, so order
# them from most to least specific.
#
# You can also match on non-mimetypes, by prefixing with the header to match
# against (non-case-sensitive) and a comma, e.g. subject,text will match a
# subject which contains "text". Use header,~regex to match against a regex.
#
text/plain=colorize
text/calendar=calendar
message/delivery-status=colorize
message/rfc822=colorize
#text/html=pandoc -f html -t plain | colorize
#text/html=html | colorize
#text/*=bat -fP --file-name="$AERC_FILENAME"
#application/x-sh=bat -fP -l sh
#image/*=catimg -w $(tput cols) -
#subject,~Git(hub|lab)=lolcat -f
#from,thatguywhodoesnothardwraphismessages=wrap -w 100 | colorize

# This special filter is only used to post-process email headers when
# [viewer].show-headers=true
# By default, headers are piped directly into the pager.
#
.headers=colorize

[openers]
#
# Openers allow you to specify the command to use for the :open and :open-link
# actions on a per-MIME-type basis. The :open-link URL scheme is used to
# determine the MIME type as follows: x-scheme-handler/<scheme>.
#
# {} is expanded as the temporary filename to be opened. If it is not
# encountered in the command, the temporary filename will be appened to the end
# of the command.
#
# Like [filters], openers support basic shell globbing. The first opener which
# matches the part's MIME type (or URL scheme handler MIME type) will be used,
# so order them from most to least specific.
#
# Examples:
# x-scheme-handler/irc=hexchat
# x-scheme-handler/http*=firefox
# text/html=surf -dfgms
# text/plain=gvim {} +125
# message/rfc822=thunderbird

[hooks]
#
# Hooks are triggered whenever the associated event occurs.

#
# Executed when a new email arrives in the selected folder
#mail-received=notify-send "New mail from $AERC_FROM_NAME" "$AERC_SUBJECT"

#
# Executed when aerc starts
#aerc-startup=aerc :terminal calcurse && aerc :next-tab

#
# Executed when aerc shuts down.
#aerc-shutdown=

[templates]
# Templates are used to populate email bodies automatically.
#

# The directories where the templates are stored. It takes a colon-separated
# list of directories. If this is unset or if a template cannot be found, the
# following paths will be used as a fallback in that order:
#
#   ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
#   ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
#   /usr/local/share/aerc/templates
#   /usr/share/aerc/templates
#
#template-dirs=

# The default template to be used for new messages.
#
# default: new_message
#new-message=new_message

# The default template to be used for quoted replies.
#
# default: quoted_reply
#quoted-reply=quoted_reply

# The default template to be used for forward as body.
#
# default: forward_as_body
#forwards=forward_as_body

A aerc/binds.conf => aerc/binds.conf +131 -0
@@ 0,0 1,131 @@
# Binds are of the form <key sequence> = <command to run>
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
<C-t> = :term<Enter>
? = :help keys<Enter>

[messages]
q = :quit<Enter>

j = :next<Enter>
<Down> = :next<Enter>
<C-d> = :next 50%<Enter>
<C-f> = :next 100%<Enter>
<PgDn> = :next 100%<Enter>

k = :prev<Enter>
<Up> = :prev<Enter>
<C-u> = :prev 50%<Enter>
<C-b> = :prev 100%<Enter>
<PgUp> = :prev 100%<Enter>
g = :select 0<Enter>
G = :select -1<Enter>

J = :next-folder<Enter>
K = :prev-folder<Enter>
H = :collapse-folder<Enter>
L = :expand-folder<Enter>

v = :mark -t<Enter>
V = :mark -v<Enter>

T = :toggle-threads<Enter>

<Enter> = :view<Enter>
d = :prompt 'Really delete this message?' 'delete-message'<Enter>
D = :delete<Enter>
A = :archive flat<Enter>

C = :compose<Enter>

rr = :reply -a<Enter>
rq = :reply -aq<Enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>

c = :cf<space>
$ = :term<space>
! = :term<space>
| = :pipe<space>

/ = :search<space>
\ = :filter<space>
n = :next-result<Enter>
N = :prev-result<Enter>
<Esc> = :clear<Enter>

[messages:folder=Drafts]
<Enter> = :recall<Enter>

[view]
/ = :toggle-key-passthrough<Enter>/
q = :close<Enter>
O = :open<Enter>
S = :save<space>
| = :pipe<space>
D = :delete<Enter>
A = :archive flat<Enter>

<C-l> = :open-link <space>

f = :forward<Enter>
rr = :reply -a<Enter>
rq = :reply -aq<Enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>

H = :toggle-headers<Enter>
# <C-k> = :prev-part<Enter>
# <C-j> = :next-part<Enter>
<backtab> = :prev-part<Enter>
<tab> = :next-part<Enter>
J = :next<Enter>
K = :prev<Enter>

[view::passthrough]
$noinherit = true
$ex = <C-x>
<Esc> = :toggle-key-passthrough<Enter>

[compose]
# Keybindings used when the embedded terminal is not selected in the compose
# view
$noinherit = true
$ex = <C-x>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<A-p> = :switch-account -p<Enter>
<A-n> = :switch-account -n<Enter>
<tab> = :next-field<Enter>
<backtab> = :prev-field<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>

[compose::editor]
# Keybindings used when the embedded terminal is selected in the compose view
$noinherit = true
$ex = <C-x>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>

[compose::review]
# Keybindings used when reviewing a message to be sent
y = :send<Enter>
n = :abort<Enter>
v = :preview<Enter>
p = :postpone<Enter>
q = :choose -o d discard abort -o p postpone postpone<Enter>
e = :edit<Enter>
a = :attach<space>
d = :detach<space>

[terminal]
$noinherit = true
$ex = <C-x>

<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>

M alacritty/alacritty.toml => alacritty/alacritty.toml +5 -0
@@ 10,6 10,11 @@ family = "Iosevka Term Nerd Font"
[mouse]
hide_when_typing = true

[[hints.enabled]]
command = ""
hyperlinks = true
mouse.enabled = false

[selection]
save_to_clipboard = true


M nvim/init.lua => nvim/init.lua +6 -0
@@ 23,6 23,12 @@ vim.o.smarttab = true

vim.o.mouse = nil

-- disable providers
local providers = { "python3", "ruby", "node", "perl" }
for _, provider in pairs(providers) do
  vim.g["loaded_" .. provider .. "_provider"] = 0
end

-- restore last cursor position
vim.cmd([[
  autocmd BufRead * autocmd FileType <buffer> ++once

M nvim/lua/configs/colors.lua => nvim/lua/configs/colors.lua +1 -0
@@ 9,4 9,5 @@ base16.with_config({
  telescope = false,
})

vim.o.termguicolors = true
vim.cmd("colorscheme base16-" .. vim.env.BASE16_THEME)

M nvim/lua/configs/keybindings.lua => nvim/lua/configs/keybindings.lua +1 -1
@@ 6,7 6,7 @@ vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)

-- common keybindings for active lsp servers
_M.lsp_keybindings = function(client, bufnr)
_M.lsp_keybindings = function(_, bufnr)
  local bufopts = { noremap = true, silent = true, buffer = bufnr }

  vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts)

M nvim/lua/plugins.lua => nvim/lua/plugins.lua +0 -1
@@ 33,7 33,6 @@ packer.startup({

    use({
      "j-hui/fidget.nvim",
      tag = "legacy",
      config = function()
        require("fidget").setup()
      end,

M polybar/config => polybar/config +6 -6
@@ 76,12 76,7 @@ font-0 = Iosevka Term Nerd Font:fontformat=truetype:pixelsize=10:antialias=true:
modules-left = i3
modules-center = 
; modules-right = filesystem xbacklight pulseaudio memory cpu wlan eth battery temperature date powermenu
modules-right = filesystem backlight-acpi pulseaudio memory cpu wlan eth battery temperature date

tray-position = right
tray-padding = 2
;tray-transparent = true
;tray-background = #0063ff
modules-right = filesystem backlight-acpi pulseaudio memory cpu wlan eth battery temperature date systray

;wm-restack = bspwm
wm-restack = i3


@@ 425,4 420,9 @@ screenchange-reload = true
margin-top = 5
margin-bottom = 5

[module/systray]
type = internal/tray

tray-spacing = 4

; vim:ft=dosini