Restructure dotfiles : suppression outils abandonnés, migration sway→hyprland, neomutt→aerc
- Supprimés : fish, qtile, X, vim, sway, neomutt (+ package systemd vide) - Nouveau package hyprland : waybar, rofi, mako, gammastep, rofi-pass, systemd (mail+kanata+mpd+voxtype), script rofi - Nouveau package aerc : config aerc + infra mail (msmtp, khard, vdirsyncer) migrée depuis neomutt - Nettoyage .gitignore : suppression entrées neomutt/vim, ajout patterns moc/mpd/vifm manquants, vdirsyncer/status pour aerc - Mise à jour des configs trackées modifiées (nvim, zsh, tmux, git, newsboat) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
9
.gitignore
vendored
9
.gitignore
vendored
@@ -3,16 +3,16 @@ zsh/.config/zsh/.zhistory
|
|||||||
|
|
||||||
vifm/.config/vifm/vifm-help.txt
|
vifm/.config/vifm/vifm-help.txt
|
||||||
vifm/.config/vifm/vifminfo.json
|
vifm/.config/vifm/vifminfo.json
|
||||||
|
vifm/.config/vifm/vifminfo.json_*
|
||||||
|
|
||||||
nvim/.config/nvim/autoload
|
nvim/.config/nvim/autoload
|
||||||
nvim/.config/nvim/plugin
|
nvim/.config/nvim/plugin
|
||||||
|
|
||||||
vim/.vim/autoload/
|
|
||||||
vim/.vim/plugged/
|
|
||||||
|
|
||||||
moc/.moc/last_directory
|
moc/.moc/last_directory
|
||||||
moc/.moc/pid
|
moc/.moc/pid
|
||||||
moc/.moc/playlist.m3u
|
moc/.moc/playlist.m3u
|
||||||
|
moc/.moc/softmixer
|
||||||
|
moc/.moc/equalizer
|
||||||
|
|
||||||
newsboat/.newsboat/cache.db
|
newsboat/.newsboat/cache.db
|
||||||
newsboat/.newsboat/cache.db.lock
|
newsboat/.newsboat/cache.db.lock
|
||||||
@@ -20,5 +20,6 @@ newsboat/.newsboat/history.cmdline
|
|||||||
|
|
||||||
mpd/.config/mpd/database
|
mpd/.config/mpd/database
|
||||||
mpd/.config/mpd/state
|
mpd/.config/mpd/state
|
||||||
|
mpd/.config/mpd/playlists/
|
||||||
|
|
||||||
neomutt/.config/vdirsyncer/status/
|
aerc/.config/vdirsyncer/status/
|
||||||
|
|||||||
46
X/.Xdefaults
46
X/.Xdefaults
@@ -1,46 +0,0 @@
|
|||||||
URxvt*font: xft:DroidSansMono Nerd Font Mono:pixelsize=14,xft:UbuntuMono Nerd Font:pixelsize=12
|
|
||||||
URxvt*letterSpace: -1
|
|
||||||
URxvt*scrollBar: false
|
|
||||||
|
|
||||||
! Extensions
|
|
||||||
URxvt.perl-ext-common: default,matcher,fullscreen,resize-font
|
|
||||||
! fullscreen with F11
|
|
||||||
URxvt.keysym.F11: perl:fullscreen:switch
|
|
||||||
|
|
||||||
! `font-size` plugin
|
|
||||||
URxvt.resize-font.smaller: C-Down
|
|
||||||
URxvt.resize-font.bigger: C-Up
|
|
||||||
|
|
||||||
! Open link with firefox
|
|
||||||
! URxvt.url-launcher: /usr/bin/xdg-open
|
|
||||||
URxvt.url-launcher: /usr/bin/firefox
|
|
||||||
URxvt.matcher.button: 1
|
|
||||||
|
|
||||||
! hard contrast: *background: #1d2021
|
|
||||||
*background: #282828
|
|
||||||
! soft contrast: *background: #32302f
|
|
||||||
*foreground: #ebdbb2
|
|
||||||
! Black + DarkGrey
|
|
||||||
*color0: #282828
|
|
||||||
*color8: #928374
|
|
||||||
! DarkRed + Red
|
|
||||||
*color1: #cc241d
|
|
||||||
*color9: #fb4934
|
|
||||||
! DarkGreen + Green
|
|
||||||
*color2: #98971a
|
|
||||||
*color10: #b8bb26
|
|
||||||
! DarkYellow + Yellow
|
|
||||||
*color3: #d79921
|
|
||||||
*color11: #fabd2f
|
|
||||||
! DarkBlue + Blue
|
|
||||||
*color4: #458588
|
|
||||||
*color12: #83a598
|
|
||||||
! DarkMagenta + Magenta
|
|
||||||
*color5: #b16286
|
|
||||||
*color13: #d3869b
|
|
||||||
! DarkCyan + Cyan
|
|
||||||
*color6: #689d6a
|
|
||||||
*color14: #8ec07c
|
|
||||||
! LightGrey + White
|
|
||||||
*color7: #a89984
|
|
||||||
*color15: #ebdbb2
|
|
||||||
36
aerc/.config/aerc/accounts.conf
Normal file
36
aerc/.config/aerc/accounts.conf
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
[bb_opytex]
|
||||||
|
source = maildir://~/Mail/benjamin.bertrand_opytex.org/
|
||||||
|
outgoing = msmtpq -a bb_opytex
|
||||||
|
default = INBOX
|
||||||
|
from = Benjamin Bertrand <benjamin.bertrand@opytex.org>
|
||||||
|
copy-to = Sent Items
|
||||||
|
archive = Archives
|
||||||
|
folders-sort = INBOX, Sent Items, Drafts, Archives, Trash, Todo, Attente
|
||||||
|
|
||||||
|
[jb_opytex]
|
||||||
|
source = maildir://~/Mail/jost_bertrand_opytex.org/
|
||||||
|
outgoing = msmtpq -a jb_opytex
|
||||||
|
default = INBOX
|
||||||
|
from = Margot Jost et Benjamin Bertrand <jost_bertrand@opytex.org>
|
||||||
|
copy-to = Sent Items
|
||||||
|
archive = Archives
|
||||||
|
folders-sort = INBOX, Sent Items, Drafts, Archives, Trash
|
||||||
|
|
||||||
|
[ac_lyon]
|
||||||
|
source = maildir://~/Mail/benjamin.bertrand_ac-lyon.fr/
|
||||||
|
outgoing = msmtpq -a ac-lyon
|
||||||
|
default = INBOX
|
||||||
|
from = Benjamin Bertrand <benjamin.bertrand@ac-lyon.fr>
|
||||||
|
copy-to = Sent
|
||||||
|
archive = Archives
|
||||||
|
folders-sort = INBOX, Sent, Drafts, Archives, Trash, TICE
|
||||||
|
|
||||||
|
# Compte de recherche globale (backend notmuch, lecture seule de fait).
|
||||||
|
# Indexe les 3 comptes via ~/.notmuch-config (path=~/Mail).
|
||||||
|
# Usage : ouvrir cet onglet puis :cf <termes> pour chercher partout.
|
||||||
|
[recherche]
|
||||||
|
source = notmuch://~/Mail
|
||||||
|
from = Benjamin Bertrand <benjamin.bertrand@opytex.org>
|
||||||
|
query-map = ~/.config/aerc/notmuch.qmap
|
||||||
|
exclude-tags = deleted,spam
|
||||||
|
folders-sort = Tout, Non lus, Récents, bb_opytex, jb_opytex, ac_lyon, ──── recherches ↓ ────
|
||||||
904
aerc/.config/aerc/aerc.conf
Normal file
904
aerc/.config/aerc/aerc.conf
Normal file
@@ -0,0 +1,904 @@
|
|||||||
|
#
|
||||||
|
# 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
|
||||||
|
# term=tmux split-window -h
|
||||||
|
|
||||||
|
# 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]
|
||||||
|
message-view-this-window=false
|
||||||
|
preview-pane=true
|
||||||
|
#
|
||||||
|
# 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,date>10,name<18%,subject
|
||||||
|
|
||||||
|
#
|
||||||
|
# Each name in index-columns must have a corresponding column-$name setting.
|
||||||
|
# All column-$name settings accept golang text/template syntax. See
|
||||||
|
# aerc-templates(7) for available template attributes and functions.
|
||||||
|
#
|
||||||
|
# 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-01-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=Mon 15:04
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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=26
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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}} {{if .Unread}}({{.Unread}}){{end}}
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 Terminal tab titles. Only valid in the global [ui]
|
||||||
|
# section.
|
||||||
|
#
|
||||||
|
# Default: {{.Title}}
|
||||||
|
#tab-title-terminal={{.Title}}
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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=1
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Specifies whether the _seen_ flag of messages being previewed in the message
|
||||||
|
# list split should be automatically set to _true_ after a delay, controlled by
|
||||||
|
# _auto-mark-read-split-delay_.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#auto-mark-read-split=false
|
||||||
|
|
||||||
|
# If _auto-mark-read-split_ is true, specifies the number of seconds after
|
||||||
|
# which a message previewed in the message list split must considered _seen_.
|
||||||
|
#
|
||||||
|
# Default: 3s
|
||||||
|
#auto-mark-read-split-delay=3s
|
||||||
|
|
||||||
|
# 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=gruvbox-dark
|
||||||
|
|
||||||
|
# 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. If this option is set to false and
|
||||||
|
# threading-by-subject is set to true, then siblings will be ordered by subject
|
||||||
|
# headers using UTF-8 sorting.
|
||||||
|
#
|
||||||
|
# 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. This setting also affects how thread
|
||||||
|
# siblings are ordered when sort-thread-siblings is left to false.
|
||||||
|
#
|
||||||
|
# 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}}
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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=icon
|
||||||
|
|
||||||
|
[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=tmux split-window -h nvim
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sets focus to the email body when the composer window opens.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
#focus-body=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 = khard email --remove-first-line --parsable '%s'
|
||||||
|
address-book-cmd = addr-book-combine \
|
||||||
|
-c "khard email --remove-first-line --parsable '%s'" \
|
||||||
|
-c "grep -i '%s' ~/.cache/maildir-rank-addr/addressbook.tsv"
|
||||||
|
|
||||||
|
# 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 occurrence 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
|
||||||
|
#text/html=! w3m -T text/html -I UTF-8
|
||||||
|
#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
|
||||||
|
|
||||||
|
# Compte de recherche (notmuch) : on ajoute une colonne "dossier" qui montre
|
||||||
|
# où chaque message est rangé, déduite du chemin du fichier (.Filename).
|
||||||
|
# Les longs noms de comptes sont raccourcis en bb / jb / ac.
|
||||||
|
[ui:account=recherche]
|
||||||
|
index-columns=flags:4,date>10,folder<16,name<22%,subject
|
||||||
|
column-folder={{.Filename | replace "^.*/Mail/" "" | replace "/(cur|new)/[^/]*$" "" | replace "benjamin.bertrand_opytex.org" "bb" | replace "jost_bertrand_opytex.org" "jb" | replace "benjamin.bertrand_ac-lyon.fr" "ac"}}
|
||||||
206
aerc/.config/aerc/binds.conf
Normal file
206
aerc/.config/aerc/binds.conf
Normal file
@@ -0,0 +1,206 @@
|
|||||||
|
# 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>
|
||||||
|
|
||||||
|
ga = :archive year<Enter>
|
||||||
|
gd = :delete<Enter>
|
||||||
|
gt = :move Todo<Enter>
|
||||||
|
gw = :move Attente<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 year<Enter>
|
||||||
|
A = :unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>
|
||||||
|
|
||||||
|
C = :compose<Enter>
|
||||||
|
m = :compose<Enter>
|
||||||
|
|
||||||
|
b = :bounce<space>
|
||||||
|
|
||||||
|
rr = :reply -q<Enter>
|
||||||
|
rq = :reply<Enter>
|
||||||
|
Rr = :reply -aq<Enter>
|
||||||
|
Rq = :reply -a<Enter>
|
||||||
|
|
||||||
|
<F5> = :exec tmux split-window -h -l 25% 'msmtp-queue -r; mbsync -a && notmuch new'<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:account=recherche]
|
||||||
|
# / : recherche notmuch GLOBALE (tous comptes/dossiers). Crée un dossier
|
||||||
|
# d'historique nommé d'après la requête, rangé sous les dossiers fixes.
|
||||||
|
/ = :query<space>
|
||||||
|
# \ : affine la liste déjà affichée (= "and")
|
||||||
|
\ = :filter<space>
|
||||||
|
|
||||||
|
[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 year<Enter>
|
||||||
|
|
||||||
|
ga = :archive year<Enter>
|
||||||
|
gd = :delete<Enter>
|
||||||
|
gt = :move Todo<Enter>
|
||||||
|
gw = :move Attente<Enter>
|
||||||
|
|
||||||
|
<C-y> = :copy-link <space>
|
||||||
|
<C-l> = :open-link <space>
|
||||||
|
|
||||||
|
f = :forward<Enter>
|
||||||
|
rr = :reply -q<Enter>
|
||||||
|
rq = :reply<Enter>
|
||||||
|
Rr = :reply -aq<Enter>
|
||||||
|
Rq = :reply -a<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)
|
||||||
|
s = :sign<Enter> # Toggle signing
|
||||||
|
x = :encrypt<Enter> # Toggle encryption to all recipients
|
||||||
|
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 (body and headers)
|
||||||
|
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>
|
||||||
20
aerc/.config/aerc/notmuch.qmap
Normal file
20
aerc/.config/aerc/notmuch.qmap
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Query-map du compte notmuch « recherche » — voir aerc-notmuch(5).
|
||||||
|
# Format : <NOM AFFICHÉ>=<requête notmuch>
|
||||||
|
#
|
||||||
|
# Ce sont les dossiers FIXES, épinglés en haut de la barre (via folders-sort
|
||||||
|
# dans accounts.conf). Les recherches lancées avec « / » (:query) créent des
|
||||||
|
# dossiers nommés d'après la requête, qui s'accumulent EN DESSOUS (historique).
|
||||||
|
#
|
||||||
|
# Recherche globale (sujet/corps/expéditeur, tous comptes) : touche / puis termes
|
||||||
|
# /facture /from:dupont /subject:réunion /body:"compte rendu"
|
||||||
|
# / facture and path:benjamin.bertrand_ac-lyon.fr/** (un seul compte)
|
||||||
|
|
||||||
|
Tout=*
|
||||||
|
Non lus=tag:unread
|
||||||
|
Récents=date:1month..
|
||||||
|
bb_opytex=path:benjamin.bertrand_opytex.org/**
|
||||||
|
jb_opytex=path:jost_bertrand_opytex.org/**
|
||||||
|
ac_lyon=path:benjamin.bertrand_ac-lyon.fr/**
|
||||||
|
# Faux dossier servant de séparateur visuel (requête vide). Pas de virgule
|
||||||
|
# dans le nom (folders-sort est séparé par des virgules).
|
||||||
|
──── recherches ↓ ────=tag:_separateur_inexistant_
|
||||||
123
aerc/.config/aerc/stylesets/gruvbox-dark
Normal file
123
aerc/.config/aerc/stylesets/gruvbox-dark
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
# vim: ft=dosini
|
||||||
|
# aerc gruvbox-dark styleset
|
||||||
|
# Palette: https://github.com/morhetz/gruvbox
|
||||||
|
#
|
||||||
|
# bg0_h=#1d2021 bg0=#282828 bg1=#3c3836 bg2=#504945
|
||||||
|
# bg3=#665c54 bg4=#7c6f64
|
||||||
|
# fg0=#fbf1c7 fg1=#ebdbb2 fg2=#d5c4a1 fg3=#bdae93 fg4=#a89984
|
||||||
|
# red=#cc241d bright-red=#fb4934
|
||||||
|
# green=#98971a bright-green=#b8bb26
|
||||||
|
# yellow=#d79921 bright-yellow=#fabd2f
|
||||||
|
# blue=#458588 bright-blue=#83a598
|
||||||
|
# purple=#b16286 bright-purple=#d3869b
|
||||||
|
# aqua=#689d6a bright-aqua=#8ec07c
|
||||||
|
# orange=#d65d0e bright-orange=#fe8019
|
||||||
|
# gray=#928374
|
||||||
|
|
||||||
|
*.default=true
|
||||||
|
*.normal=true
|
||||||
|
|
||||||
|
default.bg=#282828
|
||||||
|
default.fg=#ebdbb2
|
||||||
|
|
||||||
|
error.fg=#fb4934
|
||||||
|
error.bold=true
|
||||||
|
warning.fg=#fabd2f
|
||||||
|
warning.bold=true
|
||||||
|
success.fg=#b8bb26
|
||||||
|
success.bold=true
|
||||||
|
|
||||||
|
# Tabs
|
||||||
|
tab.bg=#1d2021
|
||||||
|
tab.fg=#a89984
|
||||||
|
tab.selected.bg=#3c3836
|
||||||
|
tab.selected.fg=#ebdbb2
|
||||||
|
tab.selected.bold=true
|
||||||
|
|
||||||
|
# Borders
|
||||||
|
border.fg=#504945
|
||||||
|
border.bold=false
|
||||||
|
|
||||||
|
# Headers (composer/viewer field labels)
|
||||||
|
header.fg=#83a598
|
||||||
|
header.bold=true
|
||||||
|
|
||||||
|
# Message list
|
||||||
|
msglist_unread.bold=true
|
||||||
|
msglist_unread.fg=#fabd2f
|
||||||
|
msglist_flagged.fg=#fe8019
|
||||||
|
msglist_flagged.bold=true
|
||||||
|
msglist_deleted.dim=true
|
||||||
|
msglist_marked.bg=#504945
|
||||||
|
msglist_marked.fg=#ebdbb2
|
||||||
|
msglist_result.fg=#83a598
|
||||||
|
msglist_result.bold=true
|
||||||
|
|
||||||
|
msglist_*.selected.bg=#504945
|
||||||
|
msglist_*.selected.bold=true
|
||||||
|
msglist_unread.selected.bg=#504945
|
||||||
|
msglist_unread.selected.fg=#fabd2f
|
||||||
|
|
||||||
|
# Directory list
|
||||||
|
dirlist_*.selected.bg=#504945
|
||||||
|
dirlist_*.selected.bold=true
|
||||||
|
dirlist_unread.fg=#fabd2f
|
||||||
|
dirlist_recent.fg=#fe8019
|
||||||
|
|
||||||
|
# Status line (matches tmux-gruvbox bar)
|
||||||
|
statusline_default.bg=#3c3836
|
||||||
|
statusline_default.fg=#a89984
|
||||||
|
statusline_error.bg=#cc241d
|
||||||
|
statusline_error.fg=#ebdbb2
|
||||||
|
statusline_error.bold=true
|
||||||
|
statusline_success.fg=#b8bb26
|
||||||
|
statusline_success.bold=true
|
||||||
|
|
||||||
|
# Completion popover
|
||||||
|
completion_default.bg=#282828
|
||||||
|
completion_default.fg=#ebdbb2
|
||||||
|
completion_default.selected.bg=#504945
|
||||||
|
completion_pill.bg=#458588
|
||||||
|
completion_pill.fg=#1d2021
|
||||||
|
completion_description.dim=true
|
||||||
|
|
||||||
|
# MIME type switcher
|
||||||
|
part_mimetype.fg=#928374
|
||||||
|
part_mimetype.selected.bg=#504945
|
||||||
|
part_mimetype.selected.fg=#ebdbb2
|
||||||
|
part_filename.selected.bold=true
|
||||||
|
part_filename.selected.bg=#504945
|
||||||
|
|
||||||
|
# Selector
|
||||||
|
selector_focused.bg=#504945
|
||||||
|
selector_focused.bold=true
|
||||||
|
selector_chooser.bold=true
|
||||||
|
|
||||||
|
[viewer]
|
||||||
|
*.default=true
|
||||||
|
*.normal=true
|
||||||
|
|
||||||
|
url.fg=#fabd2f
|
||||||
|
url.underline=true
|
||||||
|
|
||||||
|
header.bold=true
|
||||||
|
header.fg=#d3869b
|
||||||
|
|
||||||
|
signature.dim=true
|
||||||
|
signature.fg=#928374
|
||||||
|
|
||||||
|
diff_meta.bold=true
|
||||||
|
diff_meta.fg=#a89984
|
||||||
|
diff_chunk.fg=#83a598
|
||||||
|
diff_chunk.dim=true
|
||||||
|
diff_chunk_func.fg=#83a598
|
||||||
|
diff_chunk_func.dim=true
|
||||||
|
diff_add.fg=#b8bb26
|
||||||
|
diff_del.fg=#fb4934
|
||||||
|
|
||||||
|
quote_1.fg=#83a598
|
||||||
|
quote_2.fg=#8ec07c
|
||||||
|
quote_3.fg=#a89984
|
||||||
|
quote_3.dim=true
|
||||||
|
quote_4.fg=#928374
|
||||||
|
quote_4.dim=true
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[addressbooks]
|
[addressbooks]
|
||||||
[[contacts]]
|
[[contacts]]
|
||||||
path = ~/.contacts/contacts/
|
path = ~/.contacts/contacts/contacts/
|
||||||
|
|
||||||
[general]
|
[general]
|
||||||
debug = no
|
debug = no
|
||||||
@@ -16,11 +16,11 @@ tls on
|
|||||||
tls_starttls on
|
tls_starttls on
|
||||||
auth on
|
auth on
|
||||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||||
logfile ~/.msmtp.log
|
logfile ~/.local/share/msmtp/msmtp.log
|
||||||
|
|
||||||
account bb_opytex
|
account bb_opytex
|
||||||
user Takanuva
|
user Takanuva
|
||||||
passwordeval "pass mail/mailfence/Takanuva | head -n1"
|
passwordeval "pass mail/mailfence/Takanuva | grep smtp | awk '{print $2}'"
|
||||||
auth on
|
auth on
|
||||||
host smtp.mailfence.com
|
host smtp.mailfence.com
|
||||||
port 465
|
port 465
|
||||||
@@ -40,7 +40,7 @@ account jb_opytex
|
|||||||
|
|
||||||
account ac-lyon
|
account ac-lyon
|
||||||
user bbertrand
|
user bbertrand
|
||||||
passwordeval "pass Prof/pronote/bbertrand | head -n1"
|
passwordeval "pass Prof/aclyon/bbertrand | head -n1"
|
||||||
auth on
|
auth on
|
||||||
host smtps.ac-lyon.fr
|
host smtps.ac-lyon.fr
|
||||||
# Envelope-from address
|
# Envelope-from address
|
||||||
36
aerc/.config/vdirsyncer/config
Normal file
36
aerc/.config/vdirsyncer/config
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
[general]
|
||||||
|
status_path = "~/.local/share/vdirsyncer/status/"
|
||||||
|
|
||||||
|
[pair cloud_opytex_contact]
|
||||||
|
a = "cloud_opytex_contact_local"
|
||||||
|
b = "cloud_opytex_contact_remote"
|
||||||
|
collections = ["from a", "from b"]
|
||||||
|
conflict_resolution = "b wins"
|
||||||
|
|
||||||
|
[storage cloud_opytex_contact_local]
|
||||||
|
type = "filesystem"
|
||||||
|
path = "~/.contacts/contacts/"
|
||||||
|
fileext = ".vcf"
|
||||||
|
|
||||||
|
[storage cloud_opytex_contact_remote]
|
||||||
|
type = "carddav"
|
||||||
|
url = "https://cloud.poneyworld.net/remote.php/dav/addressbooks/users/lafrite/contacts/"
|
||||||
|
username = "lafrite"
|
||||||
|
password.fetch = ["command", "pass", "OVH/Panais/docker/cloud.poneyworld.net/lafrite"]
|
||||||
|
|
||||||
|
[pair cloud_opytex_calendar]
|
||||||
|
a = "cloud_opytex_calendar_local"
|
||||||
|
b = "cloud_opytex_calendar_remote"
|
||||||
|
collections = ["from b"]
|
||||||
|
conflict_resolution = "b wins"
|
||||||
|
|
||||||
|
[storage cloud_opytex_calendar_local]
|
||||||
|
type = "filesystem"
|
||||||
|
path = "~/.calendars/"
|
||||||
|
fileext = ".ics"
|
||||||
|
|
||||||
|
[storage cloud_opytex_calendar_remote]
|
||||||
|
type = "caldav"
|
||||||
|
url = "https://cloud.poneyworld.net/remote.php/dav/calendars/lafrite/"
|
||||||
|
username = "lafrite"
|
||||||
|
password.fetch = ["command", "pass", "OVH/Panais/docker/cloud.poneyworld.net/lafrite"]
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
if not functions -q fisher
|
|
||||||
set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config
|
|
||||||
curl https://git.io/fisher --create-dirs -sLo $XDG_CONFIG_HOME/fish/functions/fisher.fish
|
|
||||||
fish -c fisher
|
|
||||||
end
|
|
||||||
|
|
||||||
set -Ux EDITOR vim
|
|
||||||
|
|
||||||
set -Ux FZF_DEFAULT_OPTS '--height 40% --layout=reverse --border'
|
|
||||||
|
|
||||||
#fisher add jethrokuan/fzf
|
|
||||||
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
jethrokuan/fzf
|
|
||||||
oh-my-fish/plugin-bang-bang
|
|
||||||
@@ -3,3 +3,5 @@
|
|||||||
email = benjamin.bertrand@opytex.org
|
email = benjamin.bertrand@opytex.org
|
||||||
[init]
|
[init]
|
||||||
defaultBranch = main
|
defaultBranch = main
|
||||||
|
[fetch]
|
||||||
|
recurseSubmodules = false
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/kanata.service
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/msmtp-queue.path
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/lib/systemd/user/pipewire.service
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/voxtype.service
|
||||||
14
hyprland/.config/systemd/user/kanata.service
Normal file
14
hyprland/.config/systemd/user/kanata.service
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Kanata keyboard remapper
|
||||||
|
Documentation=https://github.com/jtroo/kanata
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin
|
||||||
|
Environment=DISPLAY=:0
|
||||||
|
Environment=HOME=/home/lafrite/
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/kanata --cfg /home/lafrite/scripts/Cloned/arsenik/kanata/kanata.kbd
|
||||||
|
Restart=no
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
9
hyprland/.config/systemd/user/mbsync.service
Normal file
9
hyprland/.config/systemd/user/mbsync.service
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=mbsync mail sync
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/bin/mbsync -a
|
||||||
|
ExecStartPost=/usr/bin/notmuch new
|
||||||
|
ExecStartPost=/bin/sh -c 'date > ~/.local/share/mbsync/last-sync'
|
||||||
9
hyprland/.config/systemd/user/mbsync.timer
Normal file
9
hyprland/.config/systemd/user/mbsync.timer
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=mbsync every 5 minutes
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnBootSec=1m
|
||||||
|
OnUnitActiveSec=5m
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
18
hyprland/.config/systemd/user/mpd.service
Normal file
18
hyprland/.config/systemd/user/mpd.service
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Music Player Daemon
|
||||||
|
Documentation=man:mpd(1) man:mpd.conf(5)
|
||||||
|
After=network.target sound.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=notify
|
||||||
|
ExecStart=/usr/bin/mpd --systemd %E/mpd/mdp.conf
|
||||||
|
|
||||||
|
#WatchdogSec=120
|
||||||
|
|
||||||
|
LimitRTPRIO=40
|
||||||
|
LimitRTTIME=infinity
|
||||||
|
LimitMEMLOCK=64M
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
Also=mpd.socket
|
||||||
9
hyprland/.config/systemd/user/mpd.socket
Normal file
9
hyprland/.config/systemd/user/mpd.socket
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[Socket]
|
||||||
|
ListenStream=%t/mpd/socket
|
||||||
|
ListenStream=6600
|
||||||
|
Backlog=5
|
||||||
|
KeepAlive=true
|
||||||
|
PassCredentials=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
9
hyprland/.config/systemd/user/msmtp-queue.path
Normal file
9
hyprland/.config/systemd/user/msmtp-queue.path
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Watch msmtp queue and flush immediately
|
||||||
|
|
||||||
|
[Path]
|
||||||
|
PathChanged=%h/.msmtp/queue
|
||||||
|
Unit=msmtp-queue.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
7
hyprland/.config/systemd/user/msmtp-queue.service
Normal file
7
hyprland/.config/systemd/user/msmtp-queue.service
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Flush msmtp queue
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/bin/msmtp-queue --run
|
||||||
|
ExecStartPost=/usr/bin/maildir-rank-addr
|
||||||
9
hyprland/.config/systemd/user/msmtp-queue.timer
Normal file
9
hyprland/.config/systemd/user/msmtp-queue.timer
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Flush msmtp queue every 10 minutes
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnBootSec=1m
|
||||||
|
OnUnitActiveSec=10m
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
1
hyprland/.config/systemd/user/sockets.target.wants/mpd.socket
Symbolic link
1
hyprland/.config/systemd/user/sockets.target.wants/mpd.socket
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/mpd.socket
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/lib/systemd/user/pipewire.socket
|
||||||
1
hyprland/.config/systemd/user/timers.target.wants/mbsync.timer
Symbolic link
1
hyprland/.config/systemd/user/timers.target.wants/mbsync.timer
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/mbsync.timer
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/msmtp-queue.timer
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/vdirsyncer.timer
|
||||||
7
hyprland/.config/systemd/user/vdirsyncer.service
Normal file
7
hyprland/.config/systemd/user/vdirsyncer.service
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=vdirsyncer sync
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/bin/vdirsyncer sync
|
||||||
9
hyprland/.config/systemd/user/vdirsyncer.timer
Normal file
9
hyprland/.config/systemd/user/vdirsyncer.timer
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=vdirsyncer sync every 15 minutes
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnBootSec=2m
|
||||||
|
OnUnitActiveSec=15m
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
17
hyprland/.config/systemd/user/voxtype.service
Normal file
17
hyprland/.config/systemd/user/voxtype.service
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Voxtype push-to-talk voice-to-text daemon
|
||||||
|
Documentation=https://voxtype.io
|
||||||
|
PartOf=graphical-session.target
|
||||||
|
After=graphical-session.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/voxtype daemon
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
# Ensure we have access to the display
|
||||||
|
Environment=XDG_RUNTIME_DIR=%t
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=graphical-session.target
|
||||||
72
hyprland/.config/waybar/config_hyprland
Normal file
72
hyprland/.config/waybar/config_hyprland
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
[{
|
||||||
|
"layer": "top",
|
||||||
|
"output": ["eDP-1", "DVI-I-1"],
|
||||||
|
"height": 30,
|
||||||
|
"spacing": 0,
|
||||||
|
"modules-left": ["hyprland/workspaces"],
|
||||||
|
"modules-center": [],
|
||||||
|
"modules-right": ["mpris", "pulseaudio", "battery", "tray", "clock"],
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-click": "activate",
|
||||||
|
"disable-scroll": true,
|
||||||
|
"all-outputs": true,
|
||||||
|
"show-special": false,
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"*": [1, 2, 3, 4]
|
||||||
|
},
|
||||||
|
"format": "{id}"
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"warning": 20,
|
||||||
|
"critical": 10
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
"format-icons": ["", "", "", "", "", "", "", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%a %d %b %H:%M}",
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
|
"on-click": "gnome-calendar"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{volume}% {icon}",
|
||||||
|
"format-bluetooth": "{volume}% {icon}",
|
||||||
|
"format-bluetooth-muted": " {icon}",
|
||||||
|
"format-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 22,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} ",
|
||||||
|
"format-paused": "{player_icon} ",
|
||||||
|
"format-stopped": "",
|
||||||
|
"tooltip-format": "{title} — {artist}",
|
||||||
|
"player-icons": {
|
||||||
|
"default": "",
|
||||||
|
"spotify": "",
|
||||||
|
"firefox": "",
|
||||||
|
"chromium": "",
|
||||||
|
"mpv": "",
|
||||||
|
"vlc": ""
|
||||||
|
},
|
||||||
|
"on-click": "playerctl play-pause",
|
||||||
|
"on-scroll-up": "playerctl next",
|
||||||
|
"on-scroll-down": "playerctl previous"
|
||||||
|
}
|
||||||
|
}]
|
||||||
107
hyprland/.config/waybar/style.css
Normal file
107
hyprland/.config/waybar/style.css
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
font-family: "Noto Sans", "JetBrainsMono Nerd Font", monospace;
|
||||||
|
font-size: 16px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "gruvbox.css";
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: #32302f;
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Workspaces */
|
||||||
|
#workspaces {
|
||||||
|
padding: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 7px;
|
||||||
|
background: transparent;
|
||||||
|
color: @white;
|
||||||
|
border-radius: 6px;
|
||||||
|
min-width: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.empty {
|
||||||
|
color: rgba(168, 153, 132, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background: rgba(214, 93, 14, 0.25);
|
||||||
|
color: @orange_b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.visible:not(.active) {
|
||||||
|
background: rgba(69, 133, 136, 0.25);
|
||||||
|
color: @blue_b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(168, 153, 132, 0.15);
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mode (sway) */
|
||||||
|
#mode {
|
||||||
|
background: @red;
|
||||||
|
color: @foreground;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 4px 2px;
|
||||||
|
padding: 0 10px;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Right modules */
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#pulseaudio,
|
||||||
|
#mpris,
|
||||||
|
#tray {
|
||||||
|
padding: 0 8px;
|
||||||
|
margin: 0;
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.warning:not(.charging) {
|
||||||
|
color: @red_b;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: @white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
background-color: @red;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
@@ -5,8 +5,10 @@ set -e
|
|||||||
PICTURES_DIR="$(xdg-user-dir PICTURES)"
|
PICTURES_DIR="$(xdg-user-dir PICTURES)"
|
||||||
ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||||
|
|
||||||
monitor="$(swaymsg -t get_outputs | jq '[.[].focused] | index(true)')"
|
monitor="$(hyprctl monitors -j | jq '[.[].focused] | index(true)')"
|
||||||
alias myrofi="rofi -dmenu -matching fuzzy -i -sort -sorting-method fzf -monitor $monitor"
|
# monitor="$(swaymsg -t get_outputs | jq '[.[].focused] | index(true)')"
|
||||||
|
alias myrofi="fuzzel --dmenu"
|
||||||
|
# alias myrofi="rofi -dmenu -matching fuzzy -i -sort -sorting-method fzf -monitor $monitor"
|
||||||
|
|
||||||
select_window() {
|
select_window() {
|
||||||
declare -A windows
|
declare -A windows
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
# vim: filetype=muttrc
|
|
||||||
unmailboxes *
|
|
||||||
|
|
||||||
set from = "benjamin.bertrand@ac-lyon.fr"
|
|
||||||
|
|
||||||
set sendmail = "/usr/bin/msmtp -a ac-lyon"
|
|
||||||
set folder = "~/.mail/ac_lyon"
|
|
||||||
|
|
||||||
set spoolfile = "+INBOX"
|
|
||||||
set postponed = "+Drafts"
|
|
||||||
set record = "+Sent"
|
|
||||||
set trash = "+Trash"
|
|
||||||
|
|
||||||
set mbox_type = Maildir
|
|
||||||
set ssl_starttls = yes
|
|
||||||
set ssl_force_tls = yes
|
|
||||||
|
|
||||||
color status blue default
|
|
||||||
|
|
||||||
#mailboxes =INBOX =Sent =Drafts =Junk
|
|
||||||
|
|
||||||
|
|
||||||
# set my_pass = "`pass Prof/pronote/bbertrand`"
|
|
||||||
# set folder = "imaps://mail.ac-lyon.fr"
|
|
||||||
# set imap_user = bbertrand
|
|
||||||
# set imap_pass = $my_pass
|
|
||||||
#
|
|
||||||
# set ssl_force_tls = yes
|
|
||||||
# set smtp_url = smtps://$imap_user@smtps.ac-lyon.fr:587
|
|
||||||
# set smtp_pass = $my_pass
|
|
||||||
# set ssl_starttls = yes
|
|
||||||
# set smtp_authenticators = "login"
|
|
||||||
#
|
|
||||||
# set spoolfile = +INBOX
|
|
||||||
# mailboxes = +INBOX
|
|
||||||
# set imap_check_subscribed
|
|
||||||
#
|
|
||||||
# set record = "+Sent"
|
|
||||||
# set trash = "+Trash"
|
|
||||||
# set postponed = "+Drafts"
|
|
||||||
#
|
|
||||||
# ## Hook -- IMPORTANT!
|
|
||||||
# account-hook $folder "set imap_pass=`pass Prof/pronote/bbertrand`"
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
# vim: filetype=muttrc
|
|
||||||
unmailboxes *
|
|
||||||
|
|
||||||
set from = "benjamin.bertrand@opytex.org"
|
|
||||||
|
|
||||||
set sendmail = "/usr/bin/msmtp -a bb_opytex"
|
|
||||||
set folder = "~/.mail/bb_opytex"
|
|
||||||
|
|
||||||
set spoolfile = "+INBOX"
|
|
||||||
set postponed = "+Drafts"
|
|
||||||
set record = "+Sent"
|
|
||||||
set trash = "+Junk"
|
|
||||||
|
|
||||||
|
|
||||||
set mbox_type = Maildir
|
|
||||||
set ssl_starttls = yes
|
|
||||||
set ssl_force_tls = yes
|
|
||||||
|
|
||||||
color status cyan default
|
|
||||||
|
|
||||||
# mailboxes =INBOX =Sent =Drafts =Junk
|
|
||||||
|
|
||||||
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
|
||||||
# set folder = "imaps://imap.mailfence.com/"
|
|
||||||
# set imap_user = Takanuva
|
|
||||||
# set imap_pass = $my_pass
|
|
||||||
#
|
|
||||||
# set ssl_force_tls = yes
|
|
||||||
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
|
||||||
# set smtp_pass = $my_pass
|
|
||||||
# set ssl_starttls = yes
|
|
||||||
# set smtp_authenticators = "login"
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# set spoolfile = +INBOX
|
|
||||||
#
|
|
||||||
# set record = "+Sent"
|
|
||||||
# set trash = "+Trash"
|
|
||||||
# set postponed = "+Drafts"
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# ## Hook -- IMPORTANT!
|
|
||||||
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
# vim: filetype=muttrc
|
|
||||||
unmailboxes *
|
|
||||||
set imap_list_subscribed
|
|
||||||
set imap_check_subscribed
|
|
||||||
|
|
||||||
set from = "jost_bertrand@opytex.org"
|
|
||||||
|
|
||||||
set sendmail = "/usr/bin/msmtp -a jb_opytex"
|
|
||||||
set folder = "~/.mail/jb_opytex"
|
|
||||||
|
|
||||||
set spoolfile = "+INBOX"
|
|
||||||
set postponed = "+Drafts"
|
|
||||||
set record = "+Sent"
|
|
||||||
set trash = "+Junk"
|
|
||||||
|
|
||||||
set mbox_type = Maildir
|
|
||||||
set ssl_starttls = yes
|
|
||||||
set ssl_force_tls = yes
|
|
||||||
|
|
||||||
|
|
||||||
color status red default
|
|
||||||
|
|
||||||
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
|
||||||
# set folder = "imaps://imap.mailfence.com/"
|
|
||||||
# set imap_user = Takanuva
|
|
||||||
# set imap_pass = $my_pass
|
|
||||||
#
|
|
||||||
# set ssl_force_tls = yes
|
|
||||||
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
|
||||||
# set smtp_pass = $my_pass
|
|
||||||
# set ssl_starttls = yes
|
|
||||||
# set smtp_authenticators = "login"
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# set spoolfile = +INBOX
|
|
||||||
# set imap_check_subscribed
|
|
||||||
#
|
|
||||||
# set record = "+Sent"
|
|
||||||
# set trash = "+Trash"
|
|
||||||
# set postponed = "+Drafts"
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# ## Hook -- IMPORTANT!
|
|
||||||
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
# -*-muttrc-*-
|
|
||||||
|
|
||||||
# Screenshot http://trovao.droplinegnome.org/stuff/mutt-zenburnt.png
|
|
||||||
#
|
|
||||||
# This is a zenburn-based neomutt color scheme that is not (even by far)
|
|
||||||
# complete. There's no copyright involved. Do whatever you want with it.
|
|
||||||
# Just be aware that I won't be held responsible if the current color-scheme
|
|
||||||
# explodes your mail client. ;)
|
|
||||||
#
|
|
||||||
# Do notice that this color scheme requires a terminal emulator that supports
|
|
||||||
# 256 color. Any modern X terminal emulator should have support for that and
|
|
||||||
# you can enable it by calling neomutt as "TERM=xterm-256color neomutt" or, if you
|
|
||||||
# use screen, by adding "term screen-256color" to your .screenrc.
|
|
||||||
#
|
|
||||||
# This file is in the public domain.
|
|
||||||
#
|
|
||||||
|
|
||||||
# general-doesn't-fit stuff
|
|
||||||
color normal color188 color237
|
|
||||||
color error color115 color236
|
|
||||||
color markers color142 color238
|
|
||||||
color tilde color108 color237
|
|
||||||
color status color144 color234
|
|
||||||
|
|
||||||
# index stuff
|
|
||||||
color indicator color108 color236
|
|
||||||
color tree color109 color237
|
|
||||||
color index color188 color237 ~A
|
|
||||||
color index color188 color237 ~N
|
|
||||||
color index color188 color237 ~O
|
|
||||||
color index color174 color237 ~F
|
|
||||||
color index color174 color237 ~D
|
|
||||||
|
|
||||||
# Message Index ----------------------------------------------------------------
|
|
||||||
|
|
||||||
## Weak
|
|
||||||
color index color08 color00 "~R" # read messages
|
|
||||||
color index color08 color00 "~d >45d" # older than 45 days
|
|
||||||
color index color08 color00 "~v~(!~N)" # collapsed thread with no unread
|
|
||||||
color index color08 color00 "~Q" # messages that have been replied to
|
|
||||||
|
|
||||||
## Strong
|
|
||||||
color index color21 color00 "(~U|~N|~O)" # unread, new, old messages
|
|
||||||
color index color21 color00 "~v~(~U|~N|~O)" # collapsed thread with unread
|
|
||||||
|
|
||||||
## Highlight
|
|
||||||
### Trusted
|
|
||||||
color index color06 color00 "~g" # PGP signed messages
|
|
||||||
color index color06 color00 "~G" # PGP encrypted messages
|
|
||||||
### Odd
|
|
||||||
color index color01 color00 "~E" # past Expires: header date
|
|
||||||
color index color01 color00 "~=" # duplicated
|
|
||||||
color index color01 color00 "~S" # marked by Supersedes: header
|
|
||||||
### Flagged
|
|
||||||
color index color05 color00 "~F" # flagged messages
|
|
||||||
color index color02 color00 "~v~(~F)" # collapsed thread with flagged inside
|
|
||||||
|
|
||||||
# Selection
|
|
||||||
color index color02 color18 "~T" # tagged messages
|
|
||||||
color index color01 color18 "~D" # deleted messages
|
|
||||||
|
|
||||||
#
|
|
||||||
|
|
||||||
# header stuff
|
|
||||||
color hdrdefault color223 color237
|
|
||||||
color header color223 color237 "^Subject"
|
|
||||||
|
|
||||||
# gpg stuff
|
|
||||||
color body color188 color237 "^gpg: Good signature.*"
|
|
||||||
color body color115 color236 "^gpg: BAD signature.*"
|
|
||||||
color body color174 color237 "^gpg: Can't check signature.*"
|
|
||||||
color body color174 color237 "^-----BEGIN PGP SIGNED MESSAGE-----"
|
|
||||||
color body color174 color237 "^-----BEGIN PGP SIGNATURE-----"
|
|
||||||
color body color174 color237 "^-----END PGP SIGNED MESSAGE-----"
|
|
||||||
color body color174 color237 "^-----END PGP SIGNATURE-----"
|
|
||||||
color body color174 color237 "^Version: GnuPG.*"
|
|
||||||
color body color174 color237 "^Comment: .*"
|
|
||||||
|
|
||||||
# url, email and web stuff
|
|
||||||
color body color174 color237 "(finger|ftp|http|https|news|telnet)://[^ >]*"
|
|
||||||
color body color174 color237 "<URL:[^ ]*>"
|
|
||||||
color body color174 color237 "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?"
|
|
||||||
color body color174 color237 "mailto: *[^ ]+\(\\i?subject=[^ ]+\)?"
|
|
||||||
color body color174 color237 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
|
||||||
|
|
||||||
# misc body stuff
|
|
||||||
color attachment color174 color237 #Add-ons to the message
|
|
||||||
color signature color223 color237
|
|
||||||
|
|
||||||
# quote levels
|
|
||||||
color quoted color108 color237
|
|
||||||
color quoted1 color116 color237
|
|
||||||
color quoted2 color247 color237
|
|
||||||
color quoted3 color108 color237
|
|
||||||
color quoted4 color116 color237
|
|
||||||
color quoted5 color247 color237
|
|
||||||
color quoted6 color108 color237
|
|
||||||
color quoted7 color116 color237
|
|
||||||
color quoted8 color247 color237
|
|
||||||
color quoted9 color108 color237
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
# -*-muttrc-*-
|
|
||||||
# gruvbox dark (contrast dark):
|
|
||||||
|
|
||||||
# bg0 = 234
|
|
||||||
# bg1 = 237
|
|
||||||
# bg2 = 239
|
|
||||||
# bg3 = 241
|
|
||||||
# bg4 = 243
|
|
||||||
#
|
|
||||||
# gray = 245
|
|
||||||
#
|
|
||||||
# fg0 = 229
|
|
||||||
# fg1 = 223
|
|
||||||
# fg2 = 250
|
|
||||||
# fg3 = 248
|
|
||||||
# fg4 = 246
|
|
||||||
#
|
|
||||||
# red = 167
|
|
||||||
# green = 142
|
|
||||||
# yellow = 214
|
|
||||||
# blue = 109
|
|
||||||
# purple = 175
|
|
||||||
# aqua = 108
|
|
||||||
# orange = 208
|
|
||||||
|
|
||||||
|
|
||||||
# See http://www.mutt.org/doc/manual/#color
|
|
||||||
|
|
||||||
color attachment color109 color234
|
|
||||||
color bold color229 color234
|
|
||||||
color error color167 color234
|
|
||||||
color hdrdefault color246 color234
|
|
||||||
color indicator color223 color237
|
|
||||||
color markers color243 color234
|
|
||||||
color normal color223 color234
|
|
||||||
color quoted color250 color234
|
|
||||||
color quoted1 color108 color234
|
|
||||||
color quoted2 color250 color234
|
|
||||||
color quoted3 color108 color234
|
|
||||||
color quoted4 color250 color234
|
|
||||||
color quoted5 color108 color234
|
|
||||||
color search color234 color208
|
|
||||||
color signature color108 color234
|
|
||||||
color status color234 color250
|
|
||||||
color tilde color243 color234
|
|
||||||
color tree color142 color234
|
|
||||||
color underline color223 color239
|
|
||||||
|
|
||||||
color sidebar_divider color250 color234
|
|
||||||
color sidebar_new color142 color234
|
|
||||||
|
|
||||||
color index color142 color234 ~N
|
|
||||||
color index color108 color234 ~O
|
|
||||||
color index color109 color234 ~P
|
|
||||||
color index color214 color234 ~F
|
|
||||||
color index color175 color234 ~Q
|
|
||||||
color index color167 color234 ~=
|
|
||||||
color index color234 color223 ~T
|
|
||||||
color index color234 color167 ~D
|
|
||||||
|
|
||||||
color header color214 color234 "^(To:|From:)"
|
|
||||||
color header color142 color234 "^Subject:"
|
|
||||||
color header color108 color234 "^X-Spam-Status:"
|
|
||||||
color header color108 color234 "^Received:"
|
|
||||||
|
|
||||||
# Regex magic for URLs and hostnames
|
|
||||||
#
|
|
||||||
# Attention: BSD's regex has RE_DUP_MAX set to 255.
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
# http://some-service.example.com
|
|
||||||
# example.com
|
|
||||||
# a.example.com
|
|
||||||
# some-service.example.com
|
|
||||||
# example.com/
|
|
||||||
# example.com/datenschutz
|
|
||||||
# file:///tmp/foo
|
|
||||||
#
|
|
||||||
# Non-examples:
|
|
||||||
# 1.1.1900
|
|
||||||
# 14.02.2022/24:00
|
|
||||||
# 23.59
|
|
||||||
# w.l.o.g
|
|
||||||
# team.its
|
|
||||||
color body color142 color234 "[a-z]{3,255}://[[:graph:]]*"
|
|
||||||
color body color142 color234 "([-[:alnum:]]+\\.)+([0-9]{1,3}|[-[:alpha:]]+)/[[:graph:]]*"
|
|
||||||
color body color142 color234 "([-[:alnum:]]+\\.){2,255}[-[:alpha:]]{2,10}"
|
|
||||||
|
|
||||||
# IPv4 and IPv6 stolen from https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
|
|
||||||
color body color142 color234 "((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
|
|
||||||
color body color142 color234 "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
|
|
||||||
|
|
||||||
# Mail addresses and mailto URLs
|
|
||||||
color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
|
||||||
color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
|
||||||
|
|
||||||
# some simleys and stuff
|
|
||||||
color body color234 color214 "[;:]-*[)>(<lt;|]"
|
|
||||||
color body color229 color234 "\\*[- A-Za-z]+\\*"
|
|
||||||
|
|
||||||
color body color214 color234 "^-.*PGP.*-*"
|
|
||||||
color body color142 color234 "^gpg: Good signature from"
|
|
||||||
color body color167 color234 "^gpg: Can't.*$"
|
|
||||||
color body color214 color234 "^gpg: WARNING:.*$"
|
|
||||||
color body color167 color234 "^gpg: BAD signature from"
|
|
||||||
color body color167 color234 "^gpg: Note: This key has expired!"
|
|
||||||
color body color214 color234 "^gpg: There is no indication that the signature belongs to the owner."
|
|
||||||
color body color214 color234 "^gpg: can't handle these multiple signatures"
|
|
||||||
color body color214 color234 "^gpg: signature verification suppressed"
|
|
||||||
color body color214 color234 "^gpg: invalid node with packet of type"
|
|
||||||
|
|
||||||
color body color142 color234 "^Good signature from:"
|
|
||||||
color body color167 color234 "^.?BAD.? signature from:"
|
|
||||||
color body color142 color234 "^Verification successful"
|
|
||||||
color body color167 color234 "^Verification [^s][^[:space:]]*$"
|
|
||||||
|
|
||||||
color compose header color223 color234
|
|
||||||
color compose security_encrypt color175 color234
|
|
||||||
color compose security_sign color109 color234
|
|
||||||
color compose security_both color142 color234
|
|
||||||
color compose security_none color208 color234
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
mailboxes "+ac_lyon/Archives" "+ac_lyon/Archives.2019-2020" "+ac_lyon/Archives.2020-2021" "+ac_lyon/Archives.2021-2022" "+ac_lyon/Archives.2022-2023" "+ac_lyon/Archives/2019-2020" "+ac_lyon/Archives/2020-2021" "+ac_lyon/Archives/2021-2022" "+ac_lyon/Archives/2022-2023" "+ac_lyon/Brouillons" "+ac_lyon/Drafts" "+ac_lyon/Eleves" "+ac_lyon/Eleves.2nd1" "+ac_lyon/Eleves/2nd1" "+ac_lyon/Envoy&AOk-s" "+ac_lyon/INBOX" "+ac_lyon/Junk" "+ac_lyon/Sent" "+ac_lyon/TICE" "+ac_lyon/Trash" "+bb_opytex/Archive" "+bb_opytex/Drafts" "+bb_opytex/INBOX" "+bb_opytex/R&AOk-seautage" "+bb_opytex/Sent Items" "+bb_opytex/Spam?" "+bb_opytex/Trash" "+jb_opytex/2021" "+jb_opytex/2022" "+jb_opytex/Archive" "+jb_opytex/Drafts" "+jb_opytex/INBOX" "+jb_opytex/Sent Items" "+jb_opytex/Spam?" "+jb_opytex/Trash"
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# xdg-open
|
|
||||||
application/msword; /usr/bin/xdg-open %s
|
|
||||||
application/pdf; /usr/bin/xdg-open %s
|
|
||||||
application/postscript ; /usr/bin/xdg-open %s
|
|
||||||
|
|
||||||
# HTML
|
|
||||||
text/html; w3m -I %{charset} -T text/html; copiousoutput;
|
|
||||||
text/plain; nvim %s
|
|
||||||
|
|
||||||
#Images
|
|
||||||
image/png; /usr/bin/vimiv %s
|
|
||||||
image/jpeg; /usr/bin/vimiv %s
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
# vim: filetype=muttrc
|
|
||||||
|
|
||||||
# sidebar mappings
|
|
||||||
bind index,pager \Ck sidebar-prev
|
|
||||||
bind index,pager \Cj sidebar-next
|
|
||||||
bind index,pager \Co sidebar-open
|
|
||||||
bind index,pager \Cp sidebar-prev-new
|
|
||||||
bind index,pager \Cn sidebar-next-new
|
|
||||||
bind index,pager B sidebar-toggle-visible
|
|
||||||
|
|
||||||
# global index and pager shortcuts
|
|
||||||
bind index,pager @ compose-to-sender
|
|
||||||
bind index,pager D purge-message
|
|
||||||
bind index <tab> sync-mailbox
|
|
||||||
bind index <space> collapse-thread
|
|
||||||
|
|
||||||
# Email completion bindings
|
|
||||||
bind editor <Tab> complete-query
|
|
||||||
bind editor ^T complete
|
|
||||||
|
|
||||||
|
|
||||||
# General rebindings
|
|
||||||
bind attach <return> view-mailcap
|
|
||||||
bind attach l view-mailcap
|
|
||||||
bind editor <space> noop
|
|
||||||
bind pager c imap-fetch-mail
|
|
||||||
bind index G last-entry
|
|
||||||
bind index g noop
|
|
||||||
bind index gg first-entry
|
|
||||||
bind pager,attach h exit
|
|
||||||
bind pager j next-line
|
|
||||||
bind pager k previous-line
|
|
||||||
bind pager l view-attachments
|
|
||||||
bind index D delete-message
|
|
||||||
bind index U undelete-message
|
|
||||||
bind index L limit
|
|
||||||
bind index h noop
|
|
||||||
bind index l display-message
|
|
||||||
bind browser h goto-parent
|
|
||||||
bind browser l select-entry
|
|
||||||
bind pager,browser gg top-page
|
|
||||||
bind pager,browser G bottom-page
|
|
||||||
bind index,pager,browser d half-down
|
|
||||||
bind index,pager,browser u half-up
|
|
||||||
bind index,pager R group-reply
|
|
||||||
bind index \031 previous-undeleted # Mouse wheel
|
|
||||||
bind index \005 next-undeleted # Mouse wheel
|
|
||||||
bind pager \031 previous-line # Mouse wheel
|
|
||||||
bind pager \005 next-line # Mouse wheel
|
|
||||||
bind editor <Tab> complete-query
|
|
||||||
#
|
|
||||||
## Shortcuts
|
|
||||||
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/ac-lyon<enter><change-folder>!<enter>'
|
|
||||||
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/bb_opytex<enter><change-folder>!<enter>'
|
|
||||||
macro index,pager <f4> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/jb_opytex<enter><change-folder>!<enter>'
|
|
||||||
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# vim: filetype=muttrc
|
|
||||||
|
|
||||||
source ~/.config/neomutt/settings
|
|
||||||
source ~/.config/neomutt/colors_gruvbox
|
|
||||||
source ~/.config/neomutt/mappings
|
|
||||||
|
|
||||||
|
|
||||||
#source ~/.config/neomutt/accounts/jb_opytex
|
|
||||||
folder-hook jb_opytex/* 'source ~/.config/neomutt/accounts/jb_opytex'
|
|
||||||
#source ~/.config/neomutt/accounts/bb_opytex
|
|
||||||
folder-hook bb_opytex/* 'source ~/.config/neomutt/accounts/bb_opytex'
|
|
||||||
source ~/.config/neomutt/accounts/ac-lyon
|
|
||||||
folder-hook ac_lyon/* 'source ~/.config/neomutt/accounts/ac-lyon'
|
|
||||||
|
|
||||||
#source ~/.config/neomutt/mailboxes
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
# vim: filetype=muttrc
|
|
||||||
|
|
||||||
set editor = "nvim"
|
|
||||||
|
|
||||||
set realname = "Benjamin Bertrand"
|
|
||||||
set use_from = "yes"
|
|
||||||
|
|
||||||
# How often to check for new mail (time in seconds).
|
|
||||||
set mail_check = 120
|
|
||||||
|
|
||||||
# Allow Mutt to open a new IMAP connection automatically.
|
|
||||||
unset imap_passive
|
|
||||||
|
|
||||||
# Keep the IMAP connection alive by polling intermittently (time in seconds).
|
|
||||||
set imap_keepalive = 300
|
|
||||||
|
|
||||||
# main options
|
|
||||||
set envelope_from
|
|
||||||
set edit_headers # show headers when composing
|
|
||||||
set fast_reply # skip to compose when replying
|
|
||||||
set askcc # ask for CC:
|
|
||||||
set fcc_attach # save attachments with the body
|
|
||||||
set forward_format = "Fwd: %s" # format of subject when forwarding
|
|
||||||
set forward_decode # decode when forwarding
|
|
||||||
set attribution = "On %d, %n wrote:" # format of quoting header
|
|
||||||
set reply_to # reply to Reply to: field
|
|
||||||
set reverse_name # reply as whomever it was to
|
|
||||||
set include # include message in replies
|
|
||||||
set forward_quote # include message in forwards
|
|
||||||
set text_flowed
|
|
||||||
unset sig_dashes # no dashes before sig
|
|
||||||
unset mime_forward # forward attachments as part of body
|
|
||||||
unset help # No help bar at the top of index
|
|
||||||
# set status_on_top # Status bar on top of index
|
|
||||||
set tmpdir = ~/Programs/neomutt/temp # where to keep temp files
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# status bar, date format, finding stuff etc.
|
|
||||||
set status_chars = " *%A"
|
|
||||||
set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?"
|
|
||||||
set date_format = "%d.%m.%Y %H:%M"
|
|
||||||
set sort = threads
|
|
||||||
set sort_aux = reverse-last-date-received
|
|
||||||
set uncollapse_jump
|
|
||||||
set sort_re
|
|
||||||
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
|
||||||
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
|
||||||
set send_charset = "utf-8:iso-8859-1:us-ascii"
|
|
||||||
set charset = "utf-8"
|
|
||||||
set arrow_cursor = "no" # Change `color indicator` depending
|
|
||||||
|
|
||||||
|
|
||||||
# Pager View Options
|
|
||||||
set pager_index_lines = 20 # Shows 10 lines of index when pager is active
|
|
||||||
set pager_context = 3
|
|
||||||
set pager_stop
|
|
||||||
set menu_scroll
|
|
||||||
set tilde
|
|
||||||
unset markers
|
|
||||||
|
|
||||||
# Mailcal for attachments
|
|
||||||
set mailcap_path = ~/.config/neomutt/mailcap
|
|
||||||
set header_cache = "~/.cache/mutt"
|
|
||||||
set message_cachedir = "~/.cache/mutt"
|
|
||||||
|
|
||||||
# Contact with khard
|
|
||||||
set query_command = "khard email --parsable --search-in-source-files '%s'"
|
|
||||||
|
|
||||||
# Set preffered view modes
|
|
||||||
auto_view text/html text/calendar application/ics # view html automatically
|
|
||||||
alternative_order text/html text/plain text/enriched text/*
|
|
||||||
Binary file not shown.
@@ -1,67 +0,0 @@
|
|||||||
[general]
|
|
||||||
accounts = bb_opytex, jb_opytex, ac_lyon
|
|
||||||
pythonfile = ~/.config/offlineimap/offlineimap.py
|
|
||||||
maxsyncaccounts = 1
|
|
||||||
|
|
||||||
[mbnames]
|
|
||||||
enabled = yes
|
|
||||||
filename = ~/.config/neomutt/mailboxes
|
|
||||||
header = "mailboxes "
|
|
||||||
peritem = "+%(accountname)s/%(foldername)s"
|
|
||||||
sep = " "
|
|
||||||
footer = "\n"
|
|
||||||
|
|
||||||
|
|
||||||
[Account bb_opytex]
|
|
||||||
localrepository = Local-bb_opytex
|
|
||||||
remoterepository = Remote-bb_opytex
|
|
||||||
autorefresh = 1
|
|
||||||
quick = 10
|
|
||||||
|
|
||||||
[Repository Local-bb_opytex]
|
|
||||||
type = Maildir
|
|
||||||
localfolders = ~/.mail/bb_opytex
|
|
||||||
sep = /
|
|
||||||
|
|
||||||
[Repository Remote-bb_opytex]
|
|
||||||
type = IMAP
|
|
||||||
remotehost = imap.mailfence.com
|
|
||||||
remoteuser = Takanuva
|
|
||||||
remotepasseval = get_pass("mail/mailfence/Takanuva")
|
|
||||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
|
||||||
|
|
||||||
[Account jb_opytex]
|
|
||||||
localrepository = Local-jb_opytex
|
|
||||||
remoterepository = Remote-jb_opytex
|
|
||||||
autorefresh = 1
|
|
||||||
quick = 10
|
|
||||||
|
|
||||||
[Repository Local-jb_opytex]
|
|
||||||
type = Maildir
|
|
||||||
localfolders = ~/.mail/jb_opytex
|
|
||||||
sep = /
|
|
||||||
|
|
||||||
[Repository Remote-jb_opytex]
|
|
||||||
type = IMAP
|
|
||||||
remotehost = imap.mailfence.com
|
|
||||||
remoteuser = margot_benjamin
|
|
||||||
remotepasseval = get_pass("mail/jost_bertrand@opytex.org/margot_benjamin")
|
|
||||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
|
||||||
|
|
||||||
[Account ac_lyon]
|
|
||||||
localrepository = Local-ac_lyon
|
|
||||||
remoterepository = Remote-ac_lyon
|
|
||||||
autorefresh = 1
|
|
||||||
quick = 10
|
|
||||||
|
|
||||||
[Repository Local-ac_lyon]
|
|
||||||
type = Maildir
|
|
||||||
localfolders = ~/.mail/ac_lyon
|
|
||||||
sep = /
|
|
||||||
|
|
||||||
[Repository Remote-ac_lyon]
|
|
||||||
type = IMAP
|
|
||||||
remotehost = mail.ac-lyon.fr
|
|
||||||
remoteuser = bbertrand
|
|
||||||
remotepasseval = get_pass("Prof/pronote/bbertrand")
|
|
||||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
from subprocess import check_output
|
|
||||||
|
|
||||||
|
|
||||||
def get_pass(path):
|
|
||||||
return check_output("pass " + path, shell=True).splitlines()[0]
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[general]
|
|
||||||
status_path = "~/.config/vdirsyncer/status/"
|
|
||||||
|
|
||||||
[pair cloud_opytex_contact]
|
|
||||||
a = "cloud_opytex_contact_local"
|
|
||||||
b = "cloud_opytex_contact_remote"
|
|
||||||
collections = ["from a", "from b"]
|
|
||||||
conflict_resolution = "b wins"
|
|
||||||
|
|
||||||
[storage cloud_opytex_contact_local]
|
|
||||||
type = "filesystem"
|
|
||||||
path = "~/.contacts/"
|
|
||||||
fileext = ".vcf"
|
|
||||||
|
|
||||||
[storage cloud_opytex_contact_remote]
|
|
||||||
type = "carddav"
|
|
||||||
|
|
||||||
# We can simplify this URL here as well. In theory it shouldn't matter.
|
|
||||||
url = "https://cloud.poneyworld.net/remote.php/dav/addressbooks/users/lafrite/contacts/"
|
|
||||||
username = "lafrite"
|
|
||||||
password.fetch = ["command", "pass", "OVH/Panais/docker/cloud.poneyworld.net/lafrite"]
|
|
||||||
@@ -20,12 +20,11 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UC3-gwlrYQi5Q3t00Tyr2tmQ "Fe
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSKdJoK73RLL-zOs4Sq_tTQ "Ferme" "Loic le jardineur"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCSKdJoK73RLL-zOs4Sq_tTQ "Ferme" "Loic le jardineur"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJfcABj0bAqFrK3tjhGsSpw "Ferme" "Theud Bald"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCJfcABj0bAqFrK3tjhGsSpw "Ferme" "Theud Bald"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCL_r1ELEvAuN0peKUxI0Umw "Permaculture" "Geoff Lawton"
|
|
||||||
|
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCzVy7DiPyVvfiOvXF_XMs4Q "Apnée" "~Adam Freediver"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCzVy7DiPyVvfiOvXF_XMs4Q "Apnée" "~Adam Freediver"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCmCDB-4GipeUL6N9o4gJLqA "Sport" "Running Addict"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCG15zMwAB9qBpYrxL3z3byQ "Sport" "Quentin R Cycling"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRoFIKcVNGvv9Oimdb9FBGg "Apnée" "Hodgepodge"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCRoFIKcVNGvv9Oimdb9FBGg "Jeux" "Hodgepodge"
|
||||||
|
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCvDpfkniGG6WkX5L7DwyGaA "Bois" "Olivier Verdier"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCvDpfkniGG6WkX5L7DwyGaA "Bois" "Olivier Verdier"
|
||||||
@@ -33,9 +32,7 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UC7TiJ6Tnxc_dSE42byTPMug "Bo
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9fGq2-6FaftcegcIadLf6A "Bois" "Samuel Mamias"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC9fGq2-6FaftcegcIadLf6A "Bois" "Samuel Mamias"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOuow_HIYmeaIqi42zVs3qg "Bois" "Kirby Meets Audio"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCOuow_HIYmeaIqi42zVs3qg "Bois" "Kirby Meets Audio"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7FkqjV8SU5I8FCHXQSQe9Q "Bois" "Ishitani furniture"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC7FkqjV8SU5I8FCHXQSQe9Q "Bois" "Ishitani furniture"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjaudhGC0gBfEtMyQYzT3pA "Bois" "Atelier Floky"
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJNItGjNhUx3Zz6W4OCVfHA "Chantier" "~Passion renovation"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCJNItGjNhUx3Zz6W4OCVfHA "Chantier" "~Passion renovation"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCxiqy-VOYw6uBE4raFCz4Ow "Chantier" "LJVS"
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCKt0CjXg6PRocxlCss90e8g "Chantier" "Clément Beraud"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCKt0CjXg6PRocxlCss90e8g "Chantier" "Clément Beraud"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf"
|
||||||
@@ -67,5 +64,6 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UC9x0AN7BWHpCDHSm9NiJFJQ "Ho
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCZNhwA1B5YqiY1nLzmM0ZRg "Homelab" "Christian Lempa"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCZNhwA1B5YqiY1nLzmM0ZRg "Homelab" "Christian Lempa"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWQaM7SpSECp9FELz-cHzuQ "Cording" "Dream of Code"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCWQaM7SpSECp9FELz-cHzuQ "Cording" "Dream of Code"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYeiozh-4QwuC1sjgCmB92w "Cording" "DevOps Toolbox"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCYeiozh-4QwuC1sjgCmB92w "Cording" "DevOps Toolbox"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCgdTVe88YVSrOZ9qKumhULQ "Geek" "Hardware Haven"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCiZxJB0xWfPBE2omVZeWPpQ "Programmation" "Mehdio DataTV"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCiZxJB0xWfPBE2omVZeWPpQ "Programmation" "Mehdio DataTV"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
if not vim.loop.fs_stat(lazypath) then
|
if not vim.uv.fs_stat(lazypath) then
|
||||||
vim.fn.system({
|
vim.fn.system({
|
||||||
"git",
|
"git",
|
||||||
"clone",
|
"clone",
|
||||||
@@ -12,6 +12,9 @@ end
|
|||||||
vim.opt.rtp:prepend(lazypath)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
vim.g.mapleader = ' ' -- Leaderkey
|
vim.g.mapleader = ' ' -- Leaderkey
|
||||||
require("lazy").setup("plugins")
|
require("lazy").setup("plugins", {
|
||||||
|
concurrency = 5,
|
||||||
|
git = { filter = false },
|
||||||
|
})
|
||||||
require('settings')
|
require('settings')
|
||||||
require('mappings')
|
require('mappings')
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
{
|
{
|
||||||
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"LuaSnip": { "branch": "master", "commit": "a62e1083a3cfe8b6b206e7d3d33a51091df25357" },
|
||||||
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
|
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
"conform.nvim": { "branch": "master", "commit": "18aeab3d63d350dcf44d64c462cc489a3412af40" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||||
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
|
"gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
|
"gruvbox": { "branch": "master", "commit": "697c00291db857ca0af00ec154e5bd514a79191f" },
|
||||||
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
|
"harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "877c1db2bf957300097dd5348a665666a4d900cb" },
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "6b6f0a451200bb6abde85978c577c73ea1577758" },
|
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
|
||||||
"lsp-zero.nvim": { "branch": "v3.x", "commit": "22677c535fdc11a73da67a186a30e360d8857497" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
"mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" },
|
"mason.nvim": { "branch": "main", "commit": "8e921c2b68571e978db5d4d3fef9c9a7f8755473" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "7cf858c30841c9c41601ce58e5bc2023228037ef" },
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
"nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "de4f7138a68d5d5063170f2182fd27faf06b0b54" },
|
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
"nvim-lint": { "branch": "master", "commit": "665525810630701b84181e4d9eefd24b49845b29" },
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
|
"nvim-lspconfig": { "branch": "master", "commit": "f9349d4d99e7d66403ae8bf4fbd357b154dca7a7" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "2b361e043810d5587d9af0787f8ce40da92ec5e9" },
|
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
|
||||||
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "10bfa4826f2235c600c073a82e0d78718aa7240e" },
|
"nvim-web-devicons": { "branch": "master", "commit": "2795c26c916bb3c57dde308b82be51971fa92747" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
|
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
|
||||||
"oil.nvim": { "branch": "master", "commit": "ac2928cca85ba3596e92f9f51940d46be2d606f8" },
|
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
|
||||||
"telescope.nvim": { "branch": "0.1.x", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" },
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
|
||||||
|
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||||
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
|
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
|
||||||
"vim-fugitive": { "branch": "master", "commit": "99db68d9b3304580bd383da7aaee05c7a954a344" },
|
"vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
|
||||||
"vim-highlightedyank": { "branch": "master", "commit": "fa3f57b097e9521ce41a66b6c7cf5d9adea70ea3" },
|
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
||||||
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
|
|
||||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||||
"vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" },
|
"vim-tmux-navigator": { "branch": "master", "commit": "e41c431a0c7b7388ae7ba341f01a0d217eb3a432" },
|
||||||
"vim-vsnip": { "branch": "master", "commit": "be277461265f1e5c7db470aa479f30956597ea9e" },
|
"vimtex": { "branch": "master", "commit": "182ad387e3f3107699483606c9a2b6648f8437b2" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
return {
|
return {
|
||||||
'windwp/nvim-autopairs',
|
'windwp/nvim-autopairs',
|
||||||
event = "InsertEnter",
|
event = "InsertEnter",
|
||||||
opts = {
|
config = function()
|
||||||
disable_filetype = { "TelescopePrompt" , "vim" },
|
require("nvim-autopairs").setup({
|
||||||
} -- this is equalent to setup({}) function
|
disable_filetype = { "TelescopePrompt", "vim" },
|
||||||
|
})
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,14 +22,14 @@ return {
|
|||||||
python = { "ruff_fix", "ruff_format" },
|
python = { "ruff_fix", "ruff_format" },
|
||||||
},
|
},
|
||||||
format_on_save = {
|
format_on_save = {
|
||||||
lsp_fallback = true,
|
lsp_format = "fallback",
|
||||||
async = false,
|
async = false,
|
||||||
timeout_ms = 500,
|
timeout_ms = 500,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
||||||
conform.format({
|
conform.format({
|
||||||
lsp_fallback = true,
|
lsp_format = "fallback",
|
||||||
async = true,
|
async = true,
|
||||||
timeout_ms = 500,
|
timeout_ms = 500,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,44 +1,41 @@
|
|||||||
return {
|
return {
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
branch = "v3.x",
|
|
||||||
dependencies = {
|
dependencies = {
|
||||||
{ "neovim/nvim-lspconfig" },
|
|
||||||
{ "williamboman/mason.nvim" },
|
{ "williamboman/mason.nvim" },
|
||||||
{ "williamboman/mason-lspconfig.nvim" },
|
{ "williamboman/mason-lspconfig.nvim" },
|
||||||
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
|
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local lsp_zero = require("lsp-zero")
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
lsp_zero.on_attach(function(client, bufnr)
|
callback = function(args)
|
||||||
local opts = { buffer = bufnr, silent = true }
|
local opts = { buffer = args.buf, silent = true }
|
||||||
|
|
||||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, vim.tbl_extend("force", opts, { desc = "Go to definition" }))
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, vim.tbl_extend("force", opts, { desc = "Go to definition" }))
|
||||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, vim.tbl_extend("force", opts, { desc = "Go to declaration" }))
|
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, vim.tbl_extend("force", opts, { desc = "Go to declaration" }))
|
||||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, vim.tbl_extend("force", opts, { desc = "Go to implementation" }))
|
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, vim.tbl_extend("force", opts, { desc = "Go to implementation" }))
|
||||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, vim.tbl_extend("force", opts, { desc = "Show references" }))
|
vim.keymap.set("n", "gr", vim.lsp.buf.references, vim.tbl_extend("force", opts, { desc = "Show references" }))
|
||||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover documentation" }))
|
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover documentation" }))
|
||||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename symbol" }))
|
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename symbol" }))
|
||||||
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code action" }))
|
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code action" }))
|
||||||
end)
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
require("mason").setup({})
|
require("mason").setup({})
|
||||||
require("mason-lspconfig").setup({
|
require("mason-lspconfig").setup({
|
||||||
ensure_installed = {},
|
ensure_installed = {},
|
||||||
handlers = {
|
handlers = {
|
||||||
lsp_zero.default_setup,
|
function(server_name)
|
||||||
|
vim.lsp.enable(server_name)
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
local mason_tool_installer = require("mason-tool-installer")
|
|
||||||
|
|
||||||
mason_tool_installer.setup({
|
require("mason-tool-installer").setup({
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
"prettier", -- prettier formatter
|
"prettier",
|
||||||
"stylua", -- lua formatter
|
"stylua",
|
||||||
-- "isort", -- python formatter
|
|
||||||
-- "black", -- python formatter
|
|
||||||
-- "flake8", -- python linter
|
|
||||||
"ruff",
|
"ruff",
|
||||||
"eslint_d", -- js linter
|
"eslint_d",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ return {
|
|||||||
-- Lsp server name .
|
-- Lsp server name .
|
||||||
function()
|
function()
|
||||||
local msg = "No Active Lsp"
|
local msg = "No Active Lsp"
|
||||||
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
|
local buf_ft = vim.bo.filetype
|
||||||
local clients = vim.lsp.get_clients()
|
local clients = vim.lsp.get_clients()
|
||||||
if next(clients) == nil then
|
if next(clients) == nil then
|
||||||
return msg
|
return msg
|
||||||
|
|||||||
@@ -2,5 +2,4 @@ return {
|
|||||||
'tpope/vim-surround',
|
'tpope/vim-surround',
|
||||||
'tpope/vim-repeat',
|
'tpope/vim-repeat',
|
||||||
'tpope/vim-abolish',
|
'tpope/vim-abolish',
|
||||||
'machakann/vim-highlightedyank'
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ return {
|
|||||||
override = {
|
override = {
|
||||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||||
["vim.lsp.util.stylize_markdown"] = true,
|
["vim.lsp.util.stylize_markdown"] = true,
|
||||||
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
-- you can enable a preset for easier configuration
|
-- you can enable a preset for easier configuration
|
||||||
|
|||||||
@@ -30,18 +30,15 @@ return {
|
|||||||
results_title = "",
|
results_title = "",
|
||||||
prompt_title = "",
|
prompt_title = "",
|
||||||
preview_title = "",
|
preview_title = "",
|
||||||
mappings = {
|
|
||||||
i = {
|
|
||||||
["<C-d>"] = require("telescope.actions").delete_buffer,
|
|
||||||
},
|
|
||||||
n = {
|
|
||||||
["<C-d>"] = require("telescope.actions").delete_buffer,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
config = function(_, opts)
|
config = function(_, opts)
|
||||||
local telescope = require("telescope")
|
local telescope = require("telescope")
|
||||||
|
local actions = require("telescope.actions")
|
||||||
|
opts.defaults.mappings = {
|
||||||
|
i = { ["<C-d>"] = actions.delete_buffer },
|
||||||
|
n = { ["<C-d>"] = actions.delete_buffer },
|
||||||
|
}
|
||||||
telescope.setup(opts)
|
telescope.setup(opts)
|
||||||
telescope.load_extension("fzf")
|
telescope.load_extension("fzf")
|
||||||
|
|
||||||
|
|||||||
@@ -1,32 +1,94 @@
|
|||||||
return {
|
return {
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
build = ":TSUpdate",
|
build = ":TSUpdate",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-treesitter/nvim-treesitter-textobjects",
|
||||||
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local configs = require("nvim-treesitter.configs")
|
-- Compatibility shim for plugins using the old parsers.ft_to_lang API (e.g. telescope)
|
||||||
|
local ok, parsers = pcall(require, "nvim-treesitter.parsers")
|
||||||
|
if ok and not parsers.ft_to_lang then
|
||||||
|
parsers.ft_to_lang = function(ft)
|
||||||
|
return vim.treesitter.language.get_lang(ft) or ft
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
configs.setup({
|
require("nvim-treesitter").setup({
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
"lua",
|
"lua",
|
||||||
"vim",
|
"vim",
|
||||||
"vimdoc",
|
"vimdoc",
|
||||||
"javascript",
|
"javascript",
|
||||||
"html",
|
"html",
|
||||||
"python",
|
"python",
|
||||||
"dockerfile",
|
"dockerfile",
|
||||||
"latex",
|
"yaml",
|
||||||
"yaml",
|
"regex",
|
||||||
"regex",
|
"bash",
|
||||||
"bash",
|
"markdown",
|
||||||
"markdown",
|
"markdown_inline",
|
||||||
"markdown_inline",
|
},
|
||||||
},
|
sync_install = false,
|
||||||
sync_install = false,
|
highlight = {
|
||||||
highlight = {
|
enable = true,
|
||||||
enable = true,
|
disable = { "latex" },
|
||||||
disable = { "latex" },
|
},
|
||||||
},
|
indent = { enable = true },
|
||||||
indent = { enable = true },
|
|
||||||
})
|
-- Configuration des text objects intelligents
|
||||||
|
textobjects = {
|
||||||
|
select = {
|
||||||
|
enable = true,
|
||||||
|
lookahead = false, -- Ne cherche PAS vers l'avant (résout votre problème!)
|
||||||
|
|
||||||
|
keymaps = {
|
||||||
|
-- Délimiteurs syntaxiques
|
||||||
|
["i{"] = "@block.inner",
|
||||||
|
["a{"] = "@block.outer",
|
||||||
|
["i("] = "@call.inner",
|
||||||
|
["a("] = "@call.outer",
|
||||||
|
["i["] = "@call.inner",
|
||||||
|
["a["] = "@call.outer",
|
||||||
|
|
||||||
|
-- Strings/Guillemets
|
||||||
|
['i"'] = "@string.inner",
|
||||||
|
['a"'] = "@string.outer",
|
||||||
|
["i'"] = "@string.inner",
|
||||||
|
["a'"] = "@string.outer",
|
||||||
|
["i`"] = "@string.inner",
|
||||||
|
["a`"] = "@string.outer",
|
||||||
|
|
||||||
|
-- Délimiteurs sémantiques
|
||||||
|
["if"] = "@function.inner",
|
||||||
|
["af"] = "@function.outer",
|
||||||
|
["iC"] = "@class.inner", -- Majuscule pour éviter conflit avec VimTeX
|
||||||
|
["aC"] = "@class.outer",
|
||||||
|
["ib"] = "@block.inner",
|
||||||
|
["ab"] = "@block.outer",
|
||||||
|
["ii"] = "@conditional.inner",
|
||||||
|
["ai"] = "@conditional.outer",
|
||||||
|
["il"] = "@loop.inner",
|
||||||
|
["al"] = "@loop.outer",
|
||||||
|
["ia"] = "@parameter.inner",
|
||||||
|
["aa"] = "@parameter.outer",
|
||||||
|
["i/"] = "@comment.inner",
|
||||||
|
["a/"] = "@comment.outer",
|
||||||
|
["ir"] = "@return.inner",
|
||||||
|
["ar"] = "@return.outer",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Mode de sélection (v = charwise)
|
||||||
|
selection_modes = {
|
||||||
|
['@parameter.outer'] = 'v',
|
||||||
|
['@function.outer'] = 'V', -- linewise pour fonctions
|
||||||
|
['@class.outer'] = 'V', -- linewise pour classes
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Ne pas inclure les espaces (comportement précis)
|
||||||
|
include_surrounding_whitespace = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
end,
|
end,
|
||||||
-- opts = function(_, opts)
|
-- opts = function(_, opts)
|
||||||
-- vim.treesitter.language.register("markdown", "mdx")
|
-- vim.treesitter.language.register("markdown", "mdx")
|
||||||
@@ -34,14 +96,11 @@ return {
|
|||||||
-- if type(opts.ensure_installed) == "table" then
|
-- if type(opts.ensure_installed) == "table" then
|
||||||
-- vim.list_extend(opts.ensure_installed, {
|
-- vim.list_extend(opts.ensure_installed, {
|
||||||
-- "bibtex",
|
-- "bibtex",
|
||||||
-- "latex",
|
|
||||||
-- -- you can add more here
|
-- -- you can add more here
|
||||||
-- })
|
-- })
|
||||||
-- end
|
-- end
|
||||||
-- if type(opts.highlight.disable) == "table" then
|
-- if type(opts.highlight.disable) == "table" then
|
||||||
-- vim.list_extend(opts.highlight.disable, { "latex", "bibtex" })
|
|
||||||
-- else
|
-- else
|
||||||
-- opts.highlight.disable = { "latex", "bibtex" }
|
|
||||||
-- end
|
-- end
|
||||||
-- end,
|
-- end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
return {
|
return {
|
||||||
"folke/which-key.nvim",
|
"folke/which-key.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
init = function()
|
|
||||||
vim.o.timeout = true
|
|
||||||
vim.o.timeoutlen = 300
|
|
||||||
end,
|
|
||||||
opts = {
|
opts = {
|
||||||
-- your configuration comes here
|
-- your configuration comes here
|
||||||
-- or leave it empty to use the default settings
|
-- or leave it empty to use the default settings
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
local cmd = vim.cmd
|
local cmd = vim.cmd
|
||||||
local exec = vim.api.nvim_exec
|
|
||||||
local g = vim.g
|
local g = vim.g
|
||||||
local opt = vim.opt
|
local opt = vim.opt
|
||||||
|
|
||||||
opt.mouse = 'a'
|
opt.mouse = "a"
|
||||||
opt.clipboard = 'unnamedplus'
|
opt.clipboard = "unnamedplus"
|
||||||
opt.swapfile = false
|
opt.swapfile = false
|
||||||
|
|
||||||
opt.wrap = true
|
opt.wrap = true
|
||||||
@@ -13,7 +12,7 @@ opt.tabstop = 4
|
|||||||
opt.shiftwidth = 4
|
opt.shiftwidth = 4
|
||||||
opt.smarttab = true
|
opt.smarttab = true
|
||||||
opt.autoindent = true
|
opt.autoindent = true
|
||||||
opt.foldmethod = 'indent'
|
opt.foldmethod = "indent"
|
||||||
|
|
||||||
opt.number = true
|
opt.number = true
|
||||||
opt.relativenumber = true
|
opt.relativenumber = true
|
||||||
@@ -23,7 +22,7 @@ opt.scrolloff = 8
|
|||||||
opt.ignorecase = true
|
opt.ignorecase = true
|
||||||
opt.smartcase = true
|
opt.smartcase = true
|
||||||
|
|
||||||
opt.completeopt = 'menuone,noselect,noinsert'
|
opt.completeopt = "menuone,noselect,popup"
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
pattern = { "markdown", "text", "tex", "gitcommit" },
|
pattern = { "markdown", "text", "tex", "gitcommit" },
|
||||||
@@ -33,16 +32,21 @@ vim.api.nvim_create_autocmd("FileType", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
opt.nrformats = opt.nrformats + 'alpha'
|
opt.nrformats = opt.nrformats + "alpha"
|
||||||
opt.showmatch = true
|
opt.showmatch = true
|
||||||
|
|
||||||
cmd[[au BufEnter * set fo-=c fo-=r fo-=o]]
|
cmd([[au BufEnter * set fo-=c fo-=r fo-=o]])
|
||||||
|
|
||||||
exec([[
|
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||||
augroup YankHighlight
|
callback = function()
|
||||||
autocmd!
|
vim.highlight.on_yank({ higroup = "IncSearch", timeout = 700 })
|
||||||
autocmd TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=700}
|
end,
|
||||||
augroup end
|
})
|
||||||
]], false)
|
|
||||||
|
|
||||||
g.python3_host_prog = vim.fn.expand("~/.venv/nvim/bin/python")
|
g.python3_host_prog = vim.fn.expand("~/.venv/nvim/bin/python")
|
||||||
|
|
||||||
|
vim.filetype.add({
|
||||||
|
extension = {
|
||||||
|
tf = "terraform",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
nm-applet &
|
|
||||||
pasystray &
|
|
||||||
nextcloud &
|
|
||||||
xrandr --output VGA-1 --off --output HDMI-1 --mode 1920x1080 --pos 1080x420 --rotate normal --output DP-1 --off --output HDMI-2 --mode 1920x1080 --pos 0x0 --rotate left --output DP-2 --off
|
|
||||||
@@ -1,267 +0,0 @@
|
|||||||
# Copyright (c) 2010 Aldo Cortesi
|
|
||||||
# Copyright (c) 2010, 2014 dequis
|
|
||||||
# Copyright (c) 2012 Randall Ma
|
|
||||||
# Copyright (c) 2012-2014 Tycho Andersen
|
|
||||||
# Copyright (c) 2012 Craig Barnes
|
|
||||||
# Copyright (c) 2013 horsik
|
|
||||||
# Copyright (c) 2013 Tao Sauvage
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
|
||||||
# in the Software without restriction, including without limitation the rights
|
|
||||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
# copies of the Software, and to permit persons to whom the Software is
|
|
||||||
# furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice shall be included in
|
|
||||||
# all copies or substantial portions of the Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
# SOFTWARE.
|
|
||||||
|
|
||||||
from libqtile.config import Key, Screen, Group, Drag, Click, ScratchPad, DropDown
|
|
||||||
from libqtile.command import lazy
|
|
||||||
from libqtile import layout, bar, widget, extension, hook
|
|
||||||
from libqtile.log_utils import logger
|
|
||||||
from os.path import expanduser
|
|
||||||
from subprocess import call
|
|
||||||
|
|
||||||
|
|
||||||
from typing import List # noqa: F401
|
|
||||||
|
|
||||||
wmname = "???"
|
|
||||||
MOD = "mod4"
|
|
||||||
TERM = "urxvt"
|
|
||||||
|
|
||||||
# Base16 - hybrid (with 5 and 13 from jmbi)
|
|
||||||
colors = {
|
|
||||||
# special
|
|
||||||
"FG": "#c5c8c6",
|
|
||||||
"BG": "#1d1f21",
|
|
||||||
"C": "#c5c8c6",
|
|
||||||
# black
|
|
||||||
0: "#282a2e",
|
|
||||||
8: "#373b41",
|
|
||||||
# red
|
|
||||||
1: "#a54242",
|
|
||||||
9: "#cc6666",
|
|
||||||
# green
|
|
||||||
2: "#8c9440",
|
|
||||||
10: "#b5bd68",
|
|
||||||
# yellow
|
|
||||||
3: "#de935f",
|
|
||||||
11: "#f0c674",
|
|
||||||
# blue
|
|
||||||
4: "#5f819d",
|
|
||||||
12: "#81a2be",
|
|
||||||
# magenta
|
|
||||||
5: "#d13516",
|
|
||||||
13: "#c25431",
|
|
||||||
# cyan
|
|
||||||
6: "#5e8d87",
|
|
||||||
14: "#8abeb7",
|
|
||||||
# white
|
|
||||||
7: "#707880",
|
|
||||||
15: "#c5c8c6",
|
|
||||||
}
|
|
||||||
|
|
||||||
keys = [
|
|
||||||
Key([MOD], "f", lazy.window.toggle_floating()),
|
|
||||||
# Moving inside a screen
|
|
||||||
Key([MOD], "Tab", lazy.layout.next()),
|
|
||||||
Key([MOD], "j", lazy.layout.down()),
|
|
||||||
Key([MOD], "k", lazy.layout.up()),
|
|
||||||
Key([MOD, "shift"], "Tab", lazy.layout.rotate()),
|
|
||||||
# Key([MOD, "shift"], "Tab", lazy.spawncmd()), # circle inside layout
|
|
||||||
Key([MOD, "shift"], "k", lazy.layout.shuffle_up()),
|
|
||||||
Key([MOD, "shift"], "j", lazy.layout.shuffle_down()),
|
|
||||||
# Move between screens
|
|
||||||
Key([MOD], "l", lazy.to_screen(0)),
|
|
||||||
Key([MOD], "h", lazy.to_screen(1)),
|
|
||||||
# Key([MOD, "shift"], "l", move to screen 1),
|
|
||||||
# Key([MOD, "shift"], "h", move to screen 0),
|
|
||||||
# Toggle between different layouts as defined below
|
|
||||||
Key([MOD], "space", lazy.next_layout()),
|
|
||||||
# Toggle between split and unsplit sides of stack.
|
|
||||||
# Split = all windows displayed
|
|
||||||
# Unsplit = 1 window displayed, like Max layout, but still with
|
|
||||||
# multiple stack panes
|
|
||||||
# Key([MOD, "shift"], "Return", lazy.layout.toggle_split()),
|
|
||||||
# Swap panes of split stack
|
|
||||||
# Key([MOD, "shift"], "space", lazy.layout.rotate()),
|
|
||||||
# Screens
|
|
||||||
Key([MOD], "r", lazy.spawncmd()),
|
|
||||||
# Key([MOD], 'r', lazy.run_extension(extension.DmenuRun(
|
|
||||||
# dmenu_prompt=">",
|
|
||||||
# dmenu_font="Andika-8",
|
|
||||||
# background="#15181a",
|
|
||||||
# foreground="#00ff00",
|
|
||||||
# selected_background="#079822",
|
|
||||||
# selected_foreground="#fff",
|
|
||||||
# dmenu_height=24, # Only supported by some dmenu forks
|
|
||||||
# ))),
|
|
||||||
Key([MOD], "Return", lazy.spawn(TERM)),
|
|
||||||
Key([MOD], "q", lazy.window.kill()),
|
|
||||||
Key([MOD, "control"], "r", lazy.restart()),
|
|
||||||
Key([MOD, "control"], "q", lazy.shutdown()),
|
|
||||||
Key([MOD, "control"], "equal", lazy.spawn("systemctl suspend")),
|
|
||||||
# Change the volume if our keyboard has keys
|
|
||||||
Key([], "XF86AudioRaiseVolume", lazy.spawn("pamixer -i 2")),
|
|
||||||
Key([], "XF86AudioLowerVolume", lazy.spawn("pamixer -d 2")),
|
|
||||||
Key([], "XF86AudioMute", lazy.spawn("pamixer -t")),
|
|
||||||
]
|
|
||||||
|
|
||||||
groups = [
|
|
||||||
Group("t:", spawn="firefox", layout="Tall", persist=True),
|
|
||||||
Group("y:", spawn="thunderbird", layout="verticaltile", persist=True),
|
|
||||||
Group("u:", spawn=TERM+" -e sh -c tmuxp load enseignement", layout="TallRight", persist=True),
|
|
||||||
Group("i:", layout="Wide", persist=True),
|
|
||||||
Group("o:", layout="TallRight", persist=True),
|
|
||||||
Group("p:", layout="Wide", persist=True),
|
|
||||||
]
|
|
||||||
|
|
||||||
groups_keys = ["t", "y", "u", "i", "o", "p"]
|
|
||||||
|
|
||||||
for i, g in enumerate(groups):
|
|
||||||
k = groups_keys[i]
|
|
||||||
keys.extend(
|
|
||||||
[
|
|
||||||
# mod1 + letter of group = switch to group
|
|
||||||
Key([MOD], k, lazy.group[g.name].toscreen()),
|
|
||||||
# mod1 + shift + letter of group = switch to & move focused window to group
|
|
||||||
Key(
|
|
||||||
[MOD, "shift"], k, lazy.window.togroup(g.name)
|
|
||||||
), # , lazy.group[g.name].toscreen()),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
groups.append(
|
|
||||||
ScratchPad(
|
|
||||||
"scratchpad",
|
|
||||||
[
|
|
||||||
DropDown(
|
|
||||||
"music", TERM+" -e sh -c mocp", x=0.25, y=0.25, height=0.5, width=0.5, opacity=0.8
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
keys.extend(
|
|
||||||
[
|
|
||||||
Key([MOD], "m", lazy.group["scratchpad"].dropdown_toggle("music")),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
borders = {
|
|
||||||
"border_focus": colors[13],
|
|
||||||
"border_normal": colors["BG"],
|
|
||||||
}
|
|
||||||
|
|
||||||
layouts = [
|
|
||||||
layout.Max(),
|
|
||||||
layout.VerticalTile(**borders),
|
|
||||||
layout.MonadTall(
|
|
||||||
name="Tall",
|
|
||||||
align=0,
|
|
||||||
ratio=0.5,
|
|
||||||
**borders,
|
|
||||||
),
|
|
||||||
layout.MonadTall(
|
|
||||||
name="TallRight",
|
|
||||||
align=0,
|
|
||||||
ratio=0.7,
|
|
||||||
**borders,
|
|
||||||
),
|
|
||||||
layout.MonadWide(
|
|
||||||
name="Wide",
|
|
||||||
ratio=0.8,
|
|
||||||
**borders,
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
widget_defaults = dict(
|
|
||||||
font="DroidSans",
|
|
||||||
fontsize=12,
|
|
||||||
padding=3,
|
|
||||||
)
|
|
||||||
extension_defaults = widget_defaults.copy()
|
|
||||||
|
|
||||||
screens = [
|
|
||||||
Screen(),
|
|
||||||
Screen(
|
|
||||||
top=bar.Bar(
|
|
||||||
[
|
|
||||||
widget.GroupBox(
|
|
||||||
active=colors["FG"],
|
|
||||||
foreground=colors[8],
|
|
||||||
highlight_color=[colors[1], colors[13]],
|
|
||||||
highlight_method="border",
|
|
||||||
this_current_screen_border=colors[13],
|
|
||||||
this_screen_border=colors[8],
|
|
||||||
other_current_screen_border=colors[13],
|
|
||||||
other_screen_border=colors[8],
|
|
||||||
),
|
|
||||||
widget.Prompt(
|
|
||||||
background=colors[13],
|
|
||||||
),
|
|
||||||
# widget.WindowName(),
|
|
||||||
widget.Spacer(bar.STRETCH),
|
|
||||||
widget.Clock(
|
|
||||||
format="%a %d %B %Y %H:%M",
|
|
||||||
background=colors[13],
|
|
||||||
foreground=colors[15],
|
|
||||||
),
|
|
||||||
widget.Systray(),
|
|
||||||
# widget.CurrentLayoutIcon(scale=0.5),
|
|
||||||
],
|
|
||||||
size=24,
|
|
||||||
background=colors["BG"],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
||||||
# Drag floating layouts.
|
|
||||||
mouse = [
|
|
||||||
Drag(
|
|
||||||
[MOD],
|
|
||||||
"Button1",
|
|
||||||
lazy.window.set_position_floating(),
|
|
||||||
start=lazy.window.get_position(),
|
|
||||||
),
|
|
||||||
Drag(
|
|
||||||
[MOD], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()
|
|
||||||
),
|
|
||||||
Click([MOD], "Button2", lazy.window.bring_to_front()),
|
|
||||||
]
|
|
||||||
|
|
||||||
dgroups_key_binder = None
|
|
||||||
dgroups_app_rules = [] # type: List
|
|
||||||
main = None
|
|
||||||
follow_mouse_focus = True
|
|
||||||
bring_front_click = False
|
|
||||||
cursor_warp = False
|
|
||||||
auto_fullscreen = True
|
|
||||||
focus_on_window_activation = "smart"
|
|
||||||
|
|
||||||
@hook.subscribe.client_new
|
|
||||||
def floating_dialogs(window):
|
|
||||||
dialog = window.window.get_wm_type() == 'dialog'
|
|
||||||
transient = window.window.get_wm_transient_for()
|
|
||||||
if dialog or transient:
|
|
||||||
window.floating = True
|
|
||||||
|
|
||||||
@hook.subscribe.startup_once
|
|
||||||
def autostart():
|
|
||||||
home = expanduser("~")
|
|
||||||
call([home + "/.config/qtile/autostart.sh"])
|
|
||||||
|
|
||||||
|
|
||||||
@hook.subscribe.screen_change
|
|
||||||
def restart_on_randr(qtile):
|
|
||||||
qtile.cmd_restart()
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
xrandr --output VGA-1 --off --output HDMI-1 --mode 1920x1080 --pos 1080x420 --rotate normal --output DP-1 --off --output HDMI-2 --mode 1920x1080 --pos 0x0 --rotate left --output DP-2 --off
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
profile maison2 {
|
|
||||||
output eDP-1 disable
|
|
||||||
output "Dell Inc. DELL E2216H 2XT766B1AVTI" position 0,0 transform 90 mode 1920x1080
|
|
||||||
output "Samsung Electric Company LS27A600U HNMR502540" position 1080,240 mode 2560x1440
|
|
||||||
}
|
|
||||||
profile maison {
|
|
||||||
output eDP-1 disable
|
|
||||||
output "Philips Consumer Electronics Company PHL 223V5 ZV01622003292" position 0,0 transform 90 mode 1920x1080
|
|
||||||
output "Samsung Electric Company LS27A600U HNMR502540" position 1080,240 mode 2560x1440
|
|
||||||
}
|
|
||||||
|
|
||||||
profile atelier {
|
|
||||||
output eDP-1 enable scale 1 position 0,1080
|
|
||||||
output "ROW AAA Unknown" mode 1280x800
|
|
||||||
}
|
|
||||||
|
|
||||||
profile bdp {
|
|
||||||
output eDP-1 enable scale 1 position 320,1440
|
|
||||||
output "Dell Inc. DELL U3417W 660X87290G9L" position 0,0
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
profile undocked {
|
|
||||||
output eDP-1 enable scale 1
|
|
||||||
}
|
|
||||||
@@ -1,294 +0,0 @@
|
|||||||
# Default config for sway
|
|
||||||
#
|
|
||||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
|
||||||
#
|
|
||||||
# Read `man 5 sway` for a complete reference.
|
|
||||||
|
|
||||||
### Variables
|
|
||||||
#
|
|
||||||
# Logo key. Use Mod1 for Alt.
|
|
||||||
set $mod Mod4
|
|
||||||
# Home row direction keys, like vim
|
|
||||||
set $left h
|
|
||||||
set $down j
|
|
||||||
set $up k
|
|
||||||
set $right l
|
|
||||||
# Your preferred terminal emulator
|
|
||||||
set $term alacritty
|
|
||||||
# Your preferred application launcher
|
|
||||||
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
|
||||||
# on the original workspace that the command was run on.
|
|
||||||
set $menu rofi -show drun
|
|
||||||
|
|
||||||
set $laptopScreen eDP-1
|
|
||||||
|
|
||||||
### Output configuration
|
|
||||||
#
|
|
||||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
|
||||||
# output * bg ~/Images/Wallpapers/Pteridium.jpg fill
|
|
||||||
output * bg ~/Images/Wallpapers/coraill.jpg fill
|
|
||||||
#
|
|
||||||
# Example configuration:
|
|
||||||
#
|
|
||||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
|
||||||
#
|
|
||||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
|
||||||
|
|
||||||
### Idle configuration
|
|
||||||
#
|
|
||||||
# Example configuration:
|
|
||||||
#
|
|
||||||
# exec swayidle -w \
|
|
||||||
# timeout 300 'swaylock -f -c 000000' \
|
|
||||||
# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
|
||||||
# before-sleep 'swaylock -f -c 000000'
|
|
||||||
#
|
|
||||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
|
||||||
# your displays after another 300 seconds, and turn your screens back on when
|
|
||||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
|
||||||
|
|
||||||
### Input configuration
|
|
||||||
|
|
||||||
|
|
||||||
input type:keyboard {
|
|
||||||
xkb_layout "fr"
|
|
||||||
# xkb_variant "ergol"
|
|
||||||
xkb_variant "azerty"
|
|
||||||
}
|
|
||||||
|
|
||||||
input * xkb_numlock enable
|
|
||||||
|
|
||||||
input type:touchpad {
|
|
||||||
natural_scroll enabled
|
|
||||||
tap enabled
|
|
||||||
}
|
|
||||||
|
|
||||||
input type:pointer {
|
|
||||||
accel_profile flat
|
|
||||||
pointer_accel 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Example configuration:
|
|
||||||
#
|
|
||||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
|
||||||
# dwt enabled
|
|
||||||
# tap enabled
|
|
||||||
# natural_scroll enabled
|
|
||||||
# middle_emulation enabled
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
|
||||||
# Read `man 5 sway-input` for more information about this section.
|
|
||||||
|
|
||||||
### Key bindings
|
|
||||||
#
|
|
||||||
# Basics:
|
|
||||||
#
|
|
||||||
# Start a terminal
|
|
||||||
bindsym $mod+Return exec $term
|
|
||||||
|
|
||||||
# Kill focused window
|
|
||||||
bindsym $mod+q kill
|
|
||||||
|
|
||||||
# Start your launcher
|
|
||||||
bindsym $mod+d exec $menu
|
|
||||||
# bindsym $mod+p exec rofi-pass
|
|
||||||
bindsym $mod+p exec tessen
|
|
||||||
bindsym Print exec ~/.local/bin/sway/rofi_screenshot.sh 2> ~/tmp/rofi_debug.log
|
|
||||||
|
|
||||||
# Drag floating windows by holding down $mod and left mouse button.
|
|
||||||
# Resize them with right mouse button + $mod.
|
|
||||||
# Despite the name, also works for non-floating windows.
|
|
||||||
# Change normal to inverse to use left mouse button for resizing and right
|
|
||||||
# mouse button for dragging.
|
|
||||||
floating_modifier $mod normal
|
|
||||||
|
|
||||||
# Reload the configuration file
|
|
||||||
bindsym $mod+Shift+c reload
|
|
||||||
|
|
||||||
# Exit sway (logs you out of your Wayland session)
|
|
||||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
|
||||||
#
|
|
||||||
# Moving around:
|
|
||||||
#
|
|
||||||
# Move your focus around
|
|
||||||
bindsym $mod+$left focus left
|
|
||||||
bindsym $mod+$down focus down
|
|
||||||
bindsym $mod+$up focus up
|
|
||||||
bindsym $mod+$right focus right
|
|
||||||
# Or use $mod+[up|down|left|right]
|
|
||||||
bindsym $mod+Left focus left
|
|
||||||
bindsym $mod+Down focus down
|
|
||||||
bindsym $mod+Up focus up
|
|
||||||
bindsym $mod+Right focus right
|
|
||||||
|
|
||||||
# Move the focused window with the same, but add Shift
|
|
||||||
bindsym $mod+Shift+$left move left
|
|
||||||
bindsym $mod+Shift+$down move down
|
|
||||||
bindsym $mod+Shift+$up move up
|
|
||||||
bindsym $mod+Shift+$right move right
|
|
||||||
# Ditto, with arrow keys
|
|
||||||
bindsym $mod+Shift+Left move left
|
|
||||||
bindsym $mod+Shift+Down move down
|
|
||||||
bindsym $mod+Shift+Up move up
|
|
||||||
bindsym $mod+Shift+Right move right
|
|
||||||
|
|
||||||
#
|
|
||||||
# Workspaces:
|
|
||||||
#
|
|
||||||
set $ws1 1:
|
|
||||||
set $ws2 2:
|
|
||||||
set $ws3 3:
|
|
||||||
set $ws4 4:
|
|
||||||
set $ws5 5:
|
|
||||||
set $ws6 6:
|
|
||||||
set $ws7 7:
|
|
||||||
set $ws8 8:
|
|
||||||
set $ws9 9:
|
|
||||||
|
|
||||||
bindsym $mod+ampersand workspace $ws1
|
|
||||||
bindsym $mod+eacute workspace $ws2
|
|
||||||
bindsym $mod+quotedbl workspace $ws3
|
|
||||||
bindsym $mod+apostrophe workspace $ws4
|
|
||||||
bindsym $mod+parenleft workspace $ws5
|
|
||||||
bindsym $mod+minus workspace $ws6
|
|
||||||
bindsym $mod+egrave workspace $ws7
|
|
||||||
bindsym $mod+underscore workspace $ws8
|
|
||||||
bindsym $mod+ccedilla workspace $ws9
|
|
||||||
|
|
||||||
bindsym $mod+1 move container to workspace $ws1
|
|
||||||
bindsym $mod+2 move container to workspace $ws2
|
|
||||||
bindsym $mod+3 move container to workspace $ws3
|
|
||||||
bindsym $mod+4 move container to workspace $ws4
|
|
||||||
bindsym $mod+5 move container to workspace $ws5
|
|
||||||
bindsym $mod+6 move container to workspace $ws6
|
|
||||||
bindsym $mod+7 move container to workspace $ws7
|
|
||||||
bindsym $mod+8 move container to workspace $ws8
|
|
||||||
bindsym $mod+9 move container to workspace $ws9
|
|
||||||
|
|
||||||
# bindsym $mod+1 workspace $ws1
|
|
||||||
# bindsym $mod+2 workspace $ws2
|
|
||||||
# bindsym $mod+3 workspace $ws3
|
|
||||||
# bindsym $mod+4 workspace $ws4
|
|
||||||
# bindsym $mod+5 workspace $ws5
|
|
||||||
# bindsym $mod+6 workspace $ws6
|
|
||||||
# bindsym $mod+7 workspace $ws7
|
|
||||||
# bindsym $mod+8 workspace $ws8
|
|
||||||
# bindsym $mod+9 workspace $ws9
|
|
||||||
#
|
|
||||||
# bindsym $mod+Shift+1 move container to workspace $ws1
|
|
||||||
# bindsym $mod+Shift+2 move container to workspace $ws2
|
|
||||||
# bindsym $mod+Shift+3 move container to workspace $ws3
|
|
||||||
# bindsym $mod+Shift+4 move container to workspace $ws4
|
|
||||||
# bindsym $mod+Shift+5 move container to workspace $ws5
|
|
||||||
# bindsym $mod+Shift+6 move container to workspace $ws6
|
|
||||||
# bindsym $mod+Shift+7 move container to workspace $ws7
|
|
||||||
# bindsym $mod+Shift+8 move container to workspace $ws8
|
|
||||||
# bindsym $mod+Shift+9 move container to workspace $ws9
|
|
||||||
#
|
|
||||||
bindsym $mod+Ctrl+greater move workspace to output right
|
|
||||||
bindsym $mod+Ctrl+less move workspace to output left
|
|
||||||
|
|
||||||
# move to last workspace
|
|
||||||
bindsym $mod+space workspace back_and_forth
|
|
||||||
#
|
|
||||||
# Layout stuff:
|
|
||||||
#
|
|
||||||
# You can "split" the current object of your focus with
|
|
||||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
|
||||||
# respectively.
|
|
||||||
bindsym $mod+b splith
|
|
||||||
bindsym $mod+v splitv
|
|
||||||
|
|
||||||
# Switch the current container between different layout styles
|
|
||||||
# bindsym $mod+s layout stacking
|
|
||||||
# bindsym $mod+w layout tabbed
|
|
||||||
bindsym $mod+e layout toggle split
|
|
||||||
|
|
||||||
# Make the current focus fullscreen
|
|
||||||
bindsym $mod+f fullscreen
|
|
||||||
|
|
||||||
# Toggle the current focus between tiling and floating mode
|
|
||||||
bindsym $mod+Shift+space floating toggle
|
|
||||||
|
|
||||||
# Swap focus between the tiling area and the floating area
|
|
||||||
bindsym $mod+y focus mode_toggle
|
|
||||||
|
|
||||||
# Move focus to the parent container
|
|
||||||
bindsym $mod+a focus parent
|
|
||||||
#
|
|
||||||
# Scratchpad:
|
|
||||||
#
|
|
||||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
|
||||||
# You can send windows there and get them back later.
|
|
||||||
|
|
||||||
# Move the currently focused window to the scratchpad
|
|
||||||
bindsym $mod+Shift+m move scratchpad
|
|
||||||
|
|
||||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
|
||||||
# If there are multiple scratchpad windows, this command cycles through them.
|
|
||||||
bindsym $mod+m scratchpad show
|
|
||||||
#
|
|
||||||
# Resizing containers:
|
|
||||||
#
|
|
||||||
mode "resize" {
|
|
||||||
bindsym $left resize shrink width 10px
|
|
||||||
bindsym $down resize grow height 10px
|
|
||||||
bindsym $up resize shrink height 10px
|
|
||||||
bindsym $right resize grow width 10px
|
|
||||||
|
|
||||||
# Ditto, with arrow keys
|
|
||||||
bindsym Left resize shrink width 10px
|
|
||||||
bindsym Down resize grow height 10px
|
|
||||||
bindsym Up resize shrink height 10px
|
|
||||||
bindsym Right resize grow width 10px
|
|
||||||
|
|
||||||
# Return to default mode
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
bindsym $mod+r mode "resize"
|
|
||||||
|
|
||||||
#
|
|
||||||
## Gesture
|
|
||||||
#
|
|
||||||
bindgesture swipe:right workspace prev
|
|
||||||
bindgesture swipe:left workspace next
|
|
||||||
|
|
||||||
#
|
|
||||||
# Audio
|
|
||||||
#
|
|
||||||
|
|
||||||
bindsym XF86AudioRaiseVolume exec volumectl -u up
|
|
||||||
bindsym XF86AudioLowerVolume exec volumectl -u down
|
|
||||||
bindsym XF86AudioMute exec volumectl toggle-mute
|
|
||||||
bindsym XF86AudioMicMute exec volumectl -m toggle-mute
|
|
||||||
|
|
||||||
#
|
|
||||||
# Brightness
|
|
||||||
#
|
|
||||||
bindsym XF86MonBrightnessUp exec lightctl up
|
|
||||||
bindsym XF86MonBrightnessDown exec lightctl down
|
|
||||||
|
|
||||||
#
|
|
||||||
# Decoration
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
default_border pixel 2
|
|
||||||
# class border backgr. text indicator child_border
|
|
||||||
client.focused #d65d0e #be5046 #ffffff #be5046 #be5046
|
|
||||||
|
|
||||||
#
|
|
||||||
# Status Bar:
|
|
||||||
#
|
|
||||||
# Read `man 5 sway-bar` for more information about this section.
|
|
||||||
bar {
|
|
||||||
# position top
|
|
||||||
# output $laptopScreen
|
|
||||||
swaybar_command waybar
|
|
||||||
}
|
|
||||||
|
|
||||||
include /etc/sway/config.d/*
|
|
||||||
include ~/.config/sway/config.d/*
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
exec_always blueman-applet
|
|
||||||
exec_always /usr/bin/nm-applet --indicator
|
|
||||||
exec_always nextcloud
|
|
||||||
exec_always /usr/libexec/goa-daemon --replace
|
|
||||||
exec gammastep-indicator
|
|
||||||
exec mako
|
|
||||||
exec "avizo-service"
|
|
||||||
exec_always autotiling-rs
|
|
||||||
|
|
||||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
|
||||||
|
|
||||||
#exec_always pkill kanshi; exec_always kanshi
|
|
||||||
exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
|
|
||||||
|
|
||||||
exec swaymsg "workspace $ws1; exec zen-browser;"
|
|
||||||
exec swaymsg "workspace $ws2; exec thunderbird;"
|
|
||||||
# exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Dynamic output configuration for Wayland compositors
|
|
||||||
Documentation=https://sr.ht/~emersion/kanshi
|
|
||||||
BindsTo=sway-session.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/bin/kanshi
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=sway-session.target
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Sway compositor session
|
|
||||||
Documentation=man:systemd.special
|
|
||||||
BindsTo=graphical-session.target
|
|
||||||
Wants=graphical-session-pre.target
|
|
||||||
After=graphical-session-pre.target
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
/home/lafrite/.config/systemd/user/kanshi.service
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
* {
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
font-family: Droid Nerd Font Mono;
|
|
||||||
font-size: 14px;
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@import "gruvbox.css";
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background: @background;
|
|
||||||
color: @foreground;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
padding: 0 2px;
|
|
||||||
background: transparent;
|
|
||||||
color: @foreground;
|
|
||||||
border-bottom: 3px solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
background: @orange_b;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.visible {
|
|
||||||
background: @orange;
|
|
||||||
border-radius: 2px;
|
|
||||||
border-top: 3px solid @orange_b;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mode,
|
|
||||||
#clock,
|
|
||||||
#battery {
|
|
||||||
padding: 0 10px;
|
|
||||||
margin: 0 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mode {
|
|
||||||
background: @red;
|
|
||||||
border-bottom: 3px solid @foreground;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
color: @foreground;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery {
|
|
||||||
color: @foreground;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.charging {
|
|
||||||
color: @green;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes blink {
|
|
||||||
to {
|
|
||||||
background-color: @foreground;
|
|
||||||
color: @background;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#idle_inhibitor,
|
|
||||||
#pulseaudio,
|
|
||||||
#custom-openvpn,
|
|
||||||
#network,
|
|
||||||
#cpu,
|
|
||||||
#memory,
|
|
||||||
#temperature,
|
|
||||||
#backlight,
|
|
||||||
#battery,
|
|
||||||
#clock,
|
|
||||||
#tray {
|
|
||||||
padding: 0 6px;
|
|
||||||
margin: 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.warning:not(.charging) {
|
|
||||||
background: @red;
|
|
||||||
color: @foreground;
|
|
||||||
animation-name: blink;
|
|
||||||
animation-duration: 0.5s;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-direction: alternate;
|
|
||||||
}
|
|
||||||
@@ -17,6 +17,11 @@ set-window-option -g pane-base-index 1
|
|||||||
set-option -g renumber-windows on
|
set-option -g renumber-windows on
|
||||||
|
|
||||||
|
|
||||||
|
# Yazi image preview
|
||||||
|
set -g allow-passthrough on
|
||||||
|
set -ga update-environment TERM
|
||||||
|
set -ga update-environment TERM_PROGRAM
|
||||||
|
|
||||||
# C-space C-space will swap to last used window
|
# C-space C-space will swap to last used window
|
||||||
bind-key C-space last-window
|
bind-key C-space last-window
|
||||||
|
|
||||||
|
|||||||
@@ -1,118 +0,0 @@
|
|||||||
" Lines number
|
|
||||||
set number
|
|
||||||
|
|
||||||
" Always show the statusline
|
|
||||||
set laststatus=2
|
|
||||||
|
|
||||||
" Necessary to show Unicode glyphs
|
|
||||||
set encoding=utf8
|
|
||||||
|
|
||||||
" smart tab
|
|
||||||
set smartindent
|
|
||||||
|
|
||||||
" Tab to..?
|
|
||||||
set shiftround
|
|
||||||
|
|
||||||
" Display edition mode
|
|
||||||
set showmode
|
|
||||||
|
|
||||||
" Ignore case in search mode
|
|
||||||
set ignorecase
|
|
||||||
|
|
||||||
" Override the 'ignorecase' option if the search pattern
|
|
||||||
" contains upper case characters.
|
|
||||||
set smartcase
|
|
||||||
|
|
||||||
" Display uncomplete commands (??)
|
|
||||||
set showcmd
|
|
||||||
|
|
||||||
" Vim file name completion relative to current file
|
|
||||||
set autochdir
|
|
||||||
|
|
||||||
" While typing a search command, show immediately where the
|
|
||||||
" so far typed pattern matches.
|
|
||||||
set incsearch
|
|
||||||
|
|
||||||
" Use <C-L> to clear the highlighting of :set hlsearch.
|
|
||||||
set hlsearch
|
|
||||||
if maparg('<C-L>', 'n') ==# ''
|
|
||||||
nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Turn on the WiLd menu
|
|
||||||
set wildmenu
|
|
||||||
|
|
||||||
" Ignore compiled files
|
|
||||||
set wildignore=*.o,*~,*.pyc,*.swp
|
|
||||||
|
|
||||||
" Wrap lines
|
|
||||||
set wrap
|
|
||||||
|
|
||||||
" Turn backup off, since most stuff is in SVN, git et.c anyway...
|
|
||||||
set nobackup
|
|
||||||
set noswapfile
|
|
||||||
|
|
||||||
" Having relative number for lines
|
|
||||||
set relativenumber
|
|
||||||
|
|
||||||
" Display tab and ends of lines
|
|
||||||
" Shortcut to rapidly toggle `set list`
|
|
||||||
nmap <leader>L :set list!<CR>
|
|
||||||
|
|
||||||
" Behaviour of tab
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set softtabstop=4
|
|
||||||
set expandtab
|
|
||||||
|
|
||||||
" Folding
|
|
||||||
set foldmethod=indent
|
|
||||||
|
|
||||||
" Use the same symbols as TextMate for tabstops and EOLs
|
|
||||||
" set listchars=tab:▸\ ,eol:¬
|
|
||||||
set listchars=nbsp:¤,tab:··,trail:¤,extends:▶,precedes:◀
|
|
||||||
|
|
||||||
" allow backspacing over everything in insert mode
|
|
||||||
set backspace=indent,eol,start
|
|
||||||
|
|
||||||
set history=50 " keep 50 lines of command line history
|
|
||||||
set ruler " show the cursor position all the time
|
|
||||||
"
|
|
||||||
" In many terminal emulators the mouse works just fine, thus enable it.
|
|
||||||
if has('mouse')
|
|
||||||
set mouse=a
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Decorations
|
|
||||||
" ====================
|
|
||||||
" Switch syntax highlighting on, when the terminal has colors
|
|
||||||
" Also switch on highlighting the last used search pattern.
|
|
||||||
if &t_Co > 2 || has("gui_running")
|
|
||||||
syntax on
|
|
||||||
endif
|
|
||||||
|
|
||||||
" When set to "dark", Vim will try to use colors that look
|
|
||||||
" good on a dark background. When set to "light", Vim will
|
|
||||||
" try to use colors that look good on a light background.
|
|
||||||
" Any other value is illegal.
|
|
||||||
set background=dark
|
|
||||||
|
|
||||||
" Color Scheme
|
|
||||||
colorscheme zenburn
|
|
||||||
|
|
||||||
set cursorline
|
|
||||||
|
|
||||||
" Align blocks of text and keep them selected
|
|
||||||
vmap < <gv
|
|
||||||
vmap > >gv
|
|
||||||
|
|
||||||
" Spelling
|
|
||||||
" set spelllang=fr
|
|
||||||
autocmd BufRead,BufNewFile *.{md,tex,rst} setlocal spell spelllang=fr
|
|
||||||
autocmd FileType tex,latex,markdown,md,rst setlocal spell spelllang=fr
|
|
||||||
|
|
||||||
" Remove trailing whitespace at the end of lines
|
|
||||||
autocmd BufWritePre * %s/\s\+$//e
|
|
||||||
|
|
||||||
" Different color for far columns
|
|
||||||
execute "set colorcolumn=" . join(range(81,335), ',')
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
" lightline -> no need showmod
|
|
||||||
set noshowmode
|
|
||||||
let g:lightline = {
|
|
||||||
\ 'colorscheme': 'selenized_dark',
|
|
||||||
\ 'active': {
|
|
||||||
\ 'left': [ [ 'mode', 'paste' ],
|
|
||||||
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
|
|
||||||
\ },
|
|
||||||
\ 'component_function': {
|
|
||||||
\ 'gitbranch': 'FugitiveHead'
|
|
||||||
\ },
|
|
||||||
\ }
|
|
||||||
|
|
||||||
" Supertab
|
|
||||||
let g:SuperTabDefaultCompletionType = "context"
|
|
||||||
|
|
||||||
" Airline
|
|
||||||
let g:airline_powerline_fonts = 1
|
|
||||||
let g:tmuxline_powerline_separators = 0
|
|
||||||
|
|
||||||
" Nerdtree
|
|
||||||
let NERDTreeIgnore = ['.pyc$']
|
|
||||||
"autocmd VimEnter * NERDTree
|
|
||||||
|
|
||||||
61
vim/.vimrc
61
vim/.vimrc
@@ -1,61 +0,0 @@
|
|||||||
set nocompatible " be iMproved, required
|
|
||||||
noremap <Space> <Nop>
|
|
||||||
map <Space> <Leader>
|
|
||||||
let mapleader = "\<Space>"
|
|
||||||
let localleader = "\<Space>"
|
|
||||||
|
|
||||||
" set the runtime path to include plug.com and initialize
|
|
||||||
call plug#begin('~/.vim/plugged')
|
|
||||||
|
|
||||||
"" plug.vim management
|
|
||||||
Plug 'junegunn/vim-plug'
|
|
||||||
|
|
||||||
" Airline statusline
|
|
||||||
Plug 'itchyny/lightline.vim'
|
|
||||||
|
|
||||||
|
|
||||||
"" Basic config for vim
|
|
||||||
Plug 'tpope/vim-sensible'
|
|
||||||
|
|
||||||
" Git integration
|
|
||||||
Plug 'tpope/vim-fugitive'
|
|
||||||
|
|
||||||
" Nerdtree
|
|
||||||
Plug 'scrooloose/nerdtree'
|
|
||||||
Plug 'Xuyuanp/nerdtree-git-plugin'
|
|
||||||
|
|
||||||
|
|
||||||
" Change surround
|
|
||||||
Plug 'tpope/vim-surround'
|
|
||||||
|
|
||||||
" Clever substitute
|
|
||||||
Plug 'tpope/tpope-vim-abolish'
|
|
||||||
|
|
||||||
" Repeat
|
|
||||||
Plug 'tpope/vim-repeat'
|
|
||||||
|
|
||||||
" Git on lines
|
|
||||||
Plug 'airblade/vim-gitgutter'
|
|
||||||
|
|
||||||
" Polyglot synthax hightlight autodetect
|
|
||||||
Plug 'sheerun/vim-polyglot'
|
|
||||||
|
|
||||||
" Show indent lines
|
|
||||||
Plug 'Yggdroot/indentLine'
|
|
||||||
|
|
||||||
" Tmux integration
|
|
||||||
Plug 'christoomey/vim-tmux-navigator'
|
|
||||||
|
|
||||||
"" Color scheme
|
|
||||||
Plug 'jnurmine/Zenburn'
|
|
||||||
|
|
||||||
" All of your Plugs must be added before the following line
|
|
||||||
call plug#end() " required
|
|
||||||
"
|
|
||||||
|
|
||||||
" import config from ./config
|
|
||||||
" runtime! config/**/*.vim
|
|
||||||
"runtime! config/*.vim
|
|
||||||
runtime! config/base.vim
|
|
||||||
runtime! config/plugins.vim
|
|
||||||
set conceallevel=0
|
|
||||||
@@ -49,6 +49,7 @@ alias less='bat -p'
|
|||||||
|
|
||||||
# Newsboat
|
# Newsboat
|
||||||
alias newsboat='tmux new -As newsboat newsboat'
|
alias newsboat='tmux new -As newsboat newsboat'
|
||||||
|
alias pim='tmux new-session -As pim -n mail "aerc" \; new-window -n calendrier "ikhal"'
|
||||||
|
|
||||||
|
|
||||||
# Autosuggestions
|
# Autosuggestions
|
||||||
@@ -97,3 +98,5 @@ export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
|||||||
|
|
||||||
# tea
|
# tea
|
||||||
PROG=tea _CLI_ZSH_AUTOCOMPLETE_HACK=1 source "/home/lafrite/.config/tea/autocomplete.zsh"
|
PROG=tea _CLI_ZSH_AUTOCOMPLETE_HACK=1 source "/home/lafrite/.config/tea/autocomplete.zsh"
|
||||||
|
|
||||||
|
eval "$(zoxide init zsh)"
|
||||||
|
|||||||
197
zsh/.config/zsh/zfunc/_poetry
Normal file
197
zsh/.config/zsh/zfunc/_poetry
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
#compdef poetry
|
||||||
|
|
||||||
|
_poetry_9cf82bc144790825_complete()
|
||||||
|
{
|
||||||
|
local state com cur
|
||||||
|
local -a opts
|
||||||
|
local -a coms
|
||||||
|
|
||||||
|
cur=${words[${#words[@]}]}
|
||||||
|
|
||||||
|
# lookup for command
|
||||||
|
for word in ${words[@]:1}; do
|
||||||
|
if [[ $word != -* ]]; then
|
||||||
|
com=$word
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${cur} == --* ]]; then
|
||||||
|
state="option"
|
||||||
|
opts+=("--ansi:Force ANSI output." "--directory:The working directory for the Poetry command \(defaults to the current working directory\)." "--help:Display help for the given command. When no command is given display help for the list command." "--no-ansi:Disable ANSI output." "--no-cache:Disables Poetry source caches." "--no-interaction:Do not ask any interactive question." "--no-plugins:Disables plugins." "--quiet:Do not output any message." "--verbose:Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug." "--version:Display this application version.")
|
||||||
|
elif [[ $cur == $com ]]; then
|
||||||
|
state="command"
|
||||||
|
coms+=("about:Shows information about Poetry." "add:Adds a new dependency to pyproject.toml." "build:Builds a package, as a tarball and a wheel by default." "'cache clear':Clears a Poetry cache by name." "'cache list':List Poetry\'s caches." "check:Checks the validity of the pyproject.toml file." "config:Manages configuration settings." "'debug info':Shows debug information." "'debug resolve':Debugs dependency resolution." "'env info':Displays information about the current environment." "'env list':Lists all virtualenvs associated with the current project." "'env remove':Remove virtual environments associated with the project." "'env use':Activates or creates a new virtualenv for the current project." "export:Exports the lock file to alternative formats." "help:Displays help for a command." "init:Creates a basic pyproject.toml file in the current directory." "install:Installs the project dependencies." "list:Lists commands." "lock:Locks the project dependencies." "new:Creates a new Python project at <path\>." "publish:Publishes a package to a remote repository." "remove:Removes a package from the project dependencies." "run:Runs a command in the appropriate environment." "search:Searches for packages on remote repositories." "'self add':Add additional packages to Poetry\'s runtime environment." "'self install':Install locked packages \(incl. addons\) required by this Poetry installation." "'self lock':Lock the Poetry installation\'s system requirements." "'self remove':Remove additional packages from Poetry\'s runtime environment." "'self show':Show packages from Poetry\'s runtime environment." "'self show plugins':Shows information about the currently installed plugins." "'self update':Updates Poetry to the latest version." "shell:Spawns a shell within the virtual environment." "show:Shows information about packages." "'source add':Add source configuration for project." "'source remove':Remove source configured for the project." "'source show':Show information about sources configured for the project." "update:Update the dependencies as according to the pyproject.toml file." "version:Shows the version of the project or bumps it when a valid bump rule is provided.")
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
_describe 'command' coms
|
||||||
|
;;
|
||||||
|
(option)
|
||||||
|
case "$com" in
|
||||||
|
|
||||||
|
(about)
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(add)
|
||||||
|
opts+=("--allow-prereleases:Accept prereleases." "--dev:Add as a development dependency. \(Deprecated\)" "--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\)." "--editable:Add vcs/path dependencies as editable." "--extras:Extras to activate for the dependency." "--group:The group to add the dependency to." "--lock:Do not perform operations \(only update the lockfile\)." "--optional:Add as an optional dependency." "--platform:Platforms for which the dependency must be installed." "--python:Python version for which the dependency must be installed." "--source:Name of the source to use to install the package.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(build)
|
||||||
|
opts+=("--format:Limit the format to either sdist or wheel.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('cache clear')
|
||||||
|
opts+=("--all:Clear all entries in the cache.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('cache list')
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(check)
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(config)
|
||||||
|
opts+=("--list:List configuration settings." "--local:Set/Get from the project\'s local configuration." "--unset:Unset configuration setting.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('debug info')
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
('debug resolve')
|
||||||
|
opts+=("--extras:Extras to activate for the dependency." "--install:Show what would be installed for the current system." "--python:Python version\(s\) to use for resolution." "--tree:Display the dependency tree.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('env info')
|
||||||
|
opts+=("--path:Only display the environment\'s path.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('env list')
|
||||||
|
opts+=("--full-path:Output the full paths of the virtualenvs.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('env remove')
|
||||||
|
opts+=("--all:Remove all managed virtual environments associated with the project.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('env use')
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(export)
|
||||||
|
opts+=("--dev:Include development dependencies. \(Deprecated\)" "--extras:Extra sets of dependencies to include." "--format:Format to export to. Currently, only constraints.txt and requirements.txt are supported." "--only:The only dependency groups to include." "--output:The name of the output file." "--with:The optional dependency groups to include." "--with-credentials:Include credentials for extra indices." "--without:The dependency groups to ignore." "--without-hashes:Exclude hashes from the exported file." "--without-urls:Exclude source repository urls from the exported file.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(help)
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(init)
|
||||||
|
opts+=("--author:Author name of the package." "--dependency:Package to require, with an optional version constraint, e.g. requests:\^2.10.0 or requests=2.11.1." "--description:Description of the package." "--dev-dependency:Package to require for development, with an optional version constraint, e.g. requests:\^2.10.0 or requests=2.11.1." "--license:License of the package." "--name:Name of the package." "--python:Compatible Python versions.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(install)
|
||||||
|
opts+=("--all-extras:Install all extra dependencies." "--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\)." "--extras:Extra sets of dependencies to install." "--no-dev:Do not install the development dependencies. \(Deprecated\)" "--no-root:Do not install the root package \(the current project\)." "--only:The only dependency groups to include." "--only-root:Exclude all dependencies." "--remove-untracked:Removes packages not present in the lock file. \(Deprecated\)" "--sync:Synchronize the environment with the locked packages and the specified groups." "--with:The optional dependency groups to include." "--without:The dependency groups to ignore.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(list)
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(lock)
|
||||||
|
opts+=("--check:Check that the poetry.lock file corresponds to the current version of pyproject.toml." "--no-update:Do not update locked versions, only refresh lock file.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(new)
|
||||||
|
opts+=("--name:Set the resulting package name." "--readme:Specify the readme file format. One of md \(default\) or rst" "--src:Use the src layout for the project.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(publish)
|
||||||
|
opts+=("--build:Build the package before publishing." "--cert:Certificate authority to access the repository." "--client-cert:Client certificate to access the repository." "--dry-run:Perform all actions except upload the package." "--password:The password to access the repository." "--repository:The repository to publish the package to." "--skip-existing:Ignore errors from files already existing in the repository." "--username:The username to access the repository.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(remove)
|
||||||
|
opts+=("--dev:Remove a package from the development dependencies. \(Deprecated\)" "--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\)." "--group:The group to remove the dependency from.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(run)
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(search)
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
('self add')
|
||||||
|
opts+=("--allow-prereleases:Accept prereleases." "--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\)." "--editable:Add vcs/path dependencies as editable." "--extras:Extras to activate for the dependency." "--source:Name of the source to use to install the package.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('self install')
|
||||||
|
opts+=("--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\)." "--sync:Synchronize the environment with the locked packages and the specified groups.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('self lock')
|
||||||
|
opts+=("--check:Check that the poetry.lock file corresponds to the current version of pyproject.toml." "--no-update:Do not update locked versions, only refresh lock file.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('self remove')
|
||||||
|
opts+=("--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\).")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('self show')
|
||||||
|
opts+=("--addons:List only add-on packages installed." "--latest:Show the latest version." "--outdated:Show the latest version but only for packages that are outdated." "--tree:List the dependencies as a tree.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('self show plugins')
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
('self update')
|
||||||
|
opts+=("--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\)." "--preview:Allow the installation of pre-release versions.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(shell)
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(show)
|
||||||
|
opts+=("--all:Show all packages \(even those not compatible with current system\)." "--latest:Show the latest version." "--no-dev:Do not list the development dependencies. \(Deprecated\)" "--only:The only dependency groups to include." "--outdated:Show the latest version but only for packages that are outdated." "--tree:List the dependencies as a tree." "--why:When showing the full list, or a --tree for a single package, also display why it\'s included." "--with:The optional dependency groups to include." "--without:The dependency groups to ignore.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('source add')
|
||||||
|
opts+=("--default:Set this source as the default \(disable PyPI\). A default source will also be the fallback source if you add other sources." "--secondary:Set this source as secondary.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
('source remove')
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
('source show')
|
||||||
|
opts+=()
|
||||||
|
;;
|
||||||
|
|
||||||
|
(update)
|
||||||
|
opts+=("--dry-run:Output the operations but do not execute anything \(implicitly enables --verbose\)." "--lock:Do not perform operations \(only update the lockfile\)." "--no-dev:Do not update the development dependencies. \(Deprecated\)" "--only:The only dependency groups to include." "--with:The optional dependency groups to include." "--without:The dependency groups to ignore.")
|
||||||
|
;;
|
||||||
|
|
||||||
|
(version)
|
||||||
|
opts+=("--dry-run:Do not update pyproject.toml file" "--short:Output the version number only")
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
_describe 'option' opts
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# fallback to file completion
|
||||||
|
_arguments '*:file:_files'
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_poetry_9cf82bc144790825_complete "$@"
|
||||||
|
compdef _poetry_9cf82bc144790825_complete /usr/bin/poetry
|
||||||
@@ -15,3 +15,6 @@ export HISTSIZE=10000 # Maximum events for internal history
|
|||||||
export SAVEHIST=10000 # Maximum events in history file
|
export SAVEHIST=10000 # Maximum events in history file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# opencode
|
||||||
|
export PATH=/home/lafrite/.opencode/bin:$PATH
|
||||||
|
|||||||
Reference in New Issue
Block a user