12 Commits

Author SHA1 Message Date
Michael Chalupiak
e99901146d Merge branch 'master' into arch-desktop 2026-01-17 02:11:18 -05:00
Michael Chalupiak
dc51e2b8d8 Merge branch 'master' into arch-desktop 2026-01-10 01:51:19 -05:00
Michael Chalupiak
9fd41c75ef Merge branch 'master' into arch-desktop 2026-01-09 00:48:07 -05:00
Michael Chalupiak
adcecd9d62 Merge branch 'master' into arch-desktop 2026-01-07 23:07:20 -05:00
Michael Chalupiak
ade4c9f47c Merge branch 'master' into arch-desktop 2025-11-14 12:58:25 -05:00
Michael Chalupiak
82c55b55c7 Merge branch 'master' into arch-desktop 2025-11-14 00:17:26 -05:00
Michael Chalupiak
8ba5349c5d merge master 2025-09-24 18:36:00 -04:00
Michael Chalupiak
c16dc3b450 Added tinymist (typst) lsp settings 2025-09-14 14:25:33 -04:00
Michael Chalupiak
924c01282d Merge branch 'master' into arch-desktop 2025-08-30 18:32:52 -04:00
Michael Chalupiak
7a7b0e3f1c Merge branch 'master' into arch-desktop 2025-08-23 15:28:19 -04:00
Michael Chalupiak
cfb88473fc Merge branch 'master' into arch-desktop 2025-08-23 14:41:11 -04:00
Michael Chalupiak
32760db44f bp 2025-08-23 14:25:58 -04:00
30 changed files with 99 additions and 1679 deletions

View File

@@ -18,11 +18,5 @@ test -r '/home/mikec/.opam/opam-init/init.sh' && . '/home/mikec/.opam/opam-init/
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
exec river exec river
fi fi
HOMEBREW_PREFIX=/opt/homebrew
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
export CPATH="$HOMEBREW_PREFIX/include:$CPATH"
export LIBRARY_PATH="$HOMEBREW_PREFIX/lib:$LIBRARY_PATH"
. "/Users/mikec/.local/share/bob/env/env.sh"
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
. "/home/mikec/.local/share/bob/env/env.sh"

View File

@@ -1,35 +0,0 @@
[mchalupiak]
source = imaps://mikec@mail.mchalupiak.com
outgoing = smtp://mikec%40mchalupiak.com@www.mchalupiak.com
default = INBOX
from = Michael Chalupiak <mikec@mchalupiak.com>
cache-headers = true
source-cred-cmd = pass mikec@mchalupiak.com
outgoing-cred-cmd = pass mikec@mchalupiak.com
[mikecchalupiak]
source = imaps+xoauth2://mikecchalupiak%40outlook.com@outlook.office365.com?
outgoing = smtp+xoauth2://mikecchalupiak%40outlook.com@outlook.office365.com:587
from = "Michael Chalupiak" <mikecchalupiak@outlook.com>
default = INBOX
cache-headers = true
source-cred-cmd = oama access mikecchalupiak@outlook.com
outgoing-cred-cmd = oama access mikecchalupiak@outlook.com
[spamreciver1]
source = imaps+xoauth2://spamreciver1%40outlook.com@outlook.office365.com?
outgoing = smtp+xoauth2://spamreciver1%40outlook.com@outlook.office365.com:587
from = "Mike Jeff" <spamreciver1@outlook.com>
default = INBOX
cache-headers = true
source-cred-cmd = oama access spamreciver1@outlook.com
outgoing-cred-cmd = oama access spamreciver1@outlook.com
[chalupmc]
source = imaps+xoauth2://chalupmc%40rose-hulman.edu@outlook.office365.com?
outgoing = smtp+xoauth2://chalupmc%40rose-hulman.edu@outlook.office365.com:587
from = "Michael Chalupiak" <chalupmc@rose-hulman.edu>
default = INBOX
cache-headers = true
source-cred-cmd = oama access chalupmc@rose-hulman.edu
outgoing-cred-cmd = oama access chalupmc@rose-hulman.edu

View File

@@ -1,862 +0,0 @@
#
# 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=false
#
# Ring the bell when new messages are received
#
# Default: true
#new-message-bell=true
#
# Template to use for Account tab titles
#
# Default: {{.Account}}
#tab-title-account={{.Account}}
#
# 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=false
# If dirlist-tree is enabled, set level at which folders are collapsed by
# default. Set to 0 to disable.
#
# Default: 0
#dirlist-collapse=0
# List of space-separated criteria to sort the messages by, see *sort*
# command in *aerc*(1) for reference. Prefixing a criterion with "-r "
# reverses that criterion.
#
# Example: "from -r date"
#
#sort=
# Moves to next message when the current message is deleted
#
# Default: true
#next-message-on-delete=true
# Automatically set the "seen" flag when a message is opened in the message
# viewer.
#
# Default: true
#auto-mark-read=true
# The directories where the stylesets are stored. It takes a colon-separated
# list of directories. If this is unset or if a styleset cannot be found, the
# following paths will be used as a fallback in that order:
#
# ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
# ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
# /usr/local/share/aerc/stylesets
# /usr/share/aerc/stylesets
#
#stylesets-dirs=
# Uncomment to use box-drawing characters for vertical and horizontal borders.
#
# Default: "│" and "─"
#border-char-vertical="│"
#border-char-horizontal="─"
# Sets the styleset to use for the aerc ui elements.
#
# Default: default
#styleset-name=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.
#
# Default: false
fuzzy-complete=true
# 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=false
# 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/html,text/plain
#
# 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=cha -T text/html -d -o display.color-mode="true-color" -o buffer.mark-links=true
# text/html=! html-unsafe -sixel
#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/html=cha
# 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

View File

@@ -1,184 +0,0 @@
# 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>

View File

@@ -1,3 +0,0 @@
[buffer]
images = true
scripting = true

View File

