Compare commits

...

117 Commits

Author SHA1 Message Date
f7af499573 Feat (nvim): cmdline on the middle of the screen 2025-01-05 06:07:54 +01:00
cd9ba86fca remove duplicate 2025-01-02 07:23:48 +01:00
938db338fc update ytb feeds 2025-01-02 07:23:32 +01:00
c95ee6f650 create alacritty config 2025-01-02 07:23:04 +01:00
cbe9a6c55c Feat: add vimtex to nivm 2024-12-24 10:58:39 +01:00
d812c32e37 Feat: replace rofi-pass with tessen 2024-11-09 13:04:54 +01:00
9cf5d8d5e0 Fix(sway): workspace switch 2024-03-01 06:00:32 +01:00
2131bb57c4 Feat(sway): cosmetics 2024-02-10 22:12:38 +01:00
5210b2a15a Feat(nvim): add noice 2024-01-06 20:42:56 +01:00
158c7a60a3 Feat: clean and add channels 2024-01-06 20:37:06 +01:00
39a18835a1 Feat(nvim): add mason_tool_installer 2023-11-15 06:14:35 +01:00
fa519bd74d Feat(nvim): add linting 2023-11-15 06:12:30 +01:00
f98a52e613 Feat(nvim): add formater for web tech, lua and python 2023-11-15 06:06:39 +01:00
44fb8a49fa Feat(newsboat): clean channel 2023-11-05 06:46:52 +01:00
52b956c423 Feat(sway): add reverse cable config 2023-11-05 06:46:09 +01:00
e43a76a132 Feat(nvim): add option for buffer completion 2023-11-05 06:44:33 +01:00
3029561478 Feat(nvim): add path and buffer 2023-11-05 06:40:03 +01:00
f85841cafe Feat(tmux): move status to the top 2023-10-29 04:18:51 +01:00
140872d0e6 Feat(sway): use default config 2023-10-20 06:27:15 +02:00
5b9d495de9 Feat(sway): add gesture 2023-10-20 06:26:33 +02:00
42b373b467 Feat: move from packer to lazy 2023-10-06 14:29:02 +02:00
9c5c85fe29 Feat: remove _ for keyword 2023-10-06 14:13:07 +02:00
6c6bbb47f3 feat: remove new instance shortcut 2023-09-25 10:18:27 +02:00
375d135e83 feat: add backlink ref 2023-09-25 10:18:13 +02:00
5e87cb1f94 feat: add comment 2023-09-25 10:18:00 +02:00
984fd8cfbd feat: clean old config 2023-09-25 10:17:39 +02:00
624c9ddd24 feat: add partager c'est sympa 2023-09-25 10:17:20 +02:00
e4c915c224 Feat: set terminal colors 2023-09-25 10:13:49 +02:00
06e9c790a9 Feat: add recording marcro 2023-07-22 07:41:42 +02:00
a49ce29958 Feat(zsh): add tea completion 2023-06-23 11:08:10 +02:00
ff7880d04d Feat(nvim): iskeyword _ for w motion 2023-06-15 06:36:32 +02:00
b745e15242 Feat(newsboat): modify g and G keys and add channels 2023-06-13 06:26:29 +02:00
c6a5e6ba07 Feat(nvim): add oil.nvim 2023-06-08 21:28:20 +02:00
af26c6978f Feat: add yarn global path 2023-06-07 06:40:39 +02:00
a6d2ce2f22 Feat(tmux): remove plugin directory 2023-04-30 06:31:52 +02:00
0a9e6f9dda Feat(tmux): change theme and copy 2023-04-30 06:31:26 +02:00
b069c2060b Feat(nvim): add mini.indentscope 2023-04-18 06:05:54 +02:00
2d40f69d6f Feat(pluging): add noice to improve the ui 2023-04-16 14:16:49 +02:00
30ba1656b4 Feat(plugin): add which-key.nvim 2023-04-16 14:00:54 +02:00
c96fdf218f Fix: lsp format to <leader>F 2023-04-05 15:58:01 +02:00
6ec22356e7 Feat(zk): add litterature directory 2023-04-04 11:45:59 +02:00
f3e3ee0438 Fix(nvim): remove ending with space in link snippet 2023-04-04 11:45:20 +02:00
58cea70665 Feat(newsboat): add channel 2023-04-04 11:44:55 +02:00
ba48178f00 Feat(nvim): replace telescope-file-browser by nvimtree 2023-04-04 11:44:23 +02:00
06b30a5c3e Fix(sway): imagepath syntax 2023-02-24 09:28:11 +01:00
c6d6cdc0aa Feat(nvim): add cmp-cmdline for command line completion 2023-02-21 17:54:55 +01:00
383c27850a Feat(newsboat): add channels 2023-02-21 10:16:55 +01:00
21e72dfb45 Feat(nvim): use external ltex 2023-02-21 10:16:22 +01:00
1d5e596ce0 Feat(nvim): zk new note shortcuts 2023-02-21 10:16:05 +01:00
bcc2772268 Feat(sway): add script for screenshots 2023-01-29 06:12:51 +01:00
757c0d3585 Feat(newsboat): add new channel 2023-01-29 04:42:03 +01:00
6780915f38 Feat(nvim): add vim abolish (greater sub) 2023-01-29 04:41:36 +01:00
c04543aba9 Feat(nvim): [[ shortcut for insert link 2023-01-29 04:40:08 +01:00
754ebcf1ae Fix(nvim): latex task snippet 2023-01-29 04:39:40 +01:00
a4de744aa7 Feat: add underscore link 2022-12-28 06:28:58 +01:00
4f11c1a9b9 Fix: disable treesitter indent for python 2022-12-28 06:28:27 +01:00
74e33d46b2 Feat: add centering and moving bloc remap 2022-12-21 05:10:48 +01:00
600b328691 Feat: add config for vertical monitor 2022-11-29 17:13:45 +01:00
d06a4e94cf Feat(kanshi): set maison 2022-11-22 05:46:28 +01:00
c44cd17970 Feat: zk config files 2022-11-21 10:09:06 +01:00
b0570700bb Fix: change proposition order 2022-11-21 10:08:31 +01:00
30d3ddfc90 Feat: add telekasten 2022-11-21 09:57:20 +01:00
3e0def88dd Feat: close buffer with telescope 2022-11-21 09:57:04 +01:00
d6c6d4f5d1 Feat: add zk default notes path 2022-11-21 09:55:20 +01:00
787bca3373 Feat: add comments 2022-11-10 04:26:38 +01:00
e57be0cfd2 Feat: remove vim-notes and replace wit telekasten 2022-11-09 08:28:46 +01:00
99a78b8e7d Feat: neomutt config with external imap and smtp 2022-11-09 06:58:25 +01:00
86ee7c8bce Feat: open csv with libreoffice 2022-11-08 19:32:31 +01:00
ad02746fc7 Feat: ignore vdirsyncer status 2022-10-28 09:28:13 +02:00
7c75eebe62 Feat: configure neomutt, khard and vdirsyncer 2022-10-28 09:27:09 +02:00
bd286dfa23 Feat: activate autotiling-rs 2022-10-21 21:12:05 +02:00
5617265cc6 Feat: add javascript snippets 2022-10-20 21:48:31 +02:00
418f122485 Feat: add shell escape 2022-10-17 17:52:30 +02:00
0302e76e1f Feat: add plusaudio suport 2022-10-17 17:52:17 +02:00
c21c9096c9 Feat: replace lsp-install by mason and add ltex 2022-10-17 17:51:22 +02:00
6b23fdf858 Feat: ajoute hits the road 2022-10-17 17:51:04 +02:00
1fe23703f4 Formatting 2022-10-10 14:16:20 +02:00
20b9e02adb Feat: feh for images 2022-10-09 07:36:44 +02:00
c7333aa79a Feat: use bat instead of cat or less 2022-10-04 09:48:14 +02:00
7cb967447a Feat: change background 2022-10-04 09:46:36 +02:00
e54b358410 Feat: add ljvs channel 2022-10-04 09:46:03 +02:00
1fbd08f657 Feat: add question and multquestion for AMC 2022-09-18 08:24:53 +02:00
f796d0775e Feat: add image snippet 2022-09-04 15:55:06 +02:00
ffb20ec8a4 Feat: open ods files with libreoffice 2022-08-23 16:46:26 +02:00
1734908df0 Feat: replace signify by gitsigns 2022-08-20 06:26:07 +02:00
01d09bc9c0 Feat: add telescope file_browser and rewrite keymap 2022-08-20 06:16:14 +02:00
4324070cac Refact: change loading methode 2022-08-20 05:59:04 +02:00
ebdb4420b6 Refact: change loading method 2022-08-20 05:58:36 +02:00
171c63a070 Feat: change loading method and disable in telescope and vim 2022-08-20 05:58:07 +02:00
46a53b7c38 Feat: add other languages 2022-08-20 05:56:58 +02:00
a3d16cbff2 Fix: lower number of treesitter installation and remove latex 2022-08-17 21:24:43 +02:00
8aefb98d32 Feat: add snippets for html and markdown 2022-08-17 19:05:36 +02:00
fb43e9e0ea add I like to make stuff 2022-08-17 19:04:56 +02:00
3617161e87 Feat: activate diagnostic for Ansible and Yaml 2022-07-25 16:21:58 +02:00
8850ed0668 Feat: restaure vim-vsnip-integ 2022-07-25 16:21:24 +02:00
62c81143bf Feat: ajoute une chaine ytb 2022-07-25 16:02:49 +02:00
e60dcb4cda Feat: set night gammastep settings 2022-05-21 22:01:31 +02:00
9d9a5c9a54 Fix: fix syntax and autopairs works! 2022-05-10 11:52:07 +02:00
99a6d39916 Feat: activate nonstopmode for lualatex 2022-05-10 11:49:44 +02:00
57ec4f7e2d Feat: Add indent_blankline to see indentation 2022-05-05 14:24:15 +02:00
d853923953 Fix: fix autocompletion in cmd line 2022-05-05 14:15:30 +02:00
bd62855dc9 Feat: configure mpd with ncmpcpp 2022-05-04 10:36:52 +02:00
0117c53cb7 Feat: set autopairs 2022-05-02 07:28:22 +02:00
62ba0e08fb Feat: set nice completion mapping with tab and enter 2022-05-02 07:27:33 +02:00
2633d677c4 Feat: configure treesitter 2022-05-01 09:50:29 +02:00
b00ba05e2b Feat: de nouvelles choses à ignorer 2022-05-01 07:58:11 +02:00
e95e3119fc feat: ajout de nouvelles chaines 2022-04-14 11:14:50 +02:00
9e616bc68b Feat: toggle floatting to mod+y and mod+space to back to last workspace 2022-03-30 20:12:18 +02:00
6188442dcb Feat: add Clement channel 2022-03-13 08:58:44 +01:00
143b791d6b Feat: add user in prompt 2022-03-03 06:23:06 +01:00
242a7a02e6 Fix: changer TERM in tmux 2022-03-03 06:00:40 +01:00
21060f0ef9 Feat: uset term in zsh 2022-03-03 05:59:02 +01:00
7e85124b10 Feat: code formating with null-ls 2022-02-14 11:36:10 +01:00
171ed7447e Feat: autoinstall packer 2022-02-14 11:29:35 +01:00
197eafd34d Feat: set up lsp-installer 2022-02-14 06:57:25 +01:00
07de246f77 Feat: activate treesitter 2022-02-08 12:55:24 +01:00
e04c89b57a Feat: decoration, all workspace on waybar and kanshi as service 2022-02-06 15:43:56 +01:00
76 changed files with 2365 additions and 934 deletions

13
.gitignore vendored
View File

@@ -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/

View 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

View File

@@ -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 }

View File

@@ -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
View 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"
#
###############################################################################

View 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

View File

@@ -0,0 +1 @@
execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)"

