Compare commits
16 Commits
34224deff7
...
master
Author | SHA1 | Date | |
---|---|---|---|
5a317a37cf
|
|||
eda133be18
|
|||
66edf5bc4b
|
|||
b5e0162029
|
|||
03aca09b82
|
|||
897c8b99dc
|
|||
58f798d7c0
|
|||
3175839954
|
|||
5023aaa8fc
|
|||
8b65dfd176
|
|||
960b48199e
|
|||
96b0313c36
|
|||
889af814fc
|
|||
70f1b8d48d
|
|||
1aaa41fc42
|
|||
a8c4ea36cc
|
859
.config/aerc/aerc.conf
Normal file
859
.config/aerc/aerc.conf
Normal file
@ -0,0 +1,859 @@
|
|||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Disable IPC entirely. Don't run commands (including mailto:... and mbox:...)
|
||||||
|
# in an existing aerc instance, and don't start an IPC server to allow
|
||||||
|
# subsequent aerc instances to run commands in the current one.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#disable-ipc=false
|
||||||
|
|
||||||
|
# Don't run mailto:... commands over IPC; start a new aerc instance with the
|
||||||
|
# composer instead.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#disable-ipc-mailto=false
|
||||||
|
#
|
||||||
|
# Don't run mbox:... commands over IPC; start a new aerc instance with the mbox
|
||||||
|
# file instead.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#disable-ipc-mbox=false
|
||||||
|
|
||||||
|
# Set the $TERM environment variable used for the embedded terminal.
|
||||||
|
#
|
||||||
|
# Default: xterm-256color
|
||||||
|
#term=xterm-256color
|
||||||
|
|
||||||
|
# Display OSC8 strings in the embedded terminal
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#enable-osc8=false
|
||||||
|
|
||||||
|
# Default shell command to use for :menu. This will be executed with sh -c and
|
||||||
|
# will run in an popover dialog.
|
||||||
|
#
|
||||||
|
# Any occurrence of %f will be replaced by a temporary file path where the
|
||||||
|
# command is expected to write output lines to be consumed by :menu. Otherwise,
|
||||||
|
# the lines will be read from the command's standard output.
|
||||||
|
#
|
||||||
|
# Examples:
|
||||||
|
# default-menu-cmd=fzf
|
||||||
|
# default-menu-cmd=fzf --multi
|
||||||
|
# default-menu-cmd=dmenu -l 20
|
||||||
|
# default-menu-cmd=ranger --choosefiles=%f
|
||||||
|
#
|
||||||
|
#default-menu-cmd=
|
||||||
|
|
||||||
|
[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: flags:4,name<20%,subject,date>=
|
||||||
|
#index-columns=flags:4,name<20%,subject,date>=
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# Here are some examples to show the To field instead of the From field for
|
||||||
|
# an email (modifying column-name):
|
||||||
|
#
|
||||||
|
# 1. a generic one
|
||||||
|
# column-name={{ .Peer | names | join ", " }}
|
||||||
|
# 2. based upon the selected folder
|
||||||
|
# column-name={{if match .Folder "^(Gesendet|Sent)$"}}{{index (.To | names) 0}}{{else}}{{index (.From | names) 0}}{{end}}
|
||||||
|
#
|
||||||
|
# Default settings
|
||||||
|
#column-flags={{.Flags | join ""}}
|
||||||
|
#column-name={{index (.From | names) 0}}
|
||||||
|
#column-subject={{.ThreadPrefix}}{{.Subject}}
|
||||||
|
#column-date={{.DateAutoFormat .Date.Local}}
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 Jan 02
|
||||||
|
#timestamp-format=2006 Jan 02
|
||||||
|
|
||||||
|
#
|
||||||
|
# Index-only time format for messages that were received/sent today.
|
||||||
|
# If this is empty, timestamp-format is used instead.
|
||||||
|
#
|
||||||
|
# Default: 15:04
|
||||||
|
#this-day-time-format=15:04
|
||||||
|
|
||||||
|
#
|
||||||
|
# Index-only time format for messages that were received/sent within the last
|
||||||
|
# 7 days. If this is empty, timestamp-format is used instead.
|
||||||
|
#
|
||||||
|
# Default: Jan 02
|
||||||
|
#this-week-time-format=Jan 02
|
||||||
|
|
||||||
|
#
|
||||||
|
# Index-only time format for messages that were received/sent this year.
|
||||||
|
# If this is empty, timestamp-format is used instead.
|
||||||
|
#
|
||||||
|
#Default: Jan 02
|
||||||
|
#this-year-time-format=Jan 02
|
||||||
|
|
||||||
|
#
|
||||||
|
# Overrides timestamp-format for the message view.
|
||||||
|
#
|
||||||
|
# Default: 2006 Jan 02, 15:04 GMT-0700
|
||||||
|
#message-view-timestamp-format=2006 Jan 02, 15:04 GMT-0700
|
||||||
|
|
||||||
|
#
|
||||||
|
# If set, overrides timestamp-format in the message view for messages
|
||||||
|
# that were received/sent today.
|
||||||
|
#
|
||||||
|
#message-view-this-day-time-format=
|
||||||
|
|
||||||
|
# If set, overrides timestamp-format in the message view for messages
|
||||||
|
# that were received/sent within the last 7 days.
|
||||||
|
#
|
||||||
|
#message-view-this-week-time-format=
|
||||||
|
|
||||||
|
#
|
||||||
|
# If set, overrides *timestamp-format* in the message view for messages
|
||||||
|
# that were received/sent this year.
|
||||||
|
#
|
||||||
|
#message-view-this-year-time-format=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Width of the sidebar, including the border.
|
||||||
|
#
|
||||||
|
# Default: 22
|
||||||
|
#sidebar-width=22
|
||||||
|
|
||||||
|
#
|
||||||
|
# Default split layout for message list tabs. The syntax is:
|
||||||
|
#
|
||||||
|
# [<direction>] <size>
|
||||||
|
#
|
||||||
|
# <direction> is optional and defaults to horizontal. It can take one
|
||||||
|
# of the following values: h, horiz, horizontal, v, vert, vertical.
|
||||||
|
#
|
||||||
|
# <size> is a positive integer representing the size (in terminal cells)
|
||||||
|
# of the message list window.
|
||||||
|
#
|
||||||
|
#message-list-split=
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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)
|
||||||
|
#
|
||||||
|
# Value to set {{.Subject}} template to when subject is empty.
|
||||||
|
#
|
||||||
|
# Default: (no subject)
|
||||||
|
#empty-subject=(no subject)
|
||||||
|
|
||||||
|
# Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
mouse-enabled=true
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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}}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Template to use for Composer tab titles
|
||||||
|
#
|
||||||
|
# Default: {{if .To}}to:{{index (.To | shortmboxes) 0}} {{end}}{{.SubjectBase}}
|
||||||
|
#tab-title-composer={{if .To}}to:{{index (.To | shortmboxes) 0}} {{end}}{{.SubjectBase}}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Template to use for Message Viewer tab titles
|
||||||
|
#
|
||||||
|
# Default: {{.Subject}}
|
||||||
|
#tab-title-viewer={{.Subject}}
|
||||||
|
|
||||||
|
|
||||||
|
# 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}}
|
||||||
|
#dirlist-right={{if .Unread}}{{humanReadable .Unread}}{{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
|
||||||
|
|
||||||
|
# Display the directory list as a foldable tree that allows to collapse and
|
||||||
|
# expand the folders.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
dirlist-tree=true
|
||||||
|
|
||||||
|
# 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: "│" and "─"
|
||||||
|
#border-char-vertical="│"
|
||||||
|
#border-char-horizontal="─"
|
||||||
|
|
||||||
|
# Sets the styleset to use for the aerc ui elements.
|
||||||
|
#
|
||||||
|
# Default: default
|
||||||
|
styleset-name=pink
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# Setting this to "manual" disables automatic completion, leaving only the
|
||||||
|
# manually triggered completion with the $complete key (see aerc-binds(5) for
|
||||||
|
# more details).
|
||||||
|
#
|
||||||
|
# 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 message threads. Default order is the initial
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Positions the cursor on the last message in the message list (at the
|
||||||
|
# bottom of the view) when opening a new folder.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#select-last-message=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
|
||||||
|
|
||||||
|
# Set the scroll offset in number of lines from the top and bottom of the
|
||||||
|
# message list.
|
||||||
|
#
|
||||||
|
# Default: 0
|
||||||
|
#msglist-scroll-offset = 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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=true
|
||||||
|
|
||||||
|
# Force client-side thread building
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#force-client-threads=false
|
||||||
|
|
||||||
|
# If no References nor In-Reply-To headers can be matched to build client side
|
||||||
|
# threads, fallback to similar subjects.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#threading-by-subject=false
|
||||||
|
|
||||||
|
# Show thread context enables messages which do not match the current query (or
|
||||||
|
# belong to the current mailbox) to be shown for context. These messages can be
|
||||||
|
# styled separately using "msglist_thread_context" in a styleset. This feature
|
||||||
|
# is not supported by all backends
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#show-thread-context=false
|
||||||
|
|
||||||
|
# Debounce client-side thread building
|
||||||
|
#
|
||||||
|
# Default: 50ms
|
||||||
|
#client-threads-delay=50ms
|
||||||
|
|
||||||
|
#
|
||||||
|
# Thread prefix customization:
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the arrow head.
|
||||||
|
#
|
||||||
|
# Default: ">"
|
||||||
|
#thread-prefix-tip = ">"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the arrow indentation.
|
||||||
|
#
|
||||||
|
# Default: " "
|
||||||
|
#thread-prefix-indent = " "
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the vertical extension of
|
||||||
|
# the arrow.
|
||||||
|
#
|
||||||
|
# Default: "│"
|
||||||
|
#thread-prefix-stem = "│"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the horizontal extension
|
||||||
|
# of the arrow.
|
||||||
|
#
|
||||||
|
# Default: ""
|
||||||
|
#thread-prefix-limb = ""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the folded thread
|
||||||
|
# indicator.
|
||||||
|
#
|
||||||
|
# Default: "+"
|
||||||
|
#thread-prefix-folded = "+"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the unfolded thread
|
||||||
|
# indicator.
|
||||||
|
#
|
||||||
|
# Default: ""
|
||||||
|
#thread-prefix-unfolded = ""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the first child connector.
|
||||||
|
#
|
||||||
|
# Default: ""
|
||||||
|
#thread-prefix-first-child = ""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the connector used if
|
||||||
|
# the message has siblings.
|
||||||
|
#
|
||||||
|
# Default: "├─"
|
||||||
|
#thread-prefix-has-siblings = "├─"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the connector used if the
|
||||||
|
# message has no parents and no children.
|
||||||
|
#
|
||||||
|
# Default: ""
|
||||||
|
#thread-prefix-lone = ""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the connector used if the
|
||||||
|
# message has no parents and has children.
|
||||||
|
#
|
||||||
|
# Default: ""
|
||||||
|
#thread-prefix-orphan = ""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the connector for the last
|
||||||
|
# sibling.
|
||||||
|
#
|
||||||
|
# Default: "└─"
|
||||||
|
#thread-prefix-last-sibling = "└─"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the reversed thread prefix appearance by selecting the connector for
|
||||||
|
# the last sibling.
|
||||||
|
#
|
||||||
|
# Default: "┌─"
|
||||||
|
#thread-prefix-last-sibling-reverse = "┌─"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the thread prefix appearance by selecting the connector for dummy
|
||||||
|
# thread.
|
||||||
|
#
|
||||||
|
# Default: "┬─"
|
||||||
|
#thread-prefix-dummy = "┬─"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the reversed thread prefix appearance by selecting the connector for
|
||||||
|
# dummy thread.
|
||||||
|
#
|
||||||
|
# Default: "┴─"
|
||||||
|
#thread-prefix-dummy-reverse = "┴─"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the reversed thread prefix appearance by selecting the first child
|
||||||
|
# connector.
|
||||||
|
#
|
||||||
|
# Default: ""
|
||||||
|
#thread-prefix-first-child-reverse = ""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Customize the reversed thread prefix appearance by selecting the connector
|
||||||
|
# used if the message has no parents and has children.
|
||||||
|
#
|
||||||
|
# Default: ""
|
||||||
|
#thread-prefix-orphan-reverse = ""
|
||||||
|
|
||||||
|
[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}} | {{cwd}}
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 -Rc
|
||||||
|
#pager=less -Rc
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Define the maximum height of the mimetype switcher before a scrollbar is used.
|
||||||
|
# The height of the mimetype switcher is restricted to half of the display
|
||||||
|
# height. If the provided value for the height is zero, the number of parts will
|
||||||
|
# be used as the height of the type switcher.
|
||||||
|
#
|
||||||
|
# Default: 0
|
||||||
|
#max-mime-height = 0
|
||||||
|
|
||||||
|
# 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=
|
||||||
|
|
||||||
|
#
|
||||||
|
# When set, aerc will create and read .eml files for composing that have
|
||||||
|
# non-standard \n linebreaks. This is only relevant if the used editor does not
|
||||||
|
# support CRLF linebreaks.
|
||||||
|
#
|
||||||
|
#lf-editor=false
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#
|
||||||
|
# Edit headers into the text editor instead than separate fields.
|
||||||
|
#
|
||||||
|
# When this is true, address-book-cmd is not supported and address completion
|
||||||
|
# is left to the editor itself. Also, displaying multiple headers on the same
|
||||||
|
# line is not possible.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#edit-headers=false
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 occurrence of
|
||||||
|
# '%s' in the file-picker-cmd will be replaced with the argument <arg>
|
||||||
|
# to :attach -m <arg>. Any occurence of '%f' will be replaced by the
|
||||||
|
# location of a temporary file, from which aerc will read the selected files.
|
||||||
|
#
|
||||||
|
# If '%f' is not present, the command must output the selected files to
|
||||||
|
# standard output, one file per line. If it is present, then aerc does not
|
||||||
|
# capture the standard output and instead reads the files from the temporary
|
||||||
|
# file which should have the same format.
|
||||||
|
#file-picker-cmd=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Allow to address yourself when replying
|
||||||
|
#
|
||||||
|
# Default: true
|
||||||
|
#reply-to-self=true
|
||||||
|
|
||||||
|
# Warn before sending an email with an empty subject.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#empty-subject-warning=false
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 prepended to
|
||||||
|
# the system $PATH to allow referencing filters from their name only:
|
||||||
|
#
|
||||||
|
# ${XDG_CONFIG_HOME:-~/.config}/aerc/filters
|
||||||
|
# ~/.local/libexec/aerc/filters
|
||||||
|
# ${XDG_DATA_HOME:-~/.local/share}/aerc/filters
|
||||||
|
# $PREFIX/libexec/aerc/filters
|
||||||
|
# $PREFIX/share/aerc/filters
|
||||||
|
# /usr/libexec/aerc/filters
|
||||||
|
# /usr/share/aerc/filters
|
||||||
|
#
|
||||||
|
# If you want to run a program in your default $PATH which has the same name
|
||||||
|
# as a builtin filter (e.g. /usr/bin/colorize), use its absolute path.
|
||||||
|
#
|
||||||
|
# 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 or URL to be opened with proper
|
||||||
|
# shell quoting. If it is not encountered in the command, the filename/URL will
|
||||||
|
# be appended to the end of the command. The command will then be executed with
|
||||||
|
# `sh -c`.
|
||||||
|
#
|
||||||
|
# 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*=printf '%s' {} | wl-copy
|
||||||
|
# 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 "[$AERC_ACCOUNT/$AERC_FOLDER] New mail from $AERC_FROM_NAME" "$AERC_SUBJECT"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Executed when mail is deleted from a folder
|
||||||
|
#mail-deleted=mbsync "$AERC_ACCOUNT:$AERC_FOLDER" &
|
||||||
|
|
||||||
|
#
|
||||||
|
# Executed when aerc adds mail to a folder
|
||||||
|
#mail-added=mbsync "$AERC_ACCOUNT:$AERC_FOLDER" &
|
||||||
|
|
||||||
|
#
|
||||||
|
# Executed when aerc starts
|
||||||
|
#aerc-startup=aerc :terminal calcurse && aerc :next-tab
|
||||||
|
|
||||||
|
#
|
||||||
|
# Executed when aerc shuts down.
|
||||||
|
#aerc-shutdown=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Executed when notmuch tags are modified.
|
||||||
|
#tag-modified=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Executed when flags are changed on a message.
|
||||||
|
#flag-changed=mbsync "$AERC_ACCOUNT:$AERC_FOLDER" &
|
||||||
|
|
||||||
|
[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
|
184
.config/aerc/binds.conf
Normal file
184
.config/aerc/binds.conf
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
# 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-PgUp> = :prev-tab<Enter>
|
||||||
|
<C-n> = :next-tab<Enter>
|
||||||
|
<C-PgDn> = :next-tab<Enter>
|
||||||
|
\[t = :prev-tab<Enter>
|
||||||
|
\]t = :next-tab<Enter>
|
||||||
|
<C-t> = :term<Enter>
|
||||||
|
? = :help keys<Enter>
|
||||||
|
<C-c> = :prompt 'Quit?' quit<Enter>
|
||||||
|
<C-q> = :prompt 'Quit?' quit<Enter>
|
||||||
|
<C-z> = :suspend<Enter>
|
||||||
|
|
||||||
|
[messages]
|
||||||
|
q = :prompt 'Quit?' 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>
|
||||||
|
<C-Down> = :next-folder<Enter>
|
||||||
|
K = :prev-folder<Enter>
|
||||||
|
<C-Up> = :prev-folder<Enter>
|
||||||
|
H = :collapse-folder<Enter>
|
||||||
|
<C-Left> = :collapse-folder<Enter>
|
||||||
|
L = :expand-folder<Enter>
|
||||||
|
<C-Right> = :expand-folder<Enter>
|
||||||
|
|
||||||
|
v = :mark -t<Enter>
|
||||||
|
<Space> = :mark -t<Enter>:next<Enter>
|
||||||
|
V = :mark -v<Enter>
|
||||||
|
|
||||||
|
T = :toggle-threads<Enter>
|
||||||
|
zc = :fold<Enter>
|
||||||
|
zo = :unfold<Enter>
|
||||||
|
za = :fold -t<Enter>
|
||||||
|
zM = :fold -a<Enter>
|
||||||
|
zR = :unfold -a<Enter>
|
||||||
|
<tab> = :fold -t<Enter>
|
||||||
|
|
||||||
|
zz = :align center<Enter>
|
||||||
|
zt = :align top<Enter>
|
||||||
|
zb = :align bottom<Enter>
|
||||||
|
|
||||||
|
<Enter> = :view<Enter>
|
||||||
|
d = :choose -o y 'Really delete this message' delete-message<Enter>
|
||||||
|
D = :delete<Enter>
|
||||||
|
a = :archive flat<Enter>
|
||||||
|
A = :unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>
|
||||||
|
|
||||||
|
C = :compose<Enter>
|
||||||
|
m = :compose<Enter>
|
||||||
|
|
||||||
|
b = :bounce<space>
|
||||||
|
|
||||||
|
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>
|
||||||
|
|
||||||
|
s = :split<Enter>
|
||||||
|
S = :vsplit<Enter>
|
||||||
|
|
||||||
|
pl = :patch list<Enter>
|
||||||
|
pa = :patch apply <Tab>
|
||||||
|
pd = :patch drop <Tab>
|
||||||
|
pb = :patch rebase<Enter>
|
||||||
|
pt = :patch term<Enter>
|
||||||
|
ps = :patch switch <Tab>
|
||||||
|
|
||||||
|
[messages:folder=Drafts]
|
||||||
|
<Enter> = :recall<Enter>
|
||||||
|
|
||||||
|
[view]
|
||||||
|
/ = :toggle-key-passthrough<Enter>/
|
||||||
|
q = :close<Enter>
|
||||||
|
O = :open<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-Up> = :prev-part<Enter>
|
||||||
|
<C-j> = :next-part<Enter>
|
||||||
|
<C-Down> = :next-part<Enter>
|
||||||
|
J = :next<Enter>
|
||||||
|
<C-Right> = :next<Enter>
|
||||||
|
K = :prev<Enter>
|
||||||
|
<C-Left> = :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>
|
||||||
|
$complete = <C-o>
|
||||||
|
<C-k> = :prev-field<Enter>
|
||||||
|
<C-Up> = :prev-field<Enter>
|
||||||
|
<C-j> = :next-field<Enter>
|
||||||
|
<C-Down> = :next-field<Enter>
|
||||||
|
<A-p> = :switch-account -p<Enter>
|
||||||
|
<C-Left> = :switch-account -p<Enter>
|
||||||
|
<A-n> = :switch-account -n<Enter>
|
||||||
|
<C-Right> = :switch-account -n<Enter>
|
||||||
|
<tab> = :next-field<Enter>
|
||||||
|
<backtab> = :prev-field<Enter>
|
||||||
|
<C-p> = :prev-tab<Enter>
|
||||||
|
<C-PgUp> = :prev-tab<Enter>
|
||||||
|
<C-n> = :next-tab<Enter>
|
||||||
|
<C-PgDn> = :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-Up> = :prev-field<Enter>
|
||||||
|
<C-j> = :next-field<Enter>
|
||||||
|
<C-Down> = :next-field<Enter>
|
||||||
|
<C-p> = :prev-tab<Enter>
|
||||||
|
<C-PgUp> = :prev-tab<Enter>
|
||||||
|
<C-n> = :next-tab<Enter>
|
||||||
|
<C-PgDn> = :next-tab<Enter>
|
||||||
|
|
||||||
|
[compose::review]
|
||||||
|
# Keybindings used when reviewing a message to be sent
|
||||||
|
# Inline comments are used as descriptions on the review screen
|
||||||
|
y = :send<Enter> # Send
|
||||||
|
n = :abort<Enter> # Abort (discard message, no confirmation)
|
||||||
|
v = :preview<Enter> # Preview message
|
||||||
|
p = :postpone<Enter> # Postpone
|
||||||
|
q = :choose -o d discard abort -o p postpone postpone<Enter> # Abort or postpone
|
||||||
|
e = :edit<Enter> # Edit
|
||||||
|
a = :attach<space> # Add attachment
|
||||||
|
d = :detach<space> # Remove attachment
|
||||||
|
|
||||||
|
[terminal]
|
||||||
|
$noinherit = true
|
||||||
|
$ex = <C-x>
|
||||||
|
|
||||||
|
<C-p> = :prev-tab<Enter>
|
||||||
|
<C-n> = :next-tab<Enter>
|
||||||
|
<C-PgUp> = :prev-tab<Enter>
|
||||||
|
<C-PgDn> = :next-tab<Enter>
|
@ -1,2 +1,3 @@
|
|||||||
.symfony.local.yaml
|
.symfony.local.yaml
|
||||||
/application.yml
|
/application.yml
|
||||||
|
.env.sh
|
||||||
|
2
.config/mpv/input.conf
Normal file
2
.config/mpv/input.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Makes speech in the older DVDs louder.
|
||||||
|
F1 af toggle "lavfi=[loudnorm=I=-16]"
|
@ -1,6 +0,0 @@
|
|||||||
set tabstop=8
|
|
||||||
set expandtab
|
|
||||||
set softtabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set shiftround
|
|
||||||
"setlocal omnifunc=v:lua.vim.lsp.omnifunc
|
|
@ -1,4 +0,0 @@
|
|||||||
setlocal expandtab
|
|
||||||
setlocal tabstop=4
|
|
||||||
setlocal shiftwidth=4
|
|
||||||
"setlocal omnifunc=v:lua.vim.lsp.omnifunc
|
|
6
.config/nvim/ftdetect/crontab.lua
Normal file
6
.config/nvim/ftdetect/crontab.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
vim.api.nvim_create_autocmd({ "filetype" }, {
|
||||||
|
pattern = "crontab",
|
||||||
|
callback = function()
|
||||||
|
vim.api.nvim_buf_set_option(vim.api.nvim_get_current_buf(), "writebackup", false)
|
||||||
|
end
|
||||||
|
})
|
@ -1 +0,0 @@
|
|||||||
autocmd filetype crontab setlocal nowritebackup
|
|
6
.config/nvim/ftdetect/html.twig.lua
Normal file
6
.config/nvim/ftdetect/html.twig.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
vim.api.nvim_create_autocmd({ "BufNewFile", "BufRead" }, {
|
||||||
|
pattern = "*.html.twig",
|
||||||
|
callback = function()
|
||||||
|
vim.api.nvim_buf_set_option(vim.api.nvim_get_current_buf(), "syntax", "html")
|
||||||
|
end
|
||||||
|
})
|
@ -1 +0,0 @@
|
|||||||
autocmd BufNewFile,BufRead *.html.twig set syntax=html
|
|
1
.config/nvim/ftplugin/cpp.lua
Normal file
1
.config/nvim/ftplugin/cpp.lua
Normal file
@ -0,0 +1 @@
|
|||||||
|
vim.bo.expandtab = true
|
@ -1 +0,0 @@
|
|||||||
setlocal et
|
|
3
.config/nvim/ftplugin/css.lua
Normal file
3
.config/nvim/ftplugin/css.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 2
|
||||||
|
vim.bo.shiftwidth = 2
|
@ -1,4 +0,0 @@
|
|||||||
setlocal et
|
|
||||||
setlocal ts=2
|
|
||||||
setlocal sts=2
|
|
||||||
setlocal sw=2
|
|
3
.config/nvim/ftplugin/elna.lua
Normal file
3
.config/nvim/ftplugin/elna.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 2
|
||||||
|
vim.bo.shiftwidth = 2
|
4
.config/nvim/ftplugin/haskell.lua
Normal file
4
.config/nvim/ftplugin/haskell.lua
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
vim.bo.tabstop = 8
|
||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.softtabstop = 4
|
||||||
|
vim.bo.shiftwidth = 4
|
@ -23,59 +23,59 @@ end
|
|||||||
|
|
||||||
-- See `:help vim.lsp.start_client` for an overview of the supported `config` options.
|
-- See `:help vim.lsp.start_client` for an overview of the supported `config` options.
|
||||||
local config = {
|
local config = {
|
||||||
on_attach = on_attach, -- We pass our on_attach keybindings to the configuration map
|
on_attach = on_attach, -- We pass our on_attach keybindings to the configuration map
|
||||||
flags = {
|
flags = {
|
||||||
debounce_text_changes = 150,
|
debounce_text_changes = 150,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- The command that starts the language server
|
-- The command that starts the language server
|
||||||
-- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line
|
-- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line
|
||||||
cmd = {
|
cmd = {
|
||||||
'java',
|
'java',
|
||||||
|
|
||||||
'-Declipse.application=org.eclipse.jdt.ls.core.id1',
|
'-Declipse.application=org.eclipse.jdt.ls.core.id1',
|
||||||
'-Dosgi.bundles.defaultStartLevel=4',
|
'-Dosgi.bundles.defaultStartLevel=4',
|
||||||
'-Declipse.product=org.eclipse.jdt.ls.core.product',
|
'-Declipse.product=org.eclipse.jdt.ls.core.product',
|
||||||
'-Dlog.protocol=true',
|
'-Dlog.protocol=true',
|
||||||
'-Dlog.level=ALL',
|
'-Dlog.level=ALL',
|
||||||
'-Xms1g',
|
'-Xms1g',
|
||||||
'--add-modules=ALL-SYSTEM',
|
'--add-modules=ALL-SYSTEM',
|
||||||
'--add-opens', 'java.base/java.util=ALL-UNNAMED',
|
'--add-opens', 'java.base/java.util=ALL-UNNAMED',
|
||||||
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
|
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
|
||||||
|
|
||||||
'-jar', jdtls_home .. '/plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar',
|
'-jar', jdtls_home .. '/plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar',
|
||||||
'-configuration', jdtls_home .. '/config_linux',
|
'-configuration', jdtls_home .. '/config_linux',
|
||||||
'-data', os.getenv('HOME') .. '/.cache/jdtls/' .. project_name
|
'-data', os.getenv('HOME') .. '/.cache/jdtls/' .. project_name
|
||||||
},
|
},
|
||||||
|
|
||||||
-- This is the default if not provided, you can remove it. Or adjust as needed.
|
-- This is the default if not provided, you can remove it. Or adjust as needed.
|
||||||
-- One dedicated LSP server & client will be started per unique root_dir
|
-- One dedicated LSP server & client will be started per unique root_dir
|
||||||
root_dir = vim.fs.root(0, {'.git', 'mvnw', 'gradlew', 'build.gradle'}),
|
root_dir = vim.fs.root(0, {'.git', 'mvnw', 'gradlew', 'build.gradle'}),
|
||||||
|
|
||||||
-- Here you can configure eclipse.jdt.ls specific settings
|
-- Here you can configure eclipse.jdt.ls specific settings
|
||||||
-- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request
|
-- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request
|
||||||
-- for a list of options
|
-- for a list of options
|
||||||
settings = {
|
settings = {
|
||||||
java = {
|
java = {
|
||||||
signatureHelp = { enabled = true },
|
signatureHelp = { enabled = true },
|
||||||
jdt = {
|
jdt = {
|
||||||
ls = {
|
ls = {
|
||||||
androidSupport = { enabled = true },
|
androidSupport = { enabled = true },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Language server `initializationOptions`
|
-- Language server `initializationOptions`
|
||||||
-- You need to extend the `bundles` with paths to jar files
|
-- You need to extend the `bundles` with paths to jar files
|
||||||
-- if you want to use additional eclipse.jdt.ls plugins.
|
-- if you want to use additional eclipse.jdt.ls plugins.
|
||||||
--
|
--
|
||||||
-- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation
|
-- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation
|
||||||
--
|
--
|
||||||
-- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this
|
-- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this
|
||||||
init_options = {
|
init_options = {
|
||||||
bundles = {}
|
bundles = {}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
-- This starts a new client & server,
|
-- This starts a new client & server,
|
||||||
-- or attaches to an existing client & server depending on the `root_dir`.
|
-- or attaches to an existing client & server depending on the `root_dir`.
|
||||||
|
3
.config/nvim/ftplugin/javascript.lua
Normal file
3
.config/nvim/ftplugin/javascript.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 2
|
||||||
|
vim.bo.shiftwidth = 2
|
@ -1,4 +0,0 @@
|
|||||||
setlocal et
|
|
||||||
setlocal ts=2
|
|
||||||
setlocal sts=2
|
|
||||||
setlocal sw=2
|
|
3
.config/nvim/ftplugin/less.lua
Normal file
3
.config/nvim/ftplugin/less.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 2
|
||||||
|
vim.bo.shiftwidth = 2
|
@ -1,4 +0,0 @@
|
|||||||
setlocal et
|
|
||||||
setlocal ts=2
|
|
||||||
setlocal sts=2
|
|
||||||
setlocal sw=2
|
|
3
.config/nvim/ftplugin/modula2.lua
Normal file
3
.config/nvim/ftplugin/modula2.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 2
|
||||||
|
vim.bo.shiftwidth = 2
|
3
.config/nvim/ftplugin/php.lua
Normal file
3
.config/nvim/ftplugin/php.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 4
|
||||||
|
vim.bo.shiftwidth = 4
|
3
.config/nvim/ftplugin/ruby.lua
Normal file
3
.config/nvim/ftplugin/ruby.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 2
|
||||||
|
vim.bo.shiftwidth = 2
|
@ -1,3 +0,0 @@
|
|||||||
setlocal expandtab
|
|
||||||
setlocal tabstop=2
|
|
||||||
setlocal shiftwidth=2
|
|
@ -1,4 +0,0 @@
|
|||||||
setlocal et
|
|
||||||
setlocal ts=2
|
|
||||||
setlocal sts=2
|
|
||||||
setlocal sw=2
|
|
3
.config/nvim/ftplugin/vue.lua
Normal file
3
.config/nvim/ftplugin/vue.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = 2
|
||||||
|
vim.bo.shiftwidth = 2
|
@ -1,4 +0,0 @@
|
|||||||
setlocal et
|
|
||||||
setlocal ts=2
|
|
||||||
setlocal sts=2
|
|
||||||
setlocal sw=2
|
|
119
.config/nvim/init.lua
Normal file
119
.config/nvim/init.lua
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
vim.opt.expandtab = false
|
||||||
|
vim.opt.ignorecase = true
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
vim.opt.ruler = true
|
||||||
|
vim.opt.backup = false
|
||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.colorcolumn = "120"
|
||||||
|
vim.opt.exrc = true
|
||||||
|
vim.opt.secure = true
|
||||||
|
vim.opt.hidden = true
|
||||||
|
|
||||||
|
vim.opt.completeopt = { 'menu', 'menuone', 'noselect' }
|
||||||
|
vim.opt.shortmess:append('c')
|
||||||
|
|
||||||
|
-- Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
|
||||||
|
-- delays and poor user experience.
|
||||||
|
vim.opt.updatetime = 300
|
||||||
|
|
||||||
|
-- Always show the signcolumn, otherwise it would shift the text each time
|
||||||
|
-- diagnostics appear/become resolved.
|
||||||
|
-- Recently vim can merge signcolumn and number column into one
|
||||||
|
vim.opt.signcolumn = 'yes'
|
||||||
|
|
||||||
|
vim.opt.mouse = 'a' -- " Enable mouse in all modes.
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Packer
|
||||||
|
--
|
||||||
|
vim.cmd [[packadd packer.nvim]]
|
||||||
|
|
||||||
|
require'packer'.startup(function()
|
||||||
|
-- Packer can manage itself
|
||||||
|
use 'wbthomason/packer.nvim'
|
||||||
|
|
||||||
|
use 'mfussenegger/nvim-dap'
|
||||||
|
use 'airblade/vim-gitgutter'
|
||||||
|
use 'neovim/nvim-lspconfig'
|
||||||
|
use 'dense-analysis/ale'
|
||||||
|
use 'liuchengxu/vista.vim' -- Tag bar.
|
||||||
|
use {
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
run = ':TSUpdate'
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Git.
|
||||||
|
use 'tpope/vim-fugitive'
|
||||||
|
use {
|
||||||
|
'sindrets/diffview.nvim',
|
||||||
|
requires = {'nvim-lua/plenary.nvim'}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- File browser.
|
||||||
|
use {
|
||||||
|
'kyazdani42/nvim-tree.lua',
|
||||||
|
requires = {'nvim-tree/nvim-web-devicons'} -- optional, for file icon
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
requires = {'nvim-lua/plenary.nvim'}
|
||||||
|
}
|
||||||
|
use 'nvim-telescope/telescope-ui-select.nvim'
|
||||||
|
use {
|
||||||
|
'kevinhwang91/nvim-ufo',
|
||||||
|
requires = {'kevinhwang91/promise-async'}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Theme.
|
||||||
|
use 'sainnhe/sonokai'
|
||||||
|
use {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
requires = {'nvim-tree/nvim-web-devicons'} -- optional, for status line icons
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Syntax.
|
||||||
|
use 'leafOfTree/vim-vue-plugin'
|
||||||
|
use 'mfussenegger/nvim-jdtls'
|
||||||
|
use 'dart-lang/dart-vim-plugin'
|
||||||
|
use {
|
||||||
|
'akinsho/flutter-tools.nvim',
|
||||||
|
requires = {
|
||||||
|
'nvim-lua/plenary.nvim'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
use 'vim-vdebug/vdebug'
|
||||||
|
|
||||||
|
-- nvim-cmp
|
||||||
|
use 'dcampos/nvim-snippy'
|
||||||
|
use 'hrsh7th/cmp-nvim-lsp'
|
||||||
|
use 'hrsh7th/nvim-cmp'
|
||||||
|
use 'dcampos/cmp-snippy'
|
||||||
|
use 'hrsh7th/cmp-path'
|
||||||
|
use 'hrsh7th/cmp-buffer'
|
||||||
|
end)
|
||||||
|
|
||||||
|
require'plugins'
|
||||||
|
require'lspserver'
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Theme
|
||||||
|
--
|
||||||
|
vim.cmd('colorscheme sonokai')
|
||||||
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
|
-- Mappings.
|
||||||
|
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
|
||||||
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
|
||||||
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
|
||||||
|
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
|
||||||
|
|
||||||
|
-- Custom file types.
|
||||||
|
vim.filetype.add({
|
||||||
|
extension = {
|
||||||
|
elna = 'elna'
|
||||||
|
}
|
||||||
|
})
|
31
.config/nvim/lua/lsphelp.lua
Normal file
31
.config/nvim/lua/lsphelp.lua
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
-- Helper function for creating keymaps.
|
||||||
|
function nnoremap(rhs, lhs, desc)
|
||||||
|
local bufopts = { noremap=true, silent=true, buffer=bufnr, desc = desc }
|
||||||
|
|
||||||
|
vim.keymap.set("n", rhs, lhs, bufopts)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Use an on_attach function to only map the following keys
|
||||||
|
-- after the language server attaches to the current buffer
|
||||||
|
function default_on_attach(client, bufnr)
|
||||||
|
-- Enable completion triggered by <c-x><c-o>
|
||||||
|
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
-- Mappings.
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
nnoremap('gD', vim.lsp.buf.declaration, "Go to declaration")
|
||||||
|
nnoremap('gd', vim.lsp.buf.definition, "Go to definition")
|
||||||
|
nnoremap('K', vim.lsp.buf.hover, "Hover text")
|
||||||
|
nnoremap('gi', vim.lsp.buf.implementation, "Go to implementation")
|
||||||
|
nnoremap('<C-k>', vim.lsp.buf.signature_help, "Show signature")
|
||||||
|
nnoremap('<space>wa', vim.lsp.buf.add_workspace_folder, "Add workspace folder")
|
||||||
|
nnoremap('<space>wr', vim.lsp.buf.remove_workspace_folder, "Remove workspace folder")
|
||||||
|
nnoremap('<space>wl', function()
|
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||||
|
end, "List workspace folders")
|
||||||
|
nnoremap('<space>D', vim.lsp.buf.type_definition, "Go to type definition")
|
||||||
|
nnoremap('<space>rn', vim.lsp.buf.rename, "Rename")
|
||||||
|
nnoremap('<space>ca', vim.lsp.buf.code_action, "Code actions")
|
||||||
|
nnoremap('gr', vim.lsp.buf.references, "Find references")
|
||||||
|
nnoremap('<space>f', function() vim.lsp.buf.format { async = true } end, "Format file")
|
||||||
|
end
|
77
.config/nvim/lua/lspserver.lua
Normal file
77
.config/nvim/lua/lspserver.lua
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
require'lsphelp'
|
||||||
|
local nvim_lsp = require('lspconfig')
|
||||||
|
|
||||||
|
nvim_lsp['hls'].setup {
|
||||||
|
on_attach = default_on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
flags = {
|
||||||
|
debounce_text_changes = 150,
|
||||||
|
},
|
||||||
|
settings = {
|
||||||
|
haskell = {
|
||||||
|
plugin = {
|
||||||
|
stan = {
|
||||||
|
globalOn = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nvim_lsp['intelephense'].setup {
|
||||||
|
on_attach = default_on_attach,
|
||||||
|
flags = {
|
||||||
|
debounce_text_changes = 150
|
||||||
|
},
|
||||||
|
init_options = {
|
||||||
|
licenceKey = os.getenv('HOME') .. '/Documents/Schluessel/intelephense.key',
|
||||||
|
storagePath = '/tmp/intelephense'
|
||||||
|
},
|
||||||
|
capabilities = capabilities,
|
||||||
|
settings = {
|
||||||
|
intelephense = {
|
||||||
|
environment = {
|
||||||
|
phpVersion = '8.2.0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nvim_lsp['clangd'].setup {
|
||||||
|
on_attach = default_on_attach,
|
||||||
|
capabilities = capabilities
|
||||||
|
}
|
||||||
|
require("flutter-tools").setup {
|
||||||
|
outline = {
|
||||||
|
open_cmd = "Vista"
|
||||||
|
},
|
||||||
|
lsp = {
|
||||||
|
on_attach = default_on_attach,
|
||||||
|
capabilities = capabilities
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nvim_lsp['twiggy_language_server'].setup {
|
||||||
|
on_attach = default_on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
settings = {
|
||||||
|
twiggy = {
|
||||||
|
framework = 'symfony',
|
||||||
|
phpExecutable = '/usr/bin/php',
|
||||||
|
symfonyConsolePath = 'bin/console',
|
||||||
|
diagnostics = {
|
||||||
|
twigCsFixer = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vim.g.vim_vue_plugin_config = {
|
||||||
|
syntax = {
|
||||||
|
template = {'html'},
|
||||||
|
script = {'javascript'},
|
||||||
|
style = {'css'},
|
||||||
|
},
|
||||||
|
full_syntax = {},
|
||||||
|
initial_indent = {},
|
||||||
|
attribute = 0,
|
||||||
|
keyword = 0,
|
||||||
|
foldexpr = 0,
|
||||||
|
debug = 0
|
||||||
|
}
|
202
.config/nvim/lua/plugins.lua
Normal file
202
.config/nvim/lua/plugins.lua
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
--
|
||||||
|
-- ALE
|
||||||
|
--
|
||||||
|
-- Run linters only on save
|
||||||
|
vim.g.ale_lint_on_text_changed = 'never'
|
||||||
|
vim.g.ale_lint_on_insert_leave = 0
|
||||||
|
|
||||||
|
-- Include the linter name (e.g. 'hack' or 'hhast'), code, and message in errors
|
||||||
|
vim.g.ale_echo_msg_format = '[%linter%] %s'
|
||||||
|
vim.g.ale_linters = {
|
||||||
|
hack = {'hack', 'hhast'},
|
||||||
|
haskell = {"hlint"},
|
||||||
|
javascript = {'eslint'},
|
||||||
|
d = {'dmd'},
|
||||||
|
php = {'phpcs', 'phpstan'},
|
||||||
|
ruby = {'rubocop'},
|
||||||
|
cpp = {},
|
||||||
|
asm = {},
|
||||||
|
}
|
||||||
|
vim.g.ale_ruby_rubocop_executable = 'bundle'
|
||||||
|
vim.g.ale_cpp_cc_options = '-std=c++17 -Wall'
|
||||||
|
|
||||||
|
vim.g.ale_open_list = 1
|
||||||
|
vim.g.ale_disable_lsp = 1
|
||||||
|
|
||||||
|
--
|
||||||
|
-- nvim-cmp
|
||||||
|
--
|
||||||
|
local cmp = require'cmp'
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
-- REQUIRED - you must specify a snippet engine
|
||||||
|
expand = function(args)
|
||||||
|
require'snippy'.expand_snippet(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
|
||||||
|
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
|
||||||
|
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
||||||
|
-- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||||
|
['<C-y>'] = cmp.config.disable,
|
||||||
|
['<C-e>'] = cmp.mapping({
|
||||||
|
i = cmp.mapping.abort(),
|
||||||
|
c = cmp.mapping.close(),
|
||||||
|
}),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = false }),
|
||||||
|
},
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'snippy' },
|
||||||
|
}, {
|
||||||
|
{ name = 'path' },
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
}),
|
||||||
|
view = {
|
||||||
|
entries = 'native',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Setup lspconfig.
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
|
capabilities.textDocument.foldingRange = {
|
||||||
|
dynamicRegistration = false,
|
||||||
|
lineFoldingOnly = true
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Telescope
|
||||||
|
--
|
||||||
|
require('telescope').setup {
|
||||||
|
extensions = {
|
||||||
|
["ui-select"] = {
|
||||||
|
require("telescope.themes").get_dropdown {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
require("telescope").load_extension("ui-select")
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>ff', "<cmd>lua require('telescope.builtin').find_files()<cr>",
|
||||||
|
{ noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>fg', "<cmd>lua require('telescope.builtin').live_grep()<cr>",
|
||||||
|
{ noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>fb', "<cmd>lua require('telescope.builtin').buffers()<cr>",
|
||||||
|
{ noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>fh', "<cmd>lua require('telescope.builtin').help_tags()<cr>",
|
||||||
|
{ noremap = true, silent = true })
|
||||||
|
|
||||||
|
--
|
||||||
|
-- NvimTree
|
||||||
|
--
|
||||||
|
require('nvim-tree').setup {}
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-n>', ':NvimTreeToggle<CR>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>r', ':NvimTreeRefresh<CR>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>n', ':NvimTreeFindFile<CR>', { noremap = true })
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Lualine
|
||||||
|
--
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
theme = 'sonokai'
|
||||||
|
},
|
||||||
|
extensions = {'quickfix', 'nvim-tree', 'fugitive'},
|
||||||
|
sections = {
|
||||||
|
lualine_c = {
|
||||||
|
'filename'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Diffview.nvim
|
||||||
|
--
|
||||||
|
require('diffview').setup {}
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Vista
|
||||||
|
--
|
||||||
|
vim.g.vista_default_executive = 'nvim_lsp'
|
||||||
|
|
||||||
|
--
|
||||||
|
-- nvim-ufo
|
||||||
|
--
|
||||||
|
vim.wo.foldcolumn = '1'
|
||||||
|
vim.wo.foldlevel = 99 -- feel free to decrease the value
|
||||||
|
vim.wo.foldenable = true
|
||||||
|
|
||||||
|
require('ufo').setup()
|
||||||
|
|
||||||
|
--
|
||||||
|
-- nvim-dap
|
||||||
|
--
|
||||||
|
vim.keymap.set('n', '<F5>', function() require('dap').continue() end)
|
||||||
|
vim.keymap.set('n', '<F10>', function() require('dap').step_over() end)
|
||||||
|
vim.keymap.set('n', '<F11>', function() require('dap').step_into() end)
|
||||||
|
vim.keymap.set('n', '<F12>', function() require('dap').step_out() end)
|
||||||
|
vim.keymap.set('n', '<Leader>b', function() require('dap').toggle_breakpoint() end)
|
||||||
|
vim.keymap.set('n', '<Leader>B', function() require('dap').set_breakpoint() end)
|
||||||
|
vim.keymap.set('n', '<Leader>lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end)
|
||||||
|
vim.keymap.set('n', '<Leader>dr', function() require('dap').repl.open() end)
|
||||||
|
vim.keymap.set('n', '<Leader>dl', function() require('dap').run_last() end)
|
||||||
|
vim.keymap.set({'n', 'v'}, '<Leader>dh', function()
|
||||||
|
require('dap.ui.widgets').hover()
|
||||||
|
end)
|
||||||
|
vim.keymap.set({'n', 'v'}, '<Leader>dp', function()
|
||||||
|
require('dap.ui.widgets').preview()
|
||||||
|
end)
|
||||||
|
vim.keymap.set('n', '<Leader>df', function()
|
||||||
|
local widgets = require('dap.ui.widgets')
|
||||||
|
widgets.centered_float(widgets.frames)
|
||||||
|
end)
|
||||||
|
vim.keymap.set('n', '<Leader>ds', function()
|
||||||
|
local widgets = require('dap.ui.widgets')
|
||||||
|
widgets.centered_float(widgets.scopes)
|
||||||
|
end)
|
||||||
|
|
||||||
|
local dap = require("dap")
|
||||||
|
dap.adapters.gdb = {
|
||||||
|
type = "executable",
|
||||||
|
command = "gdb",
|
||||||
|
args = { "-i", "dap" }
|
||||||
|
}
|
||||||
|
dap.configurations.cpp = {
|
||||||
|
{
|
||||||
|
name = "Launch",
|
||||||
|
type = "gdb",
|
||||||
|
request = "launch",
|
||||||
|
program = function()
|
||||||
|
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||||
|
end,
|
||||||
|
cwd = "${workspaceFolder}",
|
||||||
|
stopAtBeginningOfMainSubprogram = false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Vdebug
|
||||||
|
--
|
||||||
|
vim.g.vdebug_options = { port = '9000' }
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Treesitter
|
||||||
|
--
|
||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
ensure_installed = {
|
||||||
|
'haskell', 'php', 'lua', 'css', 'dockerfile', 'html', 'javascript', 'markdown', 'ruby', 'vue'
|
||||||
|
},
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
-- sonokai
|
||||||
|
--
|
||||||
|
vim.g.sonokai_style = "shusia"
|
36
.gitconfig
Executable file
36
.gitconfig
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
[user]
|
||||||
|
name = Eugen Wissner
|
||||||
|
email = belka@caraus.de
|
||||||
|
signingkey = A27FDC1E8EE902C0
|
||||||
|
|
||||||
|
[diff]
|
||||||
|
tool = kitty
|
||||||
|
guitool = kitty.gui
|
||||||
|
[difftool]
|
||||||
|
prompt = false
|
||||||
|
trustExitCode = true
|
||||||
|
[difftool "kitty"]
|
||||||
|
cmd = kitty +kitten diff $LOCAL $REMOTE
|
||||||
|
[difftool "kitty.gui"]
|
||||||
|
cmd = kitty kitty +kitten diff $LOCAL $REMOTE
|
||||||
|
|
||||||
|
[merge]
|
||||||
|
tool = fugitive
|
||||||
|
[mergetool "fugitive"]
|
||||||
|
cmd = nvim -f -c "Gvdiff!" "$MERGED"
|
||||||
|
prompt = false
|
||||||
|
[push]
|
||||||
|
default = simple
|
||||||
|
[core]
|
||||||
|
editor = nvim
|
||||||
|
askpass = /usr/bin/ksshaskpass
|
||||||
|
[pager]
|
||||||
|
branch = false
|
||||||
|
[pull]
|
||||||
|
rebase = false
|
||||||
|
#[credential]
|
||||||
|
# helper = /usr/doc/git-2.34.0/contrib/credential/libsecret/git-credential-libsecret
|
||||||
|
[gpg]
|
||||||
|
program = gpg
|
||||||
|
[init]
|
||||||
|
defaultBranch = master
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
node_modules/
|
.config/nvim/config
|
||||||
|
.config/nvim/plugin/
|
||||||
|
12
.profile
12
.profile
@ -1,11 +1,17 @@
|
|||||||
PATH="$HOME/.local/bin:$HOME/.cargo/bin:$HOME/.ghcup/bin:$HOME/.cabal/bin:$PATH"
|
PATH="$HOME/.local/bin:$HOME/.cargo/bin:$HOME/.ghcup/bin:$HOME/.cabal/bin:$HOME/.rd/bin:$PATH"
|
||||||
|
|
||||||
if [ -x /opt/homebrew/bin/brew ]
|
if [ -x /opt/homebrew/bin/brew ]
|
||||||
then
|
then
|
||||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||||
|
|
||||||
PATH="$HOMEBREW_PREFIX/opt/bison/bin:/usr/local/bin:$PATH"
|
# Overriding Mac OS provided binutils breakes cross compiling binutils. But
|
||||||
for tool in libtool coreutils grep gnu-sed findutils make
|
# the binutils project also provides "g"-prefixed binaries.
|
||||||
|
PATH="/usr/local/bin:$PATH:$HOMEBREW_PREFIX/opt/binutils/bin"
|
||||||
|
for tool in flex bison
|
||||||
|
do
|
||||||
|
PATH="$HOMEBREW_PREFIX/opt/$tool/bin:$PATH"
|
||||||
|
done
|
||||||
|
for tool in libtool coreutils grep gnu-sed findutils make gpatch
|
||||||
do
|
do
|
||||||
PATH="$HOMEBREW_PREFIX/opt/$tool/libexec/gnubin:$PATH"
|
PATH="$HOMEBREW_PREFIX/opt/$tool/libexec/gnubin:$PATH"
|
||||||
done
|
done
|
||||||
|
18
.tmux.conf
Normal file
18
.tmux.conf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
set -s escape-time 0
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
set -g status-keys vi
|
||||||
|
set -g mode-keys vi
|
||||||
|
|
||||||
|
# Reset bindings without the repeat time
|
||||||
|
bind-key Left select-pane -L
|
||||||
|
bind-key Right select-pane -R
|
||||||
|
bind-key Up select-pane -U
|
||||||
|
bind-key Down select-pane -D
|
||||||
|
|
||||||
|
# List of plugins
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||||
|
set -g @plugin "arcticicestudio/nord-tmux"
|
||||||
|
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
9
.yashrc
9
.yashrc
@ -12,12 +12,15 @@ bindkey --emacs '\^L' clear-and-redraw-all
|
|||||||
bindkey --vi-insert '\^L' clear-and-redraw-all
|
bindkey --vi-insert '\^L' clear-and-redraw-all
|
||||||
bindkey --vi-command '\^L' clear-and-redraw-all
|
bindkey --vi-command '\^L' clear-and-redraw-all
|
||||||
|
|
||||||
# Define shortcuts.
|
|
||||||
alias rdpwin='xfreerdp /f /sound /v:192.168.0.4 /u:belka@caraus.de'
|
|
||||||
|
|
||||||
# Programming environment.
|
# Programming environment.
|
||||||
command -v rbenv >/dev/null 2>&1 && eval "$(rbenv init -)"
|
command -v rbenv >/dev/null 2>&1 && eval "$(rbenv init -)"
|
||||||
|
|
||||||
command -v fastfetch >/dev/null 2>&1 && fastfetch
|
command -v fastfetch >/dev/null 2>&1 && fastfetch
|
||||||
|
|
||||||
|
read_project_env() {
|
||||||
|
test -x .env.sh && . .env.sh || true
|
||||||
|
}
|
||||||
|
read_project_env
|
||||||
|
|
||||||
|
YASH_AFTER_CD="read_project_env"
|
||||||
# vim: set ft=sh:
|
# vim: set ft=sh:
|
||||||
|
373
LICENSE
Normal file
373
LICENSE
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
Reference in New Issue
Block a user