@@ -23,7 +23,7 @@
;; ;;
;; (setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light) ;; (setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13)) ;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
(setq doom-font (font-spec :family "Iosevka Term SS12" :size 18)) (setq doom-font (font-spec :family "Iosevka Term SS12" :size 16))
;; ;;
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them ;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to ;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
@@ -33,7 +33,7 @@
;; There are two ways to load a theme. Both assume the theme is installed and ;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the ;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default: ;; `load-theme' function. This is the default:
;; (setq doom-theme 'doom-one) (setq doom-theme 'doom-one)
;; This determines the style of line numbers in effect. If set to `nil', line ;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'. ;; numbers are disabled. For relative line numbers, set this to `relative'.
@@ -78,7 +78,7 @@
;; (setq! tab-always-indent nil) ;; (setq! tab-always-indent nil)
(after! corfu (after! corfu
(setq! tab-always-indent nil)) (setq tab-always-indent nil))
;; (map! :map corfu-map :i "TAB" nil) ;; (map! :map corfu-map :i "TAB" nil)
;; (map! :map corfu-map "TAB" nil) ;; (map! :map corfu-map "TAB" nil)
;; (map! :map corfu-map :i "S-TAB" nil) ;; (map! :map corfu-map :i "S-TAB" nil)
@@ -93,6 +93,7 @@
;; (map! :map corfu-map :i "C-g" #'corfu-reset) ;; (map! :map corfu-map :i "C-g" #'corfu-reset)
;; (setq +corfu-want-ret-to-confirm nil) ;; (setq +corfu-want-ret-to-confirm nil)
(use-package! auto-dark (use-package! auto-dark
:defer t :defer t
:init :init

View File

@@ -38,7 +38,7 @@
indent-guides ; highlighted indent columns indent-guides ; highlighted indent columns
;;ligatures ; ligatures and symbols to make your code pretty again ;;ligatures ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side ;;minimap ; show a map of the code on the side
;; modeline ; snazzy, Atom-inspired modeline, plus API modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions ;;nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim ;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on ophints ; highlight the region an operation acts on
@@ -46,12 +46,12 @@
smooth-scroll ; So smooth you won't believe it's not butter smooth-scroll ; So smooth you won't believe it's not butter
;;tabs ; a tab bar for Emacs ;;tabs ; a tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler ;;treemacs ; a project drawer, like neotree but cooler
unicode ; extended unicode support for various languages ;;unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe (vc-gutter +pretty) ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows ;;window-select ; visually switch windows
;; workspaces ; tab emulation, persistence & separate workspaces workspaces ; tab emulation, persistence & separate workspaces
zen ; distraction-free coding or writing ;;zen ; distraction-free coding or writing
:editor :editor
(evil +everywhere); come to the dark side, we have cookies (evil +everywhere); come to the dark side, we have cookies
@@ -62,7 +62,7 @@
;;lispy ; vim for lisp, for people who don't like vim ;;lispy ; vim for lisp, for people who don't like vim
multiple-cursors ; editing in many places at once multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent ;;objed ; text object editing for the innocent
parinfer ; turn lisp into python, sort of ;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates ;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to snippets ; my elves. They type so I don't have to
;; (whitespace +guess +trim) ; a butler for your whitespace ;; (whitespace +guess +trim) ; a butler for your whitespace
@@ -81,11 +81,11 @@
eshell ; the elisp shell that works everywhere eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs ;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs ;;term ; basic terminal emulator for Emacs
;; vterm ; the best terminal emulation in Emacs vterm ; the best terminal emulation in Emacs
:checkers :checkers
syntax ; tasing you for every semicolon you forget syntax ; tasing you for every semicolon you forget
(spell +flyspell) ; tasing you for misspelling mispelling ;;(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make ;;grammar ; tasing grammar mistake every you make
:tools :tools
@@ -100,8 +100,8 @@
(eval +overlay) ; run code, run (also, repls) (eval +overlay) ; run code, run (also, repls)
(lookup +dictionary +offline) ; navigate your code and its documentation (lookup +dictionary +offline) ; navigate your code and its documentation
;;llm ; when I said you needed friends, I didn't mean... ;;llm ; when I said you needed friends, I didn't mean...
(lsp +eglot) ; M-x vscode (lsp +lsp) ; M-x vscode
(magit +forge) ; a git porcelain for Emacs magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs ;;make ; run make tasks from Emacs
;;pass ; password manager for nerds ;;pass ; password manager for nerds
;;pdf ; pdf enhancements ;;pdf ; pdf enhancements
@@ -120,7 +120,7 @@
;;beancount ; mind the GAAP ;;beancount ; mind the GAAP
(cc +lsp +tree-sitter) ; C > C++ == 1 (cc +lsp +tree-sitter) ; C > C++ == 1
;;clojure ; java with a lisp ;;clojure ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all ;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs ;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c ;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans ;;csharp ; unity, .NET, and mono shenanigans
@@ -153,7 +153,7 @@
;;lean ; for folks with too much to prove ;;lean ; for folks with too much to prove
;;ledger ; be audit you can be ;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices ;;lua ; one-based indices? one-based indices
(markdown +grip +tree-sitter) ; writing docs for people to ignore markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c ;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!" ;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel ;;ocaml ; an objective camel
@@ -177,9 +177,9 @@
;;solidity ; do you need a blockchain? No. ;;solidity ; do you need a blockchain? No.
(swift +lsp +tree-sitter); who asked for emoji variables? (swift +lsp +tree-sitter); who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance. ;;terra ; Earth and Moon in alignment for performance.
(web +lsp +tree-sitter) ; the tubes ;;web ; the tubes
;;yaml ; JSON, but readable ;;yaml ; JSON, but readable
(zig +lsp +tree-sitter) ; C, but simpler ;;zig ; C, but simpler
:email :email
;;(mu4e +org +gmail) ;;(mu4e +org +gmail)

View File

@@ -21,4 +21,3 @@ theme = light:Dawnfox,dark:Carbonfox
# gtk-adwaita = true # gtk-adwaita = true
window-decoration = true window-decoration = true
shell-integration-features = true shell-integration-features = true
mouse-scroll-multiplier = 1

View File

@@ -26,5 +26,5 @@ dataSourceCommonSettings\activeState=true
dataSourceCommonSettings\activeState=true dataSourceCommonSettings\activeState=true
[UserFeedback] [UserFeedback]
ApplicationStartCount=137 ApplicationStartCount=141
ApplicationTime=622 ApplicationTime=705

View File

@@ -26,5 +26,5 @@ dataSourceCommonSettings\activeState=true
dataSourceCommonSettings\activeState=true dataSourceCommonSettings\activeState=true
[UserFeedback] [UserFeedback]
ApplicationStartCount=3 ApplicationStartCount=72
ApplicationTime=35142 ApplicationTime=68724

View File

@@ -23,5 +23,5 @@ dataSourceCommonSettings\activeState=true
dataSourceCommonSettings\activeState=true dataSourceCommonSettings\activeState=true
[UserFeedback] [UserFeedback]
ApplicationStartCount=1 ApplicationStartCount=18
ApplicationTime=14 ApplicationTime=16794

View File

@@ -1,2 +1,2 @@
[UserFeedback] [UserFeedback]
ApplicationStartCount=1 ApplicationStartCount=18

View File

@@ -26,6 +26,6 @@ dataSourceCommonSettings\activeState=true
dataSourceCommonSettings\activeState=true dataSourceCommonSettings\activeState=true
[UserFeedback] [UserFeedback]
ApplicationStartCount=210 ApplicationStartCount=260
ApplicationTime=2008695 ApplicationTime=2430104
LastEncouragement=@DateTime(\0\0\0\x10\0\0\0\0\0\0%\x87}\x4\n\x84\xab\0) LastEncouragement=@DateTime(\0\0\0\x10\0\0\0\0\0\0%\x87}\x4\n\x84\xab\0)

File diff suppressed because one or more lines are too long

View File

@@ -18,8 +18,6 @@ bind-key G end
podlist-format "%2i %b %> %S [%dMB / %tMB] [%p %%] [%K]" podlist-format "%2i %b %> %S [%dMB / %tMB] [%p %%] [%K]"
download-filename-format "%t | %n [%F].%e" download-filename-format "%t | %n [%F].%e"
download-path "~/podcasts/%n/" download-path "~/podcasts/%n/"
browser "cha %u"
html-renderer "cha -T text/html -d -o display.color-mode=\"true-color\" -o buffer.mark-links=true"
macro 1 set browser "curl %u --output /tmp/image && sxiv /tmp/image && rm /tmp/image"; one; set browser lynx macro 1 set browser "curl %u --output /tmp/image && sxiv /tmp/image && rm /tmp/image"; one; set browser lynx
macro 2 set browser "mpv --vid=no -- %u"; one; set browser lynx macro 2 set browser "mpv --vid=no -- %u"; one; set browser lynx

View File

@@ -1,5 +1,4 @@
https://phaazon.net/blog/feed https://phaazon.net/blog/feed
https://port19.xyz/rss.xml
https://danielde.dev/rss.xml https://danielde.dev/rss.xml
https://sizeof.cat/index.xml https://sizeof.cat/index.xml
https://pkolaczk.github.io/feed.xml https://pkolaczk.github.io/feed.xml

View File

@@ -44,7 +44,7 @@ vim.g.mapleader = ' '
vim.g.neovide_scale_factor = 1.0 vim.g.neovide_scale_factor = 1.0
vim.g.neovide_theme = 'auto' vim.g.neovide_theme = 'auto'
vim.g.neovide_opacity = 1.0 vim.g.neovide_transparency = 1.0
function ChangeScaleFactor(delta) function ChangeScaleFactor(delta)
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
end end
@@ -56,7 +56,7 @@ vim.keymap.set('n', '<C-->', function()
ChangeScaleFactor(1 / 1.25) ChangeScaleFactor(1 / 1.25)
end) end)
vim.opt.guifont = { 'Iosevka Term SS12', ':h14' } vim.opt.guifont = { 'Iosevka Term SS12', ':h12' }
vim.opt.termguicolors = true vim.opt.termguicolors = true
vim.g.netrw_keepdir = 0 vim.g.netrw_keepdir = 0
@@ -82,6 +82,6 @@ vim.lsp.config('lua_ls', {
vim.lsp.config('tinymist', { vim.lsp.config('tinymist', {
settings = { settings = {
exportPdf = "onType", exportPdf = "onType",
} },
}) })
vim.diagnostic.config({ update_in_insert = true, float = true, virtual_lines = true}) vim.diagnostic.config({ update_in_insert = true, float = true, virtual_lines = true})

View File

@@ -49,16 +49,5 @@ return {
version = "*", -- Pin Neorg to the latest stable release version = "*", -- Pin Neorg to the latest stable release
config = true, config = true,
}, },
-- {
-- "Olical/conjure"
-- },
{
"vlime/vlime",
config = function(plugin)
vim.opt.rtp:append(plugin.dir .. '/vim/')
end
},
} }

View File

@@ -1,83 +0,0 @@
## oama version 0.22.0 - 2025-08-29 0290.e419ef10
## This is a YAML configuration file, indentation matters.
## Double ## indicates comments while single # default values.
## Not all defaults are shown, for full list run `oama printenv`
## and look at the `services:` section.
## Possible options for keeping refresh and access tokens:
## GPG - in a gpg encrypted file $XDG_STATE_HOME/oama/<email-address>.oauth
## (XDG_STATE_HOME defaults to ~/.local/state)
## GPG - in a gpg encrypted file ~/.local/state/oama/<email-address>.oauth
## KEYRING - in the keyring of a password manager with Secret Service API
##
## Choose exactly one.
encryption:
tag: KEYRING
# encryption:
# tag: GPG
# contents: your-KEY-ID
## Builtin service providers
## - google
## - microsoft
## Required fields: client_id, client_secret
##
services:
google:
client_id: application-CLIENT-ID
client_secret: application-CLIENT-SECRET
## Alternatively get them from a password manager using a shell command.
## If both variants are present then the _cmd versions get the priority.
## For example:
# client_id_cmd: |
# pass email/my-app | head -1
# client_secret_cmd: |
# pass email/my-app | head -2 | tail -1
# auth_scope: https://mail.google.com/
# microsoft:
# client_id: 08162f7c-0fd2-4200-a84a-f25a4db0b584 # notsecret
# client_secret: 'TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82' # notsecret
# auth_scope: https://outlook.365office.com/IMAP.AccessAsUser.All
# https://outlook.365office.com/SMTP.Send
# offline_access
# tenant: common
# prompt: select_account
#
microsoft:
# client_id: 08162f7c-0fd2-4200-a84a-f25a4db0b584 # notsecret
# client_secret: 'TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82' # notsecret
client_id: '9e5f94bc-e8a4-4e73-b8be-63364c29d753'
auth_scope: https://outlook.office.com/IMAP.AccessAsUser.All
https://outlook.office.com/POP.AccessAsUser.All
https://outlook.office.com/SMTP.Send
offline_access
tenant: common
prompt: select_account
## client_secret is not needed for device code flow
# auth_endpoint: https://login.microsoftonline.com/common/oauth2/v2.0/devicecode
##
## client_secret might be needed for other authorization flows
# client_secret: application-CLIENT_SECRET
## auth_endpoint: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
#
# auth_scope: https://outlook.office.com/IMAP.AccessAsUser.All
# https://outlook.office.com/SMTP.Send
# offline_access
# tenant: common
## User configured providers
## Required fields: client_id, client_secret, auth_endpoint, auth_scope, token_endpoint
##
## For example:
# yahoo:
# client_id: application-CLIENT-ID
# client_id_cmd: |
# password manager command ...
# client_secret: application-CLIENT_SECRET
# client_secret_cmd: |
# password manager command ...
# auth_endpoint: EDIT-ME!
# auth_scope: EDIT-ME!
# token_endpoint: EDIT-ME!

View File

@@ -1 +1,19 @@
;;; -*- lexical-binding: t -*- ;;; -*- lexical-binding: t -*-
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-safe-themes
'("720838034f1dd3b3da66f6bd4d053ee67c93a747b219d1c546c41c4e425daf93"
"d481904809c509641a1a1f1b1eb80b94c58c210145effc2631c1a7f2e4a2fdf4"
"aec7b55f2a13307a55517fdf08438863d694550565dee23181d2ebd973ebd6b8"
"3613617b9953c22fe46ef2b593a2e5bc79ef3cc88770602e7e569bbd71de113b"
"0325a6b5eea7e5febae709dab35ec8648908af12cf2d2b569bedc8da0a3a81c1"
default)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)

View File

@@ -19,25 +19,12 @@
;; ;;
;;; Code: ;;; Code:
(set-face-attribute 'default nil
:width 'normal :weight 'normal
:slant 'normal :font (font-spec :family "Iosevka Term SS12" :size 18))
(set-face-attribute 'fixed-pitch nil
:width 'normal :weight 'normal
:slant 'normal :font (font-spec :family "Iosevka Term SS12" :size 18))
(set-face-attribute 'variable-pitch nil
:width 'normal :weight 'normal
:slant 'normal :font (font-spec :family "Gentium Plus" :size 18))
(defconst default-mode-line-format (copy-sequence mode-line-format))
(setq history-length 100 (setq history-length 100
global-auto-revert-non-file-buffers t global-auto-revert-non-file-buffers t
use-dialog-box nil use-dialog-box nil
custom-safe-themes t custom-safe-themes t
make-backup-files nil
read-file-name-completion-ignore-case t read-file-name-completion-ignore-case t
tab-always-indent nil tab-always-indent nil)
display-buffer-alist '(
("\\*elfeed-.*\\*" (display-buffer-same-window))))
(setq-default (setq-default
indent-tabs-mode nil indent-tabs-mode nil
tab-width 4 tab-width 4

View File

@@ -1,20 +1,16 @@
;;; -*- lexical-binding: t; -*- ;;; -*- lexical-binding: t; -*-
(global-set-key (kbd "C-c f") #'consult-fd) (global-set-key (kbd "C-c f") #'consult-fd)
(global-set-key (kbd "C-c C-f") #'find-file-at-point)
(global-set-key (kbd "C-c r") #'recentf) (global-set-key (kbd "C-c r") #'recentf)
(global-set-key (kbd "C-c x") #'kill-current-buffer)
(global-set-key (kbd "C-c X") (lambda () (interactive) (other-window 1) (kill-buffer-and-window)))
(global-set-key (kbd "C-c g") #'consult-ripgrep) (global-set-key (kbd "C-c g") #'consult-ripgrep)
(global-set-key (kbd "C-c L") #'consult-line)
(global-set-key (kbd "C-c i") #'consult-info) (global-set-key (kbd "C-c i") #'consult-info)
(global-set-key (kbd "C-c s") #'ispell-word) (global-set-key (kbd "C-c s") #'ispell-word)
(global-set-key (kbd "C-c f") #'apheleia-format-buffer)
(global-set-key (kbd "C-c t") #'load-theme) (global-set-key (kbd "C-c t") #'load-theme)
(global-set-key (kbd "C-c C-c") #'compile) (global-set-key (kbd "C-c C-c") #'compile)
(global-set-key (kbd "C-c d") #'dictionary-define-word) (global-set-key (kbd "C-c d") #'dictionary-define-word)
(global-set-key (kbd "C-c D") #'dictionary) (global-set-key (kbd "C-c D") #'dictionary)
(global-set-key (kbd "C-c l a") #'eglot-code-actions) (global-set-key (kbd "C-c l a") #'eglot-code-actions)
(global-set-key (kbd "C-c l f") #'apheleia-format-buffer)
(global-set-key (kbd "C-c l n") #'eglot-rename) (global-set-key (kbd "C-c l n") #'eglot-rename)
(global-set-key (kbd "C-c l s") #'consult-eglot-symbols) (global-set-key (kbd "C-c l s") #'consult-eglot-symbols)
(global-set-key (kbd "C-c l r") #'xref-find-references) (global-set-key (kbd "C-c l r") #'xref-find-references)
@@ -22,18 +18,16 @@
(global-set-key (kbd "C-c l D") #'eglot-find-declaration) (global-set-key (kbd "C-c l D") #'eglot-find-declaration)
(global-set-key (kbd "C-c l i") #'eglot-find-implementation) (global-set-key (kbd "C-c l i") #'eglot-find-implementation)
(global-set-key (kbd "C-c l t") #'eglot-find-typeDefinition) (global-set-key (kbd "C-c l t") #'eglot-find-typeDefinition)
(global-set-key (kbd "C-x C-;") (lambda () (interactive) (if (region-active-p) (comment-region) (comment-line))))
(global-set-key (kbd "C-c b") #'ibuffer) (global-set-key (kbd "C-c b") #'ibuffer)
(global-set-key (kbd "C-c x") #'kill-current-buffer)
(global-set-key (kbd "C-c k") #'eldoc) (global-set-key (kbd "C-c k") #'eldoc)
(global-set-key (kbd "C-c m") #'man) (global-set-key (kbd "C-c m") #'man)
(global-set-key (kbd "C-c o c") (lambda () (interactive) (dired user-init-dir))) (global-set-key (kbd "C-c o c") (lambda () (interactive) (dired user-init-dir)))
(global-set-key (kbd "C-c o t") (lambda () (interactive) (eshell 'N))) (global-set-key (kbd "C-c o t") #'eshell)
(global-set-key (kbd "C-c o g") #'magit) (global-set-key (kbd "C-c o m") #'magit)
(global-set-key (kbd "C-c o e") #'mu4e)
(global-set-key (kbd "C-c o r") #'elfeed-summary)
(global-set-key (kbd "C-c o m") #'mpdel-browser-open)
(global-set-key (kbd "C-c o p") #'mpdel-playlist-open)
;; multi-cursor ;; multi-cursor
(global-set-key (kbd "C-c c w") #'mc/mark-next-like-this-word) (global-set-key (kbd "C-c c w") #'mc/mark-next-like-this-word)

View File

@@ -29,7 +29,42 @@
(menu-bar-mode -1) (menu-bar-mode -1)
(tool-bar-mode -1) (tool-bar-mode -1)
(scroll-bar-mode -1) (scroll-bar-mode -1)
;; (defconst fonts '("Iosevka Term SS12" "Cascadia Code" "CaskaydiaCove Nerd Font"))
;; (defconst default-font-size 16)
;; (defun font-size (font)
;; (let ((size (plist-get font :size)))
;; (if size size default-font-size)))
;; (defun font-name (font)
;; (let ((name (plist-get font :name)))
;; (if name name font)))
;; (defun font-string (font)
;; (let ((name (font-name font))
;; (size (font-size font)))
;; (concat name " " (number-to-string size))))
;; (defun set-fonts ()
;; (let ((default-font (car fonts))
;; (fallback-fonts (cdr fonts)))
;; ;; (when (window-system)
;; (progn
;; (set-face-attribute 'default nil :font (font-string default-font))
;; (mapc (lambda (font)
;; (let ((face (font-string font))
;; (script (plist-get font :script)))
;; (if script
;; (progn
;; (set-fontset-font t script face)
;; (set-fontset-font t script (font-spec :script script) nil 'prepend))
;; (set-fontset-font t nil face nil 'prepend)))) fallback-fonts))))
;; (set-fonts)
;; (set-face-attribute 'default nil :font "Iosevka Term
;;(set-frame-font "Iosevka Term SS12-16")
(add-to-list 'default-frame-alist
'(font . "Iosevka Term SS12-14"))
(defun efs/display-startup-time () (defun efs/display-startup-time ()
(message "Emacs loaded in %s with %d garbage collections." (message "Emacs loaded in %s with %d garbage collections."
(format "%.2f seconds" (format "%.2f seconds"

View File

@@ -39,7 +39,6 @@
(mapc (lambda (file) (load-file file)) config-files)))) (mapc (lambda (file) (load-file file)) config-files))))
(load-user-config) (load-user-config)
(setq gc-cons-threshold (* 2 1000 1000)) (setq gc-cons-threshold (* 2 1000 1000))
(provide 'init) (provide 'init)

View File

@@ -36,369 +36,9 @@
:ensure t :ensure t
:defer t) :defer t)
(use-package libmpdel
:ensure t
:demand t)
(use-package mpdel
:ensure t
:demand t
:after libmpdel
:bind (:map mpdel-playlist-mode-map
("h" . mpdel-song-normal-decrement)
("l" . mpdel-song-normal-increment)
("b" . libmpdel-playback-next)
("z" . libmpdel-playback-next)
("c" . libmpdel-playback-play-pause)
("C" . mpdel/connect-with-ip)
("v" . libmpdel-stop)
("x" . (lambda () (interactive) (libmpdel-playback-seek 0)))
("i" . mpdel-song-open)
("s" . (lambda () (interactive) (if (libmpdel-get-state 'random #'identity) (libmpdel-playback-unset-random) (libmpdel-playback-set-random))))
("r" . (lambda () (interactive) (if (libmpdel-get-state 'repeat #'identity) (libmpdel-playback-unset-repeat) (libmpdel-playback-set-repeat))))
("X" . (lambda () (interactive (libmpdel-send-command "clear"))))
("RET" . mpdel-playlist-play)
(";" . mpdel/switch-context-i))
:init
(setq mpdel-prefix-key (kbd "C-c z"))
:config
(add-to-list 'libmpdel-profiles '("Desktop" "127.0.0.1" 6600 ipv4))
(add-to-list 'libmpdel-profiles '("Laptop" "127.0.0.1" 6600 ipv4))
(keymap-set global-map "C-c z" mpdel-playlist-mode-map)
(defun mpdel/connect-with-ip ()
(interactive)
(let* ((profile (completing-read "Connect to: " (mapcar #'car libmpdel-profiles) nil t))
(ip (completing-read "IP: " nil)))
(setf (alist-get profile libmpdel-profiles nil nil #'equal) `(,ip ,6600 ipv4))
(libmpdel-connect-profile (assoc-string profile libmpdel-profiles))))
(defun mpdel/add-all-to-queue ()
(interactive)
(libmpdel-send-command "clear")
(libmpdel-send-command "add /"))
(defun mpdel/start-all-music ()
(interactive)
(mpdel/add-all-to-queue)
(mpdel-playlist-open)
(libmpdel-play))
(defun mpdel/music-status ()
(interactive)
(funcall mpdel/music-status))
(defvar mpdel/music-status nil)
(let ((status nil))
(setq mpdel/music-status
(lambda ()
(require 'libmpdel)
(if (libmpdel-connected-p)
(let* ((song (libmpdel-current-song))
(volume (libmpdel-get-state 'volume #'identity))
(song-name (if song (libmpdel-entity-name song) nil))
(shuffle (or (libmpdel-get-state 'random (lambda (state) (if state "S" ""))) ""))
(repeat (or (libmpdel-get-state 'repeat (lambda (state) (if state "R" ""))) ""))
(progress ""))
(libmpdel-send-command "status" (lambda (s)
(setq status (copy-alist s))))
(when status
(let ((elapsed (libmpdel-time-to-string (cdr (assoc 'elapsed status))))
(duration (libmpdel-time-to-string (cdr (assoc 'duration status)))))
(setq progress (format " - %s/%s" elapsed duration))))
(cond
((libmpdel-playing-p) (format "> %s%s %s%s %s%%%%" song-name progress repeat shuffle volume))
((libmpdel-paused-p) (format "| %s%s %s%s %s%%%%" song-name progress repeat shuffle volume))
((libmpdel-stopped-p) "")))))))
(setq-default mode-line-format (append default-mode-line-format '((:eval (mpdel/music-status)))))
(defconst mpdel/contexts
`((podcasts . ((enter-hooks . ,(lambda (context) (libmpdel-send-commands '("clear"
"load podcasts"
"random 0"
"repeat 0"
"consume 1"
"single 0"))))
(song-change . ,(lambda (context) (libmpdel-send-commands '("rm podcasts"
"save podcasts"))))
(exit-hooks . ,(lambda (context) (libmpdel-send-commands '("rm podcasts"
"save podcasts"
"consume 0"))))))
(allmusic . ((enter-hooks . ,(lambda (context)
(libmpdel-send-commands '("random 1"
"repeat 1"
"consume 0"
"single 0"))
(mpdel/add-all-to-queue)))))
(playlist . ())))
(defvar mpdel/current-context (assq 'allmusic mpdel/contexts))
(defun mpdel/run-context-hooks (hook-name context)
(let ((hook (cdr (assq hook-name (cdr context)))))
(when hook
(funcall hook context))))
(add-to-list 'savehist-additional-variables 'mpdel/current-context)
(add-hook 'libmpdel-current-song-changed-hook (lambda ()
(let ((context mpdel/current-context))
(mpdel/run-context-hooks 'song-change context))))
(defun mpdel/is-current-context (context)
(eq context (car mpdel/current-context)))
(defun mpdel/switch-context-i ()
(interactive)
(mpdel/switch-context (intern (completing-read "Context: " (mapcar #'car mpdel/contexts) nil t))))
(defun mpdel/switch-context (context)
(interactive)
(libmpdel-ensure-connection)
(unless (eq (car mpdel/current-context) context)
(libmpdel-send-command "stop")
(mpdel/run-context-hooks 'exit-hooks mpdel/current-context)
(setq mpdel/current-context (assq context mpdel/contexts))
(mpdel/run-context-hooks 'enter-hooks mpdel/current-context))))
(use-package org (use-package org
:ensure t :ensure t
:defer t) :defer t)
(use-package org-msg
:ensure t
:defer t
:hook ((mu4e-main-mode . org-msg-mode)
(mu4e-compose-mode . org-msg-mode))
:config
(setq mail-user-agent 'mu4e-user-agent)
(setq org-msg-options "html-postamble:nil H:5 num:nil ^:{} toc:nil author:nil email:nil \\n:t"
org-msg-startup "hidestars indent inlineimages"
org-msg-default-alternatives '((new . (text html))
(reply-to-html . (text html))
(reply-to-text . (text)))
org-msg-convert-citation t))
(use-package mu4e
:ensure t
:commands (mu4e)
:config
(setq mu4e-mu-binary (executable-find "mu"))
(setq mu4e-read-option-use-builtin nil
mu4e-completing-read-function 'completing-read)
;; this is the directory we created before:
(setq mu4e-maildir "~/.local/share/mail/")
;; this command is called to sync imap servers:
(setq mu4e-get-mail-command (concat (executable-find "mbsync") " -a"))
;; how often to call it in seconds:
(setq mu4e-update-interval 300)
;; save attachment to desktop by default
;; or another choice of yours:
(setq mu4e-attachment-dir "~/Downloads")
;; rename files when moving - needed for mbsync:
(setq mu4e-change-filenames-when-moving t)
;; list of your email adresses:
(setq mu4e-user-mail-address-list '("mikecchalupiak@outlook.com"
"chalupmc@rose-hulman.edu"
"mikec@mchalupiak.com"
"spamreciver1@outlook.com"))
; the following is to show shortcuts in the main view.
(setq mu4e-bookmarks ())
(add-to-list 'mu4e-bookmarks
'(:name "spamreciver"
:query "maildir:/spamreciver1@outlook.com/INBOX"
:key ?s))
(add-to-list 'mu4e-bookmarks
'(:name "mchalupiak.com"
:query "maildir:/mikec@mchalupiak.com/INBOX"
:key ?h))
(add-to-list 'mu4e-bookmarks
'(:name "rose"
:query "maildir:/chalupmc@rose-hulman.edu/INBOX"
:key ?r))
(add-to-list 'mu4e-bookmarks
'(:name "outlook"
:query "maildir:/mikecchalupiak@outlook.com/INBOX"
:key ?o))
(setq mu4e-contexts
`(,(make-mu4e-context
:name "outlook"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "mikecchalupiak@outlook.com")))
:vars '((user-mail-address . "mikecchalupiak@outlook.com")
(user-full-name . "Michael Chalupiak")
(mu4e-drafts-folder . "/mikecchalupiak@outlook.com/Drafts")
(mu4e-refile-folder . "/mikecchalupiak@outlook.com/Archive")
(mu4e-sent-folder . "/mikecchalupiak@outlook.com/Sent")
(mu4e-trash-folder . "/mikecchalupiak@outlook.com/Trash")))
,(make-mu4e-context
:name "rose"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "chalupmc@rose-hulman.edu")))
:vars '((user-mail-address . "chalupmc@rose-hulman.edu")
(user-full-name . "Michael Chalupiak")
(mu4e-drafts-folder . "/chalupmc@rose-hulman.edu/Drafts")
(mu4e-refile-folder . "/chalupmc@rose-hulman.edu/Archive")
(mu4e-sent-folder . "/chalupmc@rose-hulman.edu/Sent")
(mu4e-trash-folder . "/chalupmc@rose-hulman.edu/Trash")))
,(make-mu4e-context
:name "hosted"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "mikec@mchalupiak.com")))
:vars '((user-mail-address . "mikec@mchalupiak.com")
(user-full-name . "Michael Chalupiak")
;; check your ~/.maildir to see how the subdirectories are called
;; e.g `ls ~/.maildir/example'
(mu4e-drafts-folder . "/mikec@mchalupiak.com/Drafts")
(mu4e-refile-folder . "/mikec@mchalupiak.com/Archive")
(mu4e-sent-folder . "/mikec@mchalupiak.com/Sent")
(mu4e-trash-folder . "/mikec@mchalupiak.com/Trash")))
,(make-mu4e-context
:name "spam"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "spamreciver1@outlook.com")))
:vars '((user-mail-address . "spamreciver1@outlook.com")
(user-full-name . "spamreciver")
;; check your ~/.maildir to see how the subdirectories are called
;; e.g `ls ~/.maildir/example'
(mu4e-drafts-folder . "/spamreciver1@outlook.com/Drafts")
(mu4e-refile-folder . "/spamreciver1@outlook.com/Archive")
(mu4e-sent-folder . "/spamreciver1@outlook.com/Sent")
(mu4e-trash-folder . "/spamreciver1@outlook.com/Trash")))))
(setq mu4e-context-policy 'pick-first) ;; start with the first (default) context;
(setq mu4e-compose-context-policy 'ask)
; gpg encryptiom & decryption:
;; this can be left alone
(require 'epa-file)
(epa-file-enable)
(setq epa-pinentry-mode 'loopback)
(auth-source-forget-all-cached)
;; don't keep message compose buffers around after sending:
(setq message-kill-buffer-on-exit t)
;; send function:
(setq send-mail-function 'message-send-mail-with-sendmail
message-send-mail-function 'message-send-mail-with-sendmail)
;; send program:
;; this is exeranal. remember we installed it before.
(setq sendmail-program (executable-find "msmtp"))
;; select the right sender email from the context.
(setq message-sendmail-envelope-from 'header)
;; chose from account before sending
;; this is a custom function that works for me.
;; well I stole it somewhere long ago.
;; I suggest using it to make matters easy
;; of course adjust the email adresses and account descriptions
(defun timu/set-msmtp-account ()
(if (message-mail-p)
(save-excursion
(let*
((from (save-restriction
(message-narrow-to-headers)
(message-fetch-field "from")))
(account
(cond
((string-match "mikecchalupiak@outlook.com" from) "outlook")
((string-match "chalupmc@rose-hulman.edu" from) "rose")
((string-match "mikec@mchalupiak.com" from) "hosted")
((string-match "spamreciver1@outlook.com" from) "spam"))))
(setq message-sendmail-extra-arguments (list '"-a" account)))))
(add-hook 'message-send-mail-hook 'timu/set-msmtp-account)
;; mu4e cc & bcc
;; this is custom as well
(add-hook 'mu4e-compose-mode-hook
(defun timu/add-cc-and-bcc ()
"My Function to automatically add Cc & Bcc: headers.
This is in the mu4e compose mode."
(save-excursion (message-add-header "Cc:\n"))
(save-excursion (message-add-header "Bcc:\n"))))))
;; ask for context if no context matches;)))
(use-package elfeed
:ensure t
:defer t
:commands (elfeed)
:bind (:map elfeed-show-mode-map
("a" . elfeed/add-to-playlist)
("A" . (lambda () (interactive)
(elfeed/add-to-playlist)
(mpdel/switch-context 'podcasts)
(libmpdel-play)))
("P" . (lambda () (interactive)
(mpdel/switch-context 'podcasts)
(libmpdel-play))))
:bind (:map elfeed-search-mode-map
("a" . elfeed/add-to-playlist)
("A" . (lambda () (interactive)
(elfeed/add-to-playlist)
(mpdel/switch-context 'podcasts)
(libmpdel-play)))
("P" . (lambda () (interactive)
(mpdel/switch-context 'podcasts)
(libmpdel-play))))
:config
(setq-default elfeed-search-filter " ")
(setq elfeed-feeds
'( ("https://phaazon.net/blog/feed")
("https://irreal.org/blog/?feed=rss2")
("https://port19.xyz/rss.xml")
("https://lukesmith.xyz/index.xml")
("https://notrelated.xyz/rss")
("https://karl-voit.at/feeds/lazyblorg-all.atom_1.0.links-and-content.xml")
;("https://sizeof.cat/index.xml")
("https://www.youtube.com/feeds/videos.xml?channel_id=UCkKmeTinUEU27syZPKrzWQQ")
("https://www.youtube.com/feeds/videos.xml?playlist_id=PLq1vmb-z7PpQt2PDNUr7XOzBjWAOWf0Rt")
("https://danielde.dev/rss.xml")
("https://pkolaczk.github.io/feed.xml")
("https://joeyh.name/blog/index.rss")
("https://kagifeedback.org/atom/t/release-notes")
("https://api.substack.com/feed/podcast/462466.rss")
("https://www.dailywire.com/feeds/rss.xml")
("https://feeds.simplecast.com/6c2VScgo")
("https://feeds.simplecast.com/pp_b9xO6")))
(defun elfeed/add-to-playlist ()
(interactive
(let* ((entry (if (eq major-mode 'elfeed-show-mode)
elfeed-show-entry
(elfeed-search-selected :ignore-region)))
(link (elfeed-entry-link entry))
(enclosure (elt (car (elfeed-entry-enclosures entry)) 0)) ; fragile?)))
(command (if (mpdel/is-current-context 'podcasts) (format "add \"%s\"" enclosure)
(format "playlistadd podcasts \"%s\"" enclosure))))
(when enclosure
(libmpdel-ensure-connection)
(libmpdel-send-command command (lambda (s) (pp s))))))))
(use-package elfeed-summary
:straight t
:defer t
:commands (elfeed-summary)
:bind (:map elfeed-summary-mode-map
("p" . magit-section-backward))
:config
(setq-default elfeed-summary-default-filter " ")
(setq-default elfeed-summary-look-back most-positive-fixnum)
(setq elfeed-summary--search-show-read t)
(setq elfeed-summary-settings
'((query . :all))))
(provide 'apps) (provide 'apps)
;;; apps.el ends here ;;; apps.el ends here

View File

@@ -45,31 +45,11 @@
:defer t :defer t
:straight '(:type git :host codeberg :repo "meow_king/zig-ts-mode")) :straight '(:type git :host codeberg :repo "meow_king/zig-ts-mode"))
(use-package haskell-ts-mode
:ensure t
:custom
(haskell-ts-font-lock-level 4)
(haskell-ts-use-indent t)
(haskell-ts-ghci "ghci")
(haskell-ts-use-indent t)
:config
(add-to-list 'treesit-language-source-alist
'(haskell . ("https://github.com/tree-sitter/tree-sitter-haskell" "v0.23.1"))))
;; (unless (treesit-grammar-location 'haskell)
;; (treesit-install-language-grammar 'haskell)))
(use-package eglot-x (use-package eglot-x
:ensure t :ensure t
:defer t :defer t
:straight '(:type git :host github :repo "nemethf/eglot-x")) :straight '(:type git :host github :repo "nemethf/eglot-x"))
(use-package sly
:ensure t
:defer t
:hook common-lisp-mode
:config
(setq inferior-lisp-program "sbcl"))
(dolist (mode '(c-ts-mode-hook (dolist (mode '(c-ts-mode-hook
rust-ts-mode-hook rust-ts-mode-hook
odin-ts-mode-hook odin-ts-mode-hook
@@ -82,9 +62,7 @@
(with-eval-after-load 'eglot (with-eval-after-load 'eglot
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(zig-ts-mode . ("zls"))) '(zig-ts-mode . ("zls"))))
(add-to-list 'eglot-server-programs
'(haskell-ts-mode . ("haskell-language-server-wrapper" "--lsp"))))
(add-to-list 'auto-mode-alist '("\\.odin\\'" . odin-ts-mode)) (add-to-list 'auto-mode-alist '("\\.odin\\'" . odin-ts-mode))
(add-to-list 'auto-mode-alist '("\\.zig\\(?:\\.zon\\)?\\'" . zig-ts-mode)) (add-to-list 'auto-mode-alist '("\\.zig\\(?:\\.zon\\)?\\'" . zig-ts-mode))

View File

@@ -49,7 +49,7 @@
:defer t :defer t
:init :init
;; Configure themes ;; Configure themes
(setq auto-dark-themes '((kaolin-dark) (kaolin-light))) (setq auto-dark-themes '((doom-gruvbox) (doom-gruvbox-light)))
;; Disable doom's theme loading mechanism (just to make sure) ;; Disable doom's theme loading mechanism (just to make sure)
;; (setq! doom-theme nil) ;; (setq! doom-theme nil)
;; Declare that all themes are safe to load. ;; Declare that all themes are safe to load.

View File

@@ -94,48 +94,11 @@
;; (vertico-count 20) ;; Show more candidates ;; (vertico-count 20) ;; Show more candidates
;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer ;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous' (vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
:init
(vertico-multiform-mode) (vertico-multiform-mode)
:init
(vertico-mode) (vertico-mode)
(define-key vertico-map (kbd "DEL") #'vertico-directory-delete-char)) (define-key vertico-map (kbd "DEL") #'vertico-directory-delete-char))
(defvar +vertico-transform-functions nil)
(cl-defmethod vertico--format-candidate :around
(cand prefix suffix index start &context ((not +vertico-transform-functions) null))
(dolist (fun (ensure-list +vertico-transform-functions))
(setq cand (funcall fun cand)))
(cl-call-next-method cand prefix suffix index start))
(defun +vertico-highlight-directory (file)
"If FILE ends with a slash, highlight it as a directory."
(if (string-suffix-p "/" file)
(propertize file 'face 'marginalia-file-priv-dir) ; or face 'dired-directory
file))
;; function to highlight enabled modes similar to counsel-M-x
(defun +vertico-highlight-enabled-mode (cmd)
"If MODE is enabled, highlight it as font-lock-constant-face."
(let ((sym (intern cmd)))
(if (or (eq sym major-mode)
(and
(memq sym minor-mode-list)
(boundp sym)))
(propertize cmd 'face 'font-lock-constant-face)
cmd)))
;; add-to-list works if 'file isn't already in the alist
;; setq can be used but will overwrite all existing values
(add-to-list 'vertico-multiform-categories
'(file
;; this is also defined in the wiki, uncomment if used
;; (vertico-sort-function . vertico-sort-directories-first)
(+vertico-transform-functions . +vertico-highlight-directory)))
(add-to-list 'vertico-multiform-commands
'(execute-extended-command
(+vertico-transform-functions . +vertico-highlight-enabled-mode)))
;; Enable rich annotations using the Marginalia package ;; Enable rich annotations using the Marginalia package
(use-package marginalia (use-package marginalia
;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding ;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding

View File

@@ -91,7 +91,7 @@
(use-package parinfer-rust-mode (use-package parinfer-rust-mode
:ensure t :ensure t
:defer t :defer t
:hook ((emacs-lisp-mode common-lisp-mode lisp-mode scheme-mode) . parinfer-rust-mode) :hook emacs-lisp-mode
:config :config
(electric-pair-mode -1)) (electric-pair-mode -1))
@@ -99,11 +99,5 @@
:ensure t :ensure t
:defer t) :defer t)
;; (use-package zoxide
;; :ensure t
;; :defer t
;; :hook eshell-mode
;; :straight '(:type git host: sourcehut :repo "vonfry/zoxide.el"))
(provide 'utils) (provide 'utils)
;;; utils.el ends here ;;; utils.el ends here

View File

@@ -1,5 +1 @@
# This file is written by nwg-look. Do not edit.
[Icon Theme]
Name=Default
Comment=Default Cursor Theme
Inherits=BreezeX-RosePineDawn-Linux