View 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

View 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

View 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`"

View 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`"

View 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`"

View 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

View 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

View 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"

View 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

View 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>'

View 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

View 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/*

View 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

View File

@@ -0,0 +1,5 @@
from subprocess import check_output
def get_pass(path):
return check_output("pass " + path, shell=True).splitlines()[0]

View 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"]

View File

@@ -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

View File

@@ -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"

View File

@@ -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')

View 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" }
}

View File

@@ -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'

View File

@@ -1,4 +0,0 @@
vim.opt.termguicolors = true
require'colorizer'.setup()

View File

@@ -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)

View File

@@ -1 +0,0 @@
vim.g.notes_directories = {"~/Nextcloud/Notes/vim" }

View File

@@ -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>', {})

View File

@@ -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()"

View File

@@ -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")

View File

@@ -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;
}

View File

@@ -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")

View File

@@ -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)

View File

@@ -0,0 +1,7 @@
return {
'windwp/nvim-autopairs',
event = "InsertEnter",
opts = {
disable_filetype = { "TelescopePrompt" , "vim" },
} -- this is equalent to setup({}) function
}

View 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
}

View 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
}

View File

@@ -0,0 +1,6 @@
return {
'numToStr/Comment.nvim',
config=function ()
require('Comment').setup()
end
}

View 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
}

View 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,
}

View File

@@ -0,0 +1,11 @@
return {
{
'tpope/vim-fugitive'
},
{
'lewis6991/gitsigns.nvim',
config=function ()
require('gitsigns').setup {}
end
}
}

View 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,
}

View 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,
}

View 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
}

View File

@@ -0,0 +1,6 @@
return {
'tpope/vim-surround',
'tpope/vim-repeat',
'tpope/vim-abolish',
'machakann/vim-highlightedyank'
}

View 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,
}

View 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
}

View 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)",
},
},
}

View 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
}

View 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,
}

View File

@@ -0,0 +1,3 @@
return {
'christoomey/vim-tmux-navigator',
}

View 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,
},
}

View 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
}
}

View File

@@ -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"

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -1 +1,2 @@
$pdf_mode = 4;
$lualatex='lualatex --interaction=nonstopmode -shell-escape';

View File

@@ -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'

View File

@@ -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 {

View File

@@ -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/*

View File

@@ -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';"

View 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

View 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

View File

@@ -0,0 +1 @@
/home/lafrite/.config/systemd/user/kanshi.service

View File

@@ -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,
}
}]

View File

@@ -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;
}

View 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 "$@"

View File

@@ -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'

View File

@@ -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 -

View File

@@ -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"

View File

@@ -1,4 +1,4 @@
export TERM='rxvt-256color'
#export TERM='rxvt-256color'
# XDG
export XDG_CONFIG_HOME=$HOME/.config