Add configuration for Aerc and Calcurse

This commit is contained in:
Alex Palaistras 2024-01-06 17:42:48 +00:00
parent 3e70f5cb5e
commit e85e140f42
8 changed files with 457 additions and 0 deletions

View File

@ -0,0 +1,8 @@
[[email protected]]
source = imaps://example%[email protected]:993
source-cred-cmd = secret-tool lookup hostname mail.example.com username [email protected]
outgoing = smtp://example%[email protected]:587
outgoing-cred-cmd = secret-tool lookup hostname mail.example.com username [email protected]
default = INBOX
from = Example Name <[email protected]>
copy-to = Sent

114
.config/aerc/aerc.conf Normal file
View File

@ -0,0 +1,114 @@
#
# Configuration for Aerc.
#
[general]
# Enable the embedded terminal to output OSC 8 (hyperlinks) escape sequences. Not all terminal
# emulators handle OSC 8 sequences properly and can produce confusing results, disable this setting
# if that occurs.
enable-osc8 = true
[ui]
# Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel
mouse-enabled = true
# Display the directory list as a foldable tree.
dirlist-tree = true
# Uncomment to use box-drawing characters for vertical and horizontal borders.
border-char-vertical = "│"
border-char-horizontal = "─"
# Sets the styleset to use for the aerc UI elements.
styleset-name = base16-default
# 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.
fuzzy-complete = true
# Uncomment to use UTF-8 symbols to indicate PGP status of messages
icon-unencrypted=
icon-encrypted = ✔
icon-signed = ✔
icon-signed-encrypted = ✔
icon-unknown = ✘
icon-invalid = ⚠
# 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.
threading-enabled = 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 = nano --syntax markdown --zero --breaklonglines --saveonexit
# 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
image/*=catimg -w $(tput cols) -
# 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
[hooks]
# Executed when Aerc starts up.
aerc-startup = aerc :terminal calcurse && aerc :prev-tab
# Executed when a new email arrives in the selected folder
mail-received = notify-send "New mail from $AERC_FROM_NAME" "$AERC_SUBJECT"

135
.config/aerc/binds.conf Normal file
View File

@ -0,0 +1,135 @@
# 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>
<C-j> = :next-folder<Enter>
<C-k> = :prev-folder<Enter>
<C-h> = :collapse-folder<Enter>
<C-l> = :expand-folder<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>
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-d> = :abort<Enter>
<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>

View File

@ -0,0 +1,50 @@
#
# Base16 style-set for Aerc.
#
*.default=true
*.selected.reverse=true
*.bg="#2d2d2d"
title.bold=true
header.italic=true
*error.bold=true
error.fg="#ab4642"
warning.fg="#dc9656"
success.fg="#a1b56c"
statusline_default.reverse=false
statusline*.bg="#282828"
statusline_default.fg="#b8b8b8"
statusline_error.fg="#ab4642"
statusline_error.reverse=true
msglist_unread.bold=true
msglist_unread.fg="#e8e8e8"
msglist_deleted.fg="#585858"
msglist_marked.bg="#383838"
msglist_flagged.fg="#f7ca88"
dirlist*.fg="#b8b8b8"
dirlist_unread.fg="#d8d8d8"
dirlist*.bg="#2d2d2d"
dirlist*.selected.bg="#383838"
dirlist*.selected.fg="#d8d8d8"
dirlist*.selected.bold=true
dirlist_recent.italic=true
completion*.selected.reverse=true
completion*.selected.bold=true
completion*.bg="#282828"
completion*.fg="#d8d8d8"
tab.bg="#2d2d2d"
tab.fg="#b8b8b8"
border.bg="#282828"
border.fg="#2d2d2d"
spinner.fg="#585858"
selector_focused.reverse=true
selector_chooser.bold=true

View File

@ -0,0 +1,47 @@
[General]
# Path to the calcurse binary that is used for importing/exporting items.
Binary = calcurse
# Host name of the server that hosts CalDAV. Do NOT prepend a protocol prefix,
# such as http:// or https://. Append :<port> for a port other than 80.
Hostname = example.com
# Path to the CalDAV calendar on the host specified above. This is the base
# path following your host name in the URL.
Path = /[email protected]
# Type of authentication to use. Must be "basic" or "oauth2"
AuthMethod = basic
# Enable this if you want to skip SSL certificate checks.
InsecureSSL = No
# Disable this if you want to use HTTP instead of HTTPS.
# Using plain HTTP is highly discouraged.
HTTPS = Yes
# This option allows you to filter the types of tasks synced. To this end, the
# value of this option should be a comma-separated list of item types, where
# each item type is either "event", "apt", "recur-event", "recur-apt", "todo",
# "recur" or "cal". Note that the comma-separated list must not contain any
# spaces. Refer to the documentation of the --filter-type command line argument
# of calcurse for more details. Set this option to "cal" if the configured
# CalDAV server doesn't support tasks, such as is the case with Google
# Calendar.
SyncFilter = cal,todo
# Disable this option to actually enable synchronization. If it is enabled,
# nothing is actually written to the server or to the local data files. If you
# combine DryRun = Yes with Verbose = Yes, you get a log of what would have
# happened with this option disabled.
DryRun = No
# Enable this if you want detailed logs written to stdout.
Verbose = Yes
# Credentials for HTTP Basic Authentication (if required).
# Set `Password` to your password in plaintext (unsafe),
# or `PasswordCommand` to a shell command that retrieves it (recommended).
[Auth]
Username = [email protected]
PasswordCommand = secret-tool lookup hostname mail.example.com username [email protected]

33
.config/calcurse/conf Normal file
View File

@ -0,0 +1,33 @@
appearance.calendarview=monthly
appearance.compactpanels=no
appearance.defaultpanel=calendar
appearance.layout=3
appearance.headerline=yes
appearance.eventseparator=yes
appearance.dayseparator=yes
appearance.emptyline=yes
appearance.emptyday=
appearance.notifybar=yes
appearance.sidebarwidth=39
appearance.theme=cyan on default
appearance.todoview=hide-completed
appearance.headingpos=right-justified
daemon.enable=no
daemon.log=no
format.inputdate=2
format.notifydate=%a %F
format.notifytime=%T
format.appointmenttime=%H:%M
format.outputdate=%D
format.dayheading=%B %e, %Y
general.autogc=no
general.autosave=yes
general.confirmdelete=yes
general.confirmquit=no
general.firstdayofweek=monday
general.multipledays=yes
general.periodicsave=0
general.systemevents=yes
notification.notifyall=flagged-only
notification.command=calcurse --next | xargs -0 notify-send "Appointment"
notification.warning=300

14
.config/calcurse/hooks/pre-load Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
set -eu -o pipefail
DATA_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/calcurse"
# Do not do anything when synchronizing with a CalDAV server.
test -f "$DATA_DIR/caldav/lock" && exit
# Run the CalDAV synchronization script in the background.
if test -d "$DATA_DIR/caldav" && command -v calcurse-caldav >/dev/null; then
cd "$DATA_DIR"
exec systemd-cat --identifier=calcurse-caldav calcurse-caldav
fi

56
.config/calcurse/keys Normal file
View File

@ -0,0 +1,56 @@
#
# Calcurse keys configuration file
#
# In this file the keybindings used by Calcurse are defined.
# It is generated automatically by Calcurse and is maintained
# via the key configuration menu of the interactive user
# interface. It should not be edited directly.
generic-cancel ESC
generic-select SPC
generic-credits @
generic-help ?
generic-quit q Q
generic-save s S ^S
generic-reload R
generic-copy c
generic-paste p ^V
generic-change-view TAB
generic-prev-view KEY_BTAB
generic-import i I
generic-export x X
generic-goto g G
generic-other-cmd o O
generic-config-menu C
generic-redraw ^R
generic-add-appt ^A
generic-add-todo ^T
generic-prev-day T ^H
generic-next-day t ^L
generic-prev-week W ^K
generic-next-week w
generic-prev-month M
generic-next-month m
generic-prev-year Y
generic-next-year y
generic-scroll-down ^N
generic-scroll-up ^P
generic-goto-today ^G
generic-command :
move-right l L RGT
move-left h H LFT
move-down j J DWN
move-up k K UP
start-of-week 0
end-of-week $
add-item a A
del-item d D
edit-item e E
view-item v V RET
pipe-item |
flag-item !
repeat r
edit-note n N
view-note >
raise-priority +
lower-priority -