Compare commits
146 Commits
nvimlua
...
06b30a5c3e
Author | SHA1 | Date | |
---|---|---|---|
06b30a5c3e | |||
c6d6cdc0aa | |||
383c27850a | |||
21e72dfb45 | |||
1d5e596ce0 | |||
bcc2772268 | |||
757c0d3585 | |||
6780915f38 | |||
c04543aba9 | |||
754ebcf1ae | |||
a4de744aa7 | |||
4f11c1a9b9 | |||
74e33d46b2 | |||
600b328691 | |||
d06a4e94cf | |||
c44cd17970 | |||
b0570700bb | |||
30d3ddfc90 | |||
3e0def88dd | |||
d6c6d4f5d1 | |||
787bca3373 | |||
e57be0cfd2 | |||
99a78b8e7d | |||
86ee7c8bce | |||
ad02746fc7 | |||
7c75eebe62 | |||
bd286dfa23 | |||
5617265cc6 | |||
418f122485 | |||
0302e76e1f | |||
c21c9096c9 | |||
6b23fdf858 | |||
1fe23703f4 | |||
20b9e02adb | |||
c7333aa79a | |||
7cb967447a | |||
e54b358410 | |||
1fbd08f657 | |||
f796d0775e | |||
ffb20ec8a4 | |||
1734908df0 | |||
01d09bc9c0 | |||
4324070cac | |||
ebdb4420b6 | |||
171c63a070 | |||
46a53b7c38 | |||
a3d16cbff2 | |||
8aefb98d32 | |||
fb43e9e0ea | |||
3617161e87 | |||
8850ed0668 | |||
62c81143bf | |||
e60dcb4cda | |||
9d9a5c9a54 | |||
99a6d39916 | |||
57ec4f7e2d | |||
d853923953 | |||
bd62855dc9 | |||
0117c53cb7 | |||
62ba0e08fb | |||
2633d677c4 | |||
b00ba05e2b | |||
e95e3119fc | |||
9e616bc68b | |||
6188442dcb | |||
143b791d6b | |||
242a7a02e6 | |||
21060f0ef9 | |||
7e85124b10 | |||
171ed7447e | |||
197eafd34d | |||
07de246f77 | |||
e04c89b57a | |||
fe0c7e7630 | |||
4e6384ac3e | |||
ecf6b9fb6a | |||
b2e957ba9c | |||
150341e4c2 | |||
6f637e746e | |||
d6214ac324 | |||
d8519974f5 | |||
f7056eca23 | |||
f0af5d5b3f | |||
f6a7fe0563 | |||
ea12f5ba70 | |||
29a815e43c | |||
9da1a5ed65 | |||
f6cebbacb3 | |||
48dc36f660 | |||
6a1540bcb0 | |||
1bae59ca93 | |||
c89d6b8c39 | |||
3c26a04bb6 | |||
4f971c9df9 | |||
e71eae2345 | |||
0f0e24d16c | |||
ba6bb2bfba | |||
769acc8605 | |||
16194e4431 | |||
fed96f0ad1 | |||
a8f7cbdaea | |||
fe3ee3aefe | |||
b143fb61a9 | |||
216417e85e | |||
d1cb75acff | |||
3b3a46ddfb | |||
b89c49cb34 | |||
9d85245129 | |||
f0a1460022 | |||
cf14508462 | |||
44336cfb5b | |||
9568a1a3c2 | |||
7090ff15bf | |||
b151282f15 | |||
a726bf12ac | |||
025e863c75 | |||
783508bf25 | |||
829bf55d82 | |||
f133c72653 | |||
f24a4e8a47 | |||
f26fd07e96 | |||
99fa23f6ad | |||
a17b6e79b1 | |||
72b109c14a | |||
b1cf2bbab6 | |||
4f07c62070 | |||
99517cf4e4 | |||
c74ed2a1e3 | |||
4491310bba | |||
b53e69beb8 | |||
21cbaeb542 | |||
c1f449ed3d | |||
df067d434c | |||
a42946553a | |||
4bb4356727 | |||
7e6bfc2f4d | |||
243ea5a116 | |||
4ce449368e | |||
c65fffdd9c | |||
4e4b45bb24 | |||
e95bbfd0ad | |||
ea98f4be74 | |||
c897b57295 | |||
e9cf99cf8e | |||
da6ff29448 | |||
9dd08b6d18 |
17
.gitignore
vendored
17
.gitignore
vendored
@@ -5,3 +5,20 @@ vifm/.config/vifm/vifm-help.txt
|
||||
vifm/.config/vifm/vifminfo.json
|
||||
|
||||
nvim/.config/nvim/autoload
|
||||
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/
|
||||
|
@@ -1 +1,7 @@
|
||||
# My dotfiles
|
||||
|
||||
## Sway
|
||||
|
||||
Paquets à installer
|
||||
|
||||
sway waybar rofi rofi-pass nm-applet blueman brightnessctl
|
||||
|
46
X/.Xdefaults
Normal file
46
X/.Xdefaults
Normal file
@@ -0,0 +1,46 @@
|
||||
URxvt*font: xft:DroidSansMono Nerd Font Mono:pixelsize=14,xft:UbuntuMono Nerd Font:pixelsize=12
|
||||
URxvt*letterSpace: -1
|
||||
URxvt*scrollBar: false
|
||||
|
||||
! Extensions
|
||||
URxvt.perl-ext-common: default,matcher,fullscreen,resize-font
|
||||
! fullscreen with F11
|
||||
URxvt.keysym.F11: perl:fullscreen:switch
|
||||
|
||||
! `font-size` plugin
|
||||
URxvt.resize-font.smaller: C-Down
|
||||
URxvt.resize-font.bigger: C-Up
|
||||
|
||||
! Open link with firefox
|
||||
! URxvt.url-launcher: /usr/bin/xdg-open
|
||||
URxvt.url-launcher: /usr/bin/firefox
|
||||
URxvt.matcher.button: 1
|
||||
|
||||
! hard contrast: *background: #1d2021
|
||||
*background: #282828
|
||||
! soft contrast: *background: #32302f
|
||||
*foreground: #ebdbb2
|
||||
! Black + DarkGrey
|
||||
*color0: #282828
|
||||
*color8: #928374
|
||||
! DarkRed + Red
|
||||
*color1: #cc241d
|
||||
*color9: #fb4934
|
||||
! DarkGreen + Green
|
||||
*color2: #98971a
|
||||
*color10: #b8bb26
|
||||
! DarkYellow + Yellow
|
||||
*color3: #d79921
|
||||
*color11: #fabd2f
|
||||
! DarkBlue + Blue
|
||||
*color4: #458588
|
||||
*color12: #83a598
|
||||
! DarkMagenta + Magenta
|
||||
*color5: #b16286
|
||||
*color13: #d3869b
|
||||
! DarkCyan + Cyan
|
||||
*color6: #689d6a
|
||||
*color14: #8ec07c
|
||||
! LightGrey + White
|
||||
*color7: #a89984
|
||||
*color15: #ebdbb2
|
@@ -45,7 +45,7 @@ font:
|
||||
style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 11.0
|
||||
size: 12.0
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
@@ -82,6 +82,22 @@ selection:
|
||||
|
||||
live_config_reload: true
|
||||
|
||||
cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for 'style':
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
unfocused_hollow: true
|
||||
|
||||
mouse_bindings:
|
||||
- { mouse: Middle, action: PasteSelection }
|
||||
|
||||
key_bindings:
|
||||
- { key: V, mods: Control|Shift, action: Paste }
|
||||
- { key: C, mods: Control|Shift, action: Copy }
|
||||
|
5
git/.gitconfig
Normal file
5
git/.gitconfig
Normal file
@@ -0,0 +1,5 @@
|
||||
[user]
|
||||
name = Bertrand Benjamin
|
||||
email = benjamin.bertrand@opytex.org
|
||||
[init]
|
||||
defaultBranch = main
|
@@ -124,7 +124,7 @@ MusicDir = "/media/documents/musique/"
|
||||
# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for
|
||||
# debugging). You can enter more than one driver as a colon-separated
|
||||
# list. The first working driver will be used.
|
||||
#SoundDriver = JACK:ALSA:OSS
|
||||
SoundDriver = PULSEAUDIO:JACK:ALSA:OSS
|
||||
|
||||
# Jack output settings.
|
||||
#JackClientName = "moc"
|
||||
|
418
mpd/.config/mpd/mdp.conf
Normal file
418
mpd/.config/mpd/mdp.conf
Normal file
@@ -0,0 +1,418 @@
|
||||
# An example configuration file for MPD.
|
||||
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
|
||||
|
||||
|
||||
# Files and directories #######################################################
|
||||
#
|
||||
# This setting controls the top directory which MPD will search to discover the
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||
# be disabled and audio files will only be accepted over ipc socket (using
|
||||
# file:// protocol) or streaming files over an accepted protocol.
|
||||
#
|
||||
music_directory "~/Musique"
|
||||
#
|
||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# playlist files not created by the server but only if they are in the MPD
|
||||
# format. This setting defaults to playlist saving being disabled.
|
||||
#
|
||||
playlist_directory "~/.config/mpd/playlists"
|
||||
#
|
||||
# This setting sets the location of the MPD database. This file is used to
|
||||
# load the database at server start up and store the database while the
|
||||
# server is not up. This setting defaults to disabled which will allow
|
||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||
# files over an accepted protocol.
|
||||
#
|
||||
db_file "~/.config/mpd/database"
|
||||
|
||||
# These settings are the locations for the daemon log files for the daemon.
|
||||
#
|
||||
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||
# setting defaults to logging to syslog.
|
||||
#
|
||||
# If you use systemd, do not configure a log_file. With systemd, MPD
|
||||
# defaults to the systemd journal, which is fine.
|
||||
#
|
||||
log_file "syslog"
|
||||
|
||||
# This setting sets the location of the file which stores the process ID
|
||||
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||
# default and the pid file will not be stored.
|
||||
#
|
||||
# If you use systemd, do not configure a pid_file.
|
||||
#
|
||||
#pid_file "~/.mpd/pid"
|
||||
|
||||
# This setting sets the location of the file which contains information about
|
||||
# most variables to get MPD back into the same general shape it was in before
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# state will be reset on server start up.
|
||||
#
|
||||
state_file "~/.config/mpd/state"
|
||||
#
|
||||
# The location of the sticker database. This is a database which
|
||||
# manages dynamic information attached to songs.
|
||||
#
|
||||
#sticker_file "~/.mpd/sticker.sql"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# General music daemon options ################################################
|
||||
#
|
||||
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||
# root and you may use this setting to make MPD change its user ID after
|
||||
# initialization. This setting is disabled by default and MPD is run as the
|
||||
# current user.
|
||||
#
|
||||
#user "nobody"
|
||||
#
|
||||
# This setting specifies the group that MPD will run as. If not specified
|
||||
# primary group of user specified with "user" setting will be used (if set).
|
||||
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||
# have permission to use sound card.
|
||||
#
|
||||
#group "nogroup"
|
||||
#
|
||||
# This setting sets the address for the daemon to listen on. Careful attention
|
||||
# should be paid if this is assigned to anything other than the default, any.
|
||||
# This setting can deny access to control of the daemon. Not effective if
|
||||
# systemd socket activation is in use.
|
||||
#
|
||||
# For network
|
||||
#bind_to_address "any"
|
||||
#
|
||||
# And for Unix Socket
|
||||
#bind_to_address "~/.mpd/socket"
|
||||
#
|
||||
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||
# to.
|
||||
#
|
||||
#port "6600"
|
||||
#
|
||||
# Suppress all messages below the given threshold. Use "verbose" for
|
||||
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
|
||||
# "warning" and "error".
|
||||
#
|
||||
#log_level "notice"
|
||||
#
|
||||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||
# of starting playback after startup.
|
||||
#
|
||||
#restore_paused "no"
|
||||
#
|
||||
# This setting enables MPD to create playlists in a format usable by other
|
||||
# music players.
|
||||
#
|
||||
#save_absolute_paths_in_playlists "no"
|
||||
#
|
||||
# This setting defines a list of tag types that will be extracted during the
|
||||
# audio file discovery process. The complete list of possible values can be
|
||||
# found in the user manual.
|
||||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||
#
|
||||
# This example just enables the "comment" tag without disabling all
|
||||
# the other supported tags:
|
||||
#metadata_to_use "+comment"
|
||||
#
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# music_directory are changed.
|
||||
#
|
||||
auto_update "yes"
|
||||
#
|
||||
# Limit the depth of the directories being watched, 0 means only watch
|
||||
# the music directory itself. There is no limit by default.
|
||||
#
|
||||
#auto_update_depth "3"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Symbolic link behavior ######################################################
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#
|
||||
#follow_outside_symlinks "yes"
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links inside of the configured music_directory.
|
||||
#
|
||||
#follow_inside_symlinks "yes"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Zeroconf / Avahi Service Discovery ##########################################
|
||||
#
|
||||
# If this setting is set to "yes", service information will be published with
|
||||
# Zeroconf / Avahi.
|
||||
#
|
||||
#zeroconf_enabled "yes"
|
||||
#
|
||||
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||
# this MPD server on the network. %h will be replaced with the hostname.
|
||||
#
|
||||
#zeroconf_name "Music Player @ %h"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Permissions #################################################################
|
||||
#
|
||||
# If this setting is set, MPD will require password authorization. The password
|
||||
# setting can be specified multiple times for different password profiles.
|
||||
#
|
||||
#password "password@read,add,control,admin"
|
||||
#
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
#
|
||||
#default_permissions "read,add,control,admin"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Database #######################################################################
|
||||
#
|
||||
# An example of a database section instead of the old 'db_file' setting.
|
||||
# It enables mounting other storages into the music directory.
|
||||
#
|
||||
#database {
|
||||
# plugin "simple"
|
||||
# path "~/.local/share/mpd/db
|
||||
# cache_directory "~/.local/share/mpd/cache"
|
||||
#}
|
||||
#
|
||||
# An example of database config for a satellite setup
|
||||
#
|
||||
#music_directory "nfs://fileserver.local/srv/mp3"
|
||||
#database {
|
||||
# plugin "proxy"
|
||||
# host "other.mpd.host"
|
||||
# port "6600"
|
||||
#}
|
||||
|
||||
# Input #######################################################################
|
||||
#
|
||||
input {
|
||||
plugin "curl"
|
||||
# proxy "proxy.isp.com:8080"
|
||||
# proxy_user "user"
|
||||
# proxy_password "password"
|
||||
}
|
||||
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Audio Output ################################################################
|
||||
#
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# blocks. Setting this block is optional, though the server will only attempt
|
||||
# autodetection for one sound card.
|
||||
#
|
||||
# An example of an ALSA output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "alsa"
|
||||
# name "My ALSA Device"
|
||||
## device "hw:0,0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "default" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
## mixer_index "0" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an OSS output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "oss"
|
||||
# name "My OSS Device"
|
||||
## device "/dev/dsp" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "/dev/mixer" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a shout output (for streaming to Icecast):
|
||||
#
|
||||
#audio_output {
|
||||
# type "shout"
|
||||
# encoder "vorbis" # optional
|
||||
# name "My Shout Stream"
|
||||
# host "localhost"
|
||||
# port "8000"
|
||||
# mount "/mpd.ogg"
|
||||
# password "hackme"
|
||||
# quality "5.0"
|
||||
# bitrate "128"
|
||||
# format "44100:16:1"
|
||||
## protocol "icecast2" # optional
|
||||
## user "source" # optional
|
||||
## description "My Stream Description" # optional
|
||||
## url "http://example.com" # optional
|
||||
## genre "jazz" # optional
|
||||
## public "no" # optional
|
||||
## timeout "2" # optional
|
||||
## mixer_type "software" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a recorder output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "recorder"
|
||||
# name "My recorder"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
#}
|
||||
#
|
||||
# An example of a httpd output (built-in HTTP streaming server):
|
||||
#
|
||||
#audio_output {
|
||||
# type "httpd"
|
||||
# name "My HTTP Stream"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# port "8000"
|
||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
# max_clients "0" # optional 0=no limit
|
||||
#}
|
||||
#
|
||||
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||
#
|
||||
#audio_output {
|
||||
# type "pulse"
|
||||
# name "My Pulse Output"
|
||||
## server "remote_server" # optional
|
||||
## sink "remote_server_sink" # optional
|
||||
## media_role "media_role" #optional
|
||||
#}
|
||||
#
|
||||
# An example of a winmm output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "winmm"
|
||||
# name "My WinMM output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a wasapi output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "wasapi"
|
||||
# name "My WASAPI output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
|
||||
## exclusive "no" # optional
|
||||
## Enumerate all devices in log.
|
||||
## enumerate "no" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an openal output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "openal"
|
||||
# name "My OpenAL output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an sndio output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "sndio"
|
||||
# name "sndio output"
|
||||
# mixer_type "hardware"
|
||||
#}
|
||||
#
|
||||
# An example of an OS X output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "osx"
|
||||
# name "My OS X Device"
|
||||
## device "Built-in Output" # optional
|
||||
## channel_map "-1,-1,0,1" # optional
|
||||
#}
|
||||
#
|
||||
## Example "pipe" output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "pipe"
|
||||
# name "my pipe"
|
||||
# command "aplay -f cd 2>/dev/null"
|
||||
## Or if you're want to use AudioCompress
|
||||
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||
## Or to send raw PCM stream through PCM:
|
||||
# command "nc example.org 8765"
|
||||
# format "44100:16:2"
|
||||
#}
|
||||
#
|
||||
## An example of a null output (for no audio output):
|
||||
#
|
||||
#audio_output {
|
||||
# type "null"
|
||||
# name "My Null Output"
|
||||
# mixer_type "none" # optional
|
||||
#}
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Normalization automatic volume adjustments ##################################
|
||||
#
|
||||
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||
# chooses between "track" and "album" depending on the current state of
|
||||
# random playback. If random playback is enabled then "track" mode is used.
|
||||
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
|
||||
# more details about ReplayGain.
|
||||
# This setting is off by default.
|
||||
#
|
||||
#replaygain "album"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||
# default this setting is disabled.
|
||||
#
|
||||
#replaygain_preamp "0"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
||||
# By default this setting is disabled.
|
||||
#
|
||||
#replaygain_missing_preamp "0"
|
||||
#
|
||||
# This setting enables or disables ReplayGain limiting.
|
||||
# MPD calculates actual amplification based on the ReplayGain tags
|
||||
# and replaygain_preamp / replaygain_missing_preamp setting.
|
||||
# If replaygain_limit is enabled MPD will never amplify audio signal
|
||||
# above its original level. If replaygain_limit is disabled such amplification
|
||||
# might occur. By default this setting is enabled.
|
||||
#
|
||||
#replaygain_limit "yes"
|
||||
#
|
||||
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# equal "loudness". This setting is disabled by default.
|
||||
#
|
||||
#volume_normalization "no"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Character Encoding ##########################################################
|
||||
#
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# may need to modify this setting.
|
||||
#
|
||||
#filesystem_charset "UTF-8"
|
||||
#
|
||||
###############################################################################
|
10
mpd/.config/ncmpcpp/bindings
Normal file
10
mpd/.config/ncmpcpp/bindings
Normal file
@@ -0,0 +1,10 @@
|
||||
def_key "j"
|
||||
scroll_down
|
||||
def_key "k"
|
||||
scroll_up
|
||||
|
||||
def_key "g"
|
||||
move_home
|
||||
|
||||
def_key "G"
|
||||
move_end
|
1
mpd/.config/ncmpcpp/config
Normal file
1
mpd/.config/ncmpcpp/config
Normal file
@@ -0,0 +1 @@
|
||||
execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)"
|
51
neomutt/.config/khard/khard.conf
Normal file
51
neomutt/.config/khard/khard.conf
Normal file
@@ -0,0 +1,51 @@
|
||||
# example configuration file for khard version > 0.14.0
|
||||
# place it under ~/.config/khard/khard.conf
|
||||
# This file is parsed by the configobj library. The syntax is described at
|
||||
# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
|
||||
|
||||
[addressbooks]
|
||||
[[contacts]]
|
||||
path = ~/.contacts/contacts/
|
||||
|
||||
[general]
|
||||
debug = no
|
||||
default_action = list
|
||||
# These are either strings or comma seperated lists
|
||||
editor = nvim, -i, NONE
|
||||
merge_editor = vimdiff
|
||||
|
||||
[contact table]
|
||||
# display names by first or last name: first_name / last_name / formatted_name
|
||||
display = first_name
|
||||
# group by address book: yes / no
|
||||
group_by_addressbook = no
|
||||
# reverse table ordering: yes / no
|
||||
reverse = no
|
||||
# append nicknames to name column: yes / no
|
||||
show_nicknames = no
|
||||
# show uid table column: yes / no
|
||||
show_uids = yes
|
||||
# sort by first or last name: first_name / last_name / formatted_name
|
||||
sort = last_name
|
||||
# localize dates: yes / no
|
||||
localize_dates = yes
|
||||
# set a comma separated list of preferred phone number types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_phone_number_type = pref, cell, home
|
||||
# set a comma separated list of preferred email address types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_email_address_type = pref, work, home
|
||||
|
||||
[vcard]
|
||||
# extend contacts with your own private objects
|
||||
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||
# every object label may only contain letters, digits and the - character
|
||||
# example:
|
||||
# private_objects = Jabber, Skype, Twitter
|
||||
# default: , (the empty list)
|
||||
# preferred vcard version: 3.0 / 4.0
|
||||
preferred_version = 4.0
|
||||
# Look into source vcf files to speed up search queries: yes / no
|
||||
search_in_source_files = no
|
||||
# skip unparsable vcard files: yes / no
|
||||
skip_unparsable = no
|
50
neomutt/.config/msmtp/config
Normal file
50
neomutt/.config/msmtp/config
Normal file
@@ -0,0 +1,50 @@
|
||||
# Example for a user configuration file ~/.msmtprc
|
||||
|
||||
# With modern mail services that publish autoconfiguration information,
|
||||
# you can simply run 'msmtp --configure yourmail@example.com' to get
|
||||
# a basic working configuration.
|
||||
|
||||
# This example focusses on TLS and authentication. Features not used here
|
||||
# include logging, timeouts, SOCKS proxies, TLS parameters, Delivery Status
|
||||
# Notification (DSN) settings, and more.
|
||||
|
||||
# Set default values: use the mail submission port 587, and always use TLS.
|
||||
# On this port, TLS is activated via STARTTLS.
|
||||
defaults
|
||||
port 587
|
||||
tls on
|
||||
tls_starttls on
|
||||
auth on
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
logfile ~/.msmtp.log
|
||||
|
||||
account bb_opytex
|
||||
user Takanuva
|
||||
passwordeval "pass mail/mailfence/Takanuva | head -n1"
|
||||
auth on
|
||||
host smtp.mailfence.com
|
||||
port 465
|
||||
# Envelope-from address
|
||||
from benjamin.bertrand@opytex.org
|
||||
tls_starttls off
|
||||
|
||||
account jb_opytex
|
||||
user margot_benjamin
|
||||
passwordeval "pass mail/jost_bertrand@opytex.org/margot_benjamin | head -n1"
|
||||
auth on
|
||||
host smtp.mailfence.com
|
||||
port 465
|
||||
# Envelope-from address
|
||||
from jost_bertrand@opytex.org
|
||||
tls_starttls off
|
||||
|
||||
account ac-lyon
|
||||
user bbertrand
|
||||
passwordeval "pass Prof/pronote/bbertrand | head -n1"
|
||||
auth on
|
||||
host smtps.ac-lyon.fr
|
||||
# Envelope-from address
|
||||
from benjamin.bertrand@ac-lyon.fr
|
||||
|
||||
# Set a default account
|
||||
account default : bb_opytex
|
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
@@ -0,0 +1,43 @@
|
||||
# vim: filetype=muttrc
|
||||
unmailboxes *
|
||||
|
||||
set from = "benjamin.bertrand@ac-lyon.fr"
|
||||
|
||||
set sendmail = "/usr/bin/msmtp -a ac-lyon"
|
||||
set folder = "~/.mail/ac_lyon"
|
||||
|
||||
set spoolfile = "+INBOX"
|
||||
set postponed = "+Drafts"
|
||||
set record = "+Sent"
|
||||
set trash = "+Trash"
|
||||
|
||||
set mbox_type = Maildir
|
||||
set ssl_starttls = yes
|
||||
set ssl_force_tls = yes
|
||||
|
||||
color status blue default
|
||||
|
||||
#mailboxes =INBOX =Sent =Drafts =Junk
|
||||
|
||||
|
||||
# set my_pass = "`pass Prof/pronote/bbertrand`"
|
||||
# set folder = "imaps://mail.ac-lyon.fr"
|
||||
# set imap_user = bbertrand
|
||||
# set imap_pass = $my_pass
|
||||
#
|
||||
# set ssl_force_tls = yes
|
||||
# set smtp_url = smtps://$imap_user@smtps.ac-lyon.fr:587
|
||||
# set smtp_pass = $my_pass
|
||||
# set ssl_starttls = yes
|
||||
# set smtp_authenticators = "login"
|
||||
#
|
||||
# set spoolfile = +INBOX
|
||||
# mailboxes = +INBOX
|
||||
# set imap_check_subscribed
|
||||
#
|
||||
# set record = "+Sent"
|
||||
# set trash = "+Trash"
|
||||
# set postponed = "+Drafts"
|
||||
#
|
||||
# ## Hook -- IMPORTANT!
|
||||
# account-hook $folder "set imap_pass=`pass Prof/pronote/bbertrand`"
|
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
@@ -0,0 +1,43 @@
|
||||
# vim: filetype=muttrc
|
||||
unmailboxes *
|
||||
|
||||
set from = "benjamin.bertrand@opytex.org"
|
||||
|
||||
set sendmail = "/usr/bin/msmtp -a bb_opytex"
|
||||
set folder = "~/.mail/bb_opytex"
|
||||
|
||||
set spoolfile = "+INBOX"
|
||||
set postponed = "+Drafts"
|
||||
set record = "+Sent"
|
||||
set trash = "+Junk"
|
||||
|
||||
|
||||
set mbox_type = Maildir
|
||||
set ssl_starttls = yes
|
||||
set ssl_force_tls = yes
|
||||
|
||||
color status cyan default
|
||||
|
||||
# mailboxes =INBOX =Sent =Drafts =Junk
|
||||
|
||||
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
||||
# set folder = "imaps://imap.mailfence.com/"
|
||||
# set imap_user = Takanuva
|
||||
# set imap_pass = $my_pass
|
||||
#
|
||||
# set ssl_force_tls = yes
|
||||
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
||||
# set smtp_pass = $my_pass
|
||||
# set ssl_starttls = yes
|
||||
# set smtp_authenticators = "login"
|
||||
#
|
||||
#
|
||||
# set spoolfile = +INBOX
|
||||
#
|
||||
# set record = "+Sent"
|
||||
# set trash = "+Trash"
|
||||
# set postponed = "+Drafts"
|
||||
#
|
||||
#
|
||||
# ## Hook -- IMPORTANT!
|
||||
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
@@ -0,0 +1,44 @@
|
||||
# vim: filetype=muttrc
|
||||
unmailboxes *
|
||||
set imap_list_subscribed
|
||||
set imap_check_subscribed
|
||||
|
||||
set from = "jost_bertrand@opytex.org"
|
||||
|
||||
set sendmail = "/usr/bin/msmtp -a jb_opytex"
|
||||
set folder = "~/.mail/jb_opytex"
|
||||
|
||||
set spoolfile = "+INBOX"
|
||||
set postponed = "+Drafts"
|
||||
set record = "+Sent"
|
||||
set trash = "+Junk"
|
||||
|
||||
set mbox_type = Maildir
|
||||
set ssl_starttls = yes
|
||||
set ssl_force_tls = yes
|
||||
|
||||
|
||||
color status red default
|
||||
|
||||
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
||||
# set folder = "imaps://imap.mailfence.com/"
|
||||
# set imap_user = Takanuva
|
||||
# set imap_pass = $my_pass
|
||||
#
|
||||
# set ssl_force_tls = yes
|
||||
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
||||
# set smtp_pass = $my_pass
|
||||
# set ssl_starttls = yes
|
||||
# set smtp_authenticators = "login"
|
||||
#
|
||||
#
|
||||
# set spoolfile = +INBOX
|
||||
# set imap_check_subscribed
|
||||
#
|
||||
# set record = "+Sent"
|
||||
# set trash = "+Trash"
|
||||
# set postponed = "+Drafts"
|
||||
#
|
||||
#
|
||||
# ## Hook -- IMPORTANT!
|
||||
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
100
neomutt/.config/neomutt/colors
Normal file
100
neomutt/.config/neomutt/colors
Normal file
@@ -0,0 +1,100 @@
|
||||
# -*-muttrc-*-
|
||||
|
||||
# Screenshot http://trovao.droplinegnome.org/stuff/mutt-zenburnt.png
|
||||
#
|
||||
# This is a zenburn-based neomutt color scheme that is not (even by far)
|
||||
# complete. There's no copyright involved. Do whatever you want with it.
|
||||
# Just be aware that I won't be held responsible if the current color-scheme
|
||||
# explodes your mail client. ;)
|
||||
#
|
||||
# Do notice that this color scheme requires a terminal emulator that supports
|
||||
# 256 color. Any modern X terminal emulator should have support for that and
|
||||
# you can enable it by calling neomutt as "TERM=xterm-256color neomutt" or, if you
|
||||
# use screen, by adding "term screen-256color" to your .screenrc.
|
||||
#
|
||||
# This file is in the public domain.
|
||||
#
|
||||
|
||||
# general-doesn't-fit stuff
|
||||
color normal color188 color237
|
||||
color error color115 color236
|
||||
color markers color142 color238
|
||||
color tilde color108 color237
|
||||
color status color144 color234
|
||||
|
||||
# index stuff
|
||||
color indicator color108 color236
|
||||
color tree color109 color237
|
||||
color index color188 color237 ~A
|
||||
color index color188 color237 ~N
|
||||
color index color188 color237 ~O
|
||||
color index color174 color237 ~F
|
||||
color index color174 color237 ~D
|
||||
|
||||
# Message Index ----------------------------------------------------------------
|
||||
|
||||
## Weak
|
||||
color index color08 color00 "~R" # read messages
|
||||
color index color08 color00 "~d >45d" # older than 45 days
|
||||
color index color08 color00 "~v~(!~N)" # collapsed thread with no unread
|
||||
color index color08 color00 "~Q" # messages that have been replied to
|
||||
|
||||
## Strong
|
||||
color index color21 color00 "(~U|~N|~O)" # unread, new, old messages
|
||||
color index color21 color00 "~v~(~U|~N|~O)" # collapsed thread with unread
|
||||
|
||||
## Highlight
|
||||
### Trusted
|
||||
color index color06 color00 "~g" # PGP signed messages
|
||||
color index color06 color00 "~G" # PGP encrypted messages
|
||||
### Odd
|
||||
color index color01 color00 "~E" # past Expires: header date
|
||||
color index color01 color00 "~=" # duplicated
|
||||
color index color01 color00 "~S" # marked by Supersedes: header
|
||||
### Flagged
|
||||
color index color05 color00 "~F" # flagged messages
|
||||
color index color02 color00 "~v~(~F)" # collapsed thread with flagged inside
|
||||
|
||||
# Selection
|
||||
color index color02 color18 "~T" # tagged messages
|
||||
color index color01 color18 "~D" # deleted messages
|
||||
|
||||
#
|
||||
|
||||
# header stuff
|
||||
color hdrdefault color223 color237
|
||||
color header color223 color237 "^Subject"
|
||||
|
||||
# gpg stuff
|
||||
color body color188 color237 "^gpg: Good signature.*"
|
||||
color body color115 color236 "^gpg: BAD signature.*"
|
||||
color body color174 color237 "^gpg: Can't check signature.*"
|
||||
color body color174 color237 "^-----BEGIN PGP SIGNED MESSAGE-----"
|
||||
color body color174 color237 "^-----BEGIN PGP SIGNATURE-----"
|
||||
color body color174 color237 "^-----END PGP SIGNED MESSAGE-----"
|
||||
color body color174 color237 "^-----END PGP SIGNATURE-----"
|
||||
color body color174 color237 "^Version: GnuPG.*"
|
||||
color body color174 color237 "^Comment: .*"
|
||||
|
||||
# url, email and web stuff
|
||||
color body color174 color237 "(finger|ftp|http|https|news|telnet)://[^ >]*"
|
||||
color body color174 color237 "<URL:[^ ]*>"
|
||||
color body color174 color237 "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?"
|
||||
color body color174 color237 "mailto: *[^ ]+\(\\i?subject=[^ ]+\)?"
|
||||
color body color174 color237 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||
|
||||
# misc body stuff
|
||||
color attachment color174 color237 #Add-ons to the message
|
||||
color signature color223 color237
|
||||
|
||||
# quote levels
|
||||
color quoted color108 color237
|
||||
color quoted1 color116 color237
|
||||
color quoted2 color247 color237
|
||||
color quoted3 color108 color237
|
||||
color quoted4 color116 color237
|
||||
color quoted5 color247 color237
|
||||
color quoted6 color108 color237
|
||||
color quoted7 color116 color237
|
||||
color quoted8 color247 color237
|
||||
color quoted9 color108 color237
|
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
@@ -0,0 +1,121 @@
|
||||
# -*-muttrc-*-
|
||||
# gruvbox dark (contrast dark):
|
||||
|
||||
# bg0 = 234
|
||||
# bg1 = 237
|
||||
# bg2 = 239
|
||||
# bg3 = 241
|
||||
# bg4 = 243
|
||||
#
|
||||
# gray = 245
|
||||
#
|
||||
# fg0 = 229
|
||||
# fg1 = 223
|
||||
# fg2 = 250
|
||||
# fg3 = 248
|
||||
# fg4 = 246
|
||||
#
|
||||
# red = 167
|
||||
# green = 142
|
||||
# yellow = 214
|
||||
# blue = 109
|
||||
# purple = 175
|
||||
# aqua = 108
|
||||
# orange = 208
|
||||
|
||||
|
||||
# See http://www.mutt.org/doc/manual/#color
|
||||
|
||||
color attachment color109 color234
|
||||
color bold color229 color234
|
||||
color error color167 color234
|
||||
color hdrdefault color246 color234
|
||||
color indicator color223 color237
|
||||
color markers color243 color234
|
||||
color normal color223 color234
|
||||
color quoted color250 color234
|
||||
color quoted1 color108 color234
|
||||
color quoted2 color250 color234
|
||||
color quoted3 color108 color234
|
||||
color quoted4 color250 color234
|
||||
color quoted5 color108 color234
|
||||
color search color234 color208
|
||||
color signature color108 color234
|
||||
color status color234 color250
|
||||
color tilde color243 color234
|
||||
color tree color142 color234
|
||||
color underline color223 color239
|
||||
|
||||
color sidebar_divider color250 color234
|
||||
color sidebar_new color142 color234
|
||||
|
||||
color index color142 color234 ~N
|
||||
color index color108 color234 ~O
|
||||
color index color109 color234 ~P
|
||||
color index color214 color234 ~F
|
||||
color index color175 color234 ~Q
|
||||
color index color167 color234 ~=
|
||||
color index color234 color223 ~T
|
||||
color index color234 color167 ~D
|
||||
|
||||
color header color214 color234 "^(To:|From:)"
|
||||
color header color142 color234 "^Subject:"
|
||||
color header color108 color234 "^X-Spam-Status:"
|
||||
color header color108 color234 "^Received:"
|
||||
|
||||
# Regex magic for URLs and hostnames
|
||||
#
|
||||
# Attention: BSD's regex has RE_DUP_MAX set to 255.
|
||||
#
|
||||
# Examples:
|
||||
# http://some-service.example.com
|
||||
# example.com
|
||||
# a.example.com
|
||||
# some-service.example.com
|
||||
# example.com/
|
||||
# example.com/datenschutz
|
||||
# file:///tmp/foo
|
||||
#
|
||||
# Non-examples:
|
||||
# 1.1.1900
|
||||
# 14.02.2022/24:00
|
||||
# 23.59
|
||||
# w.l.o.g
|
||||
# team.its
|
||||
color body color142 color234 "[a-z]{3,255}://[[:graph:]]*"
|
||||
color body color142 color234 "([-[:alnum:]]+\\.)+([0-9]{1,3}|[-[:alpha:]]+)/[[:graph:]]*"
|
||||
color body color142 color234 "([-[:alnum:]]+\\.){2,255}[-[:alpha:]]{2,10}"
|
||||
|
||||
# IPv4 and IPv6 stolen from https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
|
||||
color body color142 color234 "((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
|
||||
color body color142 color234 "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
|
||||
|
||||
# Mail addresses and mailto URLs
|
||||
color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||
color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
||||
|
||||
# some simleys and stuff
|
||||
color body color234 color214 "[;:]-*[)>(<lt;|]"
|
||||
color body color229 color234 "\\*[- A-Za-z]+\\*"
|
||||
|
||||
color body color214 color234 "^-.*PGP.*-*"
|
||||
color body color142 color234 "^gpg: Good signature from"
|
||||
color body color167 color234 "^gpg: Can't.*$"
|
||||
color body color214 color234 "^gpg: WARNING:.*$"
|
||||
color body color167 color234 "^gpg: BAD signature from"
|
||||
color body color167 color234 "^gpg: Note: This key has expired!"
|
||||
color body color214 color234 "^gpg: There is no indication that the signature belongs to the owner."
|
||||
color body color214 color234 "^gpg: can't handle these multiple signatures"
|
||||
color body color214 color234 "^gpg: signature verification suppressed"
|
||||
color body color214 color234 "^gpg: invalid node with packet of type"
|
||||
|
||||
color body color142 color234 "^Good signature from:"
|
||||
color body color167 color234 "^.?BAD.? signature from:"
|
||||
color body color142 color234 "^Verification successful"
|
||||
color body color167 color234 "^Verification [^s][^[:space:]]*$"
|
||||
|
||||
color compose header color223 color234
|
||||
color compose security_encrypt color175 color234
|
||||
color compose security_sign color109 color234
|
||||
color compose security_both color142 color234
|
||||
color compose security_none color208 color234
|
1
neomutt/.config/neomutt/mailboxes
Normal file
1
neomutt/.config/neomutt/mailboxes
Normal file
@@ -0,0 +1 @@
|
||||
mailboxes "+ac_lyon/Archives" "+ac_lyon/Archives.2019-2020" "+ac_lyon/Archives.2020-2021" "+ac_lyon/Archives.2021-2022" "+ac_lyon/Archives.2022-2023" "+ac_lyon/Archives/2019-2020" "+ac_lyon/Archives/2020-2021" "+ac_lyon/Archives/2021-2022" "+ac_lyon/Archives/2022-2023" "+ac_lyon/Brouillons" "+ac_lyon/Drafts" "+ac_lyon/Eleves" "+ac_lyon/Eleves.2nd1" "+ac_lyon/Eleves/2nd1" "+ac_lyon/Envoy&AOk-s" "+ac_lyon/INBOX" "+ac_lyon/Junk" "+ac_lyon/Sent" "+ac_lyon/TICE" "+ac_lyon/Trash" "+bb_opytex/Archive" "+bb_opytex/Drafts" "+bb_opytex/INBOX" "+bb_opytex/R&AOk-seautage" "+bb_opytex/Sent Items" "+bb_opytex/Spam?" "+bb_opytex/Trash" "+jb_opytex/2021" "+jb_opytex/2022" "+jb_opytex/Archive" "+jb_opytex/Drafts" "+jb_opytex/INBOX" "+jb_opytex/Sent Items" "+jb_opytex/Spam?" "+jb_opytex/Trash"
|
12
neomutt/.config/neomutt/mailcap
Normal file
12
neomutt/.config/neomutt/mailcap
Normal file
@@ -0,0 +1,12 @@
|
||||
# xdg-open
|
||||
application/msword; /usr/bin/xdg-open %s
|
||||
application/pdf; /usr/bin/xdg-open %s
|
||||
application/postscript ; /usr/bin/xdg-open %s
|
||||
|
||||
# HTML
|
||||
text/html; w3m -I %{charset} -T text/html; copiousoutput;
|
||||
text/plain; nvim %s
|
||||
|
||||
#Images
|
||||
image/png; /usr/bin/vimiv %s
|
||||
image/jpeg; /usr/bin/vimiv %s
|
56
neomutt/.config/neomutt/mappings
Normal file
56
neomutt/.config/neomutt/mappings
Normal file
@@ -0,0 +1,56 @@
|
||||
# vim: filetype=muttrc
|
||||
|
||||
# sidebar mappings
|
||||
bind index,pager \Ck sidebar-prev
|
||||
bind index,pager \Cj sidebar-next
|
||||
bind index,pager \Co sidebar-open
|
||||
bind index,pager \Cp sidebar-prev-new
|
||||
bind index,pager \Cn sidebar-next-new
|
||||
bind index,pager B sidebar-toggle-visible
|
||||
|
||||
# global index and pager shortcuts
|
||||
bind index,pager @ compose-to-sender
|
||||
bind index,pager D purge-message
|
||||
bind index <tab> sync-mailbox
|
||||
bind index <space> collapse-thread
|
||||
|
||||
# Email completion bindings
|
||||
bind editor <Tab> complete-query
|
||||
bind editor ^T complete
|
||||
|
||||
|
||||
# General rebindings
|
||||
bind attach <return> view-mailcap
|
||||
bind attach l view-mailcap
|
||||
bind editor <space> noop
|
||||
bind pager c imap-fetch-mail
|
||||
bind index G last-entry
|
||||
bind index g noop
|
||||
bind index gg first-entry
|
||||
bind pager,attach h exit
|
||||
bind pager j next-line
|
||||
bind pager k previous-line
|
||||
bind pager l view-attachments
|
||||
bind index D delete-message
|
||||
bind index U undelete-message
|
||||
bind index L limit
|
||||
bind index h noop
|
||||
bind index l display-message
|
||||
bind browser h goto-parent
|
||||
bind browser l select-entry
|
||||
bind pager,browser gg top-page
|
||||
bind pager,browser G bottom-page
|
||||
bind index,pager,browser d half-down
|
||||
bind index,pager,browser u half-up
|
||||
bind index,pager R group-reply
|
||||
bind index \031 previous-undeleted # Mouse wheel
|
||||
bind index \005 next-undeleted # Mouse wheel
|
||||
bind pager \031 previous-line # Mouse wheel
|
||||
bind pager \005 next-line # Mouse wheel
|
||||
bind editor <Tab> complete-query
|
||||
#
|
||||
## Shortcuts
|
||||
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/ac-lyon<enter><change-folder>!<enter>'
|
||||
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/bb_opytex<enter><change-folder>!<enter>'
|
||||
macro index,pager <f4> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/jb_opytex<enter><change-folder>!<enter>'
|
||||
|
15
neomutt/.config/neomutt/neomuttrc
Normal file
15
neomutt/.config/neomutt/neomuttrc
Normal file
@@ -0,0 +1,15 @@
|
||||
# vim: filetype=muttrc
|
||||
|
||||
source ~/.config/neomutt/settings
|
||||
source ~/.config/neomutt/colors_gruvbox
|
||||
source ~/.config/neomutt/mappings
|
||||
|
||||
|
||||
#source ~/.config/neomutt/accounts/jb_opytex
|
||||
folder-hook jb_opytex/* 'source ~/.config/neomutt/accounts/jb_opytex'
|
||||
#source ~/.config/neomutt/accounts/bb_opytex
|
||||
folder-hook bb_opytex/* 'source ~/.config/neomutt/accounts/bb_opytex'
|
||||
source ~/.config/neomutt/accounts/ac-lyon
|
||||
folder-hook ac_lyon/* 'source ~/.config/neomutt/accounts/ac-lyon'
|
||||
|
||||
#source ~/.config/neomutt/mailboxes
|
72
neomutt/.config/neomutt/settings
Normal file
72
neomutt/.config/neomutt/settings
Normal file
@@ -0,0 +1,72 @@
|
||||
# vim: filetype=muttrc
|
||||
|
||||
set editor = "nvim"
|
||||
|
||||
set realname = "Benjamin Bertrand"
|
||||
set use_from = "yes"
|
||||
|
||||
# How often to check for new mail (time in seconds).
|
||||
set mail_check = 120
|
||||
|
||||
# Allow Mutt to open a new IMAP connection automatically.
|
||||
unset imap_passive
|
||||
|
||||
# Keep the IMAP connection alive by polling intermittently (time in seconds).
|
||||
set imap_keepalive = 300
|
||||
|
||||
# main options
|
||||
set envelope_from
|
||||
set edit_headers # show headers when composing
|
||||
set fast_reply # skip to compose when replying
|
||||
set askcc # ask for CC:
|
||||
set fcc_attach # save attachments with the body
|
||||
set forward_format = "Fwd: %s" # format of subject when forwarding
|
||||
set forward_decode # decode when forwarding
|
||||
set attribution = "On %d, %n wrote:" # format of quoting header
|
||||
set reply_to # reply to Reply to: field
|
||||
set reverse_name # reply as whomever it was to
|
||||
set include # include message in replies
|
||||
set forward_quote # include message in forwards
|
||||
set text_flowed
|
||||
unset sig_dashes # no dashes before sig
|
||||
unset mime_forward # forward attachments as part of body
|
||||
unset help # No help bar at the top of index
|
||||
# set status_on_top # Status bar on top of index
|
||||
set tmpdir = ~/Programs/neomutt/temp # where to keep temp files
|
||||
|
||||
|
||||
|
||||
# status bar, date format, finding stuff etc.
|
||||
set status_chars = " *%A"
|
||||
set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?"
|
||||
set date_format = "%d.%m.%Y %H:%M"
|
||||
set sort = threads
|
||||
set sort_aux = reverse-last-date-received
|
||||
set uncollapse_jump
|
||||
set sort_re
|
||||
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
||||
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
||||
set send_charset = "utf-8:iso-8859-1:us-ascii"
|
||||
set charset = "utf-8"
|
||||
set arrow_cursor = "no" # Change `color indicator` depending
|
||||
|
||||
|
||||
# Pager View Options
|
||||
set pager_index_lines = 20 # Shows 10 lines of index when pager is active
|
||||
set pager_context = 3
|
||||
set pager_stop
|
||||
set menu_scroll
|
||||
set tilde
|
||||
unset markers
|
||||
|
||||
# Mailcal for attachments
|
||||
set mailcap_path = ~/.config/neomutt/mailcap
|
||||
set header_cache = "~/.cache/mutt"
|
||||
set message_cachedir = "~/.cache/mutt"
|
||||
|
||||
# Contact with khard
|
||||
set query_command = "khard email --parsable --search-in-source-files '%s'"
|
||||
|
||||
# Set preffered view modes
|
||||
auto_view text/html text/calendar application/ics # view html automatically
|
||||
alternative_order text/html text/plain text/enriched text/*
|
Binary file not shown.
67
neomutt/.config/offlineimap/config
Normal file
67
neomutt/.config/offlineimap/config
Normal file
@@ -0,0 +1,67 @@
|
||||
[general]
|
||||
accounts = bb_opytex, jb_opytex, ac_lyon
|
||||
pythonfile = ~/.config/offlineimap/offlineimap.py
|
||||
maxsyncaccounts = 1
|
||||
|
||||
[mbnames]
|
||||
enabled = yes
|
||||
filename = ~/.config/neomutt/mailboxes
|
||||
header = "mailboxes "
|
||||
peritem = "+%(accountname)s/%(foldername)s"
|
||||
sep = " "
|
||||
footer = "\n"
|
||||
|
||||
|
||||
[Account bb_opytex]
|
||||
localrepository = Local-bb_opytex
|
||||
remoterepository = Remote-bb_opytex
|
||||
autorefresh = 1
|
||||
quick = 10
|
||||
|
||||
[Repository Local-bb_opytex]
|
||||
type = Maildir
|
||||
localfolders = ~/.mail/bb_opytex
|
||||
sep = /
|
||||
|
||||
[Repository Remote-bb_opytex]
|
||||
type = IMAP
|
||||
remotehost = imap.mailfence.com
|
||||
remoteuser = Takanuva
|
||||
remotepasseval = get_pass("mail/mailfence/Takanuva")
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
[Account jb_opytex]
|
||||
localrepository = Local-jb_opytex
|
||||
remoterepository = Remote-jb_opytex
|
||||
autorefresh = 1
|
||||
quick = 10
|
||||
|
||||
[Repository Local-jb_opytex]
|
||||
type = Maildir
|
||||
localfolders = ~/.mail/jb_opytex
|
||||
sep = /
|
||||
|
||||
[Repository Remote-jb_opytex]
|
||||
type = IMAP
|
||||
remotehost = imap.mailfence.com
|
||||
remoteuser = margot_benjamin
|
||||
remotepasseval = get_pass("mail/jost_bertrand@opytex.org/margot_benjamin")
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
[Account ac_lyon]
|
||||
localrepository = Local-ac_lyon
|
||||
remoterepository = Remote-ac_lyon
|
||||
autorefresh = 1
|
||||
quick = 10
|
||||
|
||||
[Repository Local-ac_lyon]
|
||||
type = Maildir
|
||||
localfolders = ~/.mail/ac_lyon
|
||||
sep = /
|
||||
|
||||
[Repository Remote-ac_lyon]
|
||||
type = IMAP
|
||||
remotehost = mail.ac-lyon.fr
|
||||
remoteuser = bbertrand
|
||||
remotepasseval = get_pass("Prof/pronote/bbertrand")
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from subprocess import check_output
|
||||
|
||||
|
||||
def get_pass(path):
|
||||
return check_output("pass " + path, shell=True).splitlines()[0]
|
21
neomutt/.config/vdirsyncer/config
Normal file
21
neomutt/.config/vdirsyncer/config
Normal file
@@ -0,0 +1,21 @@
|
||||
[general]
|
||||
status_path = "~/.config/vdirsyncer/status/"
|
||||
|
||||
[pair cloud_opytex_contact]
|
||||
a = "cloud_opytex_contact_local"
|
||||
b = "cloud_opytex_contact_remote"
|
||||
collections = ["from a", "from b"]
|
||||
conflict_resolution = "b wins"
|
||||
|
||||
[storage cloud_opytex_contact_local]
|
||||
type = "filesystem"
|
||||
path = "~/.contacts/"
|
||||
fileext = ".vcf"
|
||||
|
||||
[storage cloud_opytex_contact_remote]
|
||||
type = "carddav"
|
||||
|
||||
# We can simplify this URL here as well. In theory it shouldn't matter.
|
||||
url = "https://cloud.poneyworld.net/remote.php/dav/addressbooks/users/lafrite/contacts/"
|
||||
username = "lafrite"
|
||||
password.fetch = ["command", "pass", "OVH/Panais/docker/cloud.poneyworld.net/lafrite"]
|
@@ -1,6 +1,6 @@
|
||||
auto-reload yes
|
||||
reload-time 30
|
||||
browser chromium
|
||||
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
|
||||
|
||||
|
@@ -3,6 +3,10 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw "Te
|
||||
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=UCWedHS9qKebauVIK2J7383g "Tech" "Underscore_"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9C07cryUrKzLuAzwITPA3A "SC2" "SC2HL"
|
||||
|
||||
@@ -22,16 +26,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!"
|
||||
|
||||
@@ -39,13 +50,19 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCP6qAy9q_Lkhzu2reZfun9g "Sk
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjHh3N6jUJKdrtTqNorpRhg "Ski" "Bon appetit"
|
||||
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=UCLXDNUOO3EQ80VmD9nQBHPg "???" "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=UCOk-gHyjcWZNj3Br4oxwh0A "Homelab" "Techno Tim"
|
||||
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=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code"
|
||||
|
@@ -1,18 +0,0 @@
|
||||
" Use completion-nvim in every buffer
|
||||
autocmd BufEnter * lua require'nvim-comp'.on_attach()
|
||||
|
||||
let g:completion_enable_snippet = 'UltiSnips'
|
||||
let g:completion_matching_strategy_list = ['exact', 'substring', 'fuzzy']
|
||||
|
||||
" Use <Tab> and <S-Tab> to navigate through popup menu
|
||||
" inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
||||
" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
||||
|
||||
"map <c-p> to manually trigger completion
|
||||
"imap <silent> <c-p> <Plug>(completion_trigger)
|
||||
|
||||
" Set completeopt to have a better completion experience
|
||||
set completeopt=menuone,noinsert,noselect
|
||||
|
||||
" Avoid showing message extra message when using completion
|
||||
set shortmess+=c
|
@@ -1,19 +0,0 @@
|
||||
" Better window navigation
|
||||
" nnoremap <C-h> <C-w>h
|
||||
" nnoremap <C-j> <C-w>j
|
||||
" nnoremap <C-k> <C-w>k
|
||||
" nnoremap <C-l> <C-w>l
|
||||
|
||||
" Align blocks of text and keep them selected
|
||||
vmap < <gv
|
||||
vmap > >gv
|
||||
|
||||
" Automatically spell check last error in insert mode
|
||||
inoremap <c-f> <c-g>u<Esc>[s1z=`]a<c-g>u
|
||||
|
||||
" Find files using Telescope command-line sugar.
|
||||
nnoremap <leader>e <cmd>Telescope find_files<cr>
|
||||
nnoremap <leader>g <cmd>Telescope live_grep<cr>
|
||||
nnoremap <leader>b <cmd>Telescope buffers<cr>
|
||||
nnoremap <leader>h <cmd>Telescope help_tags<cr>
|
||||
|
@@ -1,69 +0,0 @@
|
||||
" set leader key
|
||||
let g:mapleader = "\<Space>"
|
||||
|
||||
syntax enable " Enables syntax highlighing
|
||||
set hidden " Required to keep multiple buffers open multiple buffers
|
||||
set wrap " Display long lines as just one line
|
||||
set pumheight=10 " Makes popup menu smaller
|
||||
set encoding=utf-8 " The encoding displayed
|
||||
set fileencoding=utf-8 " The encoding written to file
|
||||
set ruler " Show the cursor position all the time
|
||||
set cmdheight=1 " More space for displaying messages
|
||||
set iskeyword+=- " treat dash separated words as a word text object"
|
||||
set mouse=a " Enable your mouse
|
||||
set t_Co=256 " Support 256 colors
|
||||
|
||||
set conceallevel=0 " So that I can see `` in markdown files
|
||||
set tabstop=4 " Insert 2 spaces for a tab
|
||||
set shiftwidth=4 " Change the number of space characters inserted for indentation
|
||||
set smarttab " Makes tabbing smarter will realize you have 2 vs 4
|
||||
set expandtab " Converts tabs to spaces
|
||||
set smartindent " Makes indenting smart
|
||||
set autoindent " Good auto indent
|
||||
set foldmethod=indent
|
||||
|
||||
set laststatus=2 " Always display the status line
|
||||
|
||||
set number " Line number
|
||||
set relativenumber " Relative line number
|
||||
set cursorline " Enable highlighting of the current line
|
||||
set showtabline=1 " show tabs only when there are some
|
||||
|
||||
set background=dark " tell vim what the background color looks like
|
||||
|
||||
set nobackup " This is recommended by coc
|
||||
set nowritebackup " This is recommended by coc
|
||||
set noswapfile
|
||||
|
||||
set updatetime=300 " Faster completion
|
||||
set timeoutlen=500 " By default timeoutlen is 1000 ms
|
||||
|
||||
set clipboard=unnamedplus " Copy paste between vim and everything else
|
||||
|
||||
set showmode " Display edition mode
|
||||
"set noshowmode " We don't need to see things like -- INSERT -- anymore
|
||||
|
||||
set incsearch " hightlight while searching
|
||||
set ignorecase " Ignore case while searching
|
||||
set smartcase " Override ignorecase if search patern contains upper case
|
||||
set wildmenu " Enable wildmenu
|
||||
|
||||
set spell " Enable spell checking
|
||||
set spelllang=fr,en
|
||||
|
||||
set nrformats+=alpha " letter concidered as number for Ctrl-A or Ctrl-X
|
||||
|
||||
"set autochdir " Your working directory will always be the same as your working directory
|
||||
|
||||
execute "set colorcolumn=" . join(range(81,335), ',')
|
||||
|
||||
colorscheme zenburn
|
||||
|
||||
" Set completeopt to have a better completion experience
|
||||
" set completeopt=menuone,noinsert,noselect
|
||||
" set completeopt=menuone,noselect
|
||||
|
||||
" Avoid showing message extra message when using completion
|
||||
set shortmess+=c
|
||||
|
||||
let g:indentLine_setConceal = 0
|
@@ -1,13 +1,13 @@
|
||||
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
|
||||
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)
|
||||
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true)
|
||||
end
|
||||
|
||||
local lsp_symbols = {
|
||||
@@ -38,10 +38,12 @@ local lsp_symbols = {
|
||||
TypeParameter = " (TypeParameter)",
|
||||
}
|
||||
|
||||
local cmp = require'cmp'
|
||||
cmp.setup{
|
||||
local status, cmp = pcall(require, "cmp")
|
||||
if (not status) then return end
|
||||
|
||||
cmp.setup {
|
||||
completion = {
|
||||
completeopt = "menuone,noinsert,noselect",
|
||||
completeopt = 'menuone,noinsert,noselect',
|
||||
},
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
@@ -49,9 +51,9 @@ cmp.setup{
|
||||
vim_item.kind = lsp_symbols[vim_item.kind]
|
||||
-- set a name for each source
|
||||
vim_item.menu = ({
|
||||
buffer = "[Buffer]",
|
||||
nvim_lsp = "[LSP]",
|
||||
vsnip = "[vSnip]",
|
||||
nvim_lsp = "[LSP]",
|
||||
buffer = "[Buffer]",
|
||||
path = "[Path]",
|
||||
spell = "[Spell]",
|
||||
})[entry.source.name]
|
||||
@@ -64,12 +66,12 @@ cmp.setup{
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
-- ["<cr>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Replace}),
|
||||
["<cr>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Insert}),
|
||||
["<cr>"] = cmp.mapping.confirm({ select = false, 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
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif vim.fn["vsnip#available"](1) == 1 then
|
||||
feedkey("<Plug>(vsnip-expand-or-jump)", "")
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
@@ -79,20 +81,53 @@ cmp.setup{
|
||||
end, { "i", "s" }),
|
||||
|
||||
["<S-Tab>"] = cmp.mapping(function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
feedkey("<C-p>", "n")
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif vim.fn["vsnip#jumpable"](-1) == 1 then
|
||||
feedkey("<Plug>(vsnip-jump-prev)", "")
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
source = {
|
||||
{ name = 'buffer' },
|
||||
sources = {
|
||||
{ name = 'vsnip' },
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'path' },
|
||||
{ name = 'spell' },
|
||||
}
|
||||
{
|
||||
name = 'buffer',
|
||||
keyword_length = 4,
|
||||
keyword_pattern = [[\d\@!\k\k*]],
|
||||
options = {
|
||||
-- keyword_pattern = [[\k\+]]-- for non ascii caracters
|
||||
keyword_pattern = [[\d\@!\k\k*]],
|
||||
}
|
||||
},
|
||||
-- { 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,
|
||||
},
|
||||
}
|
||||
|
||||
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline('/', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' },
|
||||
{ name = 'cmdline' }
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
vim.cmd [[autocmd FileType TelescopePrompt lua require('cmp').setup.buffer { enabled = false }]]
|
||||
vim.g.vsnip_snippet_dir = '~/.config/nvim/vsnips'
|
||||
|
8
nvim/.config/nvim/lua/config/autopairs.lua
Normal file
8
nvim/.config/nvim/lua/config/autopairs.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
local status, autopairs = pcall(require, "nvim-autopairs")
|
||||
if (not status) then return end
|
||||
|
||||
autopairs.setup{
|
||||
disable_filetype = { "TelescopePrompt" , "vim" },
|
||||
ignored_next_char = string.gsub([[ [%w%%%'%[%"%.] ]],"%s+", ""),
|
||||
}
|
||||
|
4
nvim/.config/nvim/lua/config/colorizer.lua
Normal file
4
nvim/.config/nvim/lua/config/colorizer.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
require'colorizer'.setup()
|
||||
|
1
nvim/.config/nvim/lua/config/gitsigns.lua
Normal file
1
nvim/.config/nvim/lua/config/gitsigns.lua
Normal file
@@ -0,0 +1 @@
|
||||
require('gitsigns').setup {}
|
6
nvim/.config/nvim/lua/config/indentblankline.lua
Normal file
6
nvim/.config/nvim/lua/config/indentblankline.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars:append("eol:↴")
|
||||
|
||||
require("indent_blankline").setup {
|
||||
show_end_of_line = true,
|
||||
}
|
214
nvim/.config/nvim/lua/config/lualine.lua
Normal file
214
nvim/.config/nvim/lua/config/lualine.lua
Normal file
@@ -0,0 +1,214 @@
|
||||
-- Eviline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
local lualine = require 'lualine'
|
||||
|
||||
-- Color table for highlights
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67'
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
|
||||
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = "",
|
||||
section_separators = "",
|
||||
-- theme = 'gruvbox',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. both are highlighted by c theme . so we
|
||||
-- are just setting default looks o statusline
|
||||
normal = {c = {fg = colors.fg, bg = colors.bg}},
|
||||
inactive = {c = {fg = colors.fg, bg = colors.bg}}
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- these will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_v = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
}
|
||||
}
|
||||
|
||||
-- inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[''] = colors.blue,
|
||||
v = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
s = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
r = colors.violet,
|
||||
rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
-- auto change color according to neovims mode
|
||||
vim.api.nvim_command(
|
||||
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
||||
return ''
|
||||
end,
|
||||
color = "lualinemode",
|
||||
left_padding = 0
|
||||
}
|
||||
|
||||
ins_left {
|
||||
"mode",
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- filesize component
|
||||
function()
|
||||
local function format_file_size(file)
|
||||
local size = vim.fn.getfsize(file)
|
||||
if size <= 0 then return '' end
|
||||
local sufixes = {'b', 'k', 'm', 'g'}
|
||||
local i = 1
|
||||
while size > 1024 do
|
||||
size = size / 1024
|
||||
i = i + 1
|
||||
end
|
||||
return string.format('%.1f%s', size, sufixes[i])
|
||||
end
|
||||
local file = vim.fn.expand('%:p')
|
||||
if string.len(file) == 0 then return '' end
|
||||
return format_file_size(file)
|
||||
end,
|
||||
condition = conditions.buffer_not_empty
|
||||
}
|
||||
ins_left {
|
||||
-- Lsp server name .
|
||||
function()
|
||||
local msg = 'No Active Lsp'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then return msg end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = ' LSP:',
|
||||
color = {fg = '#ffffff', gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = {'nvim_diagnostic'},
|
||||
symbols = {error = ' ', warn = ' ', info = ' '},
|
||||
color_error = colors.red,
|
||||
color_warn = colors.yellow,
|
||||
color_info = colors.cyan
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {function() return '%=' end}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
file_status = true,
|
||||
path = 1,
|
||||
condition = conditions.buffer_not_empty,
|
||||
color = {fg = colors.magenta, gui = 'bold'}
|
||||
}
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
upper = true, -- I'm not sure why it's upper case either ;)
|
||||
condition = conditions.hide_in_width,
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
upper = true,
|
||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
condition = conditions.check_git_workspace,
|
||||
color = {fg = colors.violet, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'diff',
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = {added = ' ', modified = '柳 ', removed = ' '},
|
||||
color_added = colors.green,
|
||||
color_modified = colors.orange,
|
||||
color_removed = colors.red,
|
||||
condition = conditions.hide_in_width
|
||||
}
|
||||
|
||||
ins_right {'location'}
|
||||
|
||||
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
1
nvim/.config/nvim/lua/config/notes.lua
Normal file
1
nvim/.config/nvim/lua/config/notes.lua
Normal file
@@ -0,0 +1 @@
|
||||
vim.g.notes_directories = {"~/Nextcloud/Notes/vim" }
|
28
nvim/.config/nvim/lua/config/null-ls.lua
Normal file
28
nvim/.config/nvim/lua/config/null-ls.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
||||
if not null_ls_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local mason_null_ls_status_ok, mason_null_ls = pcall(require, "mason-null-ls")
|
||||
if not null_ls_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
require("mason-null-ls").setup({
|
||||
})
|
||||
|
||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||
local formatting = null_ls.builtins.formatting
|
||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||
local diagnostics = null_ls.builtins.diagnostics
|
||||
|
||||
null_ls.setup {
|
||||
debug = false,
|
||||
sources = {
|
||||
formatting.prettier.with { extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } },
|
||||
formatting.black.with { extra_args = { "--fast" } },
|
||||
diagnostics.flake8,
|
||||
diagnostics.ansiblelint,
|
||||
diagnostics.yamllint,
|
||||
},
|
||||
}
|
158
nvim/.config/nvim/lua/config/telekasten.lua
Normal file
158
nvim/.config/nvim/lua/config/telekasten.lua
Normal file
@@ -0,0 +1,158 @@
|
||||
local status, telekasten = pcall(require, "telekasten")
|
||||
if (not status) then return end
|
||||
|
||||
local home = vim.fn.expand("~/Nextcloud/Documents/zettelkasten")
|
||||
|
||||
telekasten.setup{
|
||||
home = home,
|
||||
|
||||
-- if true, telekasten will be enabled when opening a note within the configured home
|
||||
take_over_my_home = true,
|
||||
|
||||
-- auto-set telekasten filetype: if false, the telekasten filetype will not be used
|
||||
-- and thus the telekasten syntax will not be loaded either
|
||||
auto_set_filetype = true,
|
||||
|
||||
-- dir names for special notes (absolute path or subdir name)
|
||||
dailies = home .. '/' .. 'daily',
|
||||
weeklies = home .. '/' .. 'weekly',
|
||||
templates = home .. '/' .. 'templates',
|
||||
|
||||
-- image (sub)dir for pasting
|
||||
-- dir name (absolute path or subdir name)
|
||||
-- or nil if pasted images shouldn't go into a special subdir
|
||||
image_subdir = "img",
|
||||
|
||||
-- markdown file extension
|
||||
extension = ".md",
|
||||
|
||||
-- following a link to a non-existing note will create it
|
||||
follow_creates_nonexisting = true,
|
||||
dailies_create_nonexisting = true,
|
||||
weeklies_create_nonexisting = true,
|
||||
|
||||
-- template for new notes (new_note, follow_link)
|
||||
-- set to `nil` or do not specify if you do not want a template
|
||||
template_new_note = home .. '/' .. 'templates/new_note.md',
|
||||
|
||||
-- template for newly created daily notes (goto_today)
|
||||
-- set to `nil` or do not specify if you do not want a template
|
||||
template_new_daily = home .. '/' .. 'templates/daily.md',
|
||||
|
||||
-- template for newly created weekly notes (goto_thisweek)
|
||||
-- set to `nil` or do not specify if you do not want a template
|
||||
template_new_weekly= home .. '/' .. 'templates/weekly.md',
|
||||
|
||||
-- image link style
|
||||
-- wiki: ![[image name]]
|
||||
-- markdown: 
|
||||
image_link_style = "markdown",
|
||||
|
||||
-- integrate with calendar-vim
|
||||
plug_into_calendar = true,
|
||||
calendar_opts = {
|
||||
-- calendar week display mode: 1 .. 'WK01', 2 .. 'WK 1', 3 .. 'KW01', 4 .. 'KW 1', 5 .. '1'
|
||||
weeknm = 4,
|
||||
-- use monday as first day of week: 1 .. true, 0 .. false
|
||||
calendar_monday = 1,
|
||||
-- calendar mark: where to put mark for marked days: 'left', 'right', 'left-fit'
|
||||
calendar_mark = 'left-fit',
|
||||
},
|
||||
|
||||
-- telescope actions behavior
|
||||
close_after_yanking = false,
|
||||
insert_after_inserting = true,
|
||||
|
||||
-- tag notation: '#tag', ':tag:', 'yaml-bare'
|
||||
tag_notation = "#tag",
|
||||
|
||||
-- command palette theme: dropdown (window) or ivy (bottom panel)
|
||||
command_palette_theme = "ivy",
|
||||
|
||||
-- tag list theme:
|
||||
-- get_cursor: small tag list at cursor; ivy and dropdown like above
|
||||
show_tags_theme = "ivy",
|
||||
|
||||
-- when linking to a note in subdir/, create a [[subdir/title]] link
|
||||
-- instead of a [[title only]] link
|
||||
subdirs_in_links = true,
|
||||
|
||||
-- template_handling
|
||||
-- What to do when creating a new note via `new_note()` or `follow_link()`
|
||||
-- to a non-existing note
|
||||
-- - prefer_new_note: use `new_note` template
|
||||
-- - smart: if day or week is detected in title, use daily / weekly templates (default)
|
||||
-- - always_ask: always ask before creating a note
|
||||
template_handling = "smart",
|
||||
|
||||
-- path handling:
|
||||
-- this applies to:
|
||||
-- - new_note()
|
||||
-- - new_templated_note()
|
||||
-- - follow_link() to non-existing note
|
||||
--
|
||||
-- it does NOT apply to:
|
||||
-- - goto_today()
|
||||
-- - goto_thisweek()
|
||||
--
|
||||
-- Valid options:
|
||||
-- - smart: put daily-looking notes in daily, weekly-looking ones in weekly,
|
||||
-- all other ones in home, except for notes/with/subdirs/in/title.
|
||||
-- (default)
|
||||
--
|
||||
-- - prefer_home: put all notes in home except for goto_today(), goto_thisweek()
|
||||
-- except for notes with subdirs/in/title.
|
||||
--
|
||||
-- - same_as_current: put all new notes in the dir of the current note if
|
||||
-- present or else in home
|
||||
-- except for notes/with/subdirs/in/title.
|
||||
new_note_location = "smart",
|
||||
|
||||
-- should all links be updated when a file is renamed
|
||||
rename_update_links = true,
|
||||
}
|
||||
|
||||
|
||||
-- Mapping helper
|
||||
local function map(mode, lhs, rhs, opts)
|
||||
local options = { noremap = true }
|
||||
if opts then
|
||||
options = vim.tbl_extend("force", options, opts)
|
||||
end
|
||||
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
||||
end
|
||||
|
||||
-- On hesitation, bring up the command panel
|
||||
map("n","<leader>z", ":lua require('telekasten').panel()<CR>")
|
||||
-- Function mappings
|
||||
map("n", "<leader>zf", ":lua require('telekasten').find_notes()<CR>")
|
||||
map("n", "<leader>zd", ":lua require('telekasten').find_daily_notes()<CR>")
|
||||
map("n", "<leader>zg", ":lua require('telekasten').search_notes()<CR>")
|
||||
map("n", "<leader>zz", ":lua require('telekasten').follow_link()<CR>")
|
||||
map("n", "<leader>zT", ":lua require('telekasten').goto_today()<CR>")
|
||||
map("n", "<leader>zW", ":lua require('telekasten').goto_thisweek()<CR>")
|
||||
map("n", "<leader>zw", ":lua require('telekasten').find_weekly_notes()<CR>")
|
||||
map("n", "<leader>zn", ":lua require('telekasten').new_note()<CR>")
|
||||
map("n", "<leader>zN", ":lua require('telekasten').new_templated_note()<CR>")
|
||||
map("n", "<leader>zy", ":lua require('telekasten').yank_notelink()<CR>")
|
||||
map("n", "<leader>zc", ":lua require('telekasten').show_calendar()<CR>")
|
||||
map("n", "<leader>zC", ":CalendarT<CR>")
|
||||
map("n", "<leader>zi", ":lua require('telekasten').paste_img_and_link()<CR>")
|
||||
map("n", "<leader>zt", ":lua require('telekasten').toggle_todo()<CR>")
|
||||
map("n", "<leader>zb", ":lua require('telekasten').show_backlinks()<CR>")
|
||||
map("n", "<leader>zF", ":lua require('telekasten').find_friends()<CR>")
|
||||
map("n", "<leader>zI", ":lua require('telekasten').insert_img_link({ i=true })<CR>")
|
||||
map("n", "<leader>zp", ":lua require('telekasten').preview_img()<CR>")
|
||||
map("n", "<leader>zm", ":lua require('telekasten').browse_media()<CR>")
|
||||
map("n", "<leader>za", ":lua require('telekasten').show_tags()<CR>")
|
||||
map("n", "<leader>#", ":lua require('telekasten').show_tags()<CR>")
|
||||
map("n", "<leader>zr", ":lua require('telekasten').rename_note()<CR>")
|
||||
|
||||
-- we could define [[ in **insert mode** to call insert link
|
||||
-- inoremap [[ <cmd>:lua require('telekasten').insert_link()<CR>
|
||||
-- alternatively: leader [
|
||||
map("i", "[[", "<cmd>:lua require('telekasten').insert_link({ i=true })<CR>")
|
||||
map("i", "<leader>zt", "<cmd>:lua require('telekasten').toggle_todo({ i=true })<CR>")
|
||||
map("i", "<leader>#", "<cmd>:lua require('telekasten').show_tags({i = true})<CR>")
|
||||
|
||||
|
99
nvim/.config/nvim/lua/config/telescope.lua
Normal file
99
nvim/.config/nvim/lua/config/telescope.lua
Normal file
@@ -0,0 +1,99 @@
|
||||
local status, telescope = pcall(require, "telescope")
|
||||
if (not status) then return end
|
||||
local builtin = require("telescope.builtin")
|
||||
|
||||
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
|
||||
|
||||
local fb_actions = require "telescope".extensions.file_browser.actions
|
||||
local function telescope_buffer_dir()
|
||||
return vim.fn.expand('%:p:h')
|
||||
end
|
||||
|
||||
telescope.setup {
|
||||
defaults = {
|
||||
buffer_previewer_maker = new_maker,
|
||||
file_ignore_patterns = { "**/*.pdf" },
|
||||
mappings = {
|
||||
n = {
|
||||
['<c-d>'] = require('telescope.actions').delete_buffer
|
||||
}, -- n
|
||||
i = {
|
||||
['<c-d>'] = require('telescope.actions').delete_buffer
|
||||
},
|
||||
},
|
||||
},
|
||||
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"
|
||||
},
|
||||
file_browser = {
|
||||
theme = "dropdown",
|
||||
-- disables netrw and use telescope-file-browser in its place
|
||||
hijack_netrw = true,
|
||||
mappings = {
|
||||
["n"] = {
|
||||
-- your custom normal mode mappings
|
||||
["h"] = fb_actions.goto_parent_dir,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
telescope.load_extension('fzf')
|
||||
telescope.load_extension('file_browser')
|
||||
|
||||
|
||||
-- keymaps
|
||||
vim.keymap.set('n', '<leader>e',
|
||||
function()
|
||||
builtin.find_files({
|
||||
})
|
||||
end)
|
||||
vim.keymap.set('n', '<leader>g', function()
|
||||
builtin.live_grep()
|
||||
end)
|
||||
vim.keymap.set('n', '<leader>b', function()
|
||||
builtin.buffers()
|
||||
end)
|
||||
vim.keymap.set('n', '<leader>h', function()
|
||||
builtin.resume()
|
||||
end)
|
||||
-- vim.keymap.set('n', '<leader>d', function()
|
||||
-- builtin.diagnostics()
|
||||
-- end)
|
||||
vim.keymap.set("n", "<leader>fb", function()
|
||||
telescope.extensions.file_browser.file_browser({
|
||||
path = "%:p:h",
|
||||
cwd = telescope_buffer_dir(),
|
||||
respect_gitignore = false,
|
||||
hidden = true,
|
||||
grouped = true,
|
||||
previewer = false,
|
||||
initial_mode = "normal",
|
||||
layout_config = { height = 40 }
|
||||
})
|
||||
end)
|
17
nvim/.config/nvim/lua/config/treesitter.lua
Normal file
17
nvim/.config/nvim/lua/config/treesitter.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
local status, ts = pcall(require, "nvim-treesitter.configs")
|
||||
if (not status) then return end
|
||||
|
||||
ts.setup {
|
||||
-- One of "all", "maintained" (parsers with maintainers), or a list of languages
|
||||
ensure_installed = {"python", "css", "html", "lua", "javascript", "vue", "c", "markdown", "rst", "cpp"},
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
disable = { "python", },
|
||||
}
|
||||
}
|
||||
-- vim.opt.foldmethod = "expr"
|
||||
-- vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
@@ -1,22 +1,5 @@
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
vim.g.vimtex_compiler_latex = {}
|
||||
vim.g.vimtex_compiler_latex["backend"] = 'nvim'
|
||||
|
||||
vim.g.vimtex_compiler_latex['backend'] = 'nvim'
|
||||
vim.g.vimtex_compiler_latex['background'] = 1
|
||||
vim.g.vimtex_compiler_latex[ 'build_dir'] = ''
|
||||
vim.g.vimtex_compiler_latex[ 'callback'] = 0
|
||||
vim.g.vimtex_compiler_latex[ 'continuous'] = 1
|
||||
vim.g.vimtex_compiler_latex[ 'options'] = { '-pdf',
|
||||
'-verbose',
|
||||
'-file-line-error',
|
||||
'-synctex=1',
|
||||
'-interaction=nonstopmode',
|
||||
'-silent',
|
||||
'-shell-escape',
|
||||
}
|
||||
|
||||
vim.g.vimtex_view_method = 'zathura'
|
||||
|
||||
-- Les fichiers sty et cls sont vus comme des fichiers tex
|
||||
|
55
nvim/.config/nvim/lua/config/zk.lua
Normal file
55
nvim/.config/nvim/lua/config/zk.lua
Normal file
@@ -0,0 +1,55 @@
|
||||
local zk_status_ok, zk = pcall(require, "zk")
|
||||
if not zk_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
zk.setup({
|
||||
picker = "telescope",
|
||||
lsp = {
|
||||
-- `config` is passed to `vim.lsp.start_client(config)`
|
||||
config = {
|
||||
cmd = { "zk", "lsp" },
|
||||
name = "zk",
|
||||
-- on_attach = ...
|
||||
-- etc, see `:h vim.lsp.start_client()`
|
||||
},
|
||||
|
||||
-- automatically attach buffers in a zk notebook that match the given filetypes
|
||||
auto_attach = {
|
||||
enabled = true,
|
||||
filetypes = { "markdown" },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
local opts = { noremap=true, silent=false }
|
||||
|
||||
-- Create a new note after asking for its title.
|
||||
vim.api.nvim_set_keymap("n", "<leader>zs", "<Cmd>ZkNew { title = vim.fn.input('Title (slipbox): '), dir = 'slipbox'}<CR>", opts)
|
||||
vim.api.nvim_set_keymap("v", "<leader>zs", ":'<,'>ZkNewFromTitleSelection { dir = 'slipbox'}<CR>", opts)
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<leader>zi", "<Cmd>ZkNew { title = vim.fn.input('Title (inbox): '), dir = 'inbox'}<CR>", opts)
|
||||
vim.api.nvim_set_keymap("v", "<leader>zi", ":'<,'>ZkNewFromTitleSelection { dir = 'inbox'}<CR>", opts)
|
||||
vim.api.nvim_set_keymap("n", "<leader>zh", "<Cmd>ZkNew { title = vim.fn.input('Title (hubs): '), dir = 'hubs'}<CR>", opts)
|
||||
|
||||
-- Open notes.
|
||||
vim.api.nvim_set_keymap("n", "<leader>zo", "<Cmd>ZkNotes { sort = { 'modified' } }<CR>", opts)
|
||||
-- Open notes associated with the selected tags.
|
||||
vim.api.nvim_set_keymap("n", "<leader>zt", "<Cmd>ZkTags<CR>", opts)
|
||||
|
||||
-- Search for the notes matching a given query.
|
||||
vim.api.nvim_set_keymap("n", "<leader>zf", "<Cmd>ZkNotes { sort = { 'modified' }, match = vim.fn.input('Search: ') }<CR>", opts)
|
||||
-- Search for the notes matching the current visual selection.
|
||||
vim.api.nvim_set_keymap("v", "<leader>zf", ":'<,'>ZkMatch<CR>", opts)
|
||||
|
||||
-- Open notes linking to the current buffer.
|
||||
vim.api.nvim_set_keymap("n", "<leader>zb", "<Cmd>ZkBacklinks<CR>", opts)
|
||||
-- Alternative for backlinks using pure LSP and showing the source context.
|
||||
--map('n', '<leader>zb', '<Cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
-- Open notes linked by the current buffer.
|
||||
vim.api.nvim_set_keymap("n", "<leader>zl", "<Cmd>ZkLinks<CR>", opts)
|
||||
|
||||
-- Preview a linked note.
|
||||
vim.api.nvim_set_keymap("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||
-- Open the code actions for a visual selection.
|
||||
vim.api.nvim_set_keymap("v", "<leader>za", ":'<,'>lua vim.lsp.buf.code_action()<CR>", opts)
|
@@ -1,6 +1,7 @@
|
||||
require("mason").setup()
|
||||
require("mason-lspconfig").setup()
|
||||
|
||||
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)
|
||||
@@ -21,37 +22,42 @@ local on_attach = function(client, bufnr)
|
||||
-- Rename
|
||||
buf_set_keymap('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
|
||||
-- je sais pas ce c'est que ces workspaces
|
||||
buf_set_keymap('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||
buf_set_keymap('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||
buf_set_keymap('n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<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.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
||||
buf_set_keymap('n', '<leader>d', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
-- Cycle over diagnostics
|
||||
buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
||||
buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
||||
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.lsp.diagnostic.set_loclist()<CR>', opts)
|
||||
buf_set_keymap("n", "<leader>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||
buf_set_keymap('n', '<leader>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||
buf_set_keymap("n", "<leader>f", "<cmd>lua vim.lsp.buf.format()<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', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<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" }
|
||||
local servers = {
|
||||
"texlab",
|
||||
"pyright",
|
||||
"vuels",
|
||||
"tsserver",
|
||||
"html",
|
||||
"lua_ls",
|
||||
"ansiblels",
|
||||
"arduino_language_server",
|
||||
"clangd",
|
||||
}
|
||||
for _, lsp in ipairs(servers) do
|
||||
nvim_lsp[lsp].setup {
|
||||
on_attach = on_attach,
|
||||
flags = {
|
||||
debounce_text_changes = 150,
|
||||
}
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
@@ -60,3 +66,12 @@ nvim_lsp.vuels.setup{
|
||||
client.resolved_capabilities.document_formatting = true
|
||||
end;
|
||||
}
|
||||
|
||||
nvim_lsp.ltex.setup{
|
||||
cmd = { "ltex-ls" },
|
||||
settings = {
|
||||
ltex = {
|
||||
language = "fr",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -15,8 +15,12 @@ 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)
|
||||
|
||||
-- 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>', {})
|
||||
-- Centering after moving half page or search
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
-- Move block on visual mode
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
|
@@ -1,74 +1,110 @@
|
||||
-- Only required if you have packer configured as `opt`
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
local fn = vim.fn
|
||||
|
||||
return require('packer').startup(function()
|
||||
-- Automatically install packer
|
||||
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
PACKER_BOOTSTRAP = fn.system {
|
||||
"git",
|
||||
"clone",
|
||||
"--depth",
|
||||
"1",
|
||||
"https://github.com/wbthomason/packer.nvim",
|
||||
install_path,
|
||||
}
|
||||
print "Installing packer close and reopen Neovim..."
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
end
|
||||
|
||||
-- Autocommand that reloads neovim whenever you save the plugins.lua file
|
||||
vim.cmd [[
|
||||
augroup packer_user_config
|
||||
autocmd!
|
||||
autocmd BufWritePost plugins.lua source <afile> | PackerSync
|
||||
augroup end
|
||||
]]
|
||||
|
||||
-- Use a protected call so we don't error out on first use
|
||||
local status_ok, packer = pcall(require, "packer")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
-- Have packer use a popup window
|
||||
packer.init {
|
||||
display = {
|
||||
open_fn = function()
|
||||
return require("packer.util").float { border = "rounded" }
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
return packer.startup(function(use)
|
||||
-- Packer can manage itself
|
||||
use 'wbthomason/packer.nvim'
|
||||
use 'morhetz/gruvbox'
|
||||
|
||||
-- Status line
|
||||
use {
|
||||
'hoob3rt/lualine.nvim',
|
||||
config = function ()
|
||||
require('lualine').setup{
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = 'gruvbox',
|
||||
component_separators = {'', ''},
|
||||
section_separators = {'', ''},
|
||||
disabled_filetypes = {}
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
lualine_b = {'branch'},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {
|
||||
{ 'diagnostics', sources = {"nvim_lsp"}, symbols = {error = ' ', warn = ' ', info = ' ', hint = ' '} },
|
||||
'encoding',
|
||||
'filetype'
|
||||
},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'location'},
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
},
|
||||
tabline = {},
|
||||
extensions = {}
|
||||
}
|
||||
end
|
||||
config = [[require('config.lualine')]],
|
||||
}
|
||||
|
||||
use 'tpope/vim-fugitive'
|
||||
use 'mhinz/vim-signify'
|
||||
-- use 'mhinz/vim-signify'
|
||||
use {
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config = [[require('config.gitsigns')]],
|
||||
}
|
||||
|
||||
use 'tpope/vim-surround'
|
||||
use 'tpope/vim-repeat'
|
||||
use 'tpope/vim-abolish'
|
||||
|
||||
use 'neovim/nvim-lspconfig'
|
||||
use {
|
||||
"hrsh7th/nvim-cmp",
|
||||
"williamboman/mason.nvim",
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
'neovim/nvim-lspconfig',
|
||||
requires = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
}
|
||||
}
|
||||
use {
|
||||
'hrsh7th/nvim-cmp',
|
||||
event = 'InsertEnter',
|
||||
config = [[require('completion')]],
|
||||
requires = {
|
||||
-- 'hrsh7th/vim-vsnip-integ',
|
||||
'rafamadriz/friendly-snippets',
|
||||
'hrsh7th/vim-vsnip',
|
||||
'hrsh7th/vim-vsnip-integ',
|
||||
-- 'rafamadriz/friendly-snippets',
|
||||
},
|
||||
}
|
||||
use {"hrsh7th/vim-vsnip", after = "nvim-cmp"}
|
||||
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 { '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 { 'hrsh7th/cmp-cmdline', after = 'nvim-cmp' }
|
||||
-- use {'f3fora/cmp-spell', after = 'nvim-cmp'}
|
||||
|
||||
-- for formatters and linters
|
||||
use {
|
||||
"jose-elias-alvarez/null-ls.nvim",
|
||||
config = [[require('config.null-ls')]],
|
||||
requires = {
|
||||
"jayp0521/mason-null-ls.nvim"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
use 'nvim-lua/popup.nvim'
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
requires = { {'nvim-lua/plenary.nvim'} }
|
||||
config = [[require('config.telescope')]],
|
||||
requires = { 'nvim-lua/plenary.nvim' }
|
||||
}
|
||||
|
||||
use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
|
||||
use {
|
||||
"nvim-telescope/telescope-file-browser.nvim"
|
||||
}
|
||||
|
||||
use {
|
||||
@@ -76,11 +112,51 @@ return require('packer').startup(function()
|
||||
config = [[require('config.vimtex')]],
|
||||
}
|
||||
|
||||
-- Highlight on Yank
|
||||
-- Highlight on Yank
|
||||
use 'machakann/vim-highlightedyank'
|
||||
-- Autoclose parenthesis
|
||||
use 'jiangmiao/auto-pairs'
|
||||
-- use 'jiangmiao/auto-pairs'
|
||||
use {
|
||||
'windwp/nvim-autopairs',
|
||||
config = [[ require('config.autopairs') ]]
|
||||
}
|
||||
|
||||
use 'kyazdani42/nvim-web-devicons'
|
||||
|
||||
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')]],
|
||||
}
|
||||
|
||||
use {
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
config = [[require('config.indentblankline')]]
|
||||
}
|
||||
|
||||
use {
|
||||
"mickael-menu/zk-nvim",
|
||||
config = [[require('config.zk')]]
|
||||
}
|
||||
|
||||
-- use {
|
||||
-- 'renerocksai/telekasten.nvim',
|
||||
-- requires = {
|
||||
-- 'nvim-telescope/telescope.nvim',
|
||||
-- 'nvim-lua/plenary.nvim',
|
||||
-- 'renerocksai/calendar-vim'
|
||||
-- },
|
||||
-- config = [[require('config.telekasten')]]
|
||||
-- }
|
||||
|
||||
if PACKER_BOOTSTRAP then
|
||||
require("packer").sync()
|
||||
end
|
||||
end)
|
||||
|
@@ -26,7 +26,7 @@ opt.cursorline = true -- highlight current line
|
||||
opt.ignorecase = true -- Ignore case on search
|
||||
opt.smartcase = true -- ignore lowercse for the whoel pattern
|
||||
|
||||
-- opt.completeopt = 'menu,noselect,noinsert' -- completion options
|
||||
opt.completeopt = 'menuone,noselect,noinsert' -- completion options
|
||||
|
||||
opt.spell = true
|
||||
opt.spelllang = {'fr', 'en'}
|
||||
@@ -49,3 +49,7 @@ exec([[
|
||||
]], false)
|
||||
|
||||
cmd('colorscheme gruvbox')
|
||||
|
||||
|
||||
-- Python 3
|
||||
g.python3_host_prog="~/.venv/nvim/bin/python"
|
||||
|
@@ -1,10 +0,0 @@
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'wombat',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ],
|
||||
\ [ 'gitbranch', 'readonly', 'relativepath', 'modified'] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'gitbranch': 'FugitiveHead'
|
||||
\ },
|
||||
\ }
|
@@ -1,101 +0,0 @@
|
||||
let g:compe = {}
|
||||
let g:compe.enabled = v:true
|
||||
let g:compe.autocomplete = v:true
|
||||
let g:compe.debug = v:false
|
||||
let g:compe.min_length = 1
|
||||
let g:compe.preselect = 'enable'
|
||||
let g:compe.throttle_time = 80
|
||||
let g:compe.source_timeout = 200
|
||||
let g:compe.resolve_timeout = 800
|
||||
let g:compe.incomplete_delay = 400
|
||||
let g:compe.max_abbr_width = 100
|
||||
let g:compe.max_kind_width = 100
|
||||
let g:compe.max_menu_width = 100
|
||||
let g:compe.documentation = v:true
|
||||
|
||||
let g:compe.source = {}
|
||||
let g:compe.source.path = v:true
|
||||
let g:compe.source.buffer = v:true
|
||||
let g:compe.source.calc = v:true
|
||||
let g:compe.source.nvim_lsp = v:true
|
||||
let g:compe.source.nvim_lua = v:true
|
||||
let g:compe.source.vsnip = v:true
|
||||
let g:compe.source.ultisnips = v:true
|
||||
let g:compe.source.luasnip = v:true
|
||||
let g:compe.source.emoji = v:false
|
||||
|
||||
" NOTE: You can use other key to expand snippet.
|
||||
|
||||
|
||||
" Expand
|
||||
imap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
|
||||
smap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
|
||||
|
||||
" Expand or jump
|
||||
imap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
|
||||
smap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
|
||||
|
||||
" Jump forward or backward
|
||||
imap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
|
||||
smap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
|
||||
imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
|
||||
smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
|
||||
|
||||
" Select or cut text to use as $TM_SELECTED_TEXT in the next snippet.
|
||||
" See https://github.com/hrsh7th/vim-vsnip/pull/50
|
||||
nmap s <Plug>(vsnip-select-text)
|
||||
xmap s <Plug>(vsnip-select-text)
|
||||
nmap S <Plug>(vsnip-cut-text)
|
||||
xmap S <Plug>(vsnip-cut-text)
|
||||
|
||||
" " If you want to use snippet for multiple filetypes, you can `g:vsnip_filetypes` for it.
|
||||
" let g:vsnip_filetypes = {}
|
||||
" let g:vsnip_filetypes.javascriptreact = ['javascript']
|
||||
" let g:vsnip_filetypes.typescriptreact = ['typescript']
|
||||
|
||||
lua << EOF
|
||||
local t = function(str)
|
||||
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
||||
end
|
||||
|
||||
local check_back_space = function()
|
||||
local col = vim.fn.col('.') - 1
|
||||
if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
-- Use (s-)tab to:
|
||||
--- move to prev/next item in completion menuone
|
||||
--- jump to prev/next snippet's placeholder
|
||||
_G.tab_complete = function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
return t "<C-n>"
|
||||
elseif check_back_space() then
|
||||
return t "<Tab>"
|
||||
else
|
||||
return vim.fn['compe#complete']()
|
||||
end
|
||||
end
|
||||
_G.s_tab_complete = function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
return t "<C-p>"
|
||||
else
|
||||
return t "<S-Tab>"
|
||||
end
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
||||
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
||||
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
||||
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
||||
|
||||
--This line is important for auto-import
|
||||
vim.api.nvim_set_keymap('i', '<cr>', 'compe#confirm("<cr>")', { expr = true })
|
||||
vim.api.nvim_set_keymap('i', '<c-space>', 'compe#complete()', { expr = true })
|
||||
EOF
|
||||
|
||||
let g:vsnip_snippet_dir = expand('~/.config/nvim/vsnips')
|
||||
|
@@ -1,48 +0,0 @@
|
||||
" auto-install vim-plug
|
||||
if empty(glob('~/.config/nvim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
|
||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
"autocmd VimEnter * PlugInstall
|
||||
"autocmd VimEnter * PlugInstall | source $MYVIMRC
|
||||
endif
|
||||
|
||||
call plug#begin('~/.config/nvim/autoload/plugged')
|
||||
|
||||
Plug 'jnurmine/Zenburn'
|
||||
Plug 'itchyny/lightline.vim'
|
||||
|
||||
"Plug 'tpope/vim-sensible'
|
||||
Plug 'tpope/vim-fugitive'
|
||||
Plug 'mhinz/vim-signify'
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'tpope/vim-repeat'
|
||||
|
||||
Plug 'junegunn/goyo.vim'
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
Plug 'Yggdroot/indentLine'
|
||||
|
||||
" Plug 'SirVer/ultisnips'
|
||||
" Plug 'honza/vim-snippets'
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
Plug 'hrsh7th/nvim-compe'
|
||||
Plug 'hrsh7th/vim-vsnip'
|
||||
Plug 'hrsh7th/vim-vsnip-integ'
|
||||
Plug 'rafamadriz/friendly-snippets'
|
||||
|
||||
" Plug 'nvim-lua/completion-nvim'
|
||||
|
||||
Plug 'nvim-lua/popup.nvim'
|
||||
Plug 'nvim-lua/plenary.nvim'
|
||||
Plug 'nvim-telescope/telescope.nvim'
|
||||
|
||||
Plug 'lervag/vimtex'
|
||||
|
||||
" Highlight on Yank
|
||||
Plug 'machakann/vim-highlightedyank'
|
||||
" Autoclose parenthesis
|
||||
" Plug 'cohama/lexima.vim'
|
||||
Plug 'jiangmiao/auto-pairs'
|
||||
|
||||
" Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||
|
||||
call plug#end()
|
@@ -1,25 +0,0 @@
|
||||
let maplocalleader = "\<Space>"
|
||||
|
||||
let g:tex_conceal = ""
|
||||
set conceallevel=0
|
||||
|
||||
let g:vimtex_compiler_latexmk = {
|
||||
\ 'backend' : 'nvim',
|
||||
\ 'background' : 1,
|
||||
\ 'build_dir' : '',
|
||||
\ 'callback' : 0,
|
||||
\ 'continuous' : 1,
|
||||
\ 'options' : [
|
||||
\ '-pdf',
|
||||
\ '-verbose',
|
||||
\ '-file-line-error',
|
||||
\ '-synctex=1',
|
||||
\ '-interaction=nonstopmode',
|
||||
\ '-silent',
|
||||
\ '-shell-escape',
|
||||
\ ],
|
||||
\}
|
||||
let g:vimtex_view_method = 'zathura'
|
||||
|
||||
" Les fichiers sty et cls sont vus comme des fichiers tex
|
||||
autocmd BufRead,BufNewFile *.{sty,cls} setlocal syntax=tex
|
18
nvim/.config/nvim/vsnips/global.json
Normal file
18
nvim/.config/nvim/vsnips/global.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
850
nvim/.config/nvim/vsnips/html.json
Normal file
850
nvim/.config/nvim/vsnips/html.json
Normal file
@@ -0,0 +1,850 @@
|
||||
{
|
||||
"doctype": {
|
||||
"prefix": "doctype",
|
||||
"body": [
|
||||
"<!DOCTYPE>",
|
||||
"$1"
|
||||
],
|
||||
"description": "HTML - Defines the document type",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"a": {
|
||||
"prefix": "a",
|
||||
"body": "<a href=\"$1\">$2</a>$3",
|
||||
"description": "HTML - Defines a hyperlink",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"abbr": {
|
||||
"prefix": "abbr",
|
||||
"body": "<abbr title=\"$1\">$2</abbr>$3",
|
||||
"description": "HTML - Defines an abbreviation",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"address": {
|
||||
"prefix": "address",
|
||||
"body": [
|
||||
"<address>",
|
||||
"$1",
|
||||
"</address>"
|
||||
],
|
||||
"description": "HTML - Defines an address element",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"area": {
|
||||
"prefix": "area",
|
||||
"body": "<area shape=\"$1\" coords=\"$2\" href=\"$3\" alt=\"$4\">$5",
|
||||
"description": "HTML - Defines an area inside an image map",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"article": {
|
||||
"prefix": "article",
|
||||
"body": [
|
||||
"<article>",
|
||||
"\t$1",
|
||||
"</article>"
|
||||
],
|
||||
"description": "HTML - Defines an article",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"aside": {
|
||||
"prefix": "aside",
|
||||
"body": [
|
||||
"<aside>",
|
||||
"\t$1",
|
||||
"</aside>$2"
|
||||
],
|
||||
"description": "HTML - Defines content aside from the page content",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"audio": {
|
||||
"prefix": "audio",
|
||||
"body": [
|
||||
"<audio controls>",
|
||||
"\t$1",
|
||||
"</audio>"
|
||||
],
|
||||
"description": "HTML - Defines sounds content",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"b": {
|
||||
"prefix": "b",
|
||||
"body": "<b>$1</b>$2",
|
||||
"description": "HTML - Defines bold text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"base": {
|
||||
"prefix": "base",
|
||||
"body": "<base href=\"$1\" target=\"$2\">$3",
|
||||
"description": "HTML - Defines a base URL for all the links in a page",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"bdi": {
|
||||
"prefix": "bdi",
|
||||
"body": "<bdi>$1</bdi>$2",
|
||||
"description": "HTML - Used to isolate text that is of unknown directionality",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"bdo": {
|
||||
"prefix": "bdo",
|
||||
"body": [
|
||||
"<bdo dir=\"$1\">",
|
||||
"$2",
|
||||
"</bdo>"
|
||||
],
|
||||
"description": "HTML - Defines the direction of text display",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"big": {
|
||||
"prefix": "big",
|
||||
"body": "<big>$1</big>$2",
|
||||
"description": "HTML - Used to make text bigger",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"blockquote": {
|
||||
"prefix": "blockquote",
|
||||
"body": [
|
||||
"<blockquote cite=\"$2\">",
|
||||
"\t$1",
|
||||
"</blockquote>"
|
||||
],
|
||||
"description": "HTML - Defines a long quotation",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"body": {
|
||||
"prefix": "body",
|
||||
"body": [
|
||||
"<body>",
|
||||
"\t$1",
|
||||
"</body>"
|
||||
],
|
||||
"description": "HTML - Defines the body element",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"br": {
|
||||
"prefix": "br",
|
||||
"body": "<br>",
|
||||
"description": "HTML - Inserts a single line break",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"button": {
|
||||
"prefix": "button",
|
||||
"body": "<button type=\"$1\">$2</button>$3",
|
||||
"description": "HTML - Defines a push button",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"canvas": {
|
||||
"prefix": "canvas",
|
||||
"body": "<canvas id=\"$1\">$2</canvas>$3",
|
||||
"description": "HTML - Defines graphics",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"caption": {
|
||||
"prefix": "caption",
|
||||
"body": "<caption>$1</caption>$2",
|
||||
"description": "HTML - Defines a table caption",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"cite": {
|
||||
"prefix": "cite",
|
||||
"body": "<cite>$1</cite>$2",
|
||||
"description": "HTML - Defines a citation",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"code": {
|
||||
"prefix": "code",
|
||||
"body": "<code>$1</code>$2",
|
||||
"description": "HTML - Defines computer code text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"col": {
|
||||
"prefix": "col",
|
||||
"body": "<col>$2",
|
||||
"description": "HTML - Defines attributes for table columns",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"colgroup": {
|
||||
"prefix": "colgroup",
|
||||
"body": [
|
||||
"<colgroup>",
|
||||
"\t$1",
|
||||
"</colgroup>"
|
||||
],
|
||||
"description": "HTML - Defines group of table columns",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"command": {
|
||||
"prefix": "command",
|
||||
"body": "<command>$1</command>$2",
|
||||
"description": "HTML - Defines a command button [not supported]",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"datalist": {
|
||||
"prefix": "datalist",
|
||||
"body": [
|
||||
"<datalist>",
|
||||
"\t$1",
|
||||
"</datalist>"
|
||||
],
|
||||
"description": "HTML - Defines a dropdown list",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"dd": {
|
||||
"prefix": "dd",
|
||||
"body": "<dd>$1</dd>$2",
|
||||
"description": "HTML - Defines a definition description",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"del": {
|
||||
"prefix": "del",
|
||||
"body": "<del>$1</del>$2",
|
||||
"description": "HTML - Defines deleted text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"details": {
|
||||
"prefix": "details",
|
||||
"body": [
|
||||
"<details>",
|
||||
"\t$1",
|
||||
"</details>"
|
||||
],
|
||||
"description": "HTML - Defines details of an element",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"dialog": {
|
||||
"prefix": "dialog",
|
||||
"body": "<dialog>$1</dialog>$2",
|
||||
"description": "HTML - Defines a dialog (conversation)",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"dfn": {
|
||||
"prefix": "dfn",
|
||||
"body": "<dfn>$1</dfn>$2",
|
||||
"description": "HTML - Defines a definition term",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"div": {
|
||||
"prefix": "div",
|
||||
"body": [
|
||||
"<div>",
|
||||
"\t$1",
|
||||
"</div>"
|
||||
],
|
||||
"description": "HTML - Defines a section in a document",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"dl": {
|
||||
"prefix": "dl",
|
||||
"body": [
|
||||
"<dl>",
|
||||
"\t$1",
|
||||
"</dl>"
|
||||
],
|
||||
"description": "HTML - Defines a definition list",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"dt": {
|
||||
"prefix": "dt",
|
||||
"body": "<dt>$1</dt>$2",
|
||||
"description": "HTML - Defines a definition term",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"em": {
|
||||
"prefix": "em",
|
||||
"body": "<em>$1</em>$2",
|
||||
"description": "HTML - Defines emphasized text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"embed": {
|
||||
"prefix": "embed",
|
||||
"body": "<embed src=\"$1\">$2",
|
||||
"description": "HTML - Defines external interactive content ot plugin",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"fieldset": {
|
||||
"prefix": "fieldset",
|
||||
"body": [
|
||||
"<fieldset>",
|
||||
"\t$1",
|
||||
"</fieldset>"
|
||||
],
|
||||
"description": "HTML - Defines a fieldset",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"figcaption": {
|
||||
"prefix": "figcaption",
|
||||
"body": "<figcaption>$1</figcaption>$2",
|
||||
"description": "HTML - Defines a caption for a figure",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"figure": {
|
||||
"prefix": "figure",
|
||||
"body": [
|
||||
"<figure>",
|
||||
"\t$1",
|
||||
"</figure>"
|
||||
],
|
||||
"description": "HTML - Defines a group of media content, and their caption",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"footer": {
|
||||
"prefix": "footer",
|
||||
"body": [
|
||||
"<footer>",
|
||||
"\t$1",
|
||||
"</footer>"
|
||||
],
|
||||
"description": "HTML - Defines a footer for a section or page",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"form": {
|
||||
"prefix": "form",
|
||||
"body": [
|
||||
"<form>",
|
||||
"\t$1",
|
||||
"</form>"
|
||||
],
|
||||
"description": "HTML - Defines a form",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"h1": {
|
||||
"prefix": "h1",
|
||||
"body": "<h1>$1</h1>$2",
|
||||
"description": "HTML - Defines header 1",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"h2": {
|
||||
"prefix": "h2",
|
||||
"body": "<h2>$1</h2>$2",
|
||||
"description": "HTML - Defines header 2",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"h3": {
|
||||
"prefix": "h3",
|
||||
"body": "<h3>$1</h3>$2",
|
||||
"description": "HTML - Defines header 3",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"h4": {
|
||||
"prefix": "h4",
|
||||
"body": "<h4>$1</h4>$2",
|
||||
"description": "HTML - Defines header 4",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"h5": {
|
||||
"prefix": "h5",
|
||||
"body": "<h5>$1</h5>$2",
|
||||
"description": "HTML - Defines header 5",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"h6": {
|
||||
"prefix": "h6",
|
||||
"body": "<h6>$1</h6>$2",
|
||||
"description": "HTML - Defines header 6",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"head": {
|
||||
"prefix": "head",
|
||||
"body": [
|
||||
"<head>",
|
||||
"\t$1",
|
||||
"</head>"
|
||||
],
|
||||
"description": "HTML - Defines information about the document",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"header": {
|
||||
"prefix": "header",
|
||||
"body": [
|
||||
"<header>",
|
||||
"\t$1",
|
||||
"</header>"
|
||||
],
|
||||
"description": "HTML - Defines a header for a section of page",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"hgroup": {
|
||||
"prefix": "hgroup",
|
||||
"body": [
|
||||
"<hgroup>",
|
||||
"\t$1",
|
||||
"</hgroup>"
|
||||
],
|
||||
"description": "HTML - Defines information about a section in a document",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"hr": {
|
||||
"prefix": "hr",
|
||||
"body": "<hr>",
|
||||
"description": "HTML - Defines a horizontal rule",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"html": {
|
||||
"prefix": "html",
|
||||
"body": [
|
||||
"<html>",
|
||||
"\t$1",
|
||||
"</html>"
|
||||
],
|
||||
"description": "HTML - Defines an html document",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"html5": {
|
||||
"prefix": "html5",
|
||||
"body": [
|
||||
"<!DOCTYPE html>",
|
||||
"<html lang=\"$1en\">",
|
||||
"\t<head>",
|
||||
"\t\t<title>$2</title>",
|
||||
"\t\t<meta charset=\"UTF-8\">",
|
||||
"\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">",
|
||||
"\t\t<link href=\"$3css/style.css\" rel=\"stylesheet\">",
|
||||
"\t</head>",
|
||||
"\t<body>",
|
||||
"\t$4",
|
||||
"\t</body>",
|
||||
"</html>"
|
||||
],
|
||||
"description": "HTML - Defines a template for a html5 document",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"i": {
|
||||
"prefix": "i",
|
||||
"body": "<i>$1</i>$2",
|
||||
"description": "HTML - Defines italic text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"iframe": {
|
||||
"prefix": "iframe",
|
||||
"body": "<iframe src=\"$1\">$2</iframe>$3",
|
||||
"description": "HTML - Defines an inline sub window",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"img": {
|
||||
"prefix": "img",
|
||||
"body": "<img src=\"$1\" alt=\"$2\">$3",
|
||||
"description": "HTML - Defines an image",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"input": {
|
||||
"prefix": "input",
|
||||
"body": "<input type=\"$1\" name=\"$2\" value=\"$3\">$4",
|
||||
"description": "HTML - Defines an input field",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"ins": {
|
||||
"prefix": "ins",
|
||||
"body": "<ins>$1</ins>$2",
|
||||
"description": "HTML - Defines inserted text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"keygen": {
|
||||
"prefix": "keygen",
|
||||
"body": "<keygen name=\"$1\">$2",
|
||||
"description": "HTML - Defines a generated key in a form",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"kbd": {
|
||||
"prefix": "kbd",
|
||||
"body": "<kbd>$1</kbd>$2",
|
||||
"description": "HTML - Defines keyboard text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"label": {
|
||||
"prefix": "label",
|
||||
"body": "<label for=\"$1\">$2</label>$3",
|
||||
"description": "HTML - Defines an inline window",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"legend": {
|
||||
"prefix": "legend",
|
||||
"body": "<legend>$1</legend>$2",
|
||||
"description": "HTML - Defines a title in a fieldset",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"li": {
|
||||
"prefix": "li",
|
||||
"body": "<li>$1</li>$2",
|
||||
"description": "HTML - Defines a list item",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"link": {
|
||||
"prefix": "link",
|
||||
"body": "<link rel=\"$1\" type=\"$2\" href=\"$3\">$4",
|
||||
"description": "HTML - Defines a resource reference",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"main": {
|
||||
"prefix": "main",
|
||||
"body": [
|
||||
"<main>",
|
||||
"\t$1",
|
||||
"</main>"
|
||||
],
|
||||
"description": "HTML - Defines an image map",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"map": {
|
||||
"prefix": "map",
|
||||
"body": [
|
||||
"<map name=\"$1\">",
|
||||
"\t$2",
|
||||
"</map>"
|
||||
],
|
||||
"description": "HTML - Defines an image map",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"mark": {
|
||||
"prefix": "mark",
|
||||
"body": "<mark>$1</mark>$2",
|
||||
"description": "HTML - Defines marked text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"menu": {
|
||||
"prefix": "menu",
|
||||
"body": [
|
||||
"<menu>",
|
||||
"\t$1",
|
||||
"</menu>"
|
||||
],
|
||||
"description": "HTML - Defines a menu list",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"menuitem": {
|
||||
"prefix": "menuitem",
|
||||
"body": "<menuitem>$1</menuitem>$2",
|
||||
"description": "HTML - Defines a menu item [firefox only]",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"meta": {
|
||||
"prefix": "meta",
|
||||
"body": "<meta name=\"$1\" content=\"$2\">$3",
|
||||
"description": "HTML - Defines meta information",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"meter": {
|
||||
"prefix": "meter",
|
||||
"body": "<meter value=\"$1\">$2</meter>$3",
|
||||
"description": "HTML - Defines measurement within a predefined range",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"nav": {
|
||||
"prefix": "nav",
|
||||
"body": [
|
||||
"<nav>",
|
||||
"\t$1",
|
||||
"</nav>"
|
||||
],
|
||||
"description": "HTML - Defines navigation links",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"noscript": {
|
||||
"prefix": "noscript",
|
||||
"body": [
|
||||
"<noscript>",
|
||||
"$1",
|
||||
"</noscript>"
|
||||
],
|
||||
"description": "HTML - Defines a noscript section",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"object": {
|
||||
"prefix": "object",
|
||||
"body": "<object width=\"$1\" height=\"$2\" data=\"$3\">$4</object>$5",
|
||||
"description": "HTML - Defines an embedded object",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"ol": {
|
||||
"prefix": "ol",
|
||||
"body": [
|
||||
"<ol>",
|
||||
"\t$1",
|
||||
"</ol>"
|
||||
],
|
||||
"description": "HTML - Defines an ordered list",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"optgroup": {
|
||||
"prefix": "optgroup",
|
||||
"body": [
|
||||
"<optgroup>",
|
||||
"\t$1",
|
||||
"</optgroup>"
|
||||
],
|
||||
"description": "HTML - Defines an option group",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"option": {
|
||||
"prefix": "option",
|
||||
"body": "<option value=\"$1\">$2</option>$3",
|
||||
"description": "HTML - Defines an option in a drop-down list",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"output": {
|
||||
"prefix": "output",
|
||||
"body": "<output name=\"$1\" for=\"$2\">$3</output>$4",
|
||||
"description": "HTML - Defines some types of output",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"p": {
|
||||
"prefix": "p",
|
||||
"body": "<p>$1</p>$2",
|
||||
"description": "HTML - Defines a paragraph",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"param": {
|
||||
"prefix": "param",
|
||||
"body": "<param name=\"$1\" value=\"$2\">$3",
|
||||
"description": "HTML - Defines a parameter for an object",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"pre": {
|
||||
"prefix": "pre",
|
||||
"body": [
|
||||
"<pre>$1</pre>"
|
||||
],
|
||||
"description": "HTML - Defines preformatted text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"progress": {
|
||||
"prefix": "progress",
|
||||
"body": "<progress value=\"$1\" max=\"$2\">$3</progress>$4",
|
||||
"description": "HTML - Defines progress of a task of any kind",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"q": {
|
||||
"prefix": "q",
|
||||
"body": "<q>$1</q>$2",
|
||||
"description": "HTML - Defines a short quotation",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"rp": {
|
||||
"prefix": "rp",
|
||||
"body": "<rp>$1</rp>$2",
|
||||
"description": "HTML - Used in ruby annotations to define what to show browsers that do not support the ruby element",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"rt": {
|
||||
"prefix": "rt",
|
||||
"body": "<rt>$1</rt>$2",
|
||||
"description": "HTML - Defines explanation to ruby annotations",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"ruby": {
|
||||
"prefix": "ruby",
|
||||
"body": [
|
||||
"<ruby>",
|
||||
"$1",
|
||||
"</ruby>"
|
||||
],
|
||||
"description": "HTML - Defines ruby annotations",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"s": {
|
||||
"prefix": "s",
|
||||
"body": "<s>$1</s>$2",
|
||||
"description": "HTML - Used to define strikethrough text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"samp": {
|
||||
"prefix": "samp",
|
||||
"body": "<samp>$1</samp>$2",
|
||||
"description": "HTML - Defines sample computer code",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"script": {
|
||||
"prefix": "script",
|
||||
"body": [
|
||||
"<script>",
|
||||
"\t$1",
|
||||
"</script>"
|
||||
],
|
||||
"description": "HTML - Defines a script",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"section": {
|
||||
"prefix": "section",
|
||||
"body": [
|
||||
"<section>",
|
||||
"\t$1",
|
||||
"</section>"
|
||||
],
|
||||
"description": "HTML - Defines a section",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"select": {
|
||||
"prefix": "select",
|
||||
"body": [
|
||||
"<select>",
|
||||
"\t$1",
|
||||
"</select>"
|
||||
],
|
||||
"description": "HTML - Defines a selectable list",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"small": {
|
||||
"prefix": "small",
|
||||
"body": "<small>$1</small>$2",
|
||||
"description": "HTML - Defines small text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"source": {
|
||||
"prefix": "source",
|
||||
"body": "<source src=\"$1\" type=\"$2\">$3",
|
||||
"description": "HTML - Defines media resource",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"span": {
|
||||
"prefix": "span",
|
||||
"body": "<span>$1</span>$2",
|
||||
"description": "HTML - Defines a section in a document",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"strong": {
|
||||
"prefix": "strong",
|
||||
"body": "<strong>$1</strong>$2",
|
||||
"description": "HTML - Defines strong text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"style": {
|
||||
"prefix": "style",
|
||||
"body": [
|
||||
"<style>",
|
||||
"$1",
|
||||
"</style>"
|
||||
],
|
||||
"description": "HTML - Defines a style definition",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"sub": {
|
||||
"prefix": "sub",
|
||||
"body": "<sub>$1</sub>$2",
|
||||
"description": "HTML - Defines sub-scripted text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"sup": {
|
||||
"prefix": "sup",
|
||||
"body": "<sup>$1</sup>$2",
|
||||
"description": "HTML - Defines super-scripted text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"summary": {
|
||||
"prefix": "summary",
|
||||
"body": "<summary>$1</summary>$2",
|
||||
"description": "HTML - Defines a visible heading for the detail element [limited support]",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"table": {
|
||||
"prefix": "table",
|
||||
"body": [
|
||||
"<table>",
|
||||
"\t$1",
|
||||
"</table>"
|
||||
],
|
||||
"description": "HTML - Defines a table",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"tbody": {
|
||||
"prefix": "tbody",
|
||||
"body": [
|
||||
"<tbody>",
|
||||
"\t$1",
|
||||
"</tbody>"
|
||||
],
|
||||
"description": "HTML - Defines a table body",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"td": {
|
||||
"prefix": "td",
|
||||
"body": "<td>$1</td>$2",
|
||||
"description": "HTML - Defines a table cell",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"textarea": {
|
||||
"prefix": "textarea",
|
||||
"body": "<textarea rows=\"$1\" cols=\"$2\">$3</textarea>$4",
|
||||
"description": "HTML - Defines a text area",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"tfoot": {
|
||||
"prefix": "tfoot",
|
||||
"body": [
|
||||
"<tfoot>",
|
||||
"\t$1",
|
||||
"</tfoot>"
|
||||
],
|
||||
"description": "HTML - Defines a table footer",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"thead": {
|
||||
"prefix": "thead",
|
||||
"body": [
|
||||
"<thead>",
|
||||
"$1",
|
||||
"</thead>"
|
||||
],
|
||||
"description": "HTML - Defines a table head",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"th": {
|
||||
"prefix": "th",
|
||||
"body": "<th>$1</th>$2",
|
||||
"description": "HTML - Defines a table header",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"time": {
|
||||
"prefix": "time",
|
||||
"body": "<time datetime=\"$1\">$2</time>$3",
|
||||
"description": "HTML - Defines a date/time",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"title": {
|
||||
"prefix": "title",
|
||||
"body": "<title>$1</title>$2",
|
||||
"description": "HTML - Defines the document title",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"tr": {
|
||||
"prefix": "tr",
|
||||
"body": "<tr>$1</tr>$2",
|
||||
"description": "HTML - Defines a table row",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"track": {
|
||||
"prefix": "track",
|
||||
"body": "<track src=\"$1\" kind=\"$2\" srclang=\"$3\" label=\"$4\">$5",
|
||||
"description": "HTML - Defines a table row",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"u": {
|
||||
"prefix": "u",
|
||||
"body": "<u>$1</u>$2",
|
||||
"description": "HTML - Used to define underlined text",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"ul": {
|
||||
"prefix": "ul",
|
||||
"body": [
|
||||
"<ul>",
|
||||
"\t$1",
|
||||
"</ul>"
|
||||
],
|
||||
"description": "HTML - Defines an unordered list",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"var": {
|
||||
"prefix": "var",
|
||||
"body": "<var>$1</var>$2",
|
||||
"description": "HTML - Defines a variable",
|
||||
"scope": "text.html"
|
||||
},
|
||||
"video": {
|
||||
"prefix": "video",
|
||||
"body": [
|
||||
"<video width=\"$1\" height=\"$2\" controls>",
|
||||
"\t$3",
|
||||
"</video>"
|
||||
],
|
||||
"description": "HTML - Defines a video",
|
||||
"scope": "text.html"
|
||||
}
|
||||
}
|
774
nvim/.config/nvim/vsnips/javascript.json
Normal file
774
nvim/.config/nvim/vsnips/javascript.json
Normal file
@@ -0,0 +1,774 @@
|
||||
{
|
||||
"setImmediate": {
|
||||
"prefix": "sim",
|
||||
"body": "setImmediate(() => {\n\t${0}\n})"
|
||||
},
|
||||
"await": {
|
||||
"prefix": "a",
|
||||
"body": "await ${0}"
|
||||
},
|
||||
"await Promise.all": {
|
||||
"prefix": "apa",
|
||||
"body": "await Promise.all(${1:value})"
|
||||
},
|
||||
"await Promise.all with destructuring": {
|
||||
"prefix": "apad",
|
||||
"body": "const [${0}] = await Promise.all(${1:value})"
|
||||
},
|
||||
"await Promise.all map": {
|
||||
"prefix": "apm",
|
||||
"body": "await Promise.all(${1:array}.map(async (${2:value}) => {\n\t${0}\n}))"
|
||||
},
|
||||
"await sleep": {
|
||||
"prefix": "ast",
|
||||
"body": "await new Promise((r) => setTimeout(r, ${0}))"
|
||||
},
|
||||
"Node callback": {
|
||||
"prefix": "cb",
|
||||
"body": "function (err, ${1:value}) {\n\tif (err) throw err\n\t${0}\n}"
|
||||
},
|
||||
"process.env": {
|
||||
"prefix": "pe",
|
||||
"body": "process.env"
|
||||
},
|
||||
"Promise.all": {
|
||||
"prefix": "pa",
|
||||
"body": "Promise.all(${1:value})"
|
||||
},
|
||||
"Promise.resolve": {
|
||||
"prefix": "prs",
|
||||
"body": "Promise.resolve(${1:value})"
|
||||
},
|
||||
"Promise.reject": {
|
||||
"prefix": "prj",
|
||||
"body": "Promise.reject(${1:value})"
|
||||
},
|
||||
"Promise": {
|
||||
"prefix": "p",
|
||||
"body": "Promise"
|
||||
},
|
||||
"new Promise": {
|
||||
"prefix": "np",
|
||||
"body": "new Promise((resolve, reject) => {\n\t${0}\n})"
|
||||
},
|
||||
"Promise.then": {
|
||||
"prefix": "pt",
|
||||
"body": "${1:promise}.then((${2:value}) => {\n\t${0}\n})"
|
||||
},
|
||||
"Promise.catch": {
|
||||
"prefix": "pc",
|
||||
"body": "${1:promise}.catch(error => {\n\t${0}\n})"
|
||||
},
|
||||
"describe": {
|
||||
"prefix": "desc",
|
||||
"body": "describe('${1:description}', () => {\n\t${0}\n})"
|
||||
},
|
||||
"describe top level": {
|
||||
"prefix": "dt",
|
||||
"body": "describe('${TM_FILENAME_BASE}', () => {\n\t${0}\n})"
|
||||
},
|
||||
"it asynchronous": {
|
||||
"prefix": "it",
|
||||
"body": "it('${1:description}', async () => {\n\t${0}\n})"
|
||||
},
|
||||
"it.todo": {
|
||||
"prefix": "itt",
|
||||
"body": "it.todo('${1:description}')"
|
||||
},
|
||||
"it with a callback": {
|
||||
"prefix": "itd",
|
||||
"body": "it('${1:description}', (done) => {\n\t${0}\n})"
|
||||
},
|
||||
"it synchronous": {
|
||||
"prefix": "its",
|
||||
"body": "it('${1:description}', () => {\n\t${0}\n})"
|
||||
},
|
||||
"before": {
|
||||
"prefix": "bf",
|
||||
"body": "before(async () => {\n\t${0}\n})"
|
||||
},
|
||||
"beforeAll": {
|
||||
"prefix": "ba",
|
||||
"body": "beforeAll(async () => {\n\t${0}\n})"
|
||||
},
|
||||
"beforeEach": {
|
||||
"prefix": "bfe",
|
||||
"body": "beforeEach(async () => {\n\t${0}\n})"
|
||||
},
|
||||
"after": {
|
||||
"prefix": "aft",
|
||||
"body": "after(() => {\n\t${0}\n})"
|
||||
},
|
||||
"afterEach": {
|
||||
"prefix": "afe",
|
||||
"body": "afterEach(() => {\n\t${0}\n})"
|
||||
},
|
||||
"require": {
|
||||
"prefix": "rq",
|
||||
"body": "require('${1:module}')"
|
||||
},
|
||||
"const module = require('module')": {
|
||||
"prefix": "cr",
|
||||
"body": "const ${1:module} = require('${1:module}')"
|
||||
},
|
||||
"exports.member": {
|
||||
"prefix": "em",
|
||||
"body": "exports.${1:member} = ${2:value}"
|
||||
},
|
||||
"module.exports": {
|
||||
"prefix": "me",
|
||||
"body": "module.exports = ${1:name}"
|
||||
},
|
||||
"module as class": {
|
||||
"prefix": "mec",
|
||||
"body": "class ${1:name} {\n\tconstructor (${2:arguments}) {\n\t\t${0}\n\t}\n}\n\nmodule.exports = ${1:name}\n"
|
||||
},
|
||||
"event handler": {
|
||||
"prefix": "on",
|
||||
"body": "${1:emitter}.on('${2:event}', (${3:arguments}) => {\n\t${0}\n})"
|
||||
},
|
||||
"dom event cancel default and propagation": {
|
||||
"prefix": "evc",
|
||||
"body": "ev.preventDefault()\nev.stopPropagation()\nreturn false"
|
||||
},
|
||||
"addEventListener": {
|
||||
"prefix": "ae",
|
||||
"body": "${1:document}.addEventListener('${2:event}', ${3:ev} => {\n\t${0}\n})"
|
||||
},
|
||||
"removeEventListener": {
|
||||
"prefix": "rel",
|
||||
"body": "${1:document}.removeEventListener('${2:event}', ${3:listener})"
|
||||
},
|
||||
"getElementById": {
|
||||
"prefix": "gi",
|
||||
"body": "${1:document}.getElementById('${2:id}')"
|
||||
},
|
||||
"getElementsByClassName": {
|
||||
"prefix": "gc",
|
||||
"body": "Array.from(${1:document}.getElementsByClassName('${2:class}'))"
|
||||
},
|
||||
"getElementsByTagName": {
|
||||
"prefix": "gt",
|
||||
"body": "Array.from(${1:document}.getElementsByTagName('${2:tag}'))"
|
||||
},
|
||||
"querySelector": {
|
||||
"prefix": "qs",
|
||||
"body": "${1:document}.querySelector('${2:selector}')"
|
||||
},
|
||||
"querySelectorAll": {
|
||||
"prefix": "qsa",
|
||||
"body": "Array.from(${1:document}.querySelectorAll('${2:selector}'))"
|
||||
},
|
||||
"createDocumentFragment": {
|
||||
"prefix": "cdf",
|
||||
"body": "${1:document}.createDocumentFragment(${2:elem})"
|
||||
},
|
||||
"createElement": {
|
||||
"prefix": "cel",
|
||||
"body": "${1:document}.createElement(${2:elem})"
|
||||
},
|
||||
"classList.add": {
|
||||
"prefix": "hecla",
|
||||
"body": "${1:el}.classList.add('${2:class}')"
|
||||
},
|
||||
"classList.remove": {
|
||||
"prefix": "heclr",
|
||||
"body": "${1:el}.classList.remove('${2:class}')"
|
||||
},
|
||||
"classList.toggle": {
|
||||
"prefix": "hect",
|
||||
"body": "${1:el}.classList.toggle('${2:class}')"
|
||||
},
|
||||
"getAttribute": {
|
||||
"prefix": "hega",
|
||||
"body": "${1:el}.getAttribute('${2:attr}')"
|
||||
},
|
||||
"removeAttribute": {
|
||||
"prefix": "hera",
|
||||
"body": "${1:el}.removeAttribute('${2:attr}')"
|
||||
},
|
||||
"setAttribute": {
|
||||
"prefix": "hesa",
|
||||
"body": "${1:el}.setAttribute('${2:attr}', ${3:value})"
|
||||
},
|
||||
"appendChild": {
|
||||
"prefix": "heac",
|
||||
"body": "${1:el}.appendChild(${2:elem})"
|
||||
},
|
||||
"removeChild": {
|
||||
"prefix": "herc",
|
||||
"body": "${1:el}.removeChild(${2:elem})"
|
||||
},
|
||||
"forEach loop": {
|
||||
"prefix": "fe",
|
||||
"body": "${1:iterable}.forEach((${2:item}) => {\n\t${0}\n})"
|
||||
},
|
||||
"map": {
|
||||
"prefix": "map",
|
||||
"body": "${1:iterable}.map((${2:item}) => {\n\t${0}\n})"
|
||||
},
|
||||
"reduce": {
|
||||
"prefix": "reduce",
|
||||
"body": "${1:iterable}.reduce((${2:previous}, ${3:current}) => {\n\t${0}\n}${4:, initial})"
|
||||
},
|
||||
"filter": {
|
||||
"prefix": "filter",
|
||||
"body": "${1:iterable}.filter((${2:item}) => {\n\t${0}\n})"
|
||||
},
|
||||
"find": {
|
||||
"prefix": "find",
|
||||
"body": "${1:iterable}.find((${2:item}) => {\n\t${0}\n})"
|
||||
},
|
||||
"every": {
|
||||
"prefix": "every",
|
||||
"body": "${1:iterable}.every((${2:item}) => {\n\t${0}\n})"
|
||||
},
|
||||
"some": {
|
||||
"prefix": "some",
|
||||
"body": "${1:iterable}.some((${2:item}) => {\n\t${0}\n})"
|
||||
},
|
||||
"var statement": {
|
||||
"prefix": "v",
|
||||
"body": "var ${1:name}"
|
||||
},
|
||||
"var assignment": {
|
||||
"prefix": "va",
|
||||
"body": "var ${1:name} = ${2:value}"
|
||||
},
|
||||
"let statement": {
|
||||
"prefix": "l",
|
||||
"body": "let ${1:name}"
|
||||
},
|
||||
"const statement": {
|
||||
"prefix": "c",
|
||||
"body": "const ${1:name}"
|
||||
},
|
||||
"const statement from destructuring": {
|
||||
"prefix": "cd",
|
||||
"body": "const { ${2:prop} } = ${1:value}"
|
||||
},
|
||||
"const statement from array destructuring": {
|
||||
"prefix": "cad",
|
||||
"body": "const [ ${2:prop} ] = ${1:value}"
|
||||
},
|
||||
"const assignment awaited": {
|
||||
"prefix": "ca",
|
||||
"body": "const ${1:name} = await ${2:value}"
|
||||
},
|
||||
"const destructuring assignment awaited": {
|
||||
"prefix": "cda",
|
||||
"body": "const { ${1:name} } = await ${2:value}"
|
||||
},
|
||||
"const arrow function assignment": {
|
||||
"prefix": "cf",
|
||||
"body": "const ${1:name} = (${2:arguments}) => {\n\treturn ${0}\n}"
|
||||
},
|
||||
"let assignment awaited": {
|
||||
"prefix": "la",
|
||||
"body": "let ${1:name} = await ${2:value}"
|
||||
},
|
||||
"const assignment yielded": {
|
||||
"prefix": "cy",
|
||||
"body": "const ${1:name} = yield ${2:value}"
|
||||
},
|
||||
"let assignment yielded": {
|
||||
"prefix": "ly",
|
||||
"body": "let ${1:name} = yield ${2:value}"
|
||||
},
|
||||
"const object": {
|
||||
"prefix": "co",
|
||||
"body": "const ${1:name} = {\n\t${0}\n}"
|
||||
},
|
||||
"const array": {
|
||||
"prefix": "car",
|
||||
"body": "const ${1:name} = [\n\t${0}\n]"
|
||||
},
|
||||
"generate array of integers starting with 1": {
|
||||
"prefix": "gari",
|
||||
"body": "Array.from({ length: ${1:length} }, (v, k) => k + 1)"
|
||||
},
|
||||
"generate array of integers starting with 0": {
|
||||
"prefix": "gari0",
|
||||
"body": "[...Array(${1:length}).keys()]"
|
||||
},
|
||||
"class": {
|
||||
"prefix": "cs",
|
||||
"body": "class ${1:name} {\n\tconstructor (${2:arguments}) {\n\t\t${0}\n\t}\n}"
|
||||
},
|
||||
"class extends": {
|
||||
"prefix": "csx",
|
||||
"body": "class ${1:name} extends ${2:base} {\n\tconstructor (${3:arguments}) {\n\t\tsuper(${3:arguments})\n\t\t${0}\n\t}\n}"
|
||||
},
|
||||
"module export": {
|
||||
"prefix": "e",
|
||||
"body": "export ${1:member}"
|
||||
},
|
||||
"module export const": {
|
||||
"prefix": "ec",
|
||||
"body": "export const ${1:member} = ${2:value}"
|
||||
},
|
||||
"export named function": {
|
||||
"prefix": "ef",
|
||||
"body": "export function ${1:member} (${2:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"module default export": {
|
||||
"prefix": "ed",
|
||||
"body": "export default ${1:member}"
|
||||
},
|
||||
"module default export function": {
|
||||
"prefix": "edf",
|
||||
"body": "export default function ${1:name} (${2:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"import module": {
|
||||
"prefix": "im",
|
||||
"body": "import ${2:*} from '${1:module}'"
|
||||
},
|
||||
"import module as": {
|
||||
"prefix": "ia",
|
||||
"body": "import ${2:*} as ${3:name} from '${1:module}'"
|
||||
},
|
||||
"import module destructured": {
|
||||
"prefix": "id",
|
||||
"body": "import {$2} from '${1:module}'"
|
||||
},
|
||||
"typeof": {
|
||||
"prefix": "to",
|
||||
"body": "typeof ${1:source} === '${2:undefined}'"
|
||||
},
|
||||
"this": {
|
||||
"prefix": "t",
|
||||
"body": "this."
|
||||
},
|
||||
"instanceof": {
|
||||
"prefix": "iof",
|
||||
"body": "${1:source} instanceof ${2:Object}"
|
||||
},
|
||||
"let and if statement": {
|
||||
"prefix": "lif",
|
||||
"body": "let ${0} \n if (${2:condition}) {\n\t${1}\n}"
|
||||
},
|
||||
"else statement": {
|
||||
"prefix": "el",
|
||||
"body": "else {\n\t${0}\n}"
|
||||
},
|
||||
"else if statement": {
|
||||
"prefix": "ei",
|
||||
"body": "else if (${1:condition}) {\n\t${0}\n}"
|
||||
},
|
||||
"while iteration decrementing": {
|
||||
"prefix": "wid",
|
||||
"body": "let ${1:array}Index = ${1:array}.length\nwhile (${1:array}Index--) {\n\t${0}\n}"
|
||||
},
|
||||
"throw new Error": {
|
||||
"prefix": "tn",
|
||||
"body": "throw new ${0:error}"
|
||||
},
|
||||
"try/catch": {
|
||||
"prefix": "tc",
|
||||
"body": "try {\n\t${0}\n} catch (${1:err}) {\n\t\n}"
|
||||
},
|
||||
"try/finally": {
|
||||
"prefix": "tf",
|
||||
"body": "try {\n\t${0}\n} finally {\n\t\n}"
|
||||
},
|
||||
"try/catch/finally": {
|
||||
"prefix": "tcf",
|
||||
"body": "try {\n\t${0}\n} catch (${1:err}) {\n\t\n} finally {\n\t\n}"
|
||||
},
|
||||
"anonymous function": {
|
||||
"prefix": "fan",
|
||||
"body": "function (${1:arguments}) {${0}}"
|
||||
},
|
||||
"named function": {
|
||||
"prefix": "fn",
|
||||
"body": "function ${1:name} (${2:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"async function": {
|
||||
"prefix": "asf",
|
||||
"body": "async function (${1:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"async arrow function": {
|
||||
"prefix": "aa",
|
||||
"body": "async (${1:arguments}) => {\n\t${0}\n}"
|
||||
},
|
||||
"immediately-invoked function expression": {
|
||||
"prefix": "iife",
|
||||
"body": ";(function (${1:arguments}) {\n\t${0}\n})(${2})"
|
||||
},
|
||||
"async immediately-invoked function expression": {
|
||||
"prefix": "aiife",
|
||||
"body": ";(async (${1:arguments}) => {\n\t${0}\n})(${2})"
|
||||
},
|
||||
"arrow function": {
|
||||
"prefix": "af",
|
||||
"body": "(${1:arguments}) => ${2:statement}"
|
||||
},
|
||||
"arrow function with destructuring": {
|
||||
"prefix": "fd",
|
||||
"body": "({${1:arguments}}) => ${2:statement}"
|
||||
},
|
||||
"arrow function with destructuring returning destructured": {
|
||||
"prefix": "fdr",
|
||||
"body": "({${1:arguments}}) => ${1:arguments}"
|
||||
},
|
||||
"arrow function with body": {
|
||||
"prefix": "f",
|
||||
"body": "(${1:arguments}) => {\n\t${0}\n}"
|
||||
},
|
||||
"arrow function with return": {
|
||||
"prefix": "fr",
|
||||
"body": "(${1:arguments}) => {\n\treturn ${0}\n}"
|
||||
},
|
||||
"generator function": {
|
||||
"prefix": "gf",
|
||||
"body": "function* (${1:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"named generator": {
|
||||
"prefix": "gfn",
|
||||
"body": "function* ${1:name}(${2:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"console.log": {
|
||||
"prefix": "cl",
|
||||
"body": "console.log(${0})"
|
||||
},
|
||||
"console.log a variable": {
|
||||
"prefix": "cv",
|
||||
"body": "console.log('${1}:', ${1})"
|
||||
},
|
||||
"console.error": {
|
||||
"prefix": "ce",
|
||||
"body": "console.error(${0})"
|
||||
},
|
||||
"console.warn": {
|
||||
"prefix": "cw",
|
||||
"body": "console.warn(${0})"
|
||||
},
|
||||
"console.dir": {
|
||||
"prefix": "cod",
|
||||
"body": "console.dir('${1}:', ${1})"
|
||||
},
|
||||
"constructor": {
|
||||
"prefix": "cn",
|
||||
"body": "constructor () {\n\t${0}\n}"
|
||||
},
|
||||
"use strict": {
|
||||
"prefix": "uss",
|
||||
"body": "'use strict'"
|
||||
},
|
||||
"JSON.stringify()": {
|
||||
"prefix": "js",
|
||||
"body": "JSON.stringify($0)"
|
||||
},
|
||||
"JSON.parse()": {
|
||||
"prefix": "jp",
|
||||
"body": "JSON.parse($0)"
|
||||
},
|
||||
"method": {
|
||||
"prefix": "m",
|
||||
"body": "${1:method} (${2:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"getter": {
|
||||
"prefix": "get",
|
||||
"body": "get ${1:property} () {\n\t${0}\n}"
|
||||
},
|
||||
"setter": {
|
||||
"prefix": "set",
|
||||
"body": "set ${1:property} (${2:value}) {\n\t${0}\n}"
|
||||
},
|
||||
"getter + setter": {
|
||||
"prefix": "gs",
|
||||
"body": "get ${1:property} () {\n\t${0}\n}\nset ${1:property} (${2:value}) {\n\t\n}"
|
||||
},
|
||||
"prototype method": {
|
||||
"prefix": "proto",
|
||||
"body": "${1:Class}.prototype.${2:method} = function (${3:arguments}) {\n\t${0}\n}"
|
||||
},
|
||||
"Object.assign": {
|
||||
"prefix": "oa",
|
||||
"body": "Object.assign(${1:dest}, ${2:source})"
|
||||
},
|
||||
"Object.create": {
|
||||
"prefix": "oc",
|
||||
"body": "Object.create(${1:obj})"
|
||||
},
|
||||
"Object.getOwnPropertyDescriptor": {
|
||||
"prefix": "og",
|
||||
"body": "Object.getOwnPropertyDescriptor(${1:obj}, '${2:prop}')"
|
||||
},
|
||||
"ternary": {
|
||||
"prefix": "te",
|
||||
"body": "${1:cond} ? ${2:true} : ${3:false}"
|
||||
},
|
||||
"ternary assignment": {
|
||||
"prefix": "ta",
|
||||
"body": "const ${0} = ${1:cond} ? ${2:true} : ${3:false}"
|
||||
},
|
||||
"Object.defineProperty": {
|
||||
"prefix": "od",
|
||||
"body": "Object.defineProperty(${1:dest}, '${2:prop}', {\n\t${0}\n})"
|
||||
},
|
||||
"Object.keys": {
|
||||
"prefix": "ok",
|
||||
"body": "Object.keys(${1:obj})"
|
||||
},
|
||||
"Object.values": {
|
||||
"prefix": "ov",
|
||||
"body": "Object.values(${1:obj})"
|
||||
},
|
||||
"Object.entries": {
|
||||
"prefix": "oe",
|
||||
"body": "Object.entries(${1:obj})"
|
||||
},
|
||||
"return": {
|
||||
"prefix": "r",
|
||||
"body": "return ${0}"
|
||||
},
|
||||
"return arrow function": {
|
||||
"prefix": "rf",
|
||||
"body": "return (${1:arguments}) => ${2:statement}"
|
||||
},
|
||||
"yield": {
|
||||
"prefix": "y",
|
||||
"body": "yield ${0}"
|
||||
},
|
||||
"return this": {
|
||||
"prefix": "rt",
|
||||
"body": "return ${0:this}"
|
||||
},
|
||||
"return null": {
|
||||
"prefix": "rn",
|
||||
"body": "return null"
|
||||
},
|
||||
"return new object": {
|
||||
"prefix": "ro",
|
||||
"body": "return {\n\t${0}\n}"
|
||||
},
|
||||
"return new array": {
|
||||
"prefix": "ra",
|
||||
"body": "return [\n\t${0}\n]"
|
||||
},
|
||||
"return promise": {
|
||||
"prefix": "rp",
|
||||
"body": "return new Promise((resolve, reject) => {\n\t${0}\n})"
|
||||
},
|
||||
"wrap selection in arrow function": {
|
||||
"prefix": "wrap selection in arrow function",
|
||||
"body": "() => {\n\t{$TM_SELECTED_TEXT}\n}",
|
||||
"description": "wraps text in arrow function"
|
||||
},
|
||||
"wrap selection in async arrow function": {
|
||||
"prefix": "wrap selection in async arrow function",
|
||||
"body": "async () => {\n\t{$TM_SELECTED_TEXT}\n}",
|
||||
"description": "wraps text in arrow function"
|
||||
},
|
||||
"define module": {
|
||||
"prefix": "define",
|
||||
"body": [
|
||||
"define([",
|
||||
"\t'require',",
|
||||
"\t'${1:dependency}'",
|
||||
"], function(require, ${2:factory}) {",
|
||||
"\t'use strict';",
|
||||
"\t$0",
|
||||
"});"
|
||||
],
|
||||
"description": "define module"
|
||||
},
|
||||
"For Loop": {
|
||||
"prefix": "for",
|
||||
"body": [
|
||||
"for (let ${1:index} = 0; ${1:index} < ${2:array}.length; ${1:index}++) {",
|
||||
"\tconst ${3:element} = ${2:array}[${1:index}];",
|
||||
"\t$0",
|
||||
"}"
|
||||
],
|
||||
"description": "For Loop"
|
||||
},
|
||||
"For-Each Loop": {
|
||||
"prefix": "foreach",
|
||||
"body": ["${1:array}.forEach(${2:element} => {", "\t$0", "});"],
|
||||
"description": "For-Each Loop"
|
||||
},
|
||||
"For-In Loop": {
|
||||
"prefix": "forin",
|
||||
"body": [
|
||||
"for (const ${1:key} in ${2:object}) {",
|
||||
"\tif (${2:object}.hasOwnProperty(${1:key})) {",
|
||||
"\t\tconst ${3:element} = ${2:object}[${1:key}];",
|
||||
"\t\t$0",
|
||||
"\t}",
|
||||
"}"
|
||||
],
|
||||
"description": "For-In Loop"
|
||||
},
|
||||
"For-Of Loop": {
|
||||
"prefix": "forof",
|
||||
"body": ["for (const ${1:iterator} of ${2:object}) {", "\t$0", "}"],
|
||||
"description": "For-Of Loop"
|
||||
},
|
||||
"Function Statement": {
|
||||
"prefix": "function",
|
||||
"body": ["function ${1:name}(${2:params}) {", "\t$0", "}"],
|
||||
"description": "Function Statement"
|
||||
},
|
||||
"If Statement": {
|
||||
"prefix": "if",
|
||||
"body": ["if (${1:condition}) {", "\t$0", "}"],
|
||||
"description": "If Statement"
|
||||
},
|
||||
"If-Else Statement": {
|
||||
"prefix": "ifelse",
|
||||
"body": ["if (${1:condition}) {", "\t$0", "} else {", "\t", "}"],
|
||||
"description": "If-Else Statement"
|
||||
},
|
||||
"New Statement": {
|
||||
"prefix": "new",
|
||||
"body": ["const ${1:name} = new ${2:type}(${3:arguments});$0"],
|
||||
"description": "New Statement"
|
||||
},
|
||||
"Switch Statement": {
|
||||
"prefix": "switch",
|
||||
"body": [
|
||||
"switch (${1:key}) {",
|
||||
"\tcase ${2:value}:",
|
||||
"\t\t$0",
|
||||
"\t\tbreak;",
|
||||
"",
|
||||
"\tdefault:",
|
||||
"\t\tbreak;",
|
||||
"}"
|
||||
],
|
||||
"description": "Switch Statement"
|
||||
},
|
||||
"While Statement": {
|
||||
"prefix": "while",
|
||||
"body": ["while (${1:condition}) {", "\t$0", "}"],
|
||||
"description": "While Statement"
|
||||
},
|
||||
"Do-While Statement": {
|
||||
"prefix": "dowhile",
|
||||
"body": ["do {", "\t$0", "} while (${1:condition});"],
|
||||
"description": "Do-While Statement"
|
||||
},
|
||||
"Try-Catch Statement": {
|
||||
"prefix": "trycatch",
|
||||
"body": ["try {", "\t$0", "} catch (${1:error}) {", "\t", "}"],
|
||||
"description": "Try-Catch Statement"
|
||||
},
|
||||
"Set Timeout Function": {
|
||||
"prefix": "settimeout",
|
||||
"body": ["setTimeout(() => {", "\t$0", "}, ${1:timeout});"],
|
||||
"description": "Set Timeout Function"
|
||||
},
|
||||
"Set Interval Function": {
|
||||
"prefix": "setinterval",
|
||||
"body": ["setInterval(() => {", "\t$0", "}, ${1:interval});"],
|
||||
"description": "Set Interval Function"
|
||||
},
|
||||
"Import external module.": {
|
||||
"prefix": "import statement",
|
||||
"body": ["import { $0 } from \"${1:module}\";"],
|
||||
"description": "Import external module."
|
||||
},
|
||||
"Region Start": {
|
||||
"prefix": "#region",
|
||||
"body": ["//#region $0"],
|
||||
"description": "Folding Region Start"
|
||||
},
|
||||
"Region End": {
|
||||
"prefix": "#endregion",
|
||||
"body": ["//#endregion"],
|
||||
"description": "Folding Region End"
|
||||
},
|
||||
"Log warning to console": {
|
||||
"prefix": "warn",
|
||||
"body": ["console.warn($1);", "$0"],
|
||||
"description": "Log warning to the console"
|
||||
},
|
||||
"Log error to console": {
|
||||
"prefix": "error",
|
||||
"body": ["console.error($1);", "$0"],
|
||||
"description": "Log error to the console"
|
||||
},
|
||||
"JSDoc Comment": {
|
||||
"prefix": "/*",
|
||||
"body": [
|
||||
"/**",
|
||||
" * ${1:Comment}$0",
|
||||
"*/"
|
||||
],
|
||||
"description": "A JSDoc comment"
|
||||
},
|
||||
"author email": {
|
||||
"prefix": "@au",
|
||||
"body": [
|
||||
"@author ${1:author_name} [${2:author_email}]"
|
||||
],
|
||||
"description": "@author email (First Last)"
|
||||
},
|
||||
"Lisense desc": {
|
||||
"prefix": "@li",
|
||||
"body": [
|
||||
"@license ${1:MIT}$0"
|
||||
],
|
||||
"description": "@lisence Description"
|
||||
},
|
||||
"Semantic version": {
|
||||
"prefix": "@ver",
|
||||
"body": [
|
||||
"@version ${1:0.1.0}$0"
|
||||
],
|
||||
"description": "@version Semantic version"
|
||||
},
|
||||
"File overview": {
|
||||
"prefix": "@fileo",
|
||||
"body": [
|
||||
"/**\n",
|
||||
" * @fileoverview ${1:Description_of_the_file}$0",
|
||||
"*/"
|
||||
],
|
||||
"description": "@fileoverview Description"
|
||||
},
|
||||
"Contructor": {
|
||||
"prefix": "@constr",
|
||||
"body": [
|
||||
"@contructor"
|
||||
],
|
||||
"description": "@constructor"
|
||||
},
|
||||
"varname": {
|
||||
"prefix": "@p",
|
||||
"body": [
|
||||
"@param ${1:Type} ${2:varname} ${3:Description}"
|
||||
],
|
||||
"description": "@param {Type} varname Description"
|
||||
},
|
||||
"return type desc": {
|
||||
"prefix": "@ret",
|
||||
"body": [
|
||||
"@return ${1:Type} ${2:Description}"
|
||||
],
|
||||
"description": "@return {Type} Description"
|
||||
},
|
||||
"private": {
|
||||
"prefix": "@pri",
|
||||
"body": [
|
||||
"@private"
|
||||
],
|
||||
"description": "@private"
|
||||
},
|
||||
"override": {
|
||||
"prefix": "@over",
|
||||
"body": [
|
||||
"@override"
|
||||
],
|
||||
"description": "@override"
|
||||
},
|
||||
"protected": {
|
||||
"prefix": "@pro",
|
||||
"body": [
|
||||
"@protected"
|
||||
],
|
||||
"description": "@protected"
|
||||
}
|
||||
}
|
288
nvim/.config/nvim/vsnips/markdown.json
Normal file
288
nvim/.config/nvim/vsnips/markdown.json
Normal file
@@ -0,0 +1,288 @@
|
||||
{
|
||||
"header 1": {
|
||||
"prefix": "h1",
|
||||
"body": ["# ${0}"],
|
||||
"description": "Add header level 1"
|
||||
},
|
||||
"header 2": {
|
||||
"prefix": "h2",
|
||||
"body": ["## ${0}"],
|
||||
"description": "Add header level 2"
|
||||
},
|
||||
"header 3": {
|
||||
"prefix": "h3",
|
||||
"body": ["### ${0}"],
|
||||
"description": "Add header level 3"
|
||||
},
|
||||
"header 4": {
|
||||
"prefix": "h4",
|
||||
"body": ["#### ${0}"],
|
||||
"description": "Add header level 4"
|
||||
},
|
||||
"header 5": {
|
||||
"prefix": "h5",
|
||||
"body": ["##### ${0}"],
|
||||
"description": "Add header level 5"
|
||||
},
|
||||
"header 6": {
|
||||
"prefix": "h6",
|
||||
"body": ["###### ${0}"],
|
||||
"description": "Add header level 6"
|
||||
},
|
||||
"Links": {
|
||||
"prefix": ["l", "link"],
|
||||
"body": ["[${1}](${2}) ${0}"],
|
||||
"description": "Add links"
|
||||
},
|
||||
"URLS": {
|
||||
"prefix": ["u", "url"],
|
||||
"body": ["<${1}> ${0}"],
|
||||
"description": "Add urls"
|
||||
},
|
||||
"Images": {
|
||||
"prefix": "img",
|
||||
"body": [" ${0}"],
|
||||
"description": "Add images"
|
||||
},
|
||||
"Insert strikethrough": {
|
||||
"prefix": "strikethrough",
|
||||
"body": "~~${1}~~ ${0}",
|
||||
"description": "Insert strikethrough"
|
||||
},
|
||||
"Insert bold text": {
|
||||
"prefix": ["bold", "b"],
|
||||
"body": "**${1}** $0",
|
||||
"description": "Insert bold text"
|
||||
},
|
||||
"Insert italic text": {
|
||||
"prefix": ["i", "italic"],
|
||||
"body": "*${1}* $0",
|
||||
"description": "Insert italic text"
|
||||
},
|
||||
"Insert bold and italic text": {
|
||||
"prefix": ["bold and italic", "bi"],
|
||||
"body": "***${1}*** $0",
|
||||
"description": "Insert bold and italic text"
|
||||
},
|
||||
"Insert quoted text": {
|
||||
"prefix": "quote",
|
||||
"body": "> ${1}",
|
||||
"description": "Insert quoted text"
|
||||
},
|
||||
"Insert code": {
|
||||
"prefix": "code",
|
||||
"body": "`${1}` $0",
|
||||
"description": "Insert code"
|
||||
},
|
||||
"Insert code block": {
|
||||
"prefix": "codeblock",
|
||||
"body": ["```${1:language}", "$0", "```"],
|
||||
"description": "Insert fenced code block"
|
||||
},
|
||||
"Insert unordered list": {
|
||||
"prefix": "unordered list",
|
||||
"body": ["- ${1:first}", "- ${2:second}", "- ${3:third}", "$0"],
|
||||
"description": "Insert unordered list"
|
||||
},
|
||||
"Insert ordered list": {
|
||||
"prefix": "ordered list",
|
||||
"body": ["1. ${1:first}", "2. ${2:second}", "3. ${3:third}", "$0"],
|
||||
"description": "Insert ordered list"
|
||||
},
|
||||
"Insert horizontal rule": {
|
||||
"prefix": "horizontal rule",
|
||||
"body": "----------\n",
|
||||
"description": "Insert horizontal rule"
|
||||
},
|
||||
"Insert task list": {
|
||||
"prefix": "task",
|
||||
"body": ["- [${1| ,x|}] ${2:text}", "${0}"],
|
||||
"description": "Insert task list"
|
||||
},
|
||||
"Insert task list 2": {
|
||||
"prefix": "task2",
|
||||
"body": ["- [${1| ,x|}] ${2:text}", "- [${3| ,x|}] ${4:text}", "${0}"],
|
||||
"description": "Insert task list with 2 tasks"
|
||||
},
|
||||
"Insert task list 3": {
|
||||
"prefix": "task3",
|
||||
"body": [
|
||||
"- [${1| ,x|}] ${2:text}",
|
||||
"- [${3| ,x|}] ${4:text}",
|
||||
"- [${5| ,x|}] ${6:text}",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert task list with 3 tasks"
|
||||
},
|
||||
"Insert task list 4": {
|
||||
"prefix": "task4",
|
||||
"body": [
|
||||
"- [${1| ,x|}] ${2:text}",
|
||||
"- [${3| ,x|}] ${4:text}",
|
||||
"- [${5| ,x|}] ${6:text}",
|
||||
"- [${7| ,x|}] ${8:text}",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert task list with 4 tasks"
|
||||
},
|
||||
"Insert task list 5": {
|
||||
"prefix": "task5",
|
||||
"body": [
|
||||
"- [${1| ,x|}] ${2:text}",
|
||||
"- [${3| ,x|}] ${4:text}",
|
||||
"- [${5| ,x|}] ${6:text}",
|
||||
"- [${7| ,x|}] ${8:text}",
|
||||
"- [${9| ,x|}] ${10:text}",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert task list with 5 tasks"
|
||||
},
|
||||
"Insert table": {
|
||||
"prefix": "table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|-------------- | -------------- | -------------- |",
|
||||
"| ${4:Item1} | ${5:Item1} | ${6:Item1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 2x1 table": {
|
||||
"prefix": "2x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 3x1 table": {
|
||||
"prefix": "3x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"| ${3:Item2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 4x1 table": {
|
||||
"prefix": "4x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"| ${3:Item2} |",
|
||||
"| ${4:Item3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 5x1 table": {
|
||||
"prefix": "5x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"| ${3:Item2} |",
|
||||
"| ${4:Item3} |",
|
||||
"| ${5:Item4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 2x2 table": {
|
||||
"prefix": "2x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 3x2 table": {
|
||||
"prefix": "3x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"| ${5:Item1.2} | ${6:Item2.2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 4x2 table": {
|
||||
"prefix": "4x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"| ${5:Item1.2} | ${6:Item2.2} |",
|
||||
"| ${7:Item1.3} | ${8:Item2.3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 5x2 table": {
|
||||
"prefix": "5x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"| ${4:Item1.2} | ${5:Item2.2} |",
|
||||
"| ${6:Item1.3} | ${7:Item2.3} |",
|
||||
"| ${8:Item1.4} | ${9:Item2.4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 2x3 table": {
|
||||
"prefix": "2x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 3x3 table": {
|
||||
"prefix": "3x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 4x3 table": {
|
||||
"prefix": "4x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||
"| ${10:Item1.3} | ${11:Item2.3} | ${12:Item3.3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 5x3 table": {
|
||||
"prefix": "5x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||
"| ${10:Item1.3} | ${11:Item2.3} | ${12:Item3.3} |",
|
||||
"| ${13:Item1.4} | ${14:Item2.4} | ${15:Item3.4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 3 columns. First row is heading."
|
||||
}
|
||||
}
|
380
nvim/.config/nvim/vsnips/telekasten.json
Normal file
380
nvim/.config/nvim/vsnips/telekasten.json
Normal file
@@ -0,0 +1,380 @@
|
||||
{
|
||||
"header 1": {
|
||||
"prefix": "h1",
|
||||
"body": ["# ${0}"],
|
||||
"description": "Add header level 1"
|
||||
},
|
||||
"header 2": {
|
||||
"prefix": "h2",
|
||||
"body": ["## ${0}"],
|
||||
"description": "Add header level 2"
|
||||
},
|
||||
"header 3": {
|
||||
"prefix": "h3",
|
||||
"body": ["### ${0}"],
|
||||
"description": "Add header level 3"
|
||||
},
|
||||
"header 4": {
|
||||
"prefix": "h4",
|
||||
"body": ["#### ${0}"],
|
||||
"description": "Add header level 4"
|
||||
},
|
||||
"header 5": {
|
||||
"prefix": "h5",
|
||||
"body": ["##### ${0}"],
|
||||
"description": "Add header level 5"
|
||||
},
|
||||
"header 6": {
|
||||
"prefix": "h6",
|
||||
"body": ["###### ${0}"],
|
||||
"description": "Add header level 6"
|
||||
},
|
||||
"Links": {
|
||||
"prefix": ["l", "link"],
|
||||
"body": ["[${1}](${2}) ${0}"],
|
||||
"description": "Add links"
|
||||
},
|
||||
"URLS": {
|
||||
"prefix": ["u", "url"],
|
||||
"body": ["<${1}> ${0}"],
|
||||
"description": "Add urls"
|
||||
},
|
||||
"Images": {
|
||||
"prefix": "img",
|
||||
"body": [" ${0}"],
|
||||
"description": "Add images"
|
||||
},
|
||||
"Insert strikethrough": {
|
||||
"prefix": "strikethrough",
|
||||
"body": "~~${1}~~ ${0}",
|
||||
"description": "Insert strikethrough"
|
||||
},
|
||||
"Insert bold text": {
|
||||
"prefix": ["bold", "b"],
|
||||
"body": "**${1}** $0",
|
||||
"description": "Insert bold text"
|
||||
},
|
||||
"Insert italic text": {
|
||||
"prefix": ["i", "italic"],
|
||||
"body": "*${1}* $0",
|
||||
"description": "Insert italic text"
|
||||
},
|
||||
"Insert bold and italic text": {
|
||||
"prefix": ["bold and italic", "bi"],
|
||||
"body": "***${1}*** $0",
|
||||
"description": "Insert bold and italic text"
|
||||
},
|
||||
"Insert quoted text": {
|
||||
"prefix": "quote",
|
||||
"body": "> ${1}",
|
||||
"description": "Insert quoted text"
|
||||
},
|
||||
"Insert code": {
|
||||
"prefix": "code",
|
||||
"body": "`${1}` $0",
|
||||
"description": "Insert code"
|
||||
},
|
||||
"Insert code block": {
|
||||
"prefix": "codeblock",
|
||||
"body": ["```${1:language}", "$0", "```"],
|
||||
"description": "Insert fenced code block"
|
||||
},
|
||||
"Insert unordered list": {
|
||||
"prefix": "unordered list",
|
||||
"body": ["- ${1:first}", "- ${2:second}", "- ${3:third}", "$0"],
|
||||
"description": "Insert unordered list"
|
||||
},
|
||||
"Insert ordered list": {
|
||||
"prefix": "ordered list",
|
||||
"body": ["1. ${1:first}", "2. ${2:second}", "3. ${3:third}", "$0"],
|
||||
"description": "Insert ordered list"
|
||||
},
|
||||
"Insert horizontal rule": {
|
||||
"prefix": "horizontal rule",
|
||||
"body": "----------\n",
|
||||
"description": "Insert horizontal rule"
|
||||
},
|
||||
"Insert task list": {
|
||||
"prefix": "task",
|
||||
"body": ["- [${1| ,x|}] ${2:text}", "${0}"],
|
||||
"description": "Insert task list"
|
||||
},
|
||||
"Insert task list 2": {
|
||||
"prefix": "task2",
|
||||
"body": ["- [${1| ,x|}] ${2:text}", "- [${3| ,x|}] ${4:text}", "${0}"],
|
||||
"description": "Insert task list with 2 tasks"
|
||||
},
|
||||
"Insert task list 3": {
|
||||
"prefix": "task3",
|
||||
"body": [
|
||||
"- [${1| ,x|}] ${2:text}",
|
||||
"- [${3| ,x|}] ${4:text}",
|
||||
"- [${5| ,x|}] ${6:text}",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert task list with 3 tasks"
|
||||
},
|
||||
"Insert task list 4": {
|
||||
"prefix": "task4",
|
||||
"body": [
|
||||
"- [${1| ,x|}] ${2:text}",
|
||||
"- [${3| ,x|}] ${4:text}",
|
||||
"- [${5| ,x|}] ${6:text}",
|
||||
"- [${7| ,x|}] ${8:text}",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert task list with 4 tasks"
|
||||
},
|
||||
"Insert task list 5": {
|
||||
"prefix": "task5",
|
||||
"body": [
|
||||
"- [${1| ,x|}] ${2:text}",
|
||||
"- [${3| ,x|}] ${4:text}",
|
||||
"- [${5| ,x|}] ${6:text}",
|
||||
"- [${7| ,x|}] ${8:text}",
|
||||
"- [${9| ,x|}] ${10:text}",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert task list with 5 tasks"
|
||||
},
|
||||
"Insert table": {
|
||||
"prefix": "table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|-------------- | -------------- | -------------- |",
|
||||
"| ${4:Item1} | ${5:Item1} | ${6:Item1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 2x1 table": {
|
||||
"prefix": "2x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 3x1 table": {
|
||||
"prefix": "3x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"| ${3:Item2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 4x1 table": {
|
||||
"prefix": "4x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"| ${3:Item2} |",
|
||||
"| ${4:Item3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 5x1 table": {
|
||||
"prefix": "5x1table",
|
||||
"body": [
|
||||
"| ${1:Column1} |",
|
||||
"|-------------- |",
|
||||
"| ${2:Item1} |",
|
||||
"| ${3:Item2} |",
|
||||
"| ${4:Item3} |",
|
||||
"| ${5:Item4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 1 column. First row is heading."
|
||||
},
|
||||
"Insert 2x2 table": {
|
||||
"prefix": "2x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 3x2 table": {
|
||||
"prefix": "3x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"| ${5:Item1.2} | ${6:Item2.2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 4x2 table": {
|
||||
"prefix": "4x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"| ${5:Item1.2} | ${6:Item2.2} |",
|
||||
"| ${7:Item1.3} | ${8:Item2.3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 5x2 table": {
|
||||
"prefix": "5x2table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} |",
|
||||
"|--------------- | --------------- |",
|
||||
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||
"| ${4:Item1.2} | ${5:Item2.2} |",
|
||||
"| ${6:Item1.3} | ${7:Item2.3} |",
|
||||
"| ${8:Item1.4} | ${9:Item2.4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 2 columns. First row is heading."
|
||||
},
|
||||
"Insert 2x3 table": {
|
||||
"prefix": "2x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 3x3 table": {
|
||||
"prefix": "3x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 4x3 table": {
|
||||
"prefix": "4x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||
"| ${10:Item1.3} | ${11:Item2.3} | ${12:Item3.3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 5x3 table": {
|
||||
"prefix": "5x3table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||
"|---------------- | --------------- | --------------- |",
|
||||
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||
"| ${10:Item1.3} | ${11:Item2.3} | ${12:Item3.3} |",
|
||||
"| ${13:Item1.4} | ${14:Item2.4} | ${15:Item3.4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 3 columns. First row is heading."
|
||||
},
|
||||
"Insert 2x4 table": {
|
||||
"prefix": "2x4table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 4 columns. First row is heading."
|
||||
},
|
||||
"Insert 3x4 table": {
|
||||
"prefix": "3x4table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||
"| ${9:Item1.2} | ${10:Item2.2} | ${11:Item3.2} | ${12:Item4.2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 4 columns. First row is heading."
|
||||
},
|
||||
"Insert 4x4 table": {
|
||||
"prefix": "4x4table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||
"| ${9:Item1.2} | ${10:Item2.2} | ${11:Item3.2} | ${12:Item4.2} |",
|
||||
"| ${13:Item1.3} | ${14:Item2.3} | ${15:Item3.3} | ${16:Item4.3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 4 columns. First row is heading."
|
||||
},
|
||||
"Insert 5x4 table": {
|
||||
"prefix": "5x4table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||
"| ${9:Item1.2} | ${10:Item2.2} | ${11:Item3.2} | ${12:Item4.2} |",
|
||||
"| ${13:Item1.3} | ${14:Item2.3} | ${15:Item3.3} | ${16:Item4.3} |",
|
||||
"| ${17:Item1.4} | ${18:Item2.4} | ${19:Item3.4} | ${20:Item4.4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 4 columns. First row is heading."
|
||||
},
|
||||
"Insert 2x5 table": {
|
||||
"prefix": "2x5table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 2 rows and 5 columns. First row is heading."
|
||||
},
|
||||
"Insert 3x5 table": {
|
||||
"prefix": "3x5table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||
"| ${11:Item1.2} | ${12:Item2.2} | ${13:Item3.2} | ${14:Item4.2} | ${15:Item5.2} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 3 rows and 5 columns. First row is heading."
|
||||
},
|
||||
"Insert 4x5 table": {
|
||||
"prefix": "4x5table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||
"| ${11:Item1.2} | ${12:Item2.2} | ${13:Item3.2} | ${14:Item4.2} | ${15:Item5.2} |",
|
||||
"| ${16:Item1.3} | ${17:Item2.3} | ${18:Item3.3} | ${19:Item4.3} | ${20:Item5.3} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 4 rows and 5 columns. First row is heading."
|
||||
},
|
||||
"Insert 5x5 table": {
|
||||
"prefix": "5x5table",
|
||||
"body": [
|
||||
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||
"|---------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||
"| ${11:Item1.2} | ${12:Item2.2} | ${13:Item3.2} | ${14:Item4.2} | ${15:Item5.2} |",
|
||||
"| ${16:Item1.3} | ${17:Item2.3} | ${18:Item3.3} | ${19:Item4.3} | ${20:Item5.3} |",
|
||||
"| ${21:Item1.4} | ${22:Item2.4} | ${23:Item3.4} | ${24:Item4.4} | ${25:Item5.4} |",
|
||||
"${0}"
|
||||
],
|
||||
"description": "Insert table with 5 rows and 5 columns. First row is heading."
|
||||
}
|
||||
}
|
@@ -1,14 +1,48 @@
|
||||
{
|
||||
"tabular": {
|
||||
"prefix": "tabular",
|
||||
"\\begin{}…\\end{}": {
|
||||
"prefix": "begin",
|
||||
"body": [
|
||||
"\\\\begin{tabular}{$1}",
|
||||
"\\\\hline",
|
||||
"\\\\begin{${1:env}}",
|
||||
"\t$0",
|
||||
"\\\\hline",
|
||||
"\\\\end{tabular}"
|
||||
"\\\\end{${1:env}}"
|
||||
],
|
||||
"description": "tabular"
|
||||
"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\\task $0",
|
||||
"\\\\end{tasks}"
|
||||
],
|
||||
"description": "enumerate"
|
||||
},
|
||||
"center": {
|
||||
"prefix": "center",
|
||||
@@ -19,6 +53,18 @@
|
||||
],
|
||||
"description": "center"
|
||||
},
|
||||
"tabular": {
|
||||
"prefix": "tabular",
|
||||
"body": [
|
||||
"\\\\begin{tabular}{$1}",
|
||||
"\t\\\\hline",
|
||||
"\t$0",
|
||||
"\t\\\\hline",
|
||||
"\\\\end{tabular}"
|
||||
],
|
||||
"description": "tabular"
|
||||
},
|
||||
|
||||
"minipage": {
|
||||
"prefix": "minipage",
|
||||
"body": [
|
||||
@@ -27,5 +73,65 @@
|
||||
"\\\\end{minipage}"
|
||||
],
|
||||
"description": "minipage"
|
||||
},
|
||||
|
||||
"multicols": {
|
||||
"prefix": "multicols",
|
||||
"body": [
|
||||
"\\\\begin{multicols}{${1:2}}",
|
||||
"\t$0",
|
||||
"\\\\end{multicols}"
|
||||
],
|
||||
"description": "multicols"
|
||||
},
|
||||
|
||||
"image": {
|
||||
"prefix": "image",
|
||||
"body": [
|
||||
"\\\\includegraphics[scale=${1:1}]{${2:./fig/}}",
|
||||
"$0"
|
||||
],
|
||||
"description": "exercise xsim"
|
||||
},
|
||||
|
||||
"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"
|
||||
},
|
||||
|
||||
"AMC_multquestion": {
|
||||
"prefix": "multquestion",
|
||||
"body": [
|
||||
"\\\\element{${1:group}}{",
|
||||
"\\\\begin{questionmult}{${2:name}}\\\\bareme{b=0.5,m=0.5,p=0}",
|
||||
"\t$3",
|
||||
"\t\\\\begin{reponseshoriz}",
|
||||
"\t\t\\\\bonne{$4}",
|
||||
"\t\t\\\\mauvaise{$5}",
|
||||
"\t\\\\end{reponseshoriz}",
|
||||
"\\\\end{questionmult}",
|
||||
"}"
|
||||
],
|
||||
"description": "Question simple pour AMC"
|
||||
},
|
||||
"AMC_question": {
|
||||
"prefix": "question",
|
||||
"body": [
|
||||
"\\\\element{${1:group}}{",
|
||||
"\\\\begin{question}{${2:name}}",
|
||||
"\t$3",
|
||||
"\t\\\\begin{reponseshoriz}",
|
||||
"\t\t\\\\bonne{$4}",
|
||||
"\t\t\\\\mauvaise{$5}",
|
||||
"\t\\\\end{reponseshoriz}",
|
||||
"\\\\end{question}",
|
||||
"}"
|
||||
],
|
||||
"description": "Question multiple pour AMC"
|
||||
}
|
||||
}
|
||||
|
2
nvim/.latexmkrc
Normal file
2
nvim/.latexmkrc
Normal file
@@ -0,0 +1,2 @@
|
||||
$pdf_mode = 4;
|
||||
$lualatex='lualatex --interaction=nonstopmode -shell-escape';
|
5
qtile/.config/qtile/autostart.sh
Executable file
5
qtile/.config/qtile/autostart.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
nm-applet &
|
||||
pasystray &
|
||||
nextcloud &
|
||||
xrandr --output VGA-1 --off --output HDMI-1 --mode 1920x1080 --pos 1080x420 --rotate normal --output DP-1 --off --output HDMI-2 --mode 1920x1080 --pos 0x0 --rotate left --output DP-2 --off
|
267
qtile/.config/qtile/config.py
Normal file
267
qtile/.config/qtile/config.py
Normal file
@@ -0,0 +1,267 @@
|
||||
# Copyright (c) 2010 Aldo Cortesi
|
||||
# Copyright (c) 2010, 2014 dequis
|
||||
# Copyright (c) 2012 Randall Ma
|
||||
# Copyright (c) 2012-2014 Tycho Andersen
|
||||
# Copyright (c) 2012 Craig Barnes
|
||||
# Copyright (c) 2013 horsik
|
||||
# Copyright (c) 2013 Tao Sauvage
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
from libqtile.config import Key, Screen, Group, Drag, Click, ScratchPad, DropDown
|
||||
from libqtile.command import lazy
|
||||
from libqtile import layout, bar, widget, extension, hook
|
||||
from libqtile.log_utils import logger
|
||||
from os.path import expanduser
|
||||
from subprocess import call
|
||||
|
||||
|
||||
from typing import List # noqa: F401
|
||||
|
||||
wmname = "???"
|
||||
MOD = "mod4"
|
||||
TERM = "urxvt"
|
||||
|
||||
# Base16 - hybrid (with 5 and 13 from jmbi)
|
||||
colors = {
|
||||
# special
|
||||
"FG": "#c5c8c6",
|
||||
"BG": "#1d1f21",
|
||||
"C": "#c5c8c6",
|
||||
# black
|
||||
0: "#282a2e",
|
||||
8: "#373b41",
|
||||
# red
|
||||
1: "#a54242",
|
||||
9: "#cc6666",
|
||||
# green
|
||||
2: "#8c9440",
|
||||
10: "#b5bd68",
|
||||
# yellow
|
||||
3: "#de935f",
|
||||
11: "#f0c674",
|
||||
# blue
|
||||
4: "#5f819d",
|
||||
12: "#81a2be",
|
||||
# magenta
|
||||
5: "#d13516",
|
||||
13: "#c25431",
|
||||
# cyan
|
||||
6: "#5e8d87",
|
||||
14: "#8abeb7",
|
||||
# white
|
||||
7: "#707880",
|
||||
15: "#c5c8c6",
|
||||
}
|
||||
|
||||
keys = [
|
||||
Key([MOD], "f", lazy.window.toggle_floating()),
|
||||
# Moving inside a screen
|
||||
Key([MOD], "Tab", lazy.layout.next()),
|
||||
Key([MOD], "j", lazy.layout.down()),
|
||||
Key([MOD], "k", lazy.layout.up()),
|
||||
Key([MOD, "shift"], "Tab", lazy.layout.rotate()),
|
||||
# Key([MOD, "shift"], "Tab", lazy.spawncmd()), # circle inside layout
|
||||
Key([MOD, "shift"], "k", lazy.layout.shuffle_up()),
|
||||
Key([MOD, "shift"], "j", lazy.layout.shuffle_down()),
|
||||
# Move between screens
|
||||
Key([MOD], "l", lazy.to_screen(0)),
|
||||
Key([MOD], "h", lazy.to_screen(1)),
|
||||
# Key([MOD, "shift"], "l", move to screen 1),
|
||||
# Key([MOD, "shift"], "h", move to screen 0),
|
||||
# Toggle between different layouts as defined below
|
||||
Key([MOD], "space", lazy.next_layout()),
|
||||
# Toggle between split and unsplit sides of stack.
|
||||
# Split = all windows displayed
|
||||
# Unsplit = 1 window displayed, like Max layout, but still with
|
||||
# multiple stack panes
|
||||
# Key([MOD, "shift"], "Return", lazy.layout.toggle_split()),
|
||||
# Swap panes of split stack
|
||||
# Key([MOD, "shift"], "space", lazy.layout.rotate()),
|
||||
# Screens
|
||||
Key([MOD], "r", lazy.spawncmd()),
|
||||
# Key([MOD], 'r', lazy.run_extension(extension.DmenuRun(
|
||||
# dmenu_prompt=">",
|
||||
# dmenu_font="Andika-8",
|
||||
# background="#15181a",
|
||||
# foreground="#00ff00",
|
||||
# selected_background="#079822",
|
||||
# selected_foreground="#fff",
|
||||
# dmenu_height=24, # Only supported by some dmenu forks
|
||||
# ))),
|
||||
Key([MOD], "Return", lazy.spawn(TERM)),
|
||||
Key([MOD], "q", lazy.window.kill()),
|
||||
Key([MOD, "control"], "r", lazy.restart()),
|
||||
Key([MOD, "control"], "q", lazy.shutdown()),
|
||||
Key([MOD, "control"], "equal", lazy.spawn("systemctl suspend")),
|
||||
# Change the volume if our keyboard has keys
|
||||
Key([], "XF86AudioRaiseVolume", lazy.spawn("pamixer -i 2")),
|
||||
Key([], "XF86AudioLowerVolume", lazy.spawn("pamixer -d 2")),
|
||||
Key([], "XF86AudioMute", lazy.spawn("pamixer -t")),
|
||||
]
|
||||
|
||||
groups = [
|
||||
Group("t:", spawn="firefox", layout="Tall", persist=True),
|
||||
Group("y:", spawn="thunderbird", layout="verticaltile", persist=True),
|
||||
Group("u:", spawn=TERM+" -e sh -c tmuxp load enseignement", layout="TallRight", persist=True),
|
||||
Group("i:", layout="Wide", persist=True),
|
||||
Group("o:", layout="TallRight", persist=True),
|
||||
Group("p:", layout="Wide", persist=True),
|
||||
]
|
||||
|
||||
groups_keys = ["t", "y", "u", "i", "o", "p"]
|
||||
|
||||
for i, g in enumerate(groups):
|
||||
k = groups_keys[i]
|
||||
keys.extend(
|
||||
[
|
||||
# mod1 + letter of group = switch to group
|
||||
Key([MOD], k, lazy.group[g.name].toscreen()),
|
||||
# mod1 + shift + letter of group = switch to & move focused window to group
|
||||
Key(
|
||||
[MOD, "shift"], k, lazy.window.togroup(g.name)
|
||||
), # , lazy.group[g.name].toscreen()),
|
||||
]
|
||||
)
|
||||
|
||||
groups.append(
|
||||
ScratchPad(
|
||||
"scratchpad",
|
||||
[
|
||||
DropDown(
|
||||
"music", TERM+" -e sh -c mocp", x=0.25, y=0.25, height=0.5, width=0.5, opacity=0.8
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
|
||||
keys.extend(
|
||||
[
|
||||
Key([MOD], "m", lazy.group["scratchpad"].dropdown_toggle("music")),
|
||||
]
|
||||
)
|
||||
|
||||
borders = {
|
||||
"border_focus": colors[13],
|
||||
"border_normal": colors["BG"],
|
||||
}
|
||||
|
||||
layouts = [
|
||||
layout.Max(),
|
||||
layout.VerticalTile(**borders),
|
||||
layout.MonadTall(
|
||||
name="Tall",
|
||||
align=0,
|
||||
ratio=0.5,
|
||||
**borders,
|
||||
),
|
||||
layout.MonadTall(
|
||||
name="TallRight",
|
||||
align=0,
|
||||
ratio=0.7,
|
||||
**borders,
|
||||
),
|
||||
layout.MonadWide(
|
||||
name="Wide",
|
||||
ratio=0.8,
|
||||
**borders,
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
widget_defaults = dict(
|
||||
font="DroidSans",
|
||||
fontsize=12,
|
||||
padding=3,
|
||||
)
|
||||
extension_defaults = widget_defaults.copy()
|
||||
|
||||
screens = [
|
||||
Screen(),
|
||||
Screen(
|
||||
top=bar.Bar(
|
||||
[
|
||||
widget.GroupBox(
|
||||
active=colors["FG"],
|
||||
foreground=colors[8],
|
||||
highlight_color=[colors[1], colors[13]],
|
||||
highlight_method="border",
|
||||
this_current_screen_border=colors[13],
|
||||
this_screen_border=colors[8],
|
||||
other_current_screen_border=colors[13],
|
||||
other_screen_border=colors[8],
|
||||
),
|
||||
widget.Prompt(
|
||||
background=colors[13],
|
||||
),
|
||||
# widget.WindowName(),
|
||||
widget.Spacer(bar.STRETCH),
|
||||
widget.Clock(
|
||||
format="%a %d %B %Y %H:%M",
|
||||
background=colors[13],
|
||||
foreground=colors[15],
|
||||
),
|
||||
widget.Systray(),
|
||||
# widget.CurrentLayoutIcon(scale=0.5),
|
||||
],
|
||||
size=24,
|
||||
background=colors["BG"],
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
# Drag floating layouts.
|
||||
mouse = [
|
||||
Drag(
|
||||
[MOD],
|
||||
"Button1",
|
||||
lazy.window.set_position_floating(),
|
||||
start=lazy.window.get_position(),
|
||||
),
|
||||
Drag(
|
||||
[MOD], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()
|
||||
),
|
||||
Click([MOD], "Button2", lazy.window.bring_to_front()),
|
||||
]
|
||||
|
||||
dgroups_key_binder = None
|
||||
dgroups_app_rules = [] # type: List
|
||||
main = None
|
||||
follow_mouse_focus = True
|
||||
bring_front_click = False
|
||||
cursor_warp = False
|
||||
auto_fullscreen = True
|
||||
focus_on_window_activation = "smart"
|
||||
|
||||
@hook.subscribe.client_new
|
||||
def floating_dialogs(window):
|
||||
dialog = window.window.get_wm_type() == 'dialog'
|
||||
transient = window.window.get_wm_transient_for()
|
||||
if dialog or transient:
|
||||
window.floating = True
|
||||
|
||||
@hook.subscribe.startup_once
|
||||
def autostart():
|
||||
home = expanduser("~")
|
||||
call([home + "/.config/qtile/autostart.sh"])
|
||||
|
||||
|
||||
@hook.subscribe.screen_change
|
||||
def restart_on_randr(qtile):
|
||||
qtile.cmd_restart()
|
2
qtile/.config/qtile/dualscreen.sh
Executable file
2
qtile/.config/qtile/dualscreen.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
xrandr --output VGA-1 --off --output HDMI-1 --mode 1920x1080 --pos 1080x420 --rotate normal --output DP-1 --off --output HDMI-2 --mode 1920x1080 --pos 0x0 --rotate left --output DP-2 --off
|
19
qutebrowser/.config/qutebrowser/autoconfig.yml
Normal file
19
qutebrowser/.config/qutebrowser/autoconfig.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
# If a config.py file exists, this file is ignored unless it's explicitly loaded
|
||||
# via config.load_autoconfig(). For more information, see:
|
||||
# https://github.com/qutebrowser/qutebrowser/blob/master/doc/help/configuring.asciidoc#loading-autoconfigyml
|
||||
# DO NOT edit this file by hand, qutebrowser will overwrite it.
|
||||
# Instead, create a config.py - see :help for details.
|
||||
|
||||
config_version: 2
|
||||
settings:
|
||||
auto_save.session:
|
||||
global: true
|
||||
content.blocking.method:
|
||||
global: both
|
||||
content.geolocation:
|
||||
https://www.reseau-canope.fr: false
|
||||
spellcheck.languages:
|
||||
global:
|
||||
- fr-FR
|
||||
zoom.default:
|
||||
global: 120%
|
0
qutebrowser/.config/qutebrowser/bookmarks/urls
Normal file
0
qutebrowser/.config/qutebrowser/bookmarks/urls
Normal file
2
qutebrowser/.config/qutebrowser/config.py
Normal file
2
qutebrowser/.config/qutebrowser/config.py
Normal file
@@ -0,0 +1,2 @@
|
||||
config.load_autoconfig()
|
||||
config.source("gruvbox_dark_medium.py")
|
300
qutebrowser/.config/qutebrowser/gruvbox_dark_medium.py
Normal file
300
qutebrowser/.config/qutebrowser/gruvbox_dark_medium.py
Normal file
@@ -0,0 +1,300 @@
|
||||
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
|
||||
# Base16 qutebrowser template by theova
|
||||
# Gruvbox dark, medium scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
|
||||
|
||||
base00 = "#282828"
|
||||
base01 = "#3c3836"
|
||||
base02 = "#504945"
|
||||
base03 = "#665c54"
|
||||
base04 = "#bdae93"
|
||||
base05 = "#d5c4a1"
|
||||
base06 = "#ebdbb2"
|
||||
base07 = "#fbf1c7"
|
||||
base08 = "#fb4934"
|
||||
base09 = "#fe8019"
|
||||
base0A = "#fabd2f"
|
||||
base0B = "#b8bb26"
|
||||
base0C = "#8ec07c"
|
||||
base0D = "#83a598"
|
||||
base0E = "#d3869b"
|
||||
base0F = "#d65d0e"
|
||||
|
||||
# set qutebrowser colors
|
||||
|
||||
# Text color of the completion widget. May be a single color to use for
|
||||
# all columns or a list of three colors, one for each column.
|
||||
c.colors.completion.fg = base05
|
||||
|
||||
# Background color of the completion widget for odd rows.
|
||||
c.colors.completion.odd.bg = base01
|
||||
|
||||
# Background color of the completion widget for even rows.
|
||||
c.colors.completion.even.bg = base00
|
||||
|
||||
# Foreground color of completion widget category headers.
|
||||
c.colors.completion.category.fg = base0A
|
||||
|
||||
# Background color of the completion widget category headers.
|
||||
c.colors.completion.category.bg = base00
|
||||
|
||||
# Top border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.top = base00
|
||||
|
||||
# Bottom border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.bottom = base00
|
||||
|
||||
# Foreground color of the selected completion item.
|
||||
c.colors.completion.item.selected.fg = base05
|
||||
|
||||
# Background color of the selected completion item.
|
||||
c.colors.completion.item.selected.bg = base02
|
||||
|
||||
# Top border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.top = base02
|
||||
|
||||
# Bottom border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.bottom = base02
|
||||
|
||||
# Foreground color of the matched text in the selected completion item.
|
||||
c.colors.completion.item.selected.match.fg = base0B
|
||||
|
||||
# Foreground color of the matched text in the completion.
|
||||
c.colors.completion.match.fg = base0F
|
||||
|
||||
# Color of the scrollbar handle in the completion view.
|
||||
c.colors.completion.scrollbar.fg = base05
|
||||
|
||||
# Color of the scrollbar in the completion view.
|
||||
c.colors.completion.scrollbar.bg = base00
|
||||
|
||||
# Background color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.bg = base01
|
||||
|
||||
# Foreground color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.fg = base04
|
||||
|
||||
# Background color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.bg = base00
|
||||
|
||||
# Foreground color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.fg = base05
|
||||
|
||||
# Background color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.bg = base02
|
||||
|
||||
#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.fg = base05
|
||||
|
||||
# Background color for the download bar.
|
||||
c.colors.downloads.bar.bg = base00
|
||||
|
||||
# Color gradient start for download text.
|
||||
c.colors.downloads.start.fg = base00
|
||||
|
||||
# Color gradient start for download backgrounds.
|
||||
c.colors.downloads.start.bg = base0D
|
||||
|
||||
# Color gradient end for download text.
|
||||
c.colors.downloads.stop.fg = base00
|
||||
|
||||
# Color gradient stop for download backgrounds.
|
||||
c.colors.downloads.stop.bg = base0C
|
||||
|
||||
# Foreground color for downloads with errors.
|
||||
c.colors.downloads.error.fg = base08
|
||||
|
||||
# Font color for hints.
|
||||
c.colors.hints.fg = base00
|
||||
|
||||
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||
# for transparency.
|
||||
c.colors.hints.bg = base0A
|
||||
|
||||
# Font color for the matched part of hints.
|
||||
c.colors.hints.match.fg = base05
|
||||
|
||||
# Text color for the keyhint widget.
|
||||
c.colors.keyhint.fg = base05
|
||||
|
||||
# Highlight color for keys to complete the current keychain.
|
||||
c.colors.keyhint.suffix.fg = base05
|
||||
|
||||
# Background color of the keyhint widget.
|
||||
c.colors.keyhint.bg = base00
|
||||
|
||||
# Foreground color of an error message.
|
||||
c.colors.messages.error.fg = base00
|
||||
|
||||
# Background color of an error message.
|
||||
c.colors.messages.error.bg = base08
|
||||
|
||||
# Border color of an error message.
|
||||
c.colors.messages.error.border = base08
|
||||
|
||||
# Foreground color of a warning message.
|
||||
c.colors.messages.warning.fg = base00
|
||||
|
||||
# Background color of a warning message.
|
||||
c.colors.messages.warning.bg = base0E
|
||||
|
||||
# Border color of a warning message.
|
||||
c.colors.messages.warning.border = base0E
|
||||
|
||||
# Foreground color of an info message.
|
||||
c.colors.messages.info.fg = base05
|
||||
|
||||
# Background color of an info message.
|
||||
c.colors.messages.info.bg = base00
|
||||
|
||||
# Border color of an info message.
|
||||
c.colors.messages.info.border = base00
|
||||
|
||||
# Foreground color for prompts.
|
||||
c.colors.prompts.fg = base05
|
||||
|
||||
# Border used around UI elements in prompts.
|
||||
c.colors.prompts.border = base00
|
||||
|
||||
# Background color for prompts.
|
||||
c.colors.prompts.bg = base00
|
||||
|
||||
# Background color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.bg = base02
|
||||
|
||||
# Foreground color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.fg = base05
|
||||
|
||||
# Foreground color of the statusbar.
|
||||
c.colors.statusbar.normal.fg = base0B
|
||||
|
||||
# Background color of the statusbar.
|
||||
c.colors.statusbar.normal.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.fg = base00
|
||||
|
||||
# Background color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.bg = base0A
|
||||
|
||||
# Foreground color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.fg = base00
|
||||
|
||||
# Background color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.bg = base0C
|
||||
|
||||
# Foreground color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.fg = base00
|
||||
|
||||
# Background color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.bg = base01
|
||||
|
||||
# Foreground color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.fg = base05
|
||||
|
||||
# Background color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.fg = base05
|
||||
|
||||
# Background color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.bg = base0E
|
||||
|
||||
# Foreground color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.bg = base0D
|
||||
|
||||
# Background color of the progress bar.
|
||||
c.colors.statusbar.progress.bg = base0D
|
||||
|
||||
# Default foreground color of the URL in the statusbar.
|
||||
c.colors.statusbar.url.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on error.
|
||||
c.colors.statusbar.url.error.fg = base08
|
||||
|
||||
# Foreground color of the URL in the statusbar for hovered links.
|
||||
c.colors.statusbar.url.hover.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (http).
|
||||
c.colors.statusbar.url.success.http.fg = base0C
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (https).
|
||||
c.colors.statusbar.url.success.https.fg = base0B
|
||||
|
||||
# Foreground color of the URL in the statusbar when there's a warning.
|
||||
c.colors.statusbar.url.warn.fg = base0E
|
||||
|
||||
# Background color of the tab bar.
|
||||
c.colors.tabs.bar.bg = base00
|
||||
|
||||
# Color gradient start for the tab indicator.
|
||||
c.colors.tabs.indicator.start = base0D
|
||||
|
||||
# Color gradient end for the tab indicator.
|
||||
c.colors.tabs.indicator.stop = base0C
|
||||
|
||||
# Color for the tab indicator on errors.
|
||||
c.colors.tabs.indicator.error = base08
|
||||
|
||||
# Foreground color of unselected odd tabs.
|
||||
c.colors.tabs.odd.fg = base05
|
||||
|
||||
# Background color of unselected odd tabs.
|
||||
c.colors.tabs.odd.bg = base01
|
||||
|
||||
# Foreground color of unselected even tabs.
|
||||
c.colors.tabs.even.fg = base05
|
||||
|
||||
# Background color of unselected even tabs.
|
||||
c.colors.tabs.even.bg = base00
|
||||
|
||||
# Background color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.bg = base0C
|
||||
|
||||
# Foreground color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.fg = base07
|
||||
|
||||
# Background color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.bg = base0B
|
||||
|
||||
# Foreground color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.fg = base07
|
||||
|
||||
# Background color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.bg = base02
|
||||
|
||||
# Foreground color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.fg = base05
|
||||
|
||||
# Background color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.bg = base02
|
||||
|
||||
# Foreground color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.fg = base05
|
||||
|
||||
# Foreground color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.fg = base05
|
||||
|
||||
# Background color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.bg = base0F
|
||||
|
||||
# Foreground color of selected even tabs.
|
||||
c.colors.tabs.selected.even.fg = base05
|
||||
|
||||
# Background color of selected even tabs.
|
||||
c.colors.tabs.selected.even.bg = base0F
|
||||
|
||||
# Background color for webpages if unset (or empty to use the theme's
|
||||
# color).
|
||||
# c.colors.webpage.bg = base00
|
0
qutebrowser/.config/qutebrowser/quickmarks
Normal file
0
qutebrowser/.config/qutebrowser/quickmarks
Normal file
1
qutebrowser/.config/qutebrowser/user.css
Normal file
1
qutebrowser/.config/qutebrowser/user.css
Normal file
@@ -0,0 +1 @@
|
||||
|
58
sway/.config/gammastep/config.ini
Normal file
58
sway/.config/gammastep/config.ini
Normal file
@@ -0,0 +1,58 @@
|
||||
; Global settings
|
||||
[general]
|
||||
; Set the day and night screen temperatures
|
||||
temp-day=5700
|
||||
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.
|
||||
fade=1
|
||||
; Solar elevation thresholds.
|
||||
; By default, Redshift will use the current elevation of the sun to determine
|
||||
; whether it is daytime, night or in transition (dawn/dusk). When the sun is
|
||||
; above the degrees specified with elevation-high it is considered daytime and
|
||||
; below elevation-low it is considered night.
|
||||
;elevation-high=3
|
||||
;elevation-low=-6
|
||||
; Custom dawn/dusk intervals.
|
||||
; Instead of using the solar elevation, the time intervals of dawn and dusk
|
||||
; can be specified manually. The times must be specified as HH:MM in 24-hour
|
||||
; format.
|
||||
;dawn-time=6:00-7:45
|
||||
;dusk-time=18:35-20:15
|
||||
; Set the screen brightness. Default is 1.0.
|
||||
; brightness=0.8
|
||||
; It is also possible to use different settings for day and night
|
||||
; since version 1.8.
|
||||
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: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.7
|
||||
; Set the location-provider: 'geoclue2', 'manual'.
|
||||
; The location provider settings are in a different section.
|
||||
location-provider=manual
|
||||
; Set the adjustment-method: 'randr', 'vidmode', 'drm', 'wayland'.
|
||||
; 'randr' is the preferred X11 method, 'vidmode' is an older API
|
||||
; that works in some cases when 'randr' does not.
|
||||
; The adjustment method settings are in a different section.
|
||||
adjustment-method=wayland
|
||||
; Configuration of the location-provider:
|
||||
; type 'gammastep -l PROVIDER:help' to see the settings.
|
||||
; ex: 'gammastep -l manual:help'
|
||||
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
|
||||
; are negative numbers.
|
||||
[manual]
|
||||
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'
|
||||
; In this example, randr is configured to adjust only screen 0.
|
||||
; Note that the numbering starts from 0, so this is actually the first screen.
|
||||
; If this option is not specified, Redshift will try to adjust _all_ screens.
|
31
sway/.config/kanshi/config
Normal file
31
sway/.config/kanshi/config
Normal file
@@ -0,0 +1,31 @@
|
||||
profile chanay {
|
||||
output eDP-1 enable scale 1
|
||||
output "Optoma Corporation Optoma SVGA Q71P7100939" position 0,0
|
||||
}
|
||||
|
||||
profile stex101 {
|
||||
output eDP-1 enable scale 1
|
||||
output "Seiko Epson Corporation EPSON PJ 0x00000101" position 0,0
|
||||
}
|
||||
|
||||
|
||||
profile maison {
|
||||
output eDP-1 disable
|
||||
output "Philips Consumer Electronics Company PHL 223V5 ZV01622003292" position 0,0 transform 90 mode 1920x1080
|
||||
output "Samsung Electric Company LS27A600U HNMR502540" position 1080,240 mode 2560x1440
|
||||
}
|
||||
|
||||
profile maison2 {
|
||||
output eDP-1 enable scale 1 position 320,1440
|
||||
output "Samsung Electric Company LS27A600U HNMR502540" mode 2560x1440
|
||||
}
|
||||
|
||||
profile bdp {
|
||||
output eDP-1 enable scale 1 position 320,1440
|
||||
output "Dell Inc. DELL U3417W 660X87290G9L" position 0,0
|
||||
}
|
||||
|
||||
|
||||
profile undocked {
|
||||
output eDP-1 enable scale 1
|
||||
}
|
23
sway/.config/mako/config
Normal file
23
sway/.config/mako/config
Normal file
@@ -0,0 +1,23 @@
|
||||
sort=-time
|
||||
layer=overlay
|
||||
background-color=#282828
|
||||
width=300
|
||||
height=110
|
||||
border-size=2
|
||||
border-color=#88c0d0
|
||||
border-radius=5
|
||||
icons=0
|
||||
max-icon-size=64
|
||||
default-timeout=5000
|
||||
ignore-timeout=1
|
||||
font=monospace 10
|
||||
|
||||
[urgency=low]
|
||||
border-color=#ebdbb2
|
||||
|
||||
[urgency=normal]
|
||||
border-color=#d65d0e
|
||||
|
||||
[urgency=high]
|
||||
border-color=#cc241d
|
||||
default-timeout=0
|
124
sway/.config/rofi-pass/config
Normal file
124
sway/.config/rofi-pass/config
Normal file
@@ -0,0 +1,124 @@
|
||||
# permanently set alternative root dir. Use ":" to separate multiple roots
|
||||
# which can be switched at runtime with shift+left/right
|
||||
# root=/path/to/root
|
||||
|
||||
# rofi command. Make sure to have "$@" as last argument
|
||||
_rofi () {
|
||||
rofi -i -no-auto-select "$@"
|
||||
}
|
||||
|
||||
# default command to generate passwords
|
||||
_pwgen () {
|
||||
pwgen -y "$@"
|
||||
}
|
||||
|
||||
# image viewer to display qrcode of selected entry
|
||||
# qrencode is needed to generate the image and a viewer
|
||||
# that can read from pipes. Known viewers to work are feh and display
|
||||
_image_viewer () {
|
||||
# feh -
|
||||
display
|
||||
}
|
||||
|
||||
# It is possible to use wl-copy and wl-paste from wl-clipboard
|
||||
# Just uncomment the lines with wl-copy and wl-paste
|
||||
# and comment the xclip lines
|
||||
#
|
||||
_clip_in_primary() {
|
||||
# xclip
|
||||
wl-copy-p
|
||||
}
|
||||
|
||||
_clip_in_clipboard() {
|
||||
#xclip -selection clipboard
|
||||
wl-copy
|
||||
}
|
||||
|
||||
_clip_out_primary() {
|
||||
# xclip -o
|
||||
wl-paste -p
|
||||
}
|
||||
|
||||
_clip_out_clipboard() {
|
||||
# xclip --selection clipboard -o
|
||||
wl-paste
|
||||
}
|
||||
|
||||
|
||||
# xdotool needs the keyboard layout to be set using setxkbmap
|
||||
# You can do this in your autostart scripts (e.g. xinitrc)
|
||||
|
||||
# If for some reason, you cannot do this, you can set the command here.
|
||||
# and set fix_layout to true
|
||||
fix_layout=true
|
||||
|
||||
layout_cmd () {
|
||||
setxkbmap fr
|
||||
}
|
||||
|
||||
# fields to be used
|
||||
URL_field='url'
|
||||
USERNAME_field='user'
|
||||
AUTOTYPE_field='autotype'
|
||||
|
||||
# delay to be used for :delay keyword
|
||||
delay=2
|
||||
|
||||
# rofi-pass needs to close itself before it can type passwords. Set delay here.
|
||||
wait=0.2
|
||||
|
||||
# delay between keypresses when typing (in ms)
|
||||
xdotool_delay=12
|
||||
|
||||
## Programs to be used
|
||||
# Editor
|
||||
EDITOR='gvim -f'
|
||||
|
||||
# Browser
|
||||
BROWSER='xdg-open'
|
||||
|
||||
## Misc settings
|
||||
|
||||
default_do='menu' # menu, autotype, copyPass, typeUser, typePass, copyUser, copyUrl, viewEntry, typeMenu, actionMenu, copyMenu, openUrl
|
||||
auto_enter='false'
|
||||
notify='false'
|
||||
default_autotype='user :tab pass'
|
||||
|
||||
# color of the help messages
|
||||
# leave empty for autodetection
|
||||
help_color="#4872FF"
|
||||
|
||||
# Clipboard settings
|
||||
# Possible options: primary, clipboard, both
|
||||
clip=primary
|
||||
|
||||
# Seconds before clearing pass from clipboard
|
||||
clip_clear=45
|
||||
|
||||
## Options for generating new password entries
|
||||
|
||||
# open new password entries in editor
|
||||
edit_new_pass="true"
|
||||
|
||||
# default_user is also used for password files that have no user field.
|
||||
default_user=:filename
|
||||
#default_user="${ROFI_PASS_DEFAULT_USER-$(whoami)}"
|
||||
#default_user2=mary_ann
|
||||
#password_length=12
|
||||
|
||||
# Custom Keybindings
|
||||
autotype="Alt+1"
|
||||
type_user="Alt+2"
|
||||
type_pass="Alt+3"
|
||||
open_url="Alt+4"
|
||||
copy_name="Alt+u"
|
||||
copy_url="Alt+l"
|
||||
copy_pass="Alt+p"
|
||||
show="Alt+o"
|
||||
copy_entry="Alt+2"
|
||||
type_entry="Alt+1"
|
||||
copy_menu="Alt+c"
|
||||
action_menu="Alt+a"
|
||||
type_menu="Alt+t"
|
||||
help="Alt+h"
|
||||
switch="Alt+x"
|
18
sway/.config/rofi/config.rasi
Normal file
18
sway/.config/rofi/config.rasi
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
configuration {
|
||||
terminal: "kitty";
|
||||
modi: "combi,window,drun";
|
||||
combi-modi: "drun,window";
|
||||
font: "Noto Sans Bold 10";
|
||||
show-icons: true;
|
||||
icon-theme: "Tela circle dark";
|
||||
combi-hide-mode-prefix: true;
|
||||
drun-show-actions: true;
|
||||
drun-display-format: "{name}";
|
||||
disable-history: false;
|
||||
fullscreen: false;
|
||||
hide-scrollbar: true;
|
||||
sidebar-mode: false;
|
||||
auto-select: false;
|
||||
}
|
||||
@theme "/home/lafrite/.local/share/rofi/rofi-themes-collection/themes/spotlight-dark.rasi"
|
265
sway/.config/sway/config
Normal file
265
sway/.config/sway/config
Normal file
@@ -0,0 +1,265 @@
|
||||
# Default config for sway
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term alacritty
|
||||
# Your preferred application launcher
|
||||
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||
# on the original workspace that the command was run on.
|
||||
set $menu rofi -show drun
|
||||
|
||||
set $laptopScreen eDP-1
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
# output * bg ~/Images/Wallpapers/Pteridium.jpg fill
|
||||
output * bg ~/Images/Wallpapers/coraill.jpg fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
### Input configuration
|
||||
|
||||
|
||||
input type:keyboard {
|
||||
xkb_layout "fr"
|
||||
xkb_variant ""
|
||||
}
|
||||
|
||||
input * xkb_numlock enable
|
||||
|
||||
input type:touchpad {
|
||||
natural_scroll enabled
|
||||
tap enabled
|
||||
}
|
||||
|
||||
input type:pointer {
|
||||
accel_profile flat
|
||||
pointer_accel 0
|
||||
}
|
||||
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||
# dwt enabled
|
||||
# tap enabled
|
||||
# natural_scroll enabled
|
||||
# middle_emulation enabled
|
||||
# }
|
||||
#
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
bindsym $mod+p exec rofi-pass
|
||||
bindsym Print exec ~/.local/bin/sway/rofi_screenshot.sh 2> ~/tmp/rofi_debug.log
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
set $ws1 1:
|
||||
set $ws2 2:
|
||||
set $ws3 3:
|
||||
set $ws4 4:
|
||||
set $ws5 5:
|
||||
set $ws6 6:
|
||||
set $ws7 7:
|
||||
|
||||
bindsym $mod+ampersand workspace $ws1
|
||||
bindsym $mod+eacute workspace $ws2
|
||||
bindsym $mod+quotedbl workspace $ws3
|
||||
bindsym $mod+apostrophe workspace $ws4
|
||||
bindsym $mod+parenleft workspace $ws5
|
||||
bindsym $mod+minus workspace $ws6
|
||||
bindsym $mod+egrave workspace $ws7
|
||||
bindsym $mod+underscore workspace 8
|
||||
bindsym $mod+ccedilla workspace 9
|
||||
|
||||
bindsym $mod+1 move container to workspace $ws1
|
||||
bindsym $mod+2 move container to workspace $ws2
|
||||
bindsym $mod+3 move container to workspace $ws3
|
||||
bindsym $mod+4 move container to workspace $ws4
|
||||
bindsym $mod+5 move container to workspace $ws5
|
||||
bindsym $mod+6 move container to workspace $ws6
|
||||
bindsym $mod+7 move container to workspace $ws7
|
||||
bindsym $mod+8 move container to workspace 8
|
||||
bindsym $mod+9 move container to workspace 9
|
||||
|
||||
|
||||
bindsym $mod+Ctrl+greater move workspace to output right
|
||||
bindsym $mod+Ctrl+less move workspace to output left
|
||||
|
||||
# move to last workspace
|
||||
bindsym $mod+space workspace back_and_forth
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
# bindsym $mod+s layout stacking
|
||||
# bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+y focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+m move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+m scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Audio
|
||||
#
|
||||
|
||||
bindsym XF86AudioRaiseVolume exec volumectl -u up
|
||||
bindsym XF86AudioLowerVolume exec volumectl -u down
|
||||
bindsym XF86AudioMute exec volumectl toggle-mute
|
||||
bindsym XF86AudioMicMute exec volumectl -m toggle-mute
|
||||
|
||||
#
|
||||
# Brightness
|
||||
#
|
||||
bindsym XF86MonBrightnessUp exec lightctl up
|
||||
bindsym XF86MonBrightnessDown exec lightctl down
|
||||
|
||||
#
|
||||
# Decoration
|
||||
#
|
||||
|
||||
|
||||
default_border pixel 2
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #d65d0e #be5046 #ffffff #be5046 #be5046
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
# position top
|
||||
# output $laptopScreen
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
# include /etc/sway/config.d/*
|
||||
include ~/.config/sway/config.d/*
|
21
sway/.config/sway/config.d/misc_autostart
Normal file
21
sway/.config/sway/config.d/misc_autostart
Normal file
@@ -0,0 +1,21 @@
|
||||
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
|
||||
exec_always /usr/libexec/goa-daemon --replace
|
||||
exec gammastep-indicator
|
||||
exec mako
|
||||
exec "avizo-service"
|
||||
exec_always autotiling-rs
|
||||
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
#exec_always pkill kanshi; exec_always kanshi
|
||||
exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
|
||||
|
||||
exec swaymsg "workspace $ws1; exec firefox;"
|
||||
exec swaymsg "workspace $ws2; exec thunderbird;"
|
||||
|
11
sway/.config/systemd/user/kanshi.service
Normal file
11
sway/.config/systemd/user/kanshi.service
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Dynamic output configuration for Wayland compositors
|
||||
Documentation=https://sr.ht/~emersion/kanshi
|
||||
BindsTo=sway-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/kanshi
|
||||
|
||||
[Install]
|
||||
WantedBy=sway-session.target
|
6
sway/.config/systemd/user/sway-session.target
Normal file
6
sway/.config/systemd/user/sway-session.target
Normal file
@@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Sway compositor session
|
||||
Documentation=man:systemd.special
|
||||
BindsTo=graphical-session.target
|
||||
Wants=graphical-session-pre.target
|
||||
After=graphical-session-pre.target
|
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/kanshi.service
|
111
sway/.config/waybar/config
Normal file
111
sway/.config/waybar/config
Normal file
@@ -0,0 +1,111 @@
|
||||
[{
|
||||
"layer": "top",
|
||||
"output": "eDP-1",
|
||||
"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,
|
||||
}
|
||||
},
|
||||
{
|
||||
"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,
|
||||
}
|
||||
}]
|
23
sway/.config/waybar/gruvbox.css
Normal file
23
sway/.config/waybar/gruvbox.css
Normal file
@@ -0,0 +1,23 @@
|
||||
@define-color background #282828;
|
||||
@define-color foreground #ebdbb2;
|
||||
@define-color black #282828;
|
||||
@define-color red #cc241d;
|
||||
@define-color green #98971a;
|
||||
@define-color yellow #d79921;
|
||||
@define-color blue #458588;
|
||||
@define-color magenta #b16286;
|
||||
@define-color cyan #689d6a;
|
||||
@define-color white #a89984;
|
||||
@define-color aqua #689d6a;
|
||||
@define-color orange #d65d0e;
|
||||
|
||||
@define-color magenta_b #d3869b;
|
||||
@define-color cyan_b #8ec07c;
|
||||
@define-color yellow_b #fabd2f;
|
||||
@define-color white_b #ebdbb2;
|
||||
@define-color black_b #928374;
|
||||
@define-color red_b #fb4934;
|
||||
@define-color green_b #b8bb26;
|
||||
@define-color blue_b #83a598;
|
||||
@define-color aqua_b #8ec07c;
|
||||
@define-color orange_b #fe8010;
|
70
sway/.config/waybar/style.css
Normal file
70
sway/.config/waybar/style.css
Normal file
@@ -0,0 +1,70 @@
|
||||
* {
|
||||
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;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 2px;
|
||||
background: transparent;
|
||||
color: @white_b;
|
||||
border-bottom: 3px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background: @orange;
|
||||
border-bottom: 3px solid @orange_b;
|
||||
}
|
||||
|
||||
#mode, #clock, #battery {
|
||||
padding: 0 10px;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background: @red;
|
||||
border-bottom: 3px solid @white_b;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @white_b;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: @white_b;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @gree;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: @white_b;
|
||||
color: @background;
|
||||
}
|
||||
}
|
||||
|
||||
#idle_inhibitor, #pulseaudio, #custom-openvpn, #network, #cpu, #memory, #temperature, #backlight, #battery, #clock, #tray {
|
||||
padding: 0 6px;
|
||||
margin: 0 3px;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
background: @red;
|
||||
color: @white_b;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
87
sway/.local/bin/sway/rofi_screenshot.sh
Executable file
87
sway/.local/bin/sway/rofi_screenshot.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#! /usr/bin/zsh
|
||||
|
||||
set -e
|
||||
|
||||
PICTURES_DIR="$(xdg-user-dir PICTURES)"
|
||||
ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||
|
||||
monitor="$(swaymsg -t get_outputs | jq '[.[].focused] | index(true)')"
|
||||
alias myrofi="rofi -dmenu -matching fuzzy -i -sort -sorting-method fzf -monitor $monitor"
|
||||
|
||||
select_window() {
|
||||
declare -A windows
|
||||
|
||||
swaymsg -t get_tree |
|
||||
jq -r '..|.nodes? + .floating_nodes?|arrays|select(length > 0)|.[]|select((.nodes + .floating_nodes | length) == 0)|select(.visible)|(.app_id + ": " + .name + "\n" + (.rect.x | tostring) + "," + (.rect.y | tostring) + " " + (.rect.width | tostring) + "x" + (.rect.height | tostring))' |
|
||||
while read window_name; read geometry; do
|
||||
windows[$window_name]="$geometry"
|
||||
done
|
||||
|
||||
echo ${windows[$(print -l ${(@k)windows} | myrofi)]}
|
||||
}
|
||||
|
||||
main() {
|
||||
actions="Copy region to clipboard\nSave region to $PICTURES_DIR\nCopy window to clipboard\nSave window to $PICTURES_DIR\nSave region to zk"
|
||||
|
||||
if [[ "$(swaymsg -t get_outputs | jq length)" == "1" ]]; then
|
||||
actions+="\nCopy screen to clipboard\nSave screen to $PICTURES_DIR"
|
||||
else
|
||||
actions+="\nCopy current monitor to clipboard\nSave current monitor to $PICTURES_DIR\nCopy all monitors to clipboard\nSave all monitors to $PICTURES_DIR"
|
||||
fi
|
||||
|
||||
selection="$(echo "$actions" | myrofi -p "Take a screenshot")"
|
||||
|
||||
filename="$(date +'screenshot_%Y%m%d%H%M%s.png')"
|
||||
imagepath="${PICTURES_DIR}/$filename"
|
||||
zkpath="${ZK_NOTEBOOK_DIR}/fig/$filename"
|
||||
case "$selection" in
|
||||
"Copy region to clipboard")
|
||||
grim -g "$(slurp)" - | wl-copy
|
||||
notify-send "Region copied to clipboard"
|
||||
;;
|
||||
"Save region to $PICTURES_DIR")
|
||||
grim -g "$(slurp)" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Save region to zk")
|
||||
grim -g "$(slurp)" "$zkpath"
|
||||
sh_path="../fig/${zkpath##*/}"
|
||||
wl-copy $sh_path
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved" "$sh_path is copied")
|
||||
;;
|
||||
"Copy window to clipboard")
|
||||
grim -g "$(select_window)" - | wl-copy
|
||||
notify-send "Window copied to clipboard"
|
||||
;;
|
||||
"Save window to $PICTURES_DIR")
|
||||
grim -g "$(select_window)" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Copy current monitor to clipboard")
|
||||
monitor="$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')"
|
||||
grim -o $monitor - | wl-copy
|
||||
notify-send "Monitor $monitor copied to clipboard"
|
||||
;;
|
||||
"Save current monitor to $PICTURES_DIR")
|
||||
grim -o "$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Copy screen to clipboard"|"Copy all monitors to clipboard")
|
||||
grim - | wl-copy
|
||||
notify-send "Screen copied to clipboard"
|
||||
;;
|
||||
"Save screen to $PICTURES_DIR"|"Save all monitors to $PICTURES_DIR")
|
||||
grim "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$reply" == "2" ]]; then
|
||||
nautilus -s $imagepath
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
@@ -1,4 +1,4 @@
|
||||
set -g default-terminal "screen-256color"
|
||||
set -g default-terminal "xterm-256color"
|
||||
|
||||
## Vim user config
|
||||
|
||||
@@ -183,6 +183,7 @@ set -g message-bg colour166
|
||||
|
||||
# }
|
||||
|
||||
set-option -g focus-events on
|
||||
|
||||
## Plugins
|
||||
# Supports `github_username/repo` or full git repo URLs
|
||||
|
@@ -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}
|
||||
@@ -243,6 +245,9 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
||||
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
||||
\ convert -identify %f -verbose /dev/null
|
||||
|
||||
filetype *.svg inkscape %f
|
||||
|
||||
|
||||
" OpenRaster
|
||||
filextype *.ora
|
||||
\ {Edit in MyPaint}
|
||||
@@ -329,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 -
|
||||
|
||||
|
118
vim/.vim/config/base.vim
Normal file
118
vim/.vim/config/base.vim
Normal file
@@ -0,0 +1,118 @@
|
||||
" Lines number
|
||||
set number
|
||||
|
||||
" Always show the statusline
|
||||
set laststatus=2
|
||||
|
||||
" Necessary to show Unicode glyphs
|
||||
set encoding=utf8
|
||||
|
||||
" smart tab
|
||||
set smartindent
|
||||
|
||||
" Tab to..?
|
||||
set shiftround
|
||||
|
||||
" Display edition mode
|
||||
set showmode
|
||||
|
||||
" Ignore case in search mode
|
||||
set ignorecase
|
||||
|
||||
" Override the 'ignorecase' option if the search pattern
|
||||
" contains upper case characters.
|
||||
set smartcase
|
||||
|
||||
" Display uncomplete commands (??)
|
||||
set showcmd
|
||||
|
||||
" Vim file name completion relative to current file
|
||||
set autochdir
|
||||
|
||||
" While typing a search command, show immediately where the
|
||||
" so far typed pattern matches.
|
||||
set incsearch
|
||||
|
||||
" Use <C-L> to clear the highlighting of :set hlsearch.
|
||||
set hlsearch
|
||||
if maparg('<C-L>', 'n') ==# ''
|
||||
nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
|
||||
endif
|
||||
|
||||
" Turn on the WiLd menu
|
||||
set wildmenu
|
||||
|
||||
" Ignore compiled files
|
||||
set wildignore=*.o,*~,*.pyc,*.swp
|
||||
|
||||
" Wrap lines
|
||||
set wrap
|
||||
|
||||
" Turn backup off, since most stuff is in SVN, git et.c anyway...
|
||||
set nobackup
|
||||
set noswapfile
|
||||
|
||||
" Having relative number for lines
|
||||
set relativenumber
|
||||
|
||||
" Display tab and ends of lines
|
||||
" Shortcut to rapidly toggle `set list`
|
||||
nmap <leader>L :set list!<CR>
|
||||
|
||||
" Behaviour of tab
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set softtabstop=4
|
||||
set expandtab
|
||||
|
||||
" Folding
|
||||
set foldmethod=indent
|
||||
|
||||
" Use the same symbols as TextMate for tabstops and EOLs
|
||||
" set listchars=tab:▸\ ,eol:¬
|
||||
set listchars=nbsp:¤,tab:··,trail:¤,extends:▶,precedes:◀
|
||||
|
||||
" allow backspacing over everything in insert mode
|
||||
set backspace=indent,eol,start
|
||||
|
||||
set history=50 " keep 50 lines of command line history
|
||||
set ruler " show the cursor position all the time
|
||||
"
|
||||
" In many terminal emulators the mouse works just fine, thus enable it.
|
||||
if has('mouse')
|
||||
set mouse=a
|
||||
endif
|
||||
|
||||
" Decorations
|
||||
" ====================
|
||||
" Switch syntax highlighting on, when the terminal has colors
|
||||
" Also switch on highlighting the last used search pattern.
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
syntax on
|
||||
endif
|
||||
|
||||
" When set to "dark", Vim will try to use colors that look
|
||||
" good on a dark background. When set to "light", Vim will
|
||||
" try to use colors that look good on a light background.
|
||||
" Any other value is illegal.
|
||||
set background=dark
|
||||
|
||||
" Color Scheme
|
||||
colorscheme zenburn
|
||||
|
||||
set cursorline
|
||||
|
||||
" Align blocks of text and keep them selected
|
||||
vmap < <gv
|
||||
vmap > >gv
|
||||
|
||||
" Spelling
|
||||
" set spelllang=fr
|
||||
autocmd BufRead,BufNewFile *.{md,tex,rst} setlocal spell spelllang=fr
|
||||
autocmd FileType tex,latex,markdown,md,rst setlocal spell spelllang=fr
|
||||
|
||||
" Remove trailing whitespace at the end of lines
|
||||
autocmd BufWritePre * %s/\s\+$//e
|
||||
|
||||
" Different color for far columns
|
||||
execute "set colorcolumn=" . join(range(81,335), ',')
|
24
vim/.vim/config/plugins.vim
Normal file
24
vim/.vim/config/plugins.vim
Normal file
@@ -0,0 +1,24 @@
|
||||
" lightline -> no need showmod
|
||||
set noshowmode
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'selenized_dark',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ],
|
||||
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'gitbranch': 'FugitiveHead'
|
||||
\ },
|
||||
\ }
|
||||
|
||||
" Supertab
|
||||
let g:SuperTabDefaultCompletionType = "context"
|
||||
|
||||
" Airline
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:tmuxline_powerline_separators = 0
|
||||
|
||||
" Nerdtree
|
||||
let NERDTreeIgnore = ['.pyc$']
|
||||
"autocmd VimEnter * NERDTree
|
||||
|
61
vim/.vimrc
Normal file
61
vim/.vimrc
Normal file
@@ -0,0 +1,61 @@
|
||||
set nocompatible " be iMproved, required
|
||||
noremap <Space> <Nop>
|
||||
map <Space> <Leader>
|
||||
let mapleader = "\<Space>"
|
||||
let localleader = "\<Space>"
|
||||
|
||||
" set the runtime path to include plug.com and initialize
|
||||
call plug#begin('~/.vim/plugged')
|
||||
|
||||
"" plug.vim management
|
||||
Plug 'junegunn/vim-plug'
|
||||
|
||||
" Airline statusline
|
||||
Plug 'itchyny/lightline.vim'
|
||||
|
||||
|
||||
"" Basic config for vim
|
||||
Plug 'tpope/vim-sensible'
|
||||
|
||||
" Git integration
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" Nerdtree
|
||||
Plug 'scrooloose/nerdtree'
|
||||
Plug 'Xuyuanp/nerdtree-git-plugin'
|
||||
|
||||
|
||||
" Change surround
|
||||
Plug 'tpope/vim-surround'
|
||||
|
||||
" Clever substitute
|
||||
Plug 'tpope/tpope-vim-abolish'
|
||||
|
||||
" Repeat
|
||||
Plug 'tpope/vim-repeat'
|
||||
|
||||
" Git on lines
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
|
||||
" Polyglot synthax hightlight autodetect
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Show indent lines
|
||||
Plug 'Yggdroot/indentLine'
|
||||
|
||||
" Tmux integration
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
|
||||
"" Color scheme
|
||||
Plug 'jnurmine/Zenburn'
|
||||
|
||||
" All of your Plugs must be added before the following line
|
||||
call plug#end() " required
|
||||
"
|
||||
|
||||
" import config from ./config
|
||||
" runtime! config/**/*.vim
|
||||
"runtime! config/*.vim
|
||||
runtime! config/base.vim
|
||||
runtime! config/plugins.vim
|
||||
set conceallevel=0
|
@@ -11,6 +11,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 +43,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'
|
||||
|
||||
|
||||
@@ -68,10 +73,14 @@ bindkey -M vicmd 'j' history-substring-search-down
|
||||
# Auto-ls
|
||||
source ~/.config/zsh/auto-ls/auto-ls.zsh
|
||||
|
||||
# Pyenv
|
||||
eval "$(pyenv init --path)"
|
||||
|
||||
|
||||
source ~/.config/zsh/completion.zsh
|
||||
source ~/.config/zsh/key-bindings.zsh
|
||||
|
||||
# password-store
|
||||
_fzf_complete_pass() {
|
||||
ARGS="$@"
|
||||
_fzf_complete '' "$@" < <(
|
||||
@@ -79,3 +88,5 @@ _fzf_complete_pass() {
|
||||
)
|
||||
}
|
||||
|
||||
# zk
|
||||
export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export TERM='rxvt-256color'
|
||||
#export TERM='rxvt-256color'
|
||||
|
||||
# XDG
|
||||
export XDG_CONFIG_HOME=$HOME/.config
|
||||
|
Reference in New Issue
Block a user