Compare commits
117 Commits
fe0c7e7630
...
main
Author | SHA1 | Date | |
---|---|---|---|
f7af499573 | |||
cd9ba86fca | |||
938db338fc | |||
c95ee6f650 | |||
cbe9a6c55c | |||
d812c32e37 | |||
9cf5d8d5e0 | |||
2131bb57c4 | |||
5210b2a15a | |||
158c7a60a3 | |||
39a18835a1 | |||
fa519bd74d | |||
f98a52e613 | |||
44fb8a49fa | |||
52b956c423 | |||
e43a76a132 | |||
3029561478 | |||
f85841cafe | |||
140872d0e6 | |||
5b9d495de9 | |||
42b373b467 | |||
9c5c85fe29 | |||
6c6bbb47f3 | |||
375d135e83 | |||
5e87cb1f94 | |||
984fd8cfbd | |||
624c9ddd24 | |||
e4c915c224 | |||
06e9c790a9 | |||
a49ce29958 | |||
ff7880d04d | |||
b745e15242 | |||
c6a5e6ba07 | |||
af26c6978f | |||
a6d2ce2f22 | |||
0a9e6f9dda | |||
b069c2060b | |||
2d40f69d6f | |||
30ba1656b4 | |||
c96fdf218f | |||
6ec22356e7 | |||
f3e3ee0438 | |||
58cea70665 | |||
ba48178f00 | |||
06b30a5c3e | |||
c6d6cdc0aa | |||
383c27850a | |||
21e72dfb45 | |||
1d5e596ce0 | |||
bcc2772268 | |||
757c0d3585 | |||
6780915f38 | |||
c04543aba9 | |||
754ebcf1ae | |||
a4de744aa7 | |||
4f11c1a9b9 | |||
74e33d46b2 | |||
600b328691 | |||
d06a4e94cf | |||
c44cd17970 | |||
b0570700bb | |||
30d3ddfc90 | |||
3e0def88dd | |||
d6c6d4f5d1 | |||
787bca3373 | |||
e57be0cfd2 | |||
99a78b8e7d | |||
86ee7c8bce | |||
ad02746fc7 | |||
7c75eebe62 | |||
bd286dfa23 | |||
5617265cc6 | |||
418f122485 | |||
0302e76e1f | |||
c21c9096c9 | |||
6b23fdf858 | |||
1fe23703f4 | |||
20b9e02adb | |||
c7333aa79a | |||
7cb967447a | |||
e54b358410 | |||
1fbd08f657 | |||
f796d0775e | |||
ffb20ec8a4 | |||
1734908df0 | |||
01d09bc9c0 | |||
4324070cac | |||
ebdb4420b6 | |||
171c63a070 | |||
46a53b7c38 | |||
a3d16cbff2 | |||
8aefb98d32 | |||
fb43e9e0ea | |||
3617161e87 | |||
8850ed0668 | |||
62c81143bf | |||
e60dcb4cda | |||
9d9a5c9a54 | |||
99a6d39916 | |||
57ec4f7e2d | |||
d853923953 | |||
bd62855dc9 | |||
0117c53cb7 | |||
62ba0e08fb | |||
2633d677c4 | |||
b00ba05e2b | |||
e95e3119fc | |||
9e616bc68b | |||
6188442dcb | |||
143b791d6b | |||
242a7a02e6 | |||
21060f0ef9 | |||
7e85124b10 | |||
171ed7447e | |||
197eafd34d | |||
07de246f77 | |||
e04c89b57a |
13
.gitignore
vendored
13
.gitignore
vendored
@@ -9,3 +9,16 @@ nvim/.config/nvim/plugin
|
||||
|
||||
vim/.vim/autoload/
|
||||
vim/.vim/plugged/
|
||||
|
||||
moc/.moc/last_directory
|
||||
moc/.moc/pid
|
||||
moc/.moc/playlist.m3u
|
||||
|
||||
newsboat/.newsboat/cache.db
|
||||
newsboat/.newsboat/cache.db.lock
|
||||
newsboat/.newsboat/history.cmdline
|
||||
|
||||
mpd/.config/mpd/database
|
||||
mpd/.config/mpd/state
|
||||
|
||||
neomutt/.config/vdirsyncer/status/
|
||||
|
119
alacritty/.config/alacritty/alacritty.toml
Normal file
119
alacritty/.config/alacritty/alacritty.toml
Normal file
@@ -0,0 +1,119 @@
|
||||
|
||||
[colors]
|
||||
draw_bold_text_with_bright_colors = true
|
||||
|
||||
[colors.bright]
|
||||
black = "#928374"
|
||||
blue = "#83a598"
|
||||
cyan = "#8ec07c"
|
||||
green = "#b8bb26"
|
||||
magenta = "#d3869b"
|
||||
red = "#fb4934"
|
||||
white = "#ebdbb2"
|
||||
yellow = "#fabd2f"
|
||||
|
||||
[colors.normal]
|
||||
black = "#282828"
|
||||
blue = "#458588"
|
||||
cyan = "#689d6a"
|
||||
green = "#98971a"
|
||||
magenta = "#b16286"
|
||||
red = "#cc241d"
|
||||
white = "#a89984"
|
||||
yellow = "#d79921"
|
||||
|
||||
[colors.primary]
|
||||
background = "#32302f"
|
||||
foreground = "#ebdbb2"
|
||||
|
||||
[cursor]
|
||||
style = "Block"
|
||||
unfocused_hollow = true
|
||||
|
||||
[font]
|
||||
size = 12.0
|
||||
|
||||
[font.bold]
|
||||
family = "UbuntuMono Nerd Font"
|
||||
style = "Bold"
|
||||
|
||||
[font.bold_italic]
|
||||
family = "UbuntuMono Nerd Font"
|
||||
style = "Bold Italic"
|
||||
|
||||
[font.glyph_offset]
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
[font.italic]
|
||||
family = "UbuntuMono Nerd Font"
|
||||
style = "Italic"
|
||||
|
||||
[font.normal]
|
||||
family = "UbuntuMono Nerd Font"
|
||||
style = "Regular"
|
||||
|
||||
[font.offset]
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Paste"
|
||||
key = "V"
|
||||
mods = "Control|Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Copy"
|
||||
key = "C"
|
||||
mods = "Control|Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "ResetFontSize"
|
||||
key = "Key0"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "IncreaseFontSize"
|
||||
key = "Equals"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "IncreaseFontSize"
|
||||
key = "NumpadAdd"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "DecreaseFontSize"
|
||||
key = "NumpadSubtract"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "DecreaseFontSize"
|
||||
key = "Minus"
|
||||
mods = "Control"
|
||||
|
||||
[[mouse.bindings]]
|
||||
action = "PasteSelection"
|
||||
mouse = "Middle"
|
||||
|
||||
[scrolling]
|
||||
history = 10000
|
||||
multiplier = 10
|
||||
|
||||
[selection]
|
||||
save_to_clipboard = true
|
||||
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
|
||||
|
||||
[window]
|
||||
decorations = "none"
|
||||
|
||||
[window.dimensions]
|
||||
columns = 100
|
||||
lines = 20
|
||||
|
||||
[window.padding]
|
||||
x = 2
|
||||
y = 2
|
||||
|
||||
[general]
|
||||
live_config_reload = true
|
@@ -106,4 +106,3 @@ key_bindings:
|
||||
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: N, mods: Control, action: SpawnNewInstance }
|
||||
|
@@ -124,7 +124,7 @@ MusicDir = "/media/documents/musique/"
|
||||
# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for
|
||||
# debugging). You can enter more than one driver as a colon-separated
|
||||
# list. The first working driver will be used.
|
||||
#SoundDriver = JACK:ALSA:OSS
|
||||
SoundDriver = PULSEAUDIO:JACK:ALSA:OSS
|
||||
|
||||
# Jack output settings.
|
||||
#JackClientName = "moc"
|
||||
|
418
mpd/.config/mpd/mdp.conf
Normal file
418
mpd/.config/mpd/mdp.conf
Normal file
@@ -0,0 +1,418 @@
|
||||
# An example configuration file for MPD.
|
||||
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
|
||||
|
||||
|
||||
# Files and directories #######################################################
|
||||
#
|
||||
# This setting controls the top directory which MPD will search to discover the
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||
# be disabled and audio files will only be accepted over ipc socket (using
|
||||
# file:// protocol) or streaming files over an accepted protocol.
|
||||
#
|
||||
music_directory "~/Musique"
|
||||
#
|
||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# playlist files not created by the server but only if they are in the MPD
|
||||
# format. This setting defaults to playlist saving being disabled.
|
||||
#
|
||||
playlist_directory "~/.config/mpd/playlists"
|
||||
#
|
||||
# This setting sets the location of the MPD database. This file is used to
|
||||
# load the database at server start up and store the database while the
|
||||
# server is not up. This setting defaults to disabled which will allow
|
||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||
# files over an accepted protocol.
|
||||
#
|
||||
db_file "~/.config/mpd/database"
|
||||
|
||||
# These settings are the locations for the daemon log files for the daemon.
|
||||
#
|
||||
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||
# setting defaults to logging to syslog.
|
||||
#
|
||||
# If you use systemd, do not configure a log_file. With systemd, MPD
|
||||
# defaults to the systemd journal, which is fine.
|
||||
#
|
||||
log_file "syslog"
|
||||
|
||||
# This setting sets the location of the file which stores the process ID
|
||||
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||
# default and the pid file will not be stored.
|
||||
#
|
||||
# If you use systemd, do not configure a pid_file.
|
||||
#
|
||||
#pid_file "~/.mpd/pid"
|
||||
|
||||
# This setting sets the location of the file which contains information about
|
||||
# most variables to get MPD back into the same general shape it was in before
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# state will be reset on server start up.
|
||||
#
|
||||
state_file "~/.config/mpd/state"
|
||||
#
|
||||
# The location of the sticker database. This is a database which
|
||||
# manages dynamic information attached to songs.
|
||||
#
|
||||
#sticker_file "~/.mpd/sticker.sql"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# General music daemon options ################################################
|
||||
#
|
||||
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||
# root and you may use this setting to make MPD change its user ID after
|
||||
# initialization. This setting is disabled by default and MPD is run as the
|
||||
# current user.
|
||||
#
|
||||
#user "nobody"
|
||||
#
|
||||
# This setting specifies the group that MPD will run as. If not specified
|
||||
# primary group of user specified with "user" setting will be used (if set).
|
||||
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||
# have permission to use sound card.
|
||||
#
|
||||
#group "nogroup"
|
||||
#
|
||||
# This setting sets the address for the daemon to listen on. Careful attention
|
||||
# should be paid if this is assigned to anything other than the default, any.
|
||||
# This setting can deny access to control of the daemon. Not effective if
|
||||
# systemd socket activation is in use.
|
||||
#
|
||||
# For network
|
||||
#bind_to_address "any"
|
||||
#
|
||||
# And for Unix Socket
|
||||
#bind_to_address "~/.mpd/socket"
|
||||
#
|
||||
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||
# to.
|
||||
#
|
||||
#port "6600"
|
||||
#
|
||||
# Suppress all messages below the given threshold. Use "verbose" for
|
||||
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
|
||||
# "warning" and "error".
|
||||
#
|
||||
#log_level "notice"
|
||||
#
|
||||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||
# of starting playback after startup.
|
||||
#
|
||||
#restore_paused "no"
|
||||
#
|
||||
# This setting enables MPD to create playlists in a format usable by other
|
||||
# music players.
|
||||
#
|
||||
#save_absolute_paths_in_playlists "no"
|
||||
#
|
||||
# This setting defines a list of tag types that will be extracted during the
|
||||
# audio file discovery process. The complete list of possible values can be
|
||||
# found in the user manual.
|
||||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||
#
|
||||
# This example just enables the "comment" tag without disabling all
|
||||
# the other supported tags:
|
||||
#metadata_to_use "+comment"
|
||||
#
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# music_directory are changed.
|
||||
#
|
||||
auto_update "yes"
|
||||
#
|
||||
# Limit the depth of the directories being watched, 0 means only watch
|
||||
# the music directory itself. There is no limit by default.
|
||||
#
|
||||
#auto_update_depth "3"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Symbolic link behavior ######################################################
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#
|
||||
#follow_outside_symlinks "yes"
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links inside of the configured music_directory.
|
||||
#
|
||||
#follow_inside_symlinks "yes"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Zeroconf / Avahi Service Discovery ##########################################
|
||||
#
|
||||
# If this setting is set to "yes", service information will be published with
|
||||
# Zeroconf / Avahi.
|
||||
#
|
||||
#zeroconf_enabled "yes"
|
||||
#
|
||||
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||
# this MPD server on the network. %h will be replaced with the hostname.
|
||||
#
|
||||
#zeroconf_name "Music Player @ %h"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Permissions #################################################################
|
||||
#
|
||||
# If this setting is set, MPD will require password authorization. The password
|
||||
# setting can be specified multiple times for different password profiles.
|
||||
#
|
||||
#password "password@read,add,control,admin"
|
||||
#
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
#
|
||||
#default_permissions "read,add,control,admin"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Database #######################################################################
|
||||
#
|
||||
# An example of a database section instead of the old 'db_file' setting.
|
||||
# It enables mounting other storages into the music directory.
|
||||
#
|
||||
#database {
|
||||
# plugin "simple"
|
||||
# path "~/.local/share/mpd/db
|
||||
# cache_directory "~/.local/share/mpd/cache"
|
||||
#}
|
||||
#
|
||||
# An example of database config for a satellite setup
|
||||
#
|
||||
#music_directory "nfs://fileserver.local/srv/mp3"
|
||||
#database {
|
||||
# plugin "proxy"
|
||||
# host "other.mpd.host"
|
||||
# port "6600"
|
||||
#}
|
||||
|
||||
# Input #######################################################################
|
||||
#
|
||||
input {
|
||||
plugin "curl"
|
||||
# proxy "proxy.isp.com:8080"
|
||||
# proxy_user "user"
|
||||
# proxy_password "password"
|
||||
}
|
||||
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Audio Output ################################################################
|
||||
#
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# blocks. Setting this block is optional, though the server will only attempt
|
||||
# autodetection for one sound card.
|
||||
#
|
||||
# An example of an ALSA output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "alsa"
|
||||
# name "My ALSA Device"
|
||||
## device "hw:0,0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "default" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
## mixer_index "0" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an OSS output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "oss"
|
||||
# name "My OSS Device"
|
||||
## device "/dev/dsp" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "/dev/mixer" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a shout output (for streaming to Icecast):
|
||||
#
|
||||
#audio_output {
|
||||
# type "shout"
|
||||
# encoder "vorbis" # optional
|
||||
# name "My Shout Stream"
|
||||
# host "localhost"
|
||||
# port "8000"
|
||||
# mount "/mpd.ogg"
|
||||
# password "hackme"
|
||||
# quality "5.0"
|
||||
# bitrate "128"
|
||||
# format "44100:16:1"
|
||||
## protocol "icecast2" # optional
|
||||
## user "source" # optional
|
||||
## description "My Stream Description" # optional
|
||||
## url "http://example.com" # optional
|
||||
## genre "jazz" # optional
|
||||
## public "no" # optional
|
||||
## timeout "2" # optional
|
||||
## mixer_type "software" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a recorder output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "recorder"
|
||||
# name "My recorder"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
#}
|
||||
#
|
||||
# An example of a httpd output (built-in HTTP streaming server):
|
||||
#
|
||||
#audio_output {
|
||||
# type "httpd"
|
||||
# name "My HTTP Stream"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# port "8000"
|
||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
# max_clients "0" # optional 0=no limit
|
||||
#}
|
||||
#
|
||||
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||
#
|
||||
#audio_output {
|
||||
# type "pulse"
|
||||
# name "My Pulse Output"
|
||||
## server "remote_server" # optional
|
||||
## sink "remote_server_sink" # optional
|
||||
## media_role "media_role" #optional
|
||||
#}
|
||||
#
|
||||
# An example of a winmm output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "winmm"
|
||||
# name "My WinMM output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a wasapi output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "wasapi"
|
||||
# name "My WASAPI output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
|
||||
## exclusive "no" # optional
|
||||
## Enumerate all devices in log.
|
||||
## enumerate "no" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an openal output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "openal"
|
||||
# name "My OpenAL output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an sndio output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "sndio"
|
||||
# name "sndio output"
|
||||
# mixer_type "hardware"
|
||||
#}
|
||||
#
|
||||
# An example of an OS X output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "osx"
|
||||
# name "My OS X Device"
|
||||
## device "Built-in Output" # optional
|
||||
## channel_map "-1,-1,0,1" # optional
|
||||
#}
|
||||
#
|
||||
## Example "pipe" output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "pipe"
|
||||
# name "my pipe"
|
||||
# command "aplay -f cd 2>/dev/null"
|
||||
## Or if you're want to use AudioCompress
|
||||
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||
## Or to send raw PCM stream through PCM:
|
||||
# command "nc example.org 8765"
|
||||
# format "44100:16:2"
|
||||
#}
|
||||
#
|
||||
## An example of a null output (for no audio output):
|
||||
#
|
||||
#audio_output {
|
||||
# type "null"
|
||||
# name "My Null Output"
|
||||
# mixer_type "none" # optional
|
||||
#}
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Normalization automatic volume adjustments ##################################
|
||||
#
|
||||
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||
# chooses between "track" and "album" depending on the current state of
|
||||
# random playback. If random playback is enabled then "track" mode is used.
|
||||
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
|
||||
# more details about ReplayGain.
|
||||
# This setting is off by default.
|
||||
#
|
||||
#replaygain "album"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||
# default this setting is disabled.
|
||||
#
|
||||
#replaygain_preamp "0"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
||||
# By default this setting is disabled.
|
||||
#
|
||||
#replaygain_missing_preamp "0"
|
||||
#
|
||||
# This setting enables or disables ReplayGain limiting.
|
||||
# MPD calculates actual amplification based on the ReplayGain tags
|
||||
# and replaygain_preamp / replaygain_missing_preamp setting.
|
||||
# If replaygain_limit is enabled MPD will never amplify audio signal
|
||||
# above its original level. If replaygain_limit is disabled such amplification
|
||||
# might occur. By default this setting is enabled.
|
||||
#
|
||||
#replaygain_limit "yes"
|
||||
#
|
||||
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# equal "loudness". This setting is disabled by default.
|
||||
#
|
||||
#volume_normalization "no"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Character Encoding ##########################################################
|
||||
#
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# may need to modify this setting.
|
||||
#
|
||||
#filesystem_charset "UTF-8"
|
||||
#
|
||||
###############################################################################
|
10
mpd/.config/ncmpcpp/bindings
Normal file
10
mpd/.config/ncmpcpp/bindings
Normal file
@@ -0,0 +1,10 @@
|
||||
def_key "j"
|
||||
scroll_down
|
||||
def_key "k"
|
||||
scroll_up
|
||||
|
||||
def_key "g"
|
||||
move_home
|
||||
|
||||
def_key "G"
|
||||
move_end
|
1
mpd/.config/ncmpcpp/config
Normal file
1
mpd/.config/ncmpcpp/config
Normal file
@@ -0,0 +1 @@
|
||||
execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)"
|
51
neomutt/.config/khard/khard.conf
Normal file
51
neomutt/.config/khard/khard.conf
Normal file
@@ -0,0 +1,51 @@
|
||||
# example configuration file for khard version > 0.14.0
|
||||
# place it under ~/.config/khard/khard.conf
|
||||
# This file is parsed by the configobj library. The syntax is described at
|
||||
# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
|
||||
|
||||
[addressbooks]
|
||||
[[contacts]]
|
||||
path = ~/.contacts/contacts/
|
||||
|
||||
[general]
|
||||
debug = no
|
||||
default_action = list
|
||||
# These are either strings or comma seperated lists
|
||||
editor = nvim, -i, NONE
|
||||
merge_editor = vimdiff
|
||||
|
||||
[contact table]
|
||||
# display names by first or last name: first_name / last_name / formatted_name
|
||||
display = first_name
|
||||
# group by address book: yes / no
|
||||
group_by_addressbook = no
|
||||
# reverse table ordering: yes / no
|
||||
reverse = no
|
||||
# append nicknames to name column: yes / no
|
||||
show_nicknames = no
|
||||
# show uid table column: yes / no
|
||||
show_uids = yes
|
||||
# sort by first or last name: first_name / last_name / formatted_name
|
||||
sort = last_name
|
||||
# localize dates: yes / no
|
||||
localize_dates = yes
|
||||
# set a comma separated list of preferred phone number types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_phone_number_type = pref, cell, home
|
||||
# set a comma separated list of preferred email address types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_email_address_type = pref, work, home
|
||||
|
||||
[vcard]
|
||||
# extend contacts with your own private objects
|
||||
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||
# every object label may only contain letters, digits and the - character
|
||||
# example:
|
||||
# private_objects = Jabber, Skype, Twitter
|
||||
# default: , (the empty list)
|
||||
# preferred vcard version: 3.0 / 4.0
|
||||
preferred_version = 4.0
|
||||
# Look into source vcf files to speed up search queries: yes / no
|
||||
search_in_source_files = no
|
||||
# skip unparsable vcard files: yes / no
|
||||
skip_unparsable = no
|
50
neomutt/.config/msmtp/config
Normal file
50
neomutt/.config/msmtp/config
Normal file
@@ -0,0 +1,50 @@
|
||||
# Example for a user configuration file ~/.msmtprc
|
||||
|
||||
# With modern mail services that publish autoconfiguration information,
|
||||
# you can simply run 'msmtp --configure yourmail@example.com' to get
|
||||
# a basic working configuration.
|
||||
|
||||
# This example focusses on TLS and authentication. Features not used here
|
||||
# include logging, timeouts, SOCKS proxies, TLS parameters, Delivery Status
|
||||
# Notification (DSN) settings, and more.
|
||||
|
||||
# Set default values: use the mail submission port 587, and always use TLS.
|
||||
# On this port, TLS is activated via STARTTLS.
|
||||
defaults
|
||||
port 587
|
||||
tls on
|
||||
tls_starttls on
|
||||
auth on
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
logfile ~/.msmtp.log
|
||||
|
||||
account bb_opytex
|
||||
user Takanuva
|
||||
passwordeval "pass mail/mailfence/Takanuva | head -n1"
|
||||
auth on
|
||||
host smtp.mailfence.com
|
||||
port 465
|
||||
# Envelope-from address
|
||||
from benjamin.bertrand@opytex.org
|
||||
tls_starttls off
|
||||
|
||||
account jb_opytex
|
||||
user margot_benjamin
|
||||
passwordeval "pass mail/jost_bertrand@opytex.org/margot_benjamin | head -n1"
|
||||
auth on
|
||||
host smtp.mailfence.com
|
||||
port 465
|
||||
# Envelope-from address
|
||||
from jost_bertrand@opytex.org
|
||||
tls_starttls off
|
||||
|
||||
account ac-lyon
|
||||
user bbertrand
|
||||
passwordeval "pass Prof/pronote/bbertrand | head -n1"
|
||||
auth on
|
||||
host smtps.ac-lyon.fr
|
||||
# Envelope-from address
|
||||
from benjamin.bertrand@ac-lyon.fr
|
||||
|
||||
# Set a default account
|
||||
account default : bb_opytex
|
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
@@ -0,0 +1,43 @@
|
||||
# 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`"
|
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
@@ -0,0 +1,43 @@
|
||||
# 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`"
|
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
@@ -0,0 +1,44 @@
|
||||
# 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`"
|
100
neomutt/.config/neomutt/colors
Normal file
100
neomutt/.config/neomutt/colors
Normal file
@@ -0,0 +1,100 @@
|
||||
# -*-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
|
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
@@ -0,0 +1,121 @@
|
||||
# -*-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
neomutt/.config/neomutt/mailboxes
Normal file
1
neomutt/.config/neomutt/mailboxes
Normal file
@@ -0,0 +1 @@
|
||||
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"
|
12
neomutt/.config/neomutt/mailcap
Normal file
12
neomutt/.config/neomutt/mailcap
Normal file
@@ -0,0 +1,12 @@
|
||||
# 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
|
56
neomutt/.config/neomutt/mappings
Normal file
56
neomutt/.config/neomutt/mappings
Normal file
@@ -0,0 +1,56 @@
|
||||
# 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>'
|
||||
|
15
neomutt/.config/neomutt/neomuttrc
Normal file
15
neomutt/.config/neomutt/neomuttrc
Normal file
@@ -0,0 +1,15 @@
|
||||
# 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
|
72
neomutt/.config/neomutt/settings
Normal file
72
neomutt/.config/neomutt/settings
Normal file
@@ -0,0 +1,72 @@
|
||||
# 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.
67
neomutt/.config/offlineimap/config
Normal file
67
neomutt/.config/offlineimap/config
Normal file
@@ -0,0 +1,67 @@
|
||||
[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
|
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from subprocess import check_output
|
||||
|
||||
|
||||
def get_pass(path):
|
||||
return check_output("pass " + path, shell=True).splitlines()[0]
|
21
neomutt/.config/vdirsyncer/config
Normal file
21
neomutt/.config/vdirsyncer/config
Normal file
@@ -0,0 +1,21 @@
|
||||
[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"]
|
@@ -1,8 +1,8 @@
|
||||
auto-reload yes
|
||||
reload-time 30
|
||||
browser "chromium --incognito"
|
||||
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser chromium
|
||||
macro Y set browser "mpv %u"; open-in-browser ; set browser chromium
|
||||
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser "chromium --incognito"
|
||||
macro Y set browser "mpv %u"; open-in-browser ; set browser "chromium --incognito"
|
||||
|
||||
unbind-key h
|
||||
unbind-key j
|
||||
@@ -14,6 +14,13 @@ bind-key j down
|
||||
bind-key k up
|
||||
bind-key l open
|
||||
|
||||
unbind-key G
|
||||
bind-key G end
|
||||
bind-key s sort
|
||||
unbind-key g
|
||||
bind-key g home
|
||||
bind-key S rev-sort
|
||||
|
||||
color background default default
|
||||
color listnormal default default
|
||||
color listnormal_unread default default
|
||||
|
@@ -1,13 +1,14 @@
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCeeFfhMcJa1kjtfZAGskOCA "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsRIv1fsbnQRIPKmUQbRzZg "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV0qA-eDDICsRR9rPcnG7tw "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCR-DXc1voovS8nhAvccRZhg "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCVRJ6D343dX-x730MRP8tNw "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCG5Ph9Mm6UEQLJJ-kGIC2AQ "Tech" "OneMarcFifty"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWedHS9qKebauVIK2J7383g "Tech" "Underscore_"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9C07cryUrKzLuAzwITPA3A "SC2" "SC2HL"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCr_3nQ4eRCwm_XUDpf62MAg "Information "Partager C'est Sympa"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCg7HRuQ93hl9v8dTSt_XDHA "Ferme" "~Banabé"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsM4_jihNFYe4CtSkXvDR-Q "Ferme" "~permaculture agroécologie etc..."
|
||||
@@ -24,18 +25,23 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCL_r1ELEvAuN0peKUxI0Umw "Pe
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCzVy7DiPyVvfiOvXF_XMs4Q "Apnée" "~Adam Freediver"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRoFIKcVNGvv9Oimdb9FBGg "Apnée" "Hodgepodge"
|
||||
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJNItGjNhUx3Zz6W4OCVfHA "Bois" "~Passion renovation"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCvDpfkniGG6WkX5L7DwyGaA "Bois" "Olivier Verdier"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7TiJ6Tnxc_dSE42byTPMug "Bois" "Copain des copeaux"
|
||||
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=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=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=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjED9uS41ioeFuPfbR-OBlw "DIY" "Les frères Poulain"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWimnuBF27nwOxgUBJ4qNeg "DIY" "Abrege"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6x7GwJxuoABSosgVXDYtTw "DIY" "I like to make stuff"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6mIxFTvXkWQVEHPsEdflzQ "Electronique" "GreatScott!"
|
||||
|
||||
@@ -44,13 +50,22 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCjHh3N6jUJKdrtTqNorpRhg "Sk
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCdtrhMQTlTWNLGcmx1Qy80Q "Ski" "Fabien Maierhofer"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UChkpEJqHjX-tGmYoGf8jdGA "Escalade" "EpicTV Relais Vertical"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJlvyoYGLr3UIV0oD4-aarA "Sports" "Riding zone"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCy0I5Hcl2k7dN4UdZTedfeQ "Sports" "Hit the road"
|
||||
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgkhWgBGRp0sdFy2MHDWfSg "Math" "El Ji"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw "Math" "3Blue1Brown"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaNlbnghtwlsGF-KzAFThqA "Science "ScienceEtonnante"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLXDNUOO3EQ80VmD9nQBHPg "Science "Fouloscopie"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoJtk2M8bme9KXTe6F3K-Yg "CLI" "The Mouseless Dev"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC8ENHE5xdFSwx71u3fDH5Xw "Vim" "ThePrimeagen"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "Vim" "Greg Hurrel"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCs_AZuYXi6NA9tkdbhjItHQ "AdminSys" "Xavki"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCvjgXvBlbQiydffZU7m1_aw "Programmation" "~Coding Train"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCj_iGliGCkLcHSZ8eqVNPDQ "Programmation" "~Grafikart.fr"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOk-gHyjcWZNj3Br4oxwh0A "Homelab" "Techno Tim"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9x0AN7BWHpCDHSm9NiJFJQ "Homelab" "NetworkChuck"
|
||||
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=UCYeiozh-4QwuC1sjgCmB92w "Cording" "DevOps Toolbox"
|
||||
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"
|
||||
|
@@ -1,5 +1,17 @@
|
||||
require('plugins')
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
vim.g.mapleader = ' ' -- Leaderkey
|
||||
require("lazy").setup("plugins")
|
||||
require('settings')
|
||||
require('mappings')
|
||||
|
||||
require('lsp')
|
||||
|
36
nvim/.config/nvim/lazy-lock.json
Normal file
36
nvim/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
|
||||
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "877c1db2bf957300097dd5348a665666a4d900cb" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6b6f0a451200bb6abde85978c577c73ea1577758" },
|
||||
"lsp-zero.nvim": { "branch": "v3.x", "commit": "22677c535fdc11a73da67a186a30e360d8857497" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" },
|
||||
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
||||
"noice.nvim": { "branch": "main", "commit": "7cf858c30841c9c41601ce58e5bc2023228037ef" },
|
||||
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "de4f7138a68d5d5063170f2182fd27faf06b0b54" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "2b361e043810d5587d9af0787f8ce40da92ec5e9" },
|
||||
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "10bfa4826f2235c600c073a82e0d78718aa7240e" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
|
||||
"oil.nvim": { "branch": "master", "commit": "ac2928cca85ba3596e92f9f51940d46be2d606f8" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
||||
"telescope.nvim": { "branch": "0.1.x", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" },
|
||||
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
|
||||
"vim-fugitive": { "branch": "master", "commit": "99db68d9b3304580bd383da7aaee05c7a954a344" },
|
||||
"vim-highlightedyank": { "branch": "master", "commit": "fa3f57b097e9521ce41a66b6c7cf5d9adea70ea3" },
|
||||
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
|
||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||
"vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" },
|
||||
"vim-vsnip": { "branch": "master", "commit": "be277461265f1e5c7db470aa479f30956597ea9e" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
|
||||
}
|
@@ -1,106 +0,0 @@
|
||||
local has_words_before = function()
|
||||
if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then
|
||||
return false
|
||||
end
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local feedkey = function(key, mode)
|
||||
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true)
|
||||
end
|
||||
|
||||
local lsp_symbols = {
|
||||
Text = " (Text) ",
|
||||
Method = " (Method)",
|
||||
Function = " (Function)",
|
||||
Constructor = " (Constructor)",
|
||||
Field = " ﴲ (Field)",
|
||||
Variable = "[] (Variable)",
|
||||
Class = " (Class)",
|
||||
Interface = " ﰮ (Interface)",
|
||||
Module = " (Module)",
|
||||
Property = " 襁 (Property)",
|
||||
Unit = " (Unit)",
|
||||
Value = " (Value)",
|
||||
Enum = " 練 (Enum)",
|
||||
Keyword = " (Keyword)",
|
||||
Snippet = " (Snippet)",
|
||||
Color = " (Color)",
|
||||
File = " (File)",
|
||||
Reference = " (Reference)",
|
||||
Folder = " (Folder)",
|
||||
EnumMember = " (EnumMember)",
|
||||
Constant = " ﲀ (Constant)",
|
||||
Struct = " ﳤ (Struct)",
|
||||
Event = " (Event)",
|
||||
Operator = " (Operator)",
|
||||
TypeParameter = " (TypeParameter)",
|
||||
}
|
||||
|
||||
local cmp = require'cmp'
|
||||
cmp.setup{
|
||||
completion = {
|
||||
completeopt = 'menuone,noselect',
|
||||
},
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
-- fancy icons and a name of kind
|
||||
vim_item.kind = lsp_symbols[vim_item.kind]
|
||||
-- set a name for each source
|
||||
vim_item.menu = ({
|
||||
buffer = "[Buffer]",
|
||||
nvim_lsp = "[LSP]",
|
||||
vsnip = "[vSnip]",
|
||||
path = "[Path]",
|
||||
spell = "[Spell]",
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
-- ["<cr>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Replace}),
|
||||
["<Tab>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Insert}),
|
||||
-- ["<Tab>"] = cmp.mapping(function(fallback)
|
||||
-- if vim.fn.pumvisible() == 1 then
|
||||
-- feedkey("<C-n>", "n")
|
||||
-- elseif vim.fn["vsnip#available"]() == 1 then
|
||||
-- feedkey("<Plug>(vsnip-expand-or-jump)", "")
|
||||
-- elseif has_words_before() then
|
||||
-- cmp.complete()
|
||||
-- else
|
||||
-- fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
|
||||
-- end
|
||||
-- end, { "i", "s" }),
|
||||
|
||||
-- ["<S-Tab>"] = cmp.mapping(function()
|
||||
-- if vim.fn.pumvisible() == 1 then
|
||||
-- feedkey("<C-p>", "n")
|
||||
-- elseif vim.fn["vsnip#jumpable"](-1) == 1 then
|
||||
-- feedkey("<Plug>(vsnip-jump-prev)", "")
|
||||
-- end
|
||||
-- end, { "i", "s" }),
|
||||
},
|
||||
sources = {
|
||||
{ name = 'vsnip' },
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'path' },
|
||||
{ name = 'buffer', keyword_length = 4 },
|
||||
{ name = 'spell', keyword_length = 4 },
|
||||
},
|
||||
experimental = {
|
||||
-- I like the new menu better! Nice work hrsh7th
|
||||
native_menu = false,
|
||||
|
||||
-- Let's play with this for a day or two
|
||||
ghost_text = true,
|
||||
},
|
||||
}
|
||||
|
||||
vim.cmd [[autocmd FileType TelescopePrompt lua require('cmp').setup.buffer { enabled = false }]]
|
||||
vim.g.vsnip_snippet_dir = '~/.config/nvim/vsnips'
|
@@ -1,4 +0,0 @@
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
require'colorizer'.setup()
|
||||
|
@@ -1,214 +0,0 @@
|
||||
-- Eviline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
local lualine = require 'lualine'
|
||||
|
||||
-- Color table for highlights
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67'
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
|
||||
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = "",
|
||||
section_separators = "",
|
||||
-- theme = 'gruvbox',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. both are highlighted by c theme . so we
|
||||
-- are just setting default looks o statusline
|
||||
normal = {c = {fg = colors.fg, bg = colors.bg}},
|
||||
inactive = {c = {fg = colors.fg, bg = colors.bg}}
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- these will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_v = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
}
|
||||
}
|
||||
|
||||
-- inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[''] = colors.blue,
|
||||
v = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
s = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
r = colors.violet,
|
||||
rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
-- auto change color according to neovims mode
|
||||
vim.api.nvim_command(
|
||||
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
||||
return ''
|
||||
end,
|
||||
color = "lualinemode",
|
||||
left_padding = 0
|
||||
}
|
||||
|
||||
ins_left {
|
||||
"mode",
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- filesize component
|
||||
function()
|
||||
local function format_file_size(file)
|
||||
local size = vim.fn.getfsize(file)
|
||||
if size <= 0 then return '' end
|
||||
local sufixes = {'b', 'k', 'm', 'g'}
|
||||
local i = 1
|
||||
while size > 1024 do
|
||||
size = size / 1024
|
||||
i = i + 1
|
||||
end
|
||||
return string.format('%.1f%s', size, sufixes[i])
|
||||
end
|
||||
local file = vim.fn.expand('%:p')
|
||||
if string.len(file) == 0 then return '' end
|
||||
return format_file_size(file)
|
||||
end,
|
||||
condition = conditions.buffer_not_empty
|
||||
}
|
||||
ins_left {
|
||||
-- Lsp server name .
|
||||
function()
|
||||
local msg = 'No Active Lsp'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then return msg end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = ' LSP:',
|
||||
color = {fg = '#ffffff', gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = {'nvim_diagnostic'},
|
||||
symbols = {error = ' ', warn = ' ', info = ' '},
|
||||
color_error = colors.red,
|
||||
color_warn = colors.yellow,
|
||||
color_info = colors.cyan
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {function() return '%=' end}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
file_status = true,
|
||||
path = 1,
|
||||
condition = conditions.buffer_not_empty,
|
||||
color = {fg = colors.magenta, gui = 'bold'}
|
||||
}
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
upper = true, -- I'm not sure why it's upper case either ;)
|
||||
condition = conditions.hide_in_width,
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
upper = true,
|
||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
condition = conditions.check_git_workspace,
|
||||
color = {fg = colors.violet, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'diff',
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = {added = ' ', modified = '柳 ', removed = ' '},
|
||||
color_added = colors.green,
|
||||
color_modified = colors.orange,
|
||||
color_removed = colors.red,
|
||||
condition = conditions.hide_in_width
|
||||
}
|
||||
|
||||
ins_right {'location'}
|
||||
|
||||
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
@@ -1 +0,0 @@
|
||||
vim.g.notes_directories = {"~/Nextcloud/Notes/vim" }
|
@@ -1,46 +0,0 @@
|
||||
local previewers = require('telescope.previewers')
|
||||
local Job = require('plenary.job')
|
||||
local new_maker = function(filepath, bufnr, opts)
|
||||
filepath = vim.fn.expand(filepath)
|
||||
Job:new({
|
||||
command = 'file',
|
||||
args = { '--mime-type', '-b', filepath },
|
||||
on_exit = function(j)
|
||||
local mime_type = vim.split(j:result()[1], '/')[1]
|
||||
if mime_type == "text" then
|
||||
previewers.buffer_previewer_maker(filepath, bufnr, opts)
|
||||
else
|
||||
-- maybe we want to write something to the buffer here
|
||||
vim.schedule(function()
|
||||
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, { 'BINARY' })
|
||||
end)
|
||||
end
|
||||
end
|
||||
}):sync()
|
||||
end
|
||||
|
||||
require('telescope').setup {
|
||||
defaults = {
|
||||
buffer_previewer_maker = new_maker,
|
||||
file_ignore_patterns = {"**/*.pdf"},
|
||||
},
|
||||
extensions = {
|
||||
fzf = {
|
||||
fuzzy = true, -- false will only do exact matching
|
||||
override_generic_sorter = true, -- override the generic sorter
|
||||
override_file_sorter = true, -- override the file sorter
|
||||
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
|
||||
-- the default case_mode is "smart_case"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
require('telescope').load_extension('fzf')
|
||||
|
||||
local map = vim.api.nvim_set_keymap
|
||||
-- Find files using Telescope command-line sugar.
|
||||
map('n', '<leader>e', '<cmd>Telescope find_files<cr>', {})
|
||||
map('n', '<leader>g', '<cmd>Telescope live_grep<cr>', {})
|
||||
map('n', '<leader>b', '<cmd>Telescope buffers<cr>', {})
|
||||
map('n', '<leader>h', '<cmd>Telescope help_tags<cr>', {})
|
||||
|
@@ -1,12 +0,0 @@
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
-- One of "all", "maintained" (parsers with maintainers), or a list of languages
|
||||
ensure_installed = "maintained",
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
}
|
||||
}
|
||||
vim.opt.foldmethod = "expr"
|
||||
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
@@ -1,6 +0,0 @@
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
vim.g.vimtex_view_method = 'zathura'
|
||||
|
||||
-- Les fichiers sty et cls sont vus comme des fichiers tex
|
||||
vim.cmd("autocmd BufRead,BufNewFile *.{sty,cls} setlocal syntax=tex")
|
@@ -1,57 +0,0 @@
|
||||
|
||||
local nvim_lsp = require('lspconfig')
|
||||
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
local on_attach = function(client, bufnr)
|
||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||
|
||||
--Enable completion triggered by <c-x><c-o>
|
||||
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
|
||||
-- Mappings.
|
||||
local opts = { noremap=true, silent=true }
|
||||
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
-- See references
|
||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
-- show documentation
|
||||
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
-- Rename
|
||||
buf_set_keymap('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
|
||||
-- proposions from lsp
|
||||
buf_set_keymap('n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
-- Details on diagnostics
|
||||
buf_set_keymap('n', '<leader>d', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
-- Cycle over diagnostics
|
||||
buf_set_keymap('n', '<leader>df', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||||
buf_set_keymap('n', '<leader>dp', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||||
-- Get diagnostic on local list
|
||||
buf_set_keymap('n', '<leader>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||
buf_set_keymap("n", "<leader>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||
|
||||
buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
buf_set_keymap('n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
end
|
||||
|
||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||
-- map buffer local keybindings when the language server attaches
|
||||
local servers = { "texlab", "pyright", "vuels", "tsserver", "html" }
|
||||
for _, lsp in ipairs(servers) do
|
||||
nvim_lsp[lsp].setup {
|
||||
on_attach = on_attach,
|
||||
flags = {
|
||||
debounce_text_changes = 150,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
nvim_lsp.vuels.setup{
|
||||
on_attach = function(client)
|
||||
client.resolved_capabilities.document_formatting = true
|
||||
end;
|
||||
}
|
@@ -1,17 +1,19 @@
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local default_opts = {noremap = true, silent = true}
|
||||
|
||||
-- move around splits using Ctrl + {h,j,k,l}
|
||||
map('n', '<C-h>', '<C-w>h', default_opts)
|
||||
map('n', '<C-j>', '<C-w>j', default_opts)
|
||||
map('n', '<C-k>', '<C-w>k', default_opts)
|
||||
map('n', '<C-l>', '<C-w>l', default_opts)
|
||||
|
||||
-- Align blocks of text and keep them selected
|
||||
map('v', '<', '<gv', {})
|
||||
map('v', '>', '>gv', {})
|
||||
|
||||
|
||||
-- Automatically spell check last error in insert mode
|
||||
map('i', '<c-f>', '<c-g>u<Esc>[s1z=`]a<c-g>u', default_opts)
|
||||
|
||||
-- Centering after moving half page or search
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
-- Move block on visual mode
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
|
@@ -1,83 +0,0 @@
|
||||
-- Only required if you have packer configured as `opt`
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
|
||||
return require('packer').startup(function()
|
||||
use 'morhetz/gruvbox'
|
||||
|
||||
-- Status line
|
||||
use {
|
||||
'hoob3rt/lualine.nvim',
|
||||
config = [[require('config.lualine')]],
|
||||
}
|
||||
|
||||
use 'tpope/vim-fugitive'
|
||||
use 'mhinz/vim-signify'
|
||||
|
||||
use 'tpope/vim-surround'
|
||||
use 'tpope/vim-repeat'
|
||||
|
||||
use {
|
||||
'neovim/nvim-lspconfig',
|
||||
requires = {
|
||||
"hrsh7th/cmp-nvim-lsp"
|
||||
}
|
||||
}
|
||||
use {
|
||||
'hrsh7th/nvim-cmp',
|
||||
event = 'InsertEnter',
|
||||
config = [[require('completion')]],
|
||||
requires = {
|
||||
'hrsh7th/vim-vsnip',
|
||||
-- 'hrsh7th/vim-vsnip-integ',
|
||||
-- 'rafamadriz/friendly-snippets',
|
||||
},
|
||||
}
|
||||
use {'hrsh7th/cmp-vsnip', after = 'nvim-cmp'}
|
||||
use {'hrsh7th/cmp-buffer', after = 'nvim-cmp'}
|
||||
use {'hrsh7th/cmp-path', after = 'nvim-cmp'}
|
||||
use {'hrsh7th/cmp-nvim-lsp', after = 'nvim-cmp'}
|
||||
-- use {'f3fora/cmp-spell', after = 'nvim-cmp'}
|
||||
|
||||
|
||||
use 'nvim-lua/popup.nvim'
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
config = [[require('config.telescope')]],
|
||||
requires = { 'nvim-lua/plenary.nvim'}
|
||||
}
|
||||
|
||||
use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
|
||||
|
||||
use {
|
||||
'lervag/vimtex',
|
||||
config = [[require('config.vimtex')]],
|
||||
}
|
||||
|
||||
-- Highlight on Yank
|
||||
use 'machakann/vim-highlightedyank'
|
||||
-- Autoclose parenthesis
|
||||
use 'jiangmiao/auto-pairs'
|
||||
|
||||
use 'kyazdani42/nvim-web-devicons'
|
||||
use {
|
||||
'xolox/vim-notes',
|
||||
config = [[require('config.notes')]],
|
||||
requires = {
|
||||
'xolox/vim-misc',
|
||||
}
|
||||
}
|
||||
|
||||
use 'christoomey/vim-tmux-navigator'
|
||||
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
config=[[require('config.treesitter')]],
|
||||
run = ':TSUpdate',
|
||||
}
|
||||
|
||||
use {
|
||||
'norcalli/nvim-colorizer.lua',
|
||||
config = [[require('config.colorizer')]],
|
||||
}
|
||||
|
||||
end)
|
7
nvim/.config/nvim/lua/plugins/autopairs.lua
Normal file
7
nvim/.config/nvim/lua/plugins/autopairs.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
disable_filetype = { "TelescopePrompt" , "vim" },
|
||||
} -- this is equalent to setup({}) function
|
||||
}
|
14
nvim/.config/nvim/lua/plugins/colorizer.lua
Normal file
14
nvim/.config/nvim/lua/plugins/colorizer.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
'norcalli/nvim-colorizer.lua',
|
||||
config = function ()
|
||||
vim.opt.termguicolors = true
|
||||
require('colorizer').setup {
|
||||
'css';
|
||||
'javascript';
|
||||
html = {
|
||||
mode = 'foreground';
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
}
|
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"morhetz/gruvbox",
|
||||
lazy = false, -- make sure we load this during startup if it is your main colorscheme
|
||||
priority = 1000, -- make sure to load this before all the other start plugins
|
||||
config = function()
|
||||
-- load the colorscheme here
|
||||
vim.cmd([[colorscheme gruvbox]])
|
||||
end
|
||||
}
|
6
nvim/.config/nvim/lua/plugins/comment.lua
Normal file
6
nvim/.config/nvim/lua/plugins/comment.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
'numToStr/Comment.nvim',
|
||||
config=function ()
|
||||
require('Comment').setup()
|
||||
end
|
||||
}
|
69
nvim/.config/nvim/lua/plugins/completion.lua
Normal file
69
nvim/.config/nvim/lua/plugins/completion.lua
Normal file
@@ -0,0 +1,69 @@
|
||||
return {
|
||||
'hrsh7th/nvim-cmp',
|
||||
dependencies = {
|
||||
'neovim/nvim-lspconfig',
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-buffer',
|
||||
'hrsh7th/cmp-path',
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'hrsh7th/cmp-vsnip',
|
||||
'hrsh7th/vim-vsnip',
|
||||
},
|
||||
config = function ()
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'vsnip' }, -- For vsnip users.
|
||||
{ name = 'path' },
|
||||
{
|
||||
name = 'buffer',
|
||||
option = {
|
||||
keyword_length = 3,
|
||||
get_bufnrs = function()
|
||||
return vim.api.nvim_list_bufs()
|
||||
end
|
||||
}
|
||||
},
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- Set configuration for specific filetype.
|
||||
cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
})
|
||||
})
|
||||
end
|
||||
}
|
37
nvim/.config/nvim/lua/plugins/formatting.lua
Normal file
37
nvim/.config/nvim/lua/plugins/formatting.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
return {
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
config = function()
|
||||
local conform = require("conform")
|
||||
|
||||
conform.setup({
|
||||
formatters_by_ft = {
|
||||
javascript = { "prettier" },
|
||||
typescript = { "prettier" },
|
||||
javascriptreact = { "prettier" },
|
||||
typescriptreact = { "prettier" },
|
||||
svelte = { "prettier" },
|
||||
css = { "prettier" },
|
||||
html = { "prettier" },
|
||||
json = { "prettier" },
|
||||
yaml = { "prettier" },
|
||||
markdown = { "prettier" },
|
||||
graphql = { "prettier" },
|
||||
lua = { "stylua" },
|
||||
python = { "isort", "black" },
|
||||
},
|
||||
format_on_save = {
|
||||
lsp_fallback = true,
|
||||
async = false,
|
||||
timeout_ms = 500,
|
||||
},
|
||||
})
|
||||
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
||||
conform.format({
|
||||
lsp_fallback = true,
|
||||
async = true,
|
||||
timeout_ms = 500,
|
||||
})
|
||||
end, { desc = "Format file or range (in visual mode)" })
|
||||
end,
|
||||
}
|
11
nvim/.config/nvim/lua/plugins/git.lua
Normal file
11
nvim/.config/nvim/lua/plugins/git.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
{
|
||||
'tpope/vim-fugitive'
|
||||
},
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config=function ()
|
||||
require('gitsigns').setup {}
|
||||
end
|
||||
}
|
||||
}
|
31
nvim/.config/nvim/lua/plugins/lint.lua
Normal file
31
nvim/.config/nvim/lua/plugins/lint.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
return {
|
||||
"mfussenegger/nvim-lint",
|
||||
event = {
|
||||
"BufReadPre",
|
||||
"BufNewFile",
|
||||
},
|
||||
config = function()
|
||||
local lint = require("lint")
|
||||
|
||||
lint.linters_by_ft = {
|
||||
javascript = { "eslint_d" },
|
||||
typescript = { "eslint_d" },
|
||||
javascriptreact = { "eslint_d" },
|
||||
typescriptreact = { "eslint_d" },
|
||||
python = { "flake8" },
|
||||
}
|
||||
|
||||
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
||||
group = lint_augroup,
|
||||
callback = function()
|
||||
lint.try_lint()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>ml", function()
|
||||
lint.try_lint()
|
||||
end, { desc = "Trigger linting for current file" })
|
||||
end,
|
||||
}
|
38
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
38
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
return {
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
{ "neovim/nvim-lspconfig" },
|
||||
{ "williamboman/mason.nvim" },
|
||||
{ "williamboman/mason-lspconfig.nvim" },
|
||||
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
|
||||
},
|
||||
config = function()
|
||||
local lsp_zero = require("lsp-zero")
|
||||
lsp_zero.on_attach(function(client, bufnr)
|
||||
-- see :help lsp-zero-keybindings
|
||||
-- to learn the available actions
|
||||
lsp_zero.default_keymaps({ buffer = bufnr })
|
||||
end)
|
||||
|
||||
require("mason").setup({})
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = {},
|
||||
handlers = {
|
||||
lsp_zero.default_setup,
|
||||
},
|
||||
})
|
||||
local mason_tool_installer = require("mason-tool-installer")
|
||||
|
||||
mason_tool_installer.setup({
|
||||
ensure_installed = {
|
||||
"prettier", -- prettier formatter
|
||||
"stylua", -- lua formatter
|
||||
"isort", -- python formatter
|
||||
"black", -- python formatter
|
||||
"flake8", -- python linter
|
||||
"eslint_d", -- js linter
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
222
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
222
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,222 @@
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
dependencies = {
|
||||
"folke/noice.nvim",
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
},
|
||||
config = function ()
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67'
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
|
||||
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = "",
|
||||
section_separators = "",
|
||||
-- theme = 'gruvbox',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. both are highlighted by c theme . so we
|
||||
-- are just setting default looks o statusline
|
||||
normal = {c = {fg = colors.fg, bg = colors.bg}},
|
||||
inactive = {c = {fg = colors.fg, bg = colors.bg}}
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- these will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {
|
||||
{
|
||||
require("noice").api.statusline.mode.get,
|
||||
cond = require("noice").api.statusline.mode.has,
|
||||
color = { fg = "#ff9e64" },
|
||||
}
|
||||
}
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_v = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
}
|
||||
}
|
||||
|
||||
-- inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[''] = colors.blue,
|
||||
v = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
s = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
r = colors.violet,
|
||||
rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
-- auto change color according to neovims mode
|
||||
vim.api.nvim_command(
|
||||
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
||||
return ''
|
||||
end,
|
||||
color = "lualinemode",
|
||||
left_padding = 0
|
||||
}
|
||||
|
||||
ins_left {
|
||||
"mode",
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- filesize component
|
||||
function()
|
||||
local function format_file_size(file)
|
||||
local size = vim.fn.getfsize(file)
|
||||
if size <= 0 then return '' end
|
||||
local sufixes = {'b', 'k', 'm', 'g'}
|
||||
local i = 1
|
||||
while size > 1024 do
|
||||
size = size / 1024
|
||||
i = i + 1
|
||||
end
|
||||
return string.format('%.1f%s', size, sufixes[i])
|
||||
end
|
||||
local file = vim.fn.expand('%:p')
|
||||
if string.len(file) == 0 then return '' end
|
||||
return format_file_size(file)
|
||||
end,
|
||||
condition = conditions.buffer_not_empty
|
||||
}
|
||||
ins_left {
|
||||
-- Lsp server name .
|
||||
function()
|
||||
local msg = 'No Active Lsp'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then return msg end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = ' LSP:',
|
||||
color = {fg = '#ffffff', gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = {'nvim_diagnostic'},
|
||||
symbols = {error = ' ', warn = ' ', info = ' '},
|
||||
color_error = colors.red,
|
||||
color_warn = colors.yellow,
|
||||
color_info = colors.cyan
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {function() return '%=' end}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
file_status = true,
|
||||
path = 1,
|
||||
condition = conditions.buffer_not_empty,
|
||||
color = {fg = colors.magenta, gui = 'bold'}
|
||||
}
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
upper = true, -- I'm not sure why it's upper case either ;)
|
||||
condition = conditions.hide_in_width,
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
upper = true,
|
||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
condition = conditions.check_git_workspace,
|
||||
color = {fg = colors.violet, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'diff',
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = {added = ' ', modified = '柳 ', removed = ' '},
|
||||
color_added = colors.green,
|
||||
color_modified = colors.orange,
|
||||
color_removed = colors.red,
|
||||
condition = conditions.hide_in_width
|
||||
}
|
||||
|
||||
ins_right {'location'}
|
||||
|
||||
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
|
||||
|
||||
require('lualine').setup(config)
|
||||
end
|
||||
}
|
6
nvim/.config/nvim/lua/plugins/misc.lua
Normal file
6
nvim/.config/nvim/lua/plugins/misc.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
'tpope/vim-surround',
|
||||
'tpope/vim-repeat',
|
||||
'tpope/vim-abolish',
|
||||
'machakann/vim-highlightedyank'
|
||||
}
|
29
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
29
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
return {
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {},
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
-- "rcarriga/nvim-notify",
|
||||
},
|
||||
config = function()
|
||||
require("noice").setup({
|
||||
lsp = {
|
||||
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||
override = {
|
||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||
["vim.lsp.util.stylize_markdown"] = true,
|
||||
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
|
||||
},
|
||||
},
|
||||
-- you can enable a preset for easier configuration
|
||||
presets = {
|
||||
bottom_search = true, -- use a classic bottom cmdline for search
|
||||
command_palette = true, -- position the cmdline and popupmenu together
|
||||
long_message_to_split = true, -- long messages will be sent to a split
|
||||
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
10
nvim/.config/nvim/lua/plugins/oil.lua
Normal file
10
nvim/.config/nvim/lua/plugins/oil.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
'stevearc/oil.nvim',
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
keys = {
|
||||
{"-", "<cmd>Oil<cr>", desc="Open parent directory"},
|
||||
},
|
||||
config = function()
|
||||
require("oil").setup()
|
||||
end
|
||||
}
|
71
nvim/.config/nvim/lua/plugins/snacks.lua
Normal file
71
nvim/.config/nvim/lua/plugins/snacks.lua
Normal file
@@ -0,0 +1,71 @@
|
||||
return {
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
---@type snacks.Config
|
||||
opts = {
|
||||
indent = {
|
||||
enabled = true,
|
||||
char = "|",
|
||||
},
|
||||
input = {
|
||||
enabled = true,
|
||||
},
|
||||
notifier = {
|
||||
enabled = true,
|
||||
},
|
||||
git = {
|
||||
enabled = true,
|
||||
},
|
||||
bigfile = { enabled = true },
|
||||
dashboard = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
statuscolumn = { enabled = true },
|
||||
words = { enabled = false },
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>ns",
|
||||
function()
|
||||
Snacks.notifier.show_history()
|
||||
end,
|
||||
desc = "Notification History",
|
||||
},
|
||||
{
|
||||
"<leader>nh",
|
||||
function()
|
||||
Snacks.notifier.hide()
|
||||
end,
|
||||
desc = "Dismiss All Notifications",
|
||||
},
|
||||
{
|
||||
"<leader>gb",
|
||||
function()
|
||||
Snacks.git.blame_line()
|
||||
end,
|
||||
desc = "Git Blame Line",
|
||||
},
|
||||
{
|
||||
"<leader>gf",
|
||||
function()
|
||||
Snacks.lazygit.log_file()
|
||||
end,
|
||||
desc = "Lazygit Current File History",
|
||||
},
|
||||
{
|
||||
"<leader>gg",
|
||||
function()
|
||||
Snacks.lazygit()
|
||||
end,
|
||||
desc = "Lazygit",
|
||||
},
|
||||
{
|
||||
"<leader>gl",
|
||||
function()
|
||||
Snacks.lazygit.log()
|
||||
end,
|
||||
desc = "Lazygit Log (cwd)",
|
||||
},
|
||||
},
|
||||
}
|
27
nvim/.config/nvim/lua/plugins/telescope.lua
Normal file
27
nvim/.config/nvim/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
return {
|
||||
'nvim-telescope/telescope.nvim', branch = '0.1.x',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
opts = {
|
||||
defaults = {
|
||||
file_ignore_patterns = { "**/*.pdf" },
|
||||
layout_strategy = "horizontal",
|
||||
layout_config = { prompt_position = "top" },
|
||||
sorting_strategy = "ascending",
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{"<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find files"},
|
||||
{"<leader>fe", "<cmd>Telescope git_files<cr>", desc = "Find file respecting .gitignore"},
|
||||
{"<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Grep file in file"},
|
||||
{"<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Search through buffers"},
|
||||
{"<leader>ft", "<cmd>Telescope tags<cr>", desc = "Search through tags"},
|
||||
{"<leader>fm", "<cmd>Telescope marks<cr>", desc = "Search through marks"},
|
||||
{"<leader>fs", "<cmd>Telescope search_history<cr>", desc = "Search through search"},
|
||||
},
|
||||
config = function()
|
||||
require('telescope').setup(
|
||||
|
||||
)
|
||||
end
|
||||
}
|
44
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
44
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
config = function()
|
||||
local configs = require("nvim-treesitter.configs")
|
||||
|
||||
configs.setup({
|
||||
ensure_installed = {
|
||||
"lua",
|
||||
"vim",
|
||||
"vimdoc",
|
||||
"javascript",
|
||||
"html",
|
||||
"python",
|
||||
"dockerfile",
|
||||
"latex",
|
||||
"yaml",
|
||||
"regex",
|
||||
"bash",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
},
|
||||
sync_install = false,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
})
|
||||
end,
|
||||
opts = function(_, opts)
|
||||
vim.treesitter.language.register("markdown", "mdx")
|
||||
-- vim.list_extend(opts.highlight.disable, { "tsx" })
|
||||
if type(opts.ensure_installed) == "table" then
|
||||
vim.list_extend(opts.ensure_installed, {
|
||||
"bibtex",
|
||||
"latex",
|
||||
-- you can add more here
|
||||
})
|
||||
end
|
||||
if type(opts.highlight.disable) == "table" then
|
||||
vim.list_extend(opts.highlight.disable, { "latex", "bibtex" })
|
||||
else
|
||||
opts.highlight.disable = { "latex", "bibtex" }
|
||||
end
|
||||
end,
|
||||
}
|
3
nvim/.config/nvim/lua/plugins/vim-tmux-navigator.lua
Normal file
3
nvim/.config/nvim/lua/plugins/vim-tmux-navigator.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
return {
|
||||
'christoomey/vim-tmux-navigator',
|
||||
}
|
27
nvim/.config/nvim/lua/plugins/vimtex.lua
Normal file
27
nvim/.config/nvim/lua/plugins/vimtex.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
return {
|
||||
{
|
||||
"lervag/vimtex",
|
||||
lazy = false, -- lazy-loading will disable inverse search
|
||||
config = function()
|
||||
vim.api.nvim_create_autocmd({ "FileType" }, {
|
||||
group = vim.api.nvim_create_augroup("lazyvim_vimtex_conceal", { clear = true }),
|
||||
pattern = { "bib", "tex" },
|
||||
callback = function()
|
||||
vim.wo.conceallevel = 0
|
||||
end,
|
||||
})
|
||||
vim.g.vimtex_mappings_disable = { ["n"] = { "K" } } -- disable `K` as it conflicts with LSP hover
|
||||
vim.g.vimtex_quickfix_method = vim.fn.executable("pplatex") == 1 and "pplatex" or "latexlog"
|
||||
|
||||
vim.g.vimtex_view_method = "zathura" -- <== macos specific, you can use zathura or sumatra or something else.
|
||||
vim.g.vimtex_view_skim_sync = 1
|
||||
vim.g.vimtex_view_skim_activate = 1
|
||||
vim.g.vimtex_view_skim_reading_bar = 1
|
||||
|
||||
vim.g.vimtex_compiler_latexmk = {
|
||||
aux_dir = "./aux",
|
||||
out_dir = "./out",
|
||||
}
|
||||
end,
|
||||
},
|
||||
}
|
13
nvim/.config/nvim/lua/plugins/which-key.lua
Normal file
13
nvim/.config/nvim/lua/plugins/which-key.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
init = function()
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 300
|
||||
end,
|
||||
opts = {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
}
|
||||
}
|
@@ -4,7 +4,6 @@ local exec = vim.api.nvim_exec -- execute Vimscript
|
||||
local g = vim.g -- global variables
|
||||
local opt = vim.opt -- global/buffer/windows-scoped options
|
||||
|
||||
g.mapleader = ' ' -- Leaderkey
|
||||
g.showmode = true
|
||||
g.hidden = true -- Required to keep multiple buffers open multiple buffers
|
||||
opt.mouse = 'a' -- enable mouse
|
||||
@@ -48,8 +47,6 @@ exec([[
|
||||
augroup end
|
||||
]], false)
|
||||
|
||||
cmd('colorscheme gruvbox')
|
||||
|
||||
|
||||
-- Python 3
|
||||
g.python3_host_prog="~/.venv/nvim/bin/python"
|
||||
|
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"Date": {
|
||||
"prefix": "date",
|
||||
"body": [
|
||||
"$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE"
|
||||
]
|
||||
},
|
||||
"Lorem Ipsum Sentence": {
|
||||
"prefix": "loremSent",
|
||||
"body": "Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.",
|
||||
"description": "Lorem Ipsum Sentence"
|
||||
},
|
||||
"Lorem Ipsum Paragraph": {
|
||||
"prefix": "loremPara",
|
||||
"body": "Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est aliquip amet voluptate voluptate dolor minim nulla est proident. Nostrud officia pariatur ut officia. Sit irure elit esse ea nulla sunt ex occaecat reprehenderit commodo officia dolor Lorem duis laboris cupidatat officia voluptate. Culpa proident adipisicing id nulla nisi laboris ex in Lorem sunt duis officia eiusmod. Aliqua reprehenderit commodo ex non excepteur duis sunt velit enim. Voluptate laboris sint cupidatat ullamco ut ea consectetur et est culpa et culpa duis.",
|
||||
"description": "Lorem Ipsum Paragraph"
|
||||
}
|
||||
}
|
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"image": {
|
||||
"prefix": "image",
|
||||
"body": [
|
||||
".. image:: $1",
|
||||
"\t:height: 200px",
|
||||
"\t:alt: $2",
|
||||
"$0"
|
||||
],
|
||||
"description": "Insert image"
|
||||
},
|
||||
"etape": {
|
||||
"prefix": ["etape", "étape"],
|
||||
"body": [
|
||||
"Étape ${1:1}: $2",
|
||||
"$0"
|
||||
],
|
||||
"description": "Insert image"
|
||||
}
|
||||
}
|
@@ -1,95 +0,0 @@
|
||||
{
|
||||
"\\begin{}…\\end{}": {
|
||||
"prefix": "begin",
|
||||
"body": [
|
||||
"\\\\begin{${1:env}}",
|
||||
"\t$0",
|
||||
"\\\\end{${1:env}}"
|
||||
],
|
||||
"description": "Begin - End"
|
||||
},
|
||||
"Display Math — \\[ … \\]": {
|
||||
"prefix": "$$",
|
||||
"body": [
|
||||
"\\[",
|
||||
"\t$TM_SELECTED_TEXT$1",
|
||||
"\\]"
|
||||
],
|
||||
"description": "Display Math"
|
||||
},
|
||||
"Itemize": {
|
||||
"prefix": "item",
|
||||
"body": [
|
||||
"\\\\begin{itemize}",
|
||||
"\t\\item $0",
|
||||
"\\\\end{itemize}"
|
||||
],
|
||||
"description": "Itemize"
|
||||
},
|
||||
"Enumerate": {
|
||||
"prefix": "enum",
|
||||
"body": [
|
||||
"\\\\begin{enumerate}",
|
||||
"\t\\item $0",
|
||||
"\\\\end{enumerate}"
|
||||
],
|
||||
"description": "enumerate"
|
||||
},
|
||||
"Task": {
|
||||
"prefix": "task",
|
||||
"body": [
|
||||
"\\\\begin{tasks}(${1:2})",
|
||||
"\t\\item $0",
|
||||
"\\\\end{task}"
|
||||
],
|
||||
"description": "enumerate"
|
||||
},
|
||||
"center": {
|
||||
"prefix": "center",
|
||||
"body": [
|
||||
"\\\\begin{center}",
|
||||
"\t$0",
|
||||
"\\\\end{center}"
|
||||
],
|
||||
"description": "center"
|
||||
},
|
||||
"tabular": {
|
||||
"prefix": "tabular",
|
||||
"body": [
|
||||
"\\\\begin{tabular}{$1}",
|
||||
"\t\\\\hline",
|
||||
"\t$0",
|
||||
"\t\\\\hline",
|
||||
"\\\\end{tabular}"
|
||||
],
|
||||
"description": "tabular"
|
||||
},
|
||||
"minipage": {
|
||||
"prefix": "minipage",
|
||||
"body": [
|
||||
"\\\\begin{minipage}{${1:0.5}${2:\\\\linewidth}}",
|
||||
"\t$0",
|
||||
"\\\\end{minipage}"
|
||||
],
|
||||
"description": "minipage"
|
||||
},
|
||||
"multicols": {
|
||||
"prefix": "multicols",
|
||||
"body": [
|
||||
"\\\\begin{multicols}{${1:2}}",
|
||||
"\t$0",
|
||||
"\\\\end{multicols}"
|
||||
],
|
||||
"description": "multicols"
|
||||
},
|
||||
"exercise": {
|
||||
"prefix": "exercise",
|
||||
"body": [
|
||||
"\\\\begin{exercise}[subtitle={${1:subtitle}}, step={${2:1}}, origin={${3:Création}}, topics={${4:chapitre}}, tags={${5:tags}}, mode={${5:groupe}}]",
|
||||
"\t$0",
|
||||
"\\\\end{exercise}"
|
||||
],
|
||||
"description": "exercise xsim"
|
||||
|
||||
}
|
||||
}
|
@@ -1 +1,2 @@
|
||||
$pdf_mode = 4;
|
||||
$lualatex='lualatex --interaction=nonstopmode -shell-escape';
|
||||
|
@@ -2,7 +2,7 @@
|
||||
[general]
|
||||
; Set the day and night screen temperatures
|
||||
temp-day=5700
|
||||
temp-night=3500
|
||||
temp-night=4000
|
||||
; Disable the smooth fade between temperatures when Redshift starts and stops.
|
||||
; 0 will cause an immediate change between screen temperatures.
|
||||
; 1 will gradually apply the new screen temperature over a couple of seconds.
|
||||
@@ -21,19 +21,19 @@ fade=1
|
||||
;dawn-time=6:00-7:45
|
||||
;dusk-time=18:35-20:15
|
||||
; Set the screen brightness. Default is 1.0.
|
||||
brightness=0.8
|
||||
; brightness=0.8
|
||||
; It is also possible to use different settings for day and night
|
||||
; since version 1.8.
|
||||
;brightness-day=0.7
|
||||
;brightness-night=0.4
|
||||
brightness-day=1
|
||||
brightness-night=0.7
|
||||
; Set the screen gamma (for all colors, or each color channel
|
||||
; individually)
|
||||
gamma=0.8
|
||||
; gamma=0.8
|
||||
;gamma=0.8:0.7:0.8
|
||||
; This can also be set individually for day and night since
|
||||
; version 1.10.
|
||||
;gamma-day=0.8:0.7:0.8
|
||||
;gamma-night=0.6
|
||||
gamma-day=0.8:0.7:0.8
|
||||
gamma-night=0.7
|
||||
; Set the location-provider: 'geoclue2', 'manual'.
|
||||
; The location provider settings are in a different section.
|
||||
location-provider=manual
|
||||
@@ -48,8 +48,8 @@ adjustment-method=wayland
|
||||
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
|
||||
; are negative numbers.
|
||||
[manual]
|
||||
lat=46.1
|
||||
lon=5.44
|
||||
lat=46.2
|
||||
lon=5.7
|
||||
; Configuration of the adjustment-method
|
||||
; type 'gammastep -m METHOD:help' to see the settings.
|
||||
; ex: 'gammastep -m randr:help'
|
||||
|
@@ -1,17 +1,17 @@
|
||||
profile chanay {
|
||||
output eDP-1 enable scale 1
|
||||
output "Optoma Corporation Optoma SVGA Q71P7100939" position 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 stex101 {
|
||||
output eDP-1 enable scale 1
|
||||
output "Seiko Epson Corporation EPSON PJ 0x00000101" position 0,0
|
||||
}
|
||||
|
||||
|
||||
profile maison {
|
||||
output eDP-1 enable scale 1 position 320,1440
|
||||
output "Samsung Electric Company LS27A600U HNMR502540" position 0,0
|
||||
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 {
|
||||
|
@@ -25,7 +25,8 @@ 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/Pteridium.jpg fill
|
||||
output * bg ~/Images/Wallpapers/coraill.jpg fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
@@ -61,6 +62,11 @@ input type:touchpad {
|
||||
tap enabled
|
||||
}
|
||||
|
||||
input type:pointer {
|
||||
accel_profile flat
|
||||
pointer_accel 0
|
||||
}
|
||||
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
@@ -86,7 +92,9 @@ input type:touchpad {
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
bindsym $mod+p exec rofi-pass
|
||||
# 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.
|
||||
@@ -128,13 +136,15 @@ 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 $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
|
||||
@@ -143,8 +153,8 @@ bindsym $mod+apostrophe workspace $ws4
|
||||
bindsym $mod+parenleft workspace $ws5
|
||||
bindsym $mod+minus workspace $ws6
|
||||
bindsym $mod+egrave workspace $ws7
|
||||
bindsym $mod+underscore workspace 8
|
||||
bindsym $mod+ccedilla workspace 9
|
||||
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
|
||||
@@ -153,8 +163,15 @@ 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 8
|
||||
bindsym $mod+9 move container to workspace 9
|
||||
bindsym $mod+8 move container to workspace $ws8
|
||||
bindsym $mod+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:
|
||||
#
|
||||
@@ -176,7 +193,7 @@ bindsym $mod+9 move container to workspace 9
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+space focus mode_toggle
|
||||
bindsym $mod+y focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
@@ -196,10 +213,6 @@ bindsym $mod+9 move container to workspace 9
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
@@ -217,6 +230,12 @@ mode "resize" {
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
## Gesture
|
||||
#
|
||||
bindgesture swipe:right workspace prev
|
||||
bindgesture swipe:left workspace next
|
||||
|
||||
#
|
||||
# Audio
|
||||
#
|
||||
@@ -236,7 +255,8 @@ bindsym XF86MonBrightnessDown exec lightctl down
|
||||
# Decoration
|
||||
#
|
||||
|
||||
default_border pixel 1
|
||||
|
||||
default_border pixel 2
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #d65d0e #be5046 #ffffff #be5046 #be5046
|
||||
|
||||
@@ -245,10 +265,10 @@ client.focused #d65d0e #be5046 #ffffff #be5046 #be5046
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
position top
|
||||
output $laptopScreen
|
||||
# position top
|
||||
# output $laptopScreen
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
# include /etc/sway/config.d/*
|
||||
include /etc/sway/config.d/*
|
||||
include ~/.config/sway/config.d/*
|
||||
|
@@ -1,7 +1,3 @@
|
||||
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
||||
exec hash dbus-update-activation-environment 2>/dev/null && \
|
||||
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
||||
|
||||
exec_always blueman-applet
|
||||
exec_always /usr/bin/nm-applet --indicator
|
||||
exec_always nextcloud
|
||||
@@ -9,8 +5,13 @@ exec_always /usr/libexec/goa-daemon --replace
|
||||
exec gammastep-indicator
|
||||
exec mako
|
||||
exec "avizo-service"
|
||||
exec_always pkill kanshi; exec_always kanshi
|
||||
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 firefox;"
|
||||
exec swaymsg "workspace $ws2; exec thunderbird;"
|
||||
|
||||
exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"
|
||||
|
11
sway/.config/systemd/user/kanshi.service
Normal file
11
sway/.config/systemd/user/kanshi.service
Normal file
@@ -0,0 +1,11 @@
|
||||
[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
|
6
sway/.config/systemd/user/sway-session.target
Normal file
6
sway/.config/systemd/user/sway-session.target
Normal file
@@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Sway compositor session
|
||||
Documentation=man:systemd.special
|
||||
BindsTo=graphical-session.target
|
||||
Wants=graphical-session-pre.target
|
||||
After=graphical-session-pre.target
|
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/kanshi.service
|
@@ -1,14 +1,15 @@
|
||||
{
|
||||
[{
|
||||
"layer": "top",
|
||||
"output": "eDP-1",
|
||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||
"modules-center": ["sway/window"],
|
||||
"height": 30,
|
||||
"modules-left": ["sway/mode","sway/window" ],
|
||||
"modules-center": ["sway/workspaces" ],
|
||||
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
||||
"sway/window": {
|
||||
"max-length": 50
|
||||
},
|
||||
"sway/workspaces": {
|
||||
|
||||
"all-outputs": true
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
@@ -25,15 +26,8 @@
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%a, %d. %b %H:%M}"
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
"format": "{:%a, %d. %b %H:%M}",
|
||||
"on-click": "gnome-calendar"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
@@ -54,4 +48,64 @@
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
}
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10,
|
||||
}
|
||||
},
|
||||
{
|
||||
"layer": "bottom",
|
||||
"position": "bottom",
|
||||
"output": "DP-2",
|
||||
"height": 30,
|
||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||
"modules-center": ["sway/window"],
|
||||
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
||||
"sway/window": {
|
||||
"max-length": 50
|
||||
},
|
||||
"sway/workspaces": {
|
||||
"all-outputs": true
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%a, %d. %b %H:%M}",
|
||||
"on-click": "gnome-calendar"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10,
|
||||
}
|
||||
}]
|
||||
|
@@ -1,70 +1,91 @@
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: Droid Nerd Font Mono;
|
||||
font-size: 13px;
|
||||
min-height: 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: @white_b;
|
||||
background: @background;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 2px;
|
||||
background: transparent;
|
||||
color: @white_b;
|
||||
border-bottom: 3px solid transparent;
|
||||
padding: 0 2px;
|
||||
background: transparent;
|
||||
color: @foreground;
|
||||
border-bottom: 3px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background: @orange;
|
||||
border-bottom: 3px solid @orange_b;
|
||||
#workspaces button.active {
|
||||
background: @orange_b;
|
||||
}
|
||||
|
||||
#mode, #clock, #battery {
|
||||
padding: 0 10px;
|
||||
margin: 0 5px;
|
||||
#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 @white_b;
|
||||
background: @red;
|
||||
border-bottom: 3px solid @foreground;
|
||||
}
|
||||
|
||||
#window {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @white_b;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: @white_b;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @gree;
|
||||
color: @green;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: @white_b;
|
||||
color: @background;
|
||||
}
|
||||
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;
|
||||
#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: @white_b;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
background: @red;
|
||||
color: @foreground;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
87
sway/.local/bin/sway/rofi_screenshot.sh
Executable file
87
sway/.local/bin/sway/rofi_screenshot.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#! /usr/bin/zsh
|
||||
|
||||
set -e
|
||||
|
||||
PICTURES_DIR="$(xdg-user-dir PICTURES)"
|
||||
ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||
|
||||
monitor="$(swaymsg -t get_outputs | jq '[.[].focused] | index(true)')"
|
||||
alias myrofi="rofi -dmenu -matching fuzzy -i -sort -sorting-method fzf -monitor $monitor"
|
||||
|
||||
select_window() {
|
||||
declare -A windows
|
||||
|
||||
swaymsg -t get_tree |
|
||||
jq -r '..|.nodes? + .floating_nodes?|arrays|select(length > 0)|.[]|select((.nodes + .floating_nodes | length) == 0)|select(.visible)|(.app_id + ": " + .name + "\n" + (.rect.x | tostring) + "," + (.rect.y | tostring) + " " + (.rect.width | tostring) + "x" + (.rect.height | tostring))' |
|
||||
while read window_name; read geometry; do
|
||||
windows[$window_name]="$geometry"
|
||||
done
|
||||
|
||||
echo ${windows[$(print -l ${(@k)windows} | myrofi)]}
|
||||
}
|
||||
|
||||
main() {
|
||||
actions="Copy region to clipboard\nSave region to $PICTURES_DIR\nCopy window to clipboard\nSave window to $PICTURES_DIR\nSave region to zk"
|
||||
|
||||
if [[ "$(swaymsg -t get_outputs | jq length)" == "1" ]]; then
|
||||
actions+="\nCopy screen to clipboard\nSave screen to $PICTURES_DIR"
|
||||
else
|
||||
actions+="\nCopy current monitor to clipboard\nSave current monitor to $PICTURES_DIR\nCopy all monitors to clipboard\nSave all monitors to $PICTURES_DIR"
|
||||
fi
|
||||
|
||||
selection="$(echo "$actions" | myrofi -p "Take a screenshot")"
|
||||
|
||||
filename="$(date +'screenshot_%Y%m%d%H%M%s.png')"
|
||||
imagepath="${PICTURES_DIR}/$filename"
|
||||
zkpath="${ZK_NOTEBOOK_DIR}/fig/$filename"
|
||||
case "$selection" in
|
||||
"Copy region to clipboard")
|
||||
grim -g "$(slurp)" - | wl-copy
|
||||
notify-send "Region copied to clipboard"
|
||||
;;
|
||||
"Save region to $PICTURES_DIR")
|
||||
grim -g "$(slurp)" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Save region to zk")
|
||||
grim -g "$(slurp)" "$zkpath"
|
||||
sh_path="../fig/${zkpath##*/}"
|
||||
wl-copy $sh_path
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved" "$sh_path is copied")
|
||||
;;
|
||||
"Copy window to clipboard")
|
||||
grim -g "$(select_window)" - | wl-copy
|
||||
notify-send "Window copied to clipboard"
|
||||
;;
|
||||
"Save window to $PICTURES_DIR")
|
||||
grim -g "$(select_window)" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Copy current monitor to clipboard")
|
||||
monitor="$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')"
|
||||
grim -o $monitor - | wl-copy
|
||||
notify-send "Monitor $monitor copied to clipboard"
|
||||
;;
|
||||
"Save current monitor to $PICTURES_DIR")
|
||||
grim -o "$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Copy screen to clipboard"|"Copy all monitors to clipboard")
|
||||
grim - | wl-copy
|
||||
notify-send "Screen copied to clipboard"
|
||||
;;
|
||||
"Save screen to $PICTURES_DIR"|"Save all monitors to $PICTURES_DIR")
|
||||
grim "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$reply" == "2" ]]; then
|
||||
nautilus -s $imagepath
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
165
tmux/.tmux.conf
165
tmux/.tmux.conf
@@ -1,5 +1,6 @@
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
set -g default-terminal "tmux-256color"
|
||||
set-option -sa terminal-features ',alacritty:RGB'
|
||||
# set-option -sa terminal-overrides ",screen:Tc"
|
||||
|
||||
## Vim user config
|
||||
|
||||
@@ -8,6 +9,13 @@ unbind C-b
|
||||
set -g prefix C-space
|
||||
bind C-space send-prefix
|
||||
|
||||
set-option -g status-position top
|
||||
# Start windows and panes at 1, not 0
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
|
||||
# C-space C-space will swap to last used window
|
||||
bind-key C-space last-window
|
||||
@@ -33,169 +41,32 @@ set -g history-limit 10000
|
||||
bind Escape copy-mode
|
||||
unbind p
|
||||
bind p paste-buffer
|
||||
#bind -t vi-copy 'v' begin-selection
|
||||
#bind -t vi-copy 'y' copy-selection
|
||||
#bind -t vi-copy 'Space' halfpage-down
|
||||
#bind -t vi-copy 'Bspace' halfpage-up
|
||||
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||
bind-key -T copy-mode-vi 'y' send -X copy-selection
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
|
||||
bind-key -T copy-mode-vi 'Space' send -X halfpage-down
|
||||
bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up
|
||||
|
||||
# Remap previous window
|
||||
bind b previous-window
|
||||
|
||||
# extra commands for interacting with the ICCCM clipboard
|
||||
bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
|
||||
bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"
|
||||
|
||||
# easy-to-remember split pane commands
|
||||
bind | split-window -h
|
||||
bind - split-window -v
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
# # moving between panes with vim movement keys
|
||||
# bind h select-pane -L
|
||||
# bind j select-pane -D
|
||||
# bind k select-pane -U
|
||||
# bind l select-pane -R
|
||||
# Smart pane switching with awareness of Vim splits.
|
||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
||||
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
||||
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
||||
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
||||
bind-key -T copy-mode-vi C-h select-pane -L
|
||||
bind-key -T copy-mode-vi C-j select-pane -D
|
||||
bind-key -T copy-mode-vi C-k select-pane -U
|
||||
bind-key -T copy-mode-vi C-l select-pane -R
|
||||
bind-key -T copy-mode-vi C-\ select-pane -l
|
||||
|
||||
# moving between windows with vim movement keys
|
||||
bind -r C-h select-window -t :-
|
||||
bind -r C-l select-window -t :+
|
||||
|
||||
# resize panes with vim movement keys
|
||||
bind -r H resize-pane -L 5
|
||||
bind -r J resize-pane -D 5
|
||||
bind -r K resize-pane -U 5
|
||||
bind -r L resize-pane -R 5
|
||||
|
||||
######################
|
||||
### DESIGN CHANGES ###
|
||||
######################
|
||||
|
||||
# panes
|
||||
set -g pane-border-fg black
|
||||
set -g pane-active-border-fg brightred
|
||||
|
||||
## Status bar design
|
||||
# status line
|
||||
# set -g status-utf8 on
|
||||
set -g status-justify left
|
||||
set -g status-bg default
|
||||
set -g status-fg colour12
|
||||
set -g status-interval 2
|
||||
|
||||
# messaging
|
||||
set -g message-fg black
|
||||
set -g message-bg yellow
|
||||
set -g message-command-fg blue
|
||||
set -g message-command-bg black
|
||||
|
||||
#window mode
|
||||
setw -g mode-bg colour6
|
||||
setw -g mode-fg colour0
|
||||
|
||||
# window status
|
||||
setw -g window-status-format " #F#I:#W#F "
|
||||
setw -g window-status-current-format " #F#I:#W#F "
|
||||
setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W "
|
||||
setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W "
|
||||
setw -g window-status-current-bg colour0
|
||||
setw -g window-status-current-fg colour11
|
||||
setw -g window-status-current-attr dim
|
||||
setw -g window-status-bg green
|
||||
setw -g window-status-fg black
|
||||
setw -g window-status-attr reverse
|
||||
|
||||
# Info on left (I don't have a session display for now)
|
||||
set -g status-left ''
|
||||
|
||||
# loud or quiet?
|
||||
set-option -g visual-activity off
|
||||
set-option -g visual-bell off
|
||||
set-option -g visual-silence off
|
||||
set-window-option -g monitor-activity off
|
||||
set-option -g bell-action none
|
||||
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
# The modes {
|
||||
setw -g clock-mode-colour colour135
|
||||
setw -g mode-attr bold
|
||||
setw -g mode-fg colour196
|
||||
setw -g mode-bg colour238
|
||||
|
||||
# }
|
||||
# The panes {
|
||||
|
||||
set -g pane-border-bg colour235
|
||||
set -g pane-border-fg colour238
|
||||
set -g pane-active-border-bg colour236
|
||||
set -g pane-active-border-fg colour51
|
||||
|
||||
# }
|
||||
# The statusbar {
|
||||
|
||||
set -g status-position bottom
|
||||
set -g status-bg colour234
|
||||
set -g status-fg colour137
|
||||
set -g status-attr dim
|
||||
set -g status-left '#[fg=colour81,bg=colour241,bold] #S '
|
||||
set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S '
|
||||
set -g status-right-length 50
|
||||
set -g status-left-length 20
|
||||
|
||||
setw -g window-status-current-fg colour81
|
||||
setw -g window-status-current-bg colour238
|
||||
setw -g window-status-current-attr bold
|
||||
setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F '
|
||||
|
||||
setw -g window-status-fg colour138
|
||||
setw -g window-status-bg colour235
|
||||
setw -g window-status-attr none
|
||||
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '
|
||||
|
||||
setw -g window-status-bell-attr bold
|
||||
setw -g window-status-bell-fg colour255
|
||||
setw -g window-status-bell-bg colour1
|
||||
|
||||
# }
|
||||
# The messages {
|
||||
|
||||
set -g message-attr bold
|
||||
set -g message-fg colour232
|
||||
set -g message-bg colour166
|
||||
|
||||
# }
|
||||
|
||||
set-option -g focus-events on
|
||||
|
||||
## Plugins
|
||||
# Supports `github_username/repo` or full git repo URLs
|
||||
set -g @tpm_plugins 'tmux-plugins/tpm'
|
||||
set -g @tpm_plugins 'tmux-plugins/tmux-sensible'
|
||||
# tmux-plugins/tmux-resurrect \
|
||||
# tmux-plugins/tmux-continuum \
|
||||
|
||||
## tmux-continuum: automatic restore
|
||||
#set -g @continuum-restore 'on'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
|
||||
set -g @plugin 'egel/tmux-gruvbox'
|
||||
set -g @tmux-gruvbox 'dark' # or 'light'
|
||||
|
||||
# Keep this line at the very bottom of tmux.conf.
|
||||
run-shell '~/.tmux/plugins/tpm/tpm'
|
||||
|
Submodule tmux/.tmux/plugins/tpm deleted from 108f76b628
@@ -234,6 +234,8 @@ fileviewer *.[1-8] man ./%c | col -b
|
||||
|
||||
" Images
|
||||
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
||||
\ {View in feh}
|
||||
\ feh %f,
|
||||
\ {View in sxiv}
|
||||
\ sxiv %f,
|
||||
\ {View in gpicview}
|
||||
@@ -332,7 +334,7 @@ filetype *.7z
|
||||
fileviewer *.7z 7z l %c
|
||||
|
||||
" Office files
|
||||
filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f &
|
||||
filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx,*.ods,*.csv libreoffice %f &
|
||||
fileviewer *.doc catdoc %c
|
||||
fileviewer *.docx docx2txt.pl %f -
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
fpath+=$ZDOTDIR/pure
|
||||
fpath+=$ZDOTDIR/zfunc
|
||||
|
||||
autoload -U compinit
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # menu select=2
|
||||
@@ -11,6 +12,8 @@ _comp_options+=(globdots) # Include hidden files.
|
||||
autoload -U promptinit; promptinit
|
||||
prompt pure
|
||||
|
||||
export PURE_PROMPT_SYMBOL='%f%n%f%F{magenta}❯'
|
||||
|
||||
# Cursor for vimode
|
||||
# ZLE hooks for prompt's vi mode status
|
||||
function zle-line-init zle-keymap-select {
|
||||
@@ -41,7 +44,10 @@ alias egrep='egrep --color=auto'
|
||||
alias cp='cp -iv'
|
||||
alias mv='mv -iv'
|
||||
alias rm='rm -i'
|
||||
alias cat='bat -pp'
|
||||
alias less='bat -p'
|
||||
|
||||
# Newsboat
|
||||
alias newsboat='tmux new -As newsboat newsboat'
|
||||
|
||||
|
||||
@@ -75,6 +81,7 @@ eval "$(pyenv init --path)"
|
||||
source ~/.config/zsh/completion.zsh
|
||||
source ~/.config/zsh/key-bindings.zsh
|
||||
|
||||
# password-store
|
||||
_fzf_complete_pass() {
|
||||
ARGS="$@"
|
||||
_fzf_complete '' "$@" < <(
|
||||
@@ -82,3 +89,11 @@ _fzf_complete_pass() {
|
||||
)
|
||||
}
|
||||
|
||||
# yarn global commands
|
||||
export PATH="$(yarn global bin):$PATH"
|
||||
|
||||
# zk
|
||||
export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||
|
||||
# tea
|
||||
PROG=tea _CLI_ZSH_AUTOCOMPLETE_HACK=1 source "/home/lafrite/.config/tea/autocomplete.zsh"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export TERM='rxvt-256color'
|
||||
#export TERM='rxvt-256color'
|
||||
|
||||
# XDG
|
||||
export XDG_CONFIG_HOME=$HOME/.config
|
||||
|
Reference in New Issue
Block a user