Compare commits
76 Commits
f796d0775e
...
datalyo
Author | SHA1 | Date | |
---|---|---|---|
e332226281 | |||
0ef904f5c1 | |||
5210b2a15a | |||
158c7a60a3 | |||
39a18835a1 | |||
fa519bd74d | |||
f98a52e613 | |||
44fb8a49fa | |||
52b956c423 | |||
e43a76a132 | |||
3029561478 | |||
f85841cafe | |||
140872d0e6 | |||
5b9d495de9 | |||
42b373b467 | |||
9c5c85fe29 | |||
6c6bbb47f3 | |||
375d135e83 | |||
5e87cb1f94 | |||
984fd8cfbd | |||
624c9ddd24 | |||
e4c915c224 | |||
06e9c790a9 | |||
a49ce29958 | |||
ff7880d04d | |||
b745e15242 | |||
c6a5e6ba07 | |||
af26c6978f | |||
a6d2ce2f22 | |||
0a9e6f9dda | |||
b069c2060b | |||
2d40f69d6f | |||
30ba1656b4 | |||
c96fdf218f | |||
6ec22356e7 | |||
f3e3ee0438 | |||
58cea70665 | |||
ba48178f00 | |||
06b30a5c3e | |||
c6d6cdc0aa | |||
383c27850a | |||
21e72dfb45 | |||
1d5e596ce0 | |||
bcc2772268 | |||
757c0d3585 | |||
6780915f38 | |||
c04543aba9 | |||
754ebcf1ae | |||
a4de744aa7 | |||
4f11c1a9b9 | |||
74e33d46b2 | |||
600b328691 | |||
d06a4e94cf | |||
c44cd17970 | |||
b0570700bb | |||
30d3ddfc90 | |||
3e0def88dd | |||
d6c6d4f5d1 | |||
787bca3373 | |||
e57be0cfd2 | |||
99a78b8e7d | |||
86ee7c8bce | |||
ad02746fc7 | |||
7c75eebe62 | |||
bd286dfa23 | |||
5617265cc6 | |||
418f122485 | |||
0302e76e1f | |||
c21c9096c9 | |||
6b23fdf858 | |||
1fe23703f4 | |||
20b9e02adb | |||
c7333aa79a | |||
7cb967447a | |||
e54b358410 | |||
1fbd08f657 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -20,3 +20,5 @@ newsboat/.newsboat/history.cmdline
|
||||
|
||||
mpd/.config/mpd/database
|
||||
mpd/.config/mpd/state
|
||||
|
||||
neomutt/.config/vdirsyncer/status/
|
||||
|
@@ -106,4 +106,3 @@ key_bindings:
|
||||
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: N, mods: Control, action: SpawnNewInstance }
|
||||
|
@@ -124,7 +124,7 @@ MusicDir = "/media/documents/musique/"
|
||||
# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for
|
||||
# debugging). You can enter more than one driver as a colon-separated
|
||||
# list. The first working driver will be used.
|
||||
#SoundDriver = JACK:ALSA:OSS
|
||||
SoundDriver = PULSEAUDIO:JACK:ALSA:OSS
|
||||
|
||||
# Jack output settings.
|
||||
#JackClientName = "moc"
|
||||
|
51
neomutt/.config/khard/khard.conf
Normal file
51
neomutt/.config/khard/khard.conf
Normal file
@@ -0,0 +1,51 @@
|
||||
# example configuration file for khard version > 0.14.0
|
||||
# place it under ~/.config/khard/khard.conf
|
||||
# This file is parsed by the configobj library. The syntax is described at
|
||||
# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
|
||||
|
||||
[addressbooks]
|
||||
[[contacts]]
|
||||
path = ~/.contacts/contacts/
|
||||
|
||||
[general]
|
||||
debug = no
|
||||
default_action = list
|
||||
# These are either strings or comma seperated lists
|
||||
editor = nvim, -i, NONE
|
||||
merge_editor = vimdiff
|
||||
|
||||
[contact table]
|
||||
# display names by first or last name: first_name / last_name / formatted_name
|
||||
display = first_name
|
||||
# group by address book: yes / no
|
||||
group_by_addressbook = no
|
||||
# reverse table ordering: yes / no
|
||||
reverse = no
|
||||
# append nicknames to name column: yes / no
|
||||
show_nicknames = no
|
||||
# show uid table column: yes / no
|
||||
show_uids = yes
|
||||
# sort by first or last name: first_name / last_name / formatted_name
|
||||
sort = last_name
|
||||
# localize dates: yes / no
|
||||
localize_dates = yes
|
||||
# set a comma separated list of preferred phone number types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_phone_number_type = pref, cell, home
|
||||
# set a comma separated list of preferred email address types in descending priority
|
||||
# or nothing for non-filtered alphabetical order
|
||||
preferred_email_address_type = pref, work, home
|
||||
|
||||
[vcard]
|
||||
# extend contacts with your own private objects
|
||||
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||
# every object label may only contain letters, digits and the - character
|
||||
# example:
|
||||
# private_objects = Jabber, Skype, Twitter
|
||||
# default: , (the empty list)
|
||||
# preferred vcard version: 3.0 / 4.0
|
||||
preferred_version = 4.0
|
||||
# Look into source vcf files to speed up search queries: yes / no
|
||||
search_in_source_files = no
|
||||
# skip unparsable vcard files: yes / no
|
||||
skip_unparsable = no
|
50
neomutt/.config/msmtp/config
Normal file
50
neomutt/.config/msmtp/config
Normal file
@@ -0,0 +1,50 @@
|
||||
# Example for a user configuration file ~/.msmtprc
|
||||
|
||||
# With modern mail services that publish autoconfiguration information,
|
||||
# you can simply run 'msmtp --configure yourmail@example.com' to get
|
||||
# a basic working configuration.
|
||||
|
||||
# This example focusses on TLS and authentication. Features not used here
|
||||
# include logging, timeouts, SOCKS proxies, TLS parameters, Delivery Status
|
||||
# Notification (DSN) settings, and more.
|
||||
|
||||
# Set default values: use the mail submission port 587, and always use TLS.
|
||||
# On this port, TLS is activated via STARTTLS.
|
||||
defaults
|
||||
port 587
|
||||
tls on
|
||||
tls_starttls on
|
||||
auth on
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
logfile ~/.msmtp.log
|
||||
|
||||
account bb_opytex
|
||||
user Takanuva
|
||||
passwordeval "pass mail/mailfence/Takanuva | head -n1"
|
||||
auth on
|
||||
host smtp.mailfence.com
|
||||
port 465
|
||||
# Envelope-from address
|
||||
from benjamin.bertrand@opytex.org
|
||||
tls_starttls off
|
||||
|
||||
account jb_opytex
|
||||
user margot_benjamin
|
||||
passwordeval "pass mail/jost_bertrand@opytex.org/margot_benjamin | head -n1"
|
||||
auth on
|
||||
host smtp.mailfence.com
|
||||
port 465
|
||||
# Envelope-from address
|
||||
from jost_bertrand@opytex.org
|
||||
tls_starttls off
|
||||
|
||||
account ac-lyon
|
||||
user bbertrand
|
||||
passwordeval "pass Prof/pronote/bbertrand | head -n1"
|
||||
auth on
|
||||
host smtps.ac-lyon.fr
|
||||
# Envelope-from address
|
||||
from benjamin.bertrand@ac-lyon.fr
|
||||
|
||||
# Set a default account
|
||||
account default : bb_opytex
|
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
@@ -0,0 +1,43 @@
|
||||
# vim: filetype=muttrc
|
||||
unmailboxes *
|
||||
|
||||
set from = "benjamin.bertrand@ac-lyon.fr"
|
||||
|
||||
set sendmail = "/usr/bin/msmtp -a ac-lyon"
|
||||
set folder = "~/.mail/ac_lyon"
|
||||
|
||||
set spoolfile = "+INBOX"
|
||||
set postponed = "+Drafts"
|
||||
set record = "+Sent"
|
||||
set trash = "+Trash"
|
||||
|
||||
set mbox_type = Maildir
|
||||
set ssl_starttls = yes
|
||||
set ssl_force_tls = yes
|
||||
|
||||
color status blue default
|
||||
|
||||
#mailboxes =INBOX =Sent =Drafts =Junk
|
||||
|
||||
|
||||
# set my_pass = "`pass Prof/pronote/bbertrand`"
|
||||
# set folder = "imaps://mail.ac-lyon.fr"
|
||||
# set imap_user = bbertrand
|
||||
# set imap_pass = $my_pass
|
||||
#
|
||||
# set ssl_force_tls = yes
|
||||
# set smtp_url = smtps://$imap_user@smtps.ac-lyon.fr:587
|
||||
# set smtp_pass = $my_pass
|
||||
# set ssl_starttls = yes
|
||||
# set smtp_authenticators = "login"
|
||||
#
|
||||
# set spoolfile = +INBOX
|
||||
# mailboxes = +INBOX
|
||||
# set imap_check_subscribed
|
||||
#
|
||||
# set record = "+Sent"
|
||||
# set trash = "+Trash"
|
||||
# set postponed = "+Drafts"
|
||||
#
|
||||
# ## Hook -- IMPORTANT!
|
||||
# account-hook $folder "set imap_pass=`pass Prof/pronote/bbertrand`"
|
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
@@ -0,0 +1,43 @@
|
||||
# vim: filetype=muttrc
|
||||
unmailboxes *
|
||||
|
||||
set from = "benjamin.bertrand@opytex.org"
|
||||
|
||||
set sendmail = "/usr/bin/msmtp -a bb_opytex"
|
||||
set folder = "~/.mail/bb_opytex"
|
||||
|
||||
set spoolfile = "+INBOX"
|
||||
set postponed = "+Drafts"
|
||||
set record = "+Sent"
|
||||
set trash = "+Junk"
|
||||
|
||||
|
||||
set mbox_type = Maildir
|
||||
set ssl_starttls = yes
|
||||
set ssl_force_tls = yes
|
||||
|
||||
color status cyan default
|
||||
|
||||
# mailboxes =INBOX =Sent =Drafts =Junk
|
||||
|
||||
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
||||
# set folder = "imaps://imap.mailfence.com/"
|
||||
# set imap_user = Takanuva
|
||||
# set imap_pass = $my_pass
|
||||
#
|
||||
# set ssl_force_tls = yes
|
||||
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
||||
# set smtp_pass = $my_pass
|
||||
# set ssl_starttls = yes
|
||||
# set smtp_authenticators = "login"
|
||||
#
|
||||
#
|
||||
# set spoolfile = +INBOX
|
||||
#
|
||||
# set record = "+Sent"
|
||||
# set trash = "+Trash"
|
||||
# set postponed = "+Drafts"
|
||||
#
|
||||
#
|
||||
# ## Hook -- IMPORTANT!
|
||||
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
@@ -0,0 +1,44 @@
|
||||
# vim: filetype=muttrc
|
||||
unmailboxes *
|
||||
set imap_list_subscribed
|
||||
set imap_check_subscribed
|
||||
|
||||
set from = "jost_bertrand@opytex.org"
|
||||
|
||||
set sendmail = "/usr/bin/msmtp -a jb_opytex"
|
||||
set folder = "~/.mail/jb_opytex"
|
||||
|
||||
set spoolfile = "+INBOX"
|
||||
set postponed = "+Drafts"
|
||||
set record = "+Sent"
|
||||
set trash = "+Junk"
|
||||
|
||||
set mbox_type = Maildir
|
||||
set ssl_starttls = yes
|
||||
set ssl_force_tls = yes
|
||||
|
||||
|
||||
color status red default
|
||||
|
||||
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
||||
# set folder = "imaps://imap.mailfence.com/"
|
||||
# set imap_user = Takanuva
|
||||
# set imap_pass = $my_pass
|
||||
#
|
||||
# set ssl_force_tls = yes
|
||||
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
||||
# set smtp_pass = $my_pass
|
||||
# set ssl_starttls = yes
|
||||
# set smtp_authenticators = "login"
|
||||
#
|
||||
#
|
||||
# set spoolfile = +INBOX
|
||||
# set imap_check_subscribed
|
||||
#
|
||||
# set record = "+Sent"
|
||||
# set trash = "+Trash"
|
||||
# set postponed = "+Drafts"
|
||||
#
|
||||
#
|
||||
# ## Hook -- IMPORTANT!
|
||||
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
100
neomutt/.config/neomutt/colors
Normal file
100
neomutt/.config/neomutt/colors
Normal file
@@ -0,0 +1,100 @@
|
||||
# -*-muttrc-*-
|
||||
|
||||
# Screenshot http://trovao.droplinegnome.org/stuff/mutt-zenburnt.png
|
||||
#
|
||||
# This is a zenburn-based neomutt color scheme that is not (even by far)
|
||||
# complete. There's no copyright involved. Do whatever you want with it.
|
||||
# Just be aware that I won't be held responsible if the current color-scheme
|
||||
# explodes your mail client. ;)
|
||||
#
|
||||
# Do notice that this color scheme requires a terminal emulator that supports
|
||||
# 256 color. Any modern X terminal emulator should have support for that and
|
||||
# you can enable it by calling neomutt as "TERM=xterm-256color neomutt" or, if you
|
||||
# use screen, by adding "term screen-256color" to your .screenrc.
|
||||
#
|
||||
# This file is in the public domain.
|
||||
#
|
||||
|
||||
# general-doesn't-fit stuff
|
||||
color normal color188 color237
|
||||
color error color115 color236
|
||||
color markers color142 color238
|
||||
color tilde color108 color237
|
||||
color status color144 color234
|
||||
|
||||
# index stuff
|
||||
color indicator color108 color236
|
||||
color tree color109 color237
|
||||
color index color188 color237 ~A
|
||||
color index color188 color237 ~N
|
||||
color index color188 color237 ~O
|
||||
color index color174 color237 ~F
|
||||
color index color174 color237 ~D
|
||||
|
||||
# Message Index ----------------------------------------------------------------
|
||||
|
||||
## Weak
|
||||
color index color08 color00 "~R" # read messages
|
||||
color index color08 color00 "~d >45d" # older than 45 days
|
||||
color index color08 color00 "~v~(!~N)" # collapsed thread with no unread
|
||||
color index color08 color00 "~Q" # messages that have been replied to
|
||||
|
||||
## Strong
|
||||
color index color21 color00 "(~U|~N|~O)" # unread, new, old messages
|
||||
color index color21 color00 "~v~(~U|~N|~O)" # collapsed thread with unread
|
||||
|
||||
## Highlight
|
||||
### Trusted
|
||||
color index color06 color00 "~g" # PGP signed messages
|
||||
color index color06 color00 "~G" # PGP encrypted messages
|
||||
### Odd
|
||||
color index color01 color00 "~E" # past Expires: header date
|
||||
color index color01 color00 "~=" # duplicated
|
||||
color index color01 color00 "~S" # marked by Supersedes: header
|
||||
### Flagged
|
||||
color index color05 color00 "~F" # flagged messages
|
||||
color index color02 color00 "~v~(~F)" # collapsed thread with flagged inside
|
||||
|
||||
# Selection
|
||||
color index color02 color18 "~T" # tagged messages
|
||||
color index color01 color18 "~D" # deleted messages
|
||||
|
||||
#
|
||||
|
||||
# header stuff
|
||||
color hdrdefault color223 color237
|
||||
color header color223 color237 "^Subject"
|
||||
|
||||
# gpg stuff
|
||||
color body color188 color237 "^gpg: Good signature.*"
|
||||
color body color115 color236 "^gpg: BAD signature.*"
|
||||
color body color174 color237 "^gpg: Can't check signature.*"
|
||||
color body color174 color237 "^-----BEGIN PGP SIGNED MESSAGE-----"
|
||||
color body color174 color237 "^-----BEGIN PGP SIGNATURE-----"
|
||||
color body color174 color237 "^-----END PGP SIGNED MESSAGE-----"
|
||||
color body color174 color237 "^-----END PGP SIGNATURE-----"
|
||||
color body color174 color237 "^Version: GnuPG.*"
|
||||
color body color174 color237 "^Comment: .*"
|
||||
|
||||
# url, email and web stuff
|
||||
color body color174 color237 "(finger|ftp|http|https|news|telnet)://[^ >]*"
|
||||
color body color174 color237 "<URL:[^ ]*>"
|
||||
color body color174 color237 "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?"
|
||||
color body color174 color237 "mailto: *[^ ]+\(\\i?subject=[^ ]+\)?"
|
||||
color body color174 color237 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||
|
||||
# misc body stuff
|
||||
color attachment color174 color237 #Add-ons to the message
|
||||
color signature color223 color237
|
||||
|
||||
# quote levels
|
||||
color quoted color108 color237
|
||||
color quoted1 color116 color237
|
||||
color quoted2 color247 color237
|
||||
color quoted3 color108 color237
|
||||
color quoted4 color116 color237
|
||||
color quoted5 color247 color237
|
||||
color quoted6 color108 color237
|
||||
color quoted7 color116 color237
|
||||
color quoted8 color247 color237
|
||||
color quoted9 color108 color237
|
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
@@ -0,0 +1,121 @@
|
||||
# -*-muttrc-*-
|
||||
# gruvbox dark (contrast dark):
|
||||
|
||||
# bg0 = 234
|
||||
# bg1 = 237
|
||||
# bg2 = 239
|
||||
# bg3 = 241
|
||||
# bg4 = 243
|
||||
#
|
||||
# gray = 245
|
||||
#
|
||||
# fg0 = 229
|
||||
# fg1 = 223
|
||||
# fg2 = 250
|
||||
# fg3 = 248
|
||||
# fg4 = 246
|
||||
#
|
||||
# red = 167
|
||||
# green = 142
|
||||
# yellow = 214
|
||||
# blue = 109
|
||||
# purple = 175
|
||||
# aqua = 108
|
||||
# orange = 208
|
||||
|
||||
|
||||
# See http://www.mutt.org/doc/manual/#color
|
||||
|
||||
color attachment color109 color234
|
||||
color bold color229 color234
|
||||
color error color167 color234
|
||||
color hdrdefault color246 color234
|
||||
color indicator color223 color237
|
||||
color markers color243 color234
|
||||
color normal color223 color234
|
||||
color quoted color250 color234
|
||||
color quoted1 color108 color234
|
||||
color quoted2 color250 color234
|
||||
color quoted3 color108 color234
|
||||
color quoted4 color250 color234
|
||||
color quoted5 color108 color234
|
||||
color search color234 color208
|
||||
color signature color108 color234
|
||||
color status color234 color250
|
||||
color tilde color243 color234
|
||||
color tree color142 color234
|
||||
color underline color223 color239
|
||||
|
||||
color sidebar_divider color250 color234
|
||||
color sidebar_new color142 color234
|
||||
|
||||
color index color142 color234 ~N
|
||||
color index color108 color234 ~O
|
||||
color index color109 color234 ~P
|
||||
color index color214 color234 ~F
|
||||
color index color175 color234 ~Q
|
||||
color index color167 color234 ~=
|
||||
color index color234 color223 ~T
|
||||
color index color234 color167 ~D
|
||||
|
||||
color header color214 color234 "^(To:|From:)"
|
||||
color header color142 color234 "^Subject:"
|
||||
color header color108 color234 "^X-Spam-Status:"
|
||||
color header color108 color234 "^Received:"
|
||||
|
||||
# Regex magic for URLs and hostnames
|
||||
#
|
||||
# Attention: BSD's regex has RE_DUP_MAX set to 255.
|
||||
#
|
||||
# Examples:
|
||||
# http://some-service.example.com
|
||||
# example.com
|
||||
# a.example.com
|
||||
# some-service.example.com
|
||||
# example.com/
|
||||
# example.com/datenschutz
|
||||
# file:///tmp/foo
|
||||
#
|
||||
# Non-examples:
|
||||
# 1.1.1900
|
||||
# 14.02.2022/24:00
|
||||
# 23.59
|
||||
# w.l.o.g
|
||||
# team.its
|
||||
color body color142 color234 "[a-z]{3,255}://[[:graph:]]*"
|
||||
color body color142 color234 "([-[:alnum:]]+\\.)+([0-9]{1,3}|[-[:alpha:]]+)/[[:graph:]]*"
|
||||
color body color142 color234 "([-[:alnum:]]+\\.){2,255}[-[:alpha:]]{2,10}"
|
||||
|
||||
# IPv4 and IPv6 stolen from https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
|
||||
color body color142 color234 "((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
|
||||
color body color142 color234 "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
|
||||
|
||||
# Mail addresses and mailto URLs
|
||||
color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||
color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
||||
|
||||
# some simleys and stuff
|
||||
color body color234 color214 "[;:]-*[)>(<lt;|]"
|
||||
color body color229 color234 "\\*[- A-Za-z]+\\*"
|
||||
|
||||
color body color214 color234 "^-.*PGP.*-*"
|
||||
color body color142 color234 "^gpg: Good signature from"
|
||||
color body color167 color234 "^gpg: Can't.*$"
|
||||
color body color214 color234 "^gpg: WARNING:.*$"
|
||||
color body color167 color234 "^gpg: BAD signature from"
|
||||
color body color167 color234 "^gpg: Note: This key has expired!"
|
||||
color body color214 color234 "^gpg: There is no indication that the signature belongs to the owner."
|
||||
color body color214 color234 "^gpg: can't handle these multiple signatures"
|
||||
color body color214 color234 "^gpg: signature verification suppressed"
|
||||
color body color214 color234 "^gpg: invalid node with packet of type"
|
||||
|
||||
color body color142 color234 "^Good signature from:"
|
||||
color body color167 color234 "^.?BAD.? signature from:"
|
||||
color body color142 color234 "^Verification successful"
|
||||
color body color167 color234 "^Verification [^s][^[:space:]]*$"
|
||||
|
||||
color compose header color223 color234
|
||||
color compose security_encrypt color175 color234
|
||||
color compose security_sign color109 color234
|
||||
color compose security_both color142 color234
|
||||
color compose security_none color208 color234
|
1
neomutt/.config/neomutt/mailboxes
Normal file
1
neomutt/.config/neomutt/mailboxes
Normal file
@@ -0,0 +1 @@
|
||||
mailboxes "+ac_lyon/Archives" "+ac_lyon/Archives.2019-2020" "+ac_lyon/Archives.2020-2021" "+ac_lyon/Archives.2021-2022" "+ac_lyon/Archives.2022-2023" "+ac_lyon/Archives/2019-2020" "+ac_lyon/Archives/2020-2021" "+ac_lyon/Archives/2021-2022" "+ac_lyon/Archives/2022-2023" "+ac_lyon/Brouillons" "+ac_lyon/Drafts" "+ac_lyon/Eleves" "+ac_lyon/Eleves.2nd1" "+ac_lyon/Eleves/2nd1" "+ac_lyon/Envoy&AOk-s" "+ac_lyon/INBOX" "+ac_lyon/Junk" "+ac_lyon/Sent" "+ac_lyon/TICE" "+ac_lyon/Trash" "+bb_opytex/Archive" "+bb_opytex/Drafts" "+bb_opytex/INBOX" "+bb_opytex/R&AOk-seautage" "+bb_opytex/Sent Items" "+bb_opytex/Spam?" "+bb_opytex/Trash" "+jb_opytex/2021" "+jb_opytex/2022" "+jb_opytex/Archive" "+jb_opytex/Drafts" "+jb_opytex/INBOX" "+jb_opytex/Sent Items" "+jb_opytex/Spam?" "+jb_opytex/Trash"
|
12
neomutt/.config/neomutt/mailcap
Normal file
12
neomutt/.config/neomutt/mailcap
Normal file
@@ -0,0 +1,12 @@
|
||||
# xdg-open
|
||||
application/msword; /usr/bin/xdg-open %s
|
||||
application/pdf; /usr/bin/xdg-open %s
|
||||
application/postscript ; /usr/bin/xdg-open %s
|
||||
|
||||
# HTML
|
||||
text/html; w3m -I %{charset} -T text/html; copiousoutput;
|
||||
text/plain; nvim %s
|
||||
|
||||
#Images
|
||||
image/png; /usr/bin/vimiv %s
|
||||
image/jpeg; /usr/bin/vimiv %s
|
56
neomutt/.config/neomutt/mappings
Normal file
56
neomutt/.config/neomutt/mappings
Normal file
@@ -0,0 +1,56 @@
|
||||
# vim: filetype=muttrc
|
||||
|
||||
# sidebar mappings
|
||||
bind index,pager \Ck sidebar-prev
|
||||
bind index,pager \Cj sidebar-next
|
||||
bind index,pager \Co sidebar-open
|
||||
bind index,pager \Cp sidebar-prev-new
|
||||
bind index,pager \Cn sidebar-next-new
|
||||
bind index,pager B sidebar-toggle-visible
|
||||
|
||||
# global index and pager shortcuts
|
||||
bind index,pager @ compose-to-sender
|
||||
bind index,pager D purge-message
|
||||
bind index <tab> sync-mailbox
|
||||
bind index <space> collapse-thread
|
||||
|
||||
# Email completion bindings
|
||||
bind editor <Tab> complete-query
|
||||
bind editor ^T complete
|
||||
|
||||
|
||||
# General rebindings
|
||||
bind attach <return> view-mailcap
|
||||
bind attach l view-mailcap
|
||||
bind editor <space> noop
|
||||
bind pager c imap-fetch-mail
|
||||
bind index G last-entry
|
||||
bind index g noop
|
||||
bind index gg first-entry
|
||||
bind pager,attach h exit
|
||||
bind pager j next-line
|
||||
bind pager k previous-line
|
||||
bind pager l view-attachments
|
||||
bind index D delete-message
|
||||
bind index U undelete-message
|
||||
bind index L limit
|
||||
bind index h noop
|
||||
bind index l display-message
|
||||
bind browser h goto-parent
|
||||
bind browser l select-entry
|
||||
bind pager,browser gg top-page
|
||||
bind pager,browser G bottom-page
|
||||
bind index,pager,browser d half-down
|
||||
bind index,pager,browser u half-up
|
||||
bind index,pager R group-reply
|
||||
bind index \031 previous-undeleted # Mouse wheel
|
||||
bind index \005 next-undeleted # Mouse wheel
|
||||
bind pager \031 previous-line # Mouse wheel
|
||||
bind pager \005 next-line # Mouse wheel
|
||||
bind editor <Tab> complete-query
|
||||
#
|
||||
## Shortcuts
|
||||
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/ac-lyon<enter><change-folder>!<enter>'
|
||||
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/bb_opytex<enter><change-folder>!<enter>'
|
||||
macro index,pager <f4> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/jb_opytex<enter><change-folder>!<enter>'
|
||||
|
15
neomutt/.config/neomutt/neomuttrc
Normal file
15
neomutt/.config/neomutt/neomuttrc
Normal file
@@ -0,0 +1,15 @@
|
||||
# vim: filetype=muttrc
|
||||
|
||||
source ~/.config/neomutt/settings
|
||||
source ~/.config/neomutt/colors_gruvbox
|
||||
source ~/.config/neomutt/mappings
|
||||
|
||||
|
||||
#source ~/.config/neomutt/accounts/jb_opytex
|
||||
folder-hook jb_opytex/* 'source ~/.config/neomutt/accounts/jb_opytex'
|
||||
#source ~/.config/neomutt/accounts/bb_opytex
|
||||
folder-hook bb_opytex/* 'source ~/.config/neomutt/accounts/bb_opytex'
|
||||
source ~/.config/neomutt/accounts/ac-lyon
|
||||
folder-hook ac_lyon/* 'source ~/.config/neomutt/accounts/ac-lyon'
|
||||
|
||||
#source ~/.config/neomutt/mailboxes
|
72
neomutt/.config/neomutt/settings
Normal file
72
neomutt/.config/neomutt/settings
Normal file
@@ -0,0 +1,72 @@
|
||||
# vim: filetype=muttrc
|
||||
|
||||
set editor = "nvim"
|
||||
|
||||
set realname = "Benjamin Bertrand"
|
||||
set use_from = "yes"
|
||||
|
||||
# How often to check for new mail (time in seconds).
|
||||
set mail_check = 120
|
||||
|
||||
# Allow Mutt to open a new IMAP connection automatically.
|
||||
unset imap_passive
|
||||
|
||||
# Keep the IMAP connection alive by polling intermittently (time in seconds).
|
||||
set imap_keepalive = 300
|
||||
|
||||
# main options
|
||||
set envelope_from
|
||||
set edit_headers # show headers when composing
|
||||
set fast_reply # skip to compose when replying
|
||||
set askcc # ask for CC:
|
||||
set fcc_attach # save attachments with the body
|
||||
set forward_format = "Fwd: %s" # format of subject when forwarding
|
||||
set forward_decode # decode when forwarding
|
||||
set attribution = "On %d, %n wrote:" # format of quoting header
|
||||
set reply_to # reply to Reply to: field
|
||||
set reverse_name # reply as whomever it was to
|
||||
set include # include message in replies
|
||||
set forward_quote # include message in forwards
|
||||
set text_flowed
|
||||
unset sig_dashes # no dashes before sig
|
||||
unset mime_forward # forward attachments as part of body
|
||||
unset help # No help bar at the top of index
|
||||
# set status_on_top # Status bar on top of index
|
||||
set tmpdir = ~/Programs/neomutt/temp # where to keep temp files
|
||||
|
||||
|
||||
|
||||
# status bar, date format, finding stuff etc.
|
||||
set status_chars = " *%A"
|
||||
set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?"
|
||||
set date_format = "%d.%m.%Y %H:%M"
|
||||
set sort = threads
|
||||
set sort_aux = reverse-last-date-received
|
||||
set uncollapse_jump
|
||||
set sort_re
|
||||
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
||||
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
||||
set send_charset = "utf-8:iso-8859-1:us-ascii"
|
||||
set charset = "utf-8"
|
||||
set arrow_cursor = "no" # Change `color indicator` depending
|
||||
|
||||
|
||||
# Pager View Options
|
||||
set pager_index_lines = 20 # Shows 10 lines of index when pager is active
|
||||
set pager_context = 3
|
||||
set pager_stop
|
||||
set menu_scroll
|
||||
set tilde
|
||||
unset markers
|
||||
|
||||
# Mailcal for attachments
|
||||
set mailcap_path = ~/.config/neomutt/mailcap
|
||||
set header_cache = "~/.cache/mutt"
|
||||
set message_cachedir = "~/.cache/mutt"
|
||||
|
||||
# Contact with khard
|
||||
set query_command = "khard email --parsable --search-in-source-files '%s'"
|
||||
|
||||
# Set preffered view modes
|
||||
auto_view text/html text/calendar application/ics # view html automatically
|
||||
alternative_order text/html text/plain text/enriched text/*
|
Binary file not shown.
67
neomutt/.config/offlineimap/config
Normal file
67
neomutt/.config/offlineimap/config
Normal file
@@ -0,0 +1,67 @@
|
||||
[general]
|
||||
accounts = bb_opytex, jb_opytex, ac_lyon
|
||||
pythonfile = ~/.config/offlineimap/offlineimap.py
|
||||
maxsyncaccounts = 1
|
||||
|
||||
[mbnames]
|
||||
enabled = yes
|
||||
filename = ~/.config/neomutt/mailboxes
|
||||
header = "mailboxes "
|
||||
peritem = "+%(accountname)s/%(foldername)s"
|
||||
sep = " "
|
||||
footer = "\n"
|
||||
|
||||
|
||||
[Account bb_opytex]
|
||||
localrepository = Local-bb_opytex
|
||||
remoterepository = Remote-bb_opytex
|
||||
autorefresh = 1
|
||||
quick = 10
|
||||
|
||||
[Repository Local-bb_opytex]
|
||||
type = Maildir
|
||||
localfolders = ~/.mail/bb_opytex
|
||||
sep = /
|
||||
|
||||
[Repository Remote-bb_opytex]
|
||||
type = IMAP
|
||||
remotehost = imap.mailfence.com
|
||||
remoteuser = Takanuva
|
||||
remotepasseval = get_pass("mail/mailfence/Takanuva")
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
[Account jb_opytex]
|
||||
localrepository = Local-jb_opytex
|
||||
remoterepository = Remote-jb_opytex
|
||||
autorefresh = 1
|
||||
quick = 10
|
||||
|
||||
[Repository Local-jb_opytex]
|
||||
type = Maildir
|
||||
localfolders = ~/.mail/jb_opytex
|
||||
sep = /
|
||||
|
||||
[Repository Remote-jb_opytex]
|
||||
type = IMAP
|
||||
remotehost = imap.mailfence.com
|
||||
remoteuser = margot_benjamin
|
||||
remotepasseval = get_pass("mail/jost_bertrand@opytex.org/margot_benjamin")
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
[Account ac_lyon]
|
||||
localrepository = Local-ac_lyon
|
||||
remoterepository = Remote-ac_lyon
|
||||
autorefresh = 1
|
||||
quick = 10
|
||||
|
||||
[Repository Local-ac_lyon]
|
||||
type = Maildir
|
||||
localfolders = ~/.mail/ac_lyon
|
||||
sep = /
|
||||
|
||||
[Repository Remote-ac_lyon]
|
||||
type = IMAP
|
||||
remotehost = mail.ac-lyon.fr
|
||||
remoteuser = bbertrand
|
||||
remotepasseval = get_pass("Prof/pronote/bbertrand")
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from subprocess import check_output
|
||||
|
||||
|
||||
def get_pass(path):
|
||||
return check_output("pass " + path, shell=True).splitlines()[0]
|
21
neomutt/.config/vdirsyncer/config
Normal file
21
neomutt/.config/vdirsyncer/config
Normal file
@@ -0,0 +1,21 @@
|
||||
[general]
|
||||
status_path = "~/.config/vdirsyncer/status/"
|
||||
|
||||
[pair cloud_opytex_contact]
|
||||
a = "cloud_opytex_contact_local"
|
||||
b = "cloud_opytex_contact_remote"
|
||||
collections = ["from a", "from b"]
|
||||
conflict_resolution = "b wins"
|
||||
|
||||
[storage cloud_opytex_contact_local]
|
||||
type = "filesystem"
|
||||
path = "~/.contacts/"
|
||||
fileext = ".vcf"
|
||||
|
||||
[storage cloud_opytex_contact_remote]
|
||||
type = "carddav"
|
||||
|
||||
# We can simplify this URL here as well. In theory it shouldn't matter.
|
||||
url = "https://cloud.poneyworld.net/remote.php/dav/addressbooks/users/lafrite/contacts/"
|
||||
username = "lafrite"
|
||||
password.fetch = ["command", "pass", "OVH/Panais/docker/cloud.poneyworld.net/lafrite"]
|
@@ -1,8 +1,8 @@
|
||||
auto-reload yes
|
||||
reload-time 30
|
||||
browser "chromium --incognito"
|
||||
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser chromium
|
||||
macro Y set browser "mpv %u"; open-in-browser ; set browser chromium
|
||||
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser "chromium --incognito"
|
||||
macro Y set browser "mpv %u"; open-in-browser ; set browser "chromium --incognito"
|
||||
|
||||
unbind-key h
|
||||
unbind-key j
|
||||
@@ -14,6 +14,13 @@ bind-key j down
|
||||
bind-key k up
|
||||
bind-key l open
|
||||
|
||||
unbind-key G
|
||||
bind-key G end
|
||||
bind-key s sort
|
||||
unbind-key g
|
||||
bind-key g home
|
||||
bind-key S rev-sort
|
||||
|
||||
color background default default
|
||||
color listnormal default default
|
||||
color listnormal_unread default default
|
||||
|
@@ -6,9 +6,11 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw "Te
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV0qA-eDDICsRR9rPcnG7tw "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCR-DXc1voovS8nhAvccRZhg "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCVRJ6D343dX-x730MRP8tNw "Tech"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCG5Ph9Mm6UEQLJJ-kGIC2AQ "Tech" "OneMarcFifty"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWedHS9qKebauVIK2J7383g "Tech" "Underscore_"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9C07cryUrKzLuAzwITPA3A "SC2" "SC2HL"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCr_3nQ4eRCwm_XUDpf62MAg "Information "Partager C'est Sympa"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCg7HRuQ93hl9v8dTSt_XDHA "Ferme" "~Banabé"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsM4_jihNFYe4CtSkXvDR-Q "Ferme" "~permaculture agroécologie etc..."
|
||||
@@ -25,6 +27,8 @@ 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=UCvDpfkniGG6WkX5L7DwyGaA "Bois" "Olivier Verdier"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7TiJ6Tnxc_dSE42byTPMug "Bois" "Copain des copeaux"
|
||||
@@ -33,6 +37,7 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCOuow_HIYmeaIqi42zVs3qg "Bo
|
||||
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"
|
||||
@@ -47,14 +52,19 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCjHh3N6jUJKdrtTqNorpRhg "Sk
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCdtrhMQTlTWNLGcmx1Qy80Q "Ski" "Fabien Maierhofer"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UChkpEJqHjX-tGmYoGf8jdGA "Escalade" "EpicTV Relais Vertical"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJlvyoYGLr3UIV0oD4-aarA "Sports" "Riding zone"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCy0I5Hcl2k7dN4UdZTedfeQ "Sports" "Hit the road"
|
||||
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgkhWgBGRp0sdFy2MHDWfSg "Math" "El Ji"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw "Math" "3Blue1Brown"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaNlbnghtwlsGF-KzAFThqA "Science "ScienceEtonnante"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLXDNUOO3EQ80VmD9nQBHPg "Science "Fouloscopie"
|
||||
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoJtk2M8bme9KXTe6F3K-Yg "CLI" "The Mouseless Dev"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC8ENHE5xdFSwx71u3fDH5Xw "Vim" "ThePrimeagen"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "Vim" "Greg Hurrel"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCs_AZuYXi6NA9tkdbhjItHQ "AdminSys" "Xavki"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCvjgXvBlbQiydffZU7m1_aw "Programmation" "~Coding Train"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCj_iGliGCkLcHSZ8eqVNPDQ "Programmation" "~Grafikart.fr"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOk-gHyjcWZNj3Br4oxwh0A "Homelab" "Techno Tim"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWQaM7SpSECp9FELz-cHzuQ "Cording" "Dream of Code"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYeiozh-4QwuC1sjgCmB92w "Cording" "DevOps Toolbox"
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code"
|
||||
|
@@ -1,5 +1,17 @@
|
||||
require('plugins')
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
vim.g.mapleader = ' ' -- Leaderkey
|
||||
require("lazy").setup("plugins")
|
||||
require('settings')
|
||||
require('mappings')
|
||||
|
||||
require('lsp')
|
||||
|
36
nvim/.config/nvim/lazy-lock.json
Normal file
36
nvim/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
|
||||
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "877c1db2bf957300097dd5348a665666a4d900cb" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6b6f0a451200bb6abde85978c577c73ea1577758" },
|
||||
"lsp-zero.nvim": { "branch": "v3.x", "commit": "22677c535fdc11a73da67a186a30e360d8857497" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" },
|
||||
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
||||
"noice.nvim": { "branch": "main", "commit": "7cf858c30841c9c41601ce58e5bc2023228037ef" },
|
||||
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "de4f7138a68d5d5063170f2182fd27faf06b0b54" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "2b361e043810d5587d9af0787f8ce40da92ec5e9" },
|
||||
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "10bfa4826f2235c600c073a82e0d78718aa7240e" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
|
||||
"oil.nvim": { "branch": "master", "commit": "ac2928cca85ba3596e92f9f51940d46be2d606f8" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
||||
"telescope.nvim": { "branch": "0.1.x", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" },
|
||||
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
|
||||
"vim-fugitive": { "branch": "master", "commit": "99db68d9b3304580bd383da7aaee05c7a954a344" },
|
||||
"vim-highlightedyank": { "branch": "master", "commit": "fa3f57b097e9521ce41a66b6c7cf5d9adea70ea3" },
|
||||
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
|
||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||
"vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" },
|
||||
"vim-vsnip": { "branch": "master", "commit": "be277461265f1e5c7db470aa479f30956597ea9e" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
|
||||
}
|
@@ -1,134 +0,0 @@
|
||||
local has_words_before = function()
|
||||
if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then
|
||||
return false
|
||||
end
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local feedkey = function(key, mode)
|
||||
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true)
|
||||
end
|
||||
|
||||
local lsp_symbols = {
|
||||
Text = " (Text) ",
|
||||
Method = " (Method)",
|
||||
Function = " (Function)",
|
||||
Constructor = " (Constructor)",
|
||||
Field = " ﴲ (Field)",
|
||||
Variable = "[] (Variable)",
|
||||
Class = " (Class)",
|
||||
Interface = " ﰮ (Interface)",
|
||||
Module = " (Module)",
|
||||
Property = " 襁 (Property)",
|
||||
Unit = " (Unit)",
|
||||
Value = " (Value)",
|
||||
Enum = " 練 (Enum)",
|
||||
Keyword = " (Keyword)",
|
||||
Snippet = " (Snippet)",
|
||||
Color = " (Color)",
|
||||
File = " (File)",
|
||||
Reference = " (Reference)",
|
||||
Folder = " (Folder)",
|
||||
EnumMember = " (EnumMember)",
|
||||
Constant = " ﲀ (Constant)",
|
||||
Struct = " ﳤ (Struct)",
|
||||
Event = " (Event)",
|
||||
Operator = " (Operator)",
|
||||
TypeParameter = " (TypeParameter)",
|
||||
}
|
||||
|
||||
local status, cmp = pcall(require, "cmp")
|
||||
if (not status) then return end
|
||||
|
||||
cmp.setup{
|
||||
completion = {
|
||||
completeopt = 'menuone,noinsert,noselect',
|
||||
},
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
-- fancy icons and a name of kind
|
||||
vim_item.kind = lsp_symbols[vim_item.kind]
|
||||
-- set a name for each source
|
||||
vim_item.menu = ({
|
||||
buffer = "[Buffer]",
|
||||
nvim_lsp = "[LSP]",
|
||||
vsnip = "[vSnip]",
|
||||
path = "[Path]",
|
||||
spell = "[Spell]",
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<cr>"] = cmp.mapping.confirm({select = false, behavior = cmp.ConfirmBehavior.Replace}),
|
||||
-- ["<Tab>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Insert}),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
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()
|
||||
else
|
||||
fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
["<S-Tab>"] = cmp.mapping(function()
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif vim.fn["vsnip#jumpable"](-1) == 1 then
|
||||
feedkey("<Plug>(vsnip-jump-prev)", "")
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
sources = {
|
||||
{ name = 'vsnip' },
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'path' },
|
||||
{
|
||||
name = 'buffer',
|
||||
keyword_length = 4,
|
||||
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'
|
@@ -1,8 +0,0 @@
|
||||
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+", ""),
|
||||
}
|
||||
|
@@ -1,4 +0,0 @@
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
require'colorizer'.setup()
|
||||
|
@@ -1 +0,0 @@
|
||||
require('gitsigns').setup {}
|
@@ -1,6 +0,0 @@
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars:append("eol:↴")
|
||||
|
||||
require("indent_blankline").setup {
|
||||
show_end_of_line = true,
|
||||
}
|
@@ -1,214 +0,0 @@
|
||||
-- Eviline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
local lualine = require 'lualine'
|
||||
|
||||
-- Color table for highlights
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67'
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
|
||||
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = "",
|
||||
section_separators = "",
|
||||
-- theme = 'gruvbox',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. both are highlighted by c theme . so we
|
||||
-- are just setting default looks o statusline
|
||||
normal = {c = {fg = colors.fg, bg = colors.bg}},
|
||||
inactive = {c = {fg = colors.fg, bg = colors.bg}}
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- these will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_v = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
}
|
||||
}
|
||||
|
||||
-- inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[''] = colors.blue,
|
||||
v = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
s = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
r = colors.violet,
|
||||
rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
-- auto change color according to neovims mode
|
||||
vim.api.nvim_command(
|
||||
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
||||
return ''
|
||||
end,
|
||||
color = "lualinemode",
|
||||
left_padding = 0
|
||||
}
|
||||
|
||||
ins_left {
|
||||
"mode",
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- filesize component
|
||||
function()
|
||||
local function format_file_size(file)
|
||||
local size = vim.fn.getfsize(file)
|
||||
if size <= 0 then return '' end
|
||||
local sufixes = {'b', 'k', 'm', 'g'}
|
||||
local i = 1
|
||||
while size > 1024 do
|
||||
size = size / 1024
|
||||
i = i + 1
|
||||
end
|
||||
return string.format('%.1f%s', size, sufixes[i])
|
||||
end
|
||||
local file = vim.fn.expand('%:p')
|
||||
if string.len(file) == 0 then return '' end
|
||||
return format_file_size(file)
|
||||
end,
|
||||
condition = conditions.buffer_not_empty
|
||||
}
|
||||
ins_left {
|
||||
-- Lsp server name .
|
||||
function()
|
||||
local msg = 'No Active Lsp'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then return msg end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = ' LSP:',
|
||||
color = {fg = '#ffffff', gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = {'nvim_diagnostic'},
|
||||
symbols = {error = ' ', warn = ' ', info = ' '},
|
||||
color_error = colors.red,
|
||||
color_warn = colors.yellow,
|
||||
color_info = colors.cyan
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {function() return '%=' end}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
file_status = true,
|
||||
path = 1,
|
||||
condition = conditions.buffer_not_empty,
|
||||
color = {fg = colors.magenta, gui = 'bold'}
|
||||
}
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
upper = true, -- I'm not sure why it's upper case either ;)
|
||||
condition = conditions.hide_in_width,
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
upper = true,
|
||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
condition = conditions.check_git_workspace,
|
||||
color = {fg = colors.violet, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'diff',
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = {added = ' ', modified = '柳 ', removed = ' '},
|
||||
color_added = colors.green,
|
||||
color_modified = colors.orange,
|
||||
color_removed = colors.red,
|
||||
condition = conditions.hide_in_width
|
||||
}
|
||||
|
||||
ins_right {'location'}
|
||||
|
||||
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
@@ -1 +0,0 @@
|
||||
vim.g.notes_directories = {"~/Nextcloud/Notes/vim" }
|
@@ -1,23 +0,0 @@
|
||||
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
||||
if not null_ls_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
-- 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,
|
||||
},
|
||||
}
|
||||
|
||||
local map = vim.api.nvim_set_keymap
|
||||
map('n', '<leader>f', '<cmd>lua vim.lsp.buf.formatting_sync()<cr>', {})
|
@@ -1,91 +0,0 @@
|
||||
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" },
|
||||
},
|
||||
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)
|
@@ -1,16 +0,0 @@
|
||||
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"},
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
}
|
||||
}
|
||||
-- vim.opt.foldmethod = "expr"
|
||||
-- vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
@@ -1,6 +0,0 @@
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
vim.g.vimtex_view_method = 'zathura'
|
||||
|
||||
-- Les fichiers sty et cls sont vus comme des fichiers tex
|
||||
vim.cmd("autocmd BufRead,BufNewFile *.{sty,cls} setlocal syntax=tex")
|
@@ -1,83 +0,0 @@
|
||||
local lsp_installer = require("nvim-lsp-installer")
|
||||
|
||||
-- Register a handler that will be called for each installed server when it's ready (i.e. when installation is finished
|
||||
-- or if the server is already installed).
|
||||
lsp_installer.on_server_ready(function(server)
|
||||
local opts = {}
|
||||
|
||||
-- (optional) Customize the options passed to the server
|
||||
-- if server.name == "tsserver" then
|
||||
-- opts.root_dir = function() ... end
|
||||
-- end
|
||||
|
||||
-- This setup() function will take the provided server configuration and decorate it with the necessary properties
|
||||
-- before passing it onwards to lspconfig.
|
||||
-- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||
server:setup(opts)
|
||||
end)
|
||||
|
||||
local nvim_lsp = require('lspconfig')
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
local on_attach = function(client, bufnr)
|
||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||
|
||||
--Enable completion triggered by <c-x><c-o>
|
||||
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
|
||||
-- Mappings.
|
||||
local opts = { noremap=true, silent=true }
|
||||
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
-- See references
|
||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
-- show documentation
|
||||
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
-- Rename
|
||||
buf_set_keymap('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
|
||||
-- proposions from lsp
|
||||
buf_set_keymap('n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
-- Details on diagnostics
|
||||
buf_set_keymap('n', '<leader>d', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
-- Cycle over diagnostics
|
||||
buf_set_keymap('n', '<leader>df', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||||
buf_set_keymap('n', '<leader>dp', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||||
-- Get diagnostic on local list
|
||||
buf_set_keymap('n', '<leader>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||
buf_set_keymap("n", "<leader>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||
|
||||
buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
buf_set_keymap('n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
end
|
||||
|
||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||
-- map buffer local keybindings when the language server attaches
|
||||
local servers = {
|
||||
"texlab",
|
||||
"pyright",
|
||||
"vuels",
|
||||
"tsserver",
|
||||
"html",
|
||||
"sumneko_lua",
|
||||
"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
|
||||
|
||||
nvim_lsp.vuels.setup{
|
||||
on_attach = function(client)
|
||||
client.resolved_capabilities.document_formatting = true
|
||||
end;
|
||||
}
|
@@ -1,17 +1,19 @@
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local default_opts = {noremap = true, silent = true}
|
||||
|
||||
-- move around splits using Ctrl + {h,j,k,l}
|
||||
map('n', '<C-h>', '<C-w>h', default_opts)
|
||||
map('n', '<C-j>', '<C-w>j', default_opts)
|
||||
map('n', '<C-k>', '<C-w>k', default_opts)
|
||||
map('n', '<C-l>', '<C-w>l', default_opts)
|
||||
|
||||
-- Align blocks of text and keep them selected
|
||||
map('v', '<', '<gv', {})
|
||||
map('v', '>', '>gv', {})
|
||||
|
||||
|
||||
-- Automatically spell check last error in insert mode
|
||||
map('i', '<c-f>', '<c-g>u<Esc>[s1z=`]a<c-g>u', default_opts)
|
||||
|
||||
-- Centering after moving half page or search
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
-- Move block on visual mode
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
|
@@ -1,146 +0,0 @@
|
||||
local fn = vim.fn
|
||||
|
||||
-- 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 = [[require('config.lualine')]],
|
||||
}
|
||||
|
||||
use 'tpope/vim-fugitive'
|
||||
-- use 'mhinz/vim-signify'
|
||||
use {
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config = [[require('config.gitsigns')]],
|
||||
}
|
||||
|
||||
use 'tpope/vim-surround'
|
||||
use 'tpope/vim-repeat'
|
||||
|
||||
use {
|
||||
'neovim/nvim-lspconfig',
|
||||
requires = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
'williamboman/nvim-lsp-installer',
|
||||
}
|
||||
}
|
||||
use {
|
||||
'hrsh7th/nvim-cmp',
|
||||
event = 'InsertEnter',
|
||||
config = [[require('completion')]],
|
||||
requires = {
|
||||
'hrsh7th/vim-vsnip',
|
||||
'hrsh7th/vim-vsnip-integ',
|
||||
-- 'rafamadriz/friendly-snippets',
|
||||
},
|
||||
}
|
||||
use { 'hrsh7th/cmp-vsnip', after = 'nvim-cmp' }
|
||||
use { 'hrsh7th/cmp-buffer', after = 'nvim-cmp' }
|
||||
use { 'hrsh7th/cmp-path', after = 'nvim-cmp' }
|
||||
use { 'hrsh7th/cmp-nvim-lsp', after = 'nvim-cmp' }
|
||||
-- use {'f3fora/cmp-spell', after = 'nvim-cmp'}
|
||||
|
||||
-- for formatters and linters
|
||||
use {
|
||||
"jose-elias-alvarez/null-ls.nvim",
|
||||
config = [[require('config.null-ls')]]
|
||||
}
|
||||
|
||||
|
||||
use 'nvim-lua/popup.nvim'
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
config = [[require('config.telescope')]],
|
||||
requires = { 'nvim-lua/plenary.nvim' }
|
||||
}
|
||||
|
||||
use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
|
||||
use { "nvim-telescope/telescope-file-browser.nvim" }
|
||||
|
||||
use {
|
||||
'lervag/vimtex',
|
||||
config = [[require('config.vimtex')]],
|
||||
}
|
||||
|
||||
-- Highlight on Yank
|
||||
use 'machakann/vim-highlightedyank'
|
||||
-- Autoclose parenthesis
|
||||
-- use 'jiangmiao/auto-pairs'
|
||||
use {
|
||||
'windwp/nvim-autopairs',
|
||||
config = [[ require('config.autopairs') ]]
|
||||
}
|
||||
|
||||
use 'kyazdani42/nvim-web-devicons'
|
||||
use {
|
||||
'xolox/vim-notes',
|
||||
config = [[require('config.notes')]],
|
||||
requires = {
|
||||
'xolox/vim-misc',
|
||||
}
|
||||
}
|
||||
|
||||
use 'christoomey/vim-tmux-navigator'
|
||||
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
config = [[require('config.treesitter')]],
|
||||
run = ':TSUpdate',
|
||||
}
|
||||
|
||||
use {
|
||||
'norcalli/nvim-colorizer.lua',
|
||||
config = [[require('config.colorizer')]],
|
||||
}
|
||||
|
||||
use {
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
config = [[require('config.indentblankline')]]
|
||||
}
|
||||
|
||||
if PACKER_BOOTSTRAP then
|
||||
require("packer").sync()
|
||||
end
|
||||
end)
|
7
nvim/.config/nvim/lua/plugins/autopairs.lua
Normal file
7
nvim/.config/nvim/lua/plugins/autopairs.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
disable_filetype = { "TelescopePrompt" , "vim" },
|
||||
} -- this is equalent to setup({}) function
|
||||
}
|
14
nvim/.config/nvim/lua/plugins/colorizer.lua
Normal file
14
nvim/.config/nvim/lua/plugins/colorizer.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
'norcalli/nvim-colorizer.lua',
|
||||
config = function ()
|
||||
vim.opt.termguicolors = true
|
||||
require('colorizer').setup {
|
||||
'css';
|
||||
'javascript';
|
||||
html = {
|
||||
mode = 'foreground';
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
}
|
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"morhetz/gruvbox",
|
||||
lazy = false, -- make sure we load this during startup if it is your main colorscheme
|
||||
priority = 1000, -- make sure to load this before all the other start plugins
|
||||
config = function()
|
||||
-- load the colorscheme here
|
||||
vim.cmd([[colorscheme gruvbox]])
|
||||
end
|
||||
}
|
6
nvim/.config/nvim/lua/plugins/comment.lua
Normal file
6
nvim/.config/nvim/lua/plugins/comment.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
'numToStr/Comment.nvim',
|
||||
config=function ()
|
||||
require('Comment').setup()
|
||||
end
|
||||
}
|
69
nvim/.config/nvim/lua/plugins/completion.lua
Normal file
69
nvim/.config/nvim/lua/plugins/completion.lua
Normal file
@@ -0,0 +1,69 @@
|
||||
return {
|
||||
'hrsh7th/nvim-cmp',
|
||||
dependencies = {
|
||||
'neovim/nvim-lspconfig',
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-buffer',
|
||||
'hrsh7th/cmp-path',
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'hrsh7th/cmp-vsnip',
|
||||
'hrsh7th/vim-vsnip',
|
||||
},
|
||||
config = function ()
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'vsnip' }, -- For vsnip users.
|
||||
{ name = 'path' },
|
||||
{
|
||||
name = 'buffer',
|
||||
option = {
|
||||
keyword_length = 3,
|
||||
get_bufnrs = function()
|
||||
return vim.api.nvim_list_bufs()
|
||||
end
|
||||
}
|
||||
},
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- Set configuration for specific filetype.
|
||||
cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
})
|
||||
})
|
||||
end
|
||||
}
|
37
nvim/.config/nvim/lua/plugins/formatting.lua
Normal file
37
nvim/.config/nvim/lua/plugins/formatting.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
return {
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
config = function()
|
||||
local conform = require("conform")
|
||||
|
||||
conform.setup({
|
||||
formatters_by_ft = {
|
||||
javascript = { "prettier" },
|
||||
typescript = { "prettier" },
|
||||
javascriptreact = { "prettier" },
|
||||
typescriptreact = { "prettier" },
|
||||
svelte = { "prettier" },
|
||||
css = { "prettier" },
|
||||
html = { "prettier" },
|
||||
json = { "prettier" },
|
||||
yaml = { "prettier" },
|
||||
markdown = { "prettier" },
|
||||
graphql = { "prettier" },
|
||||
lua = { "stylua" },
|
||||
python = { "isort", "black" },
|
||||
},
|
||||
format_on_save = {
|
||||
lsp_fallback = true,
|
||||
async = false,
|
||||
timeout_ms = 500,
|
||||
},
|
||||
})
|
||||
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
||||
conform.format({
|
||||
lsp_fallback = true,
|
||||
async = false,
|
||||
timeout_ms = 500,
|
||||
})
|
||||
end, { desc = "Format file or range (in visual mode)" })
|
||||
end,
|
||||
}
|
11
nvim/.config/nvim/lua/plugins/git.lua
Normal file
11
nvim/.config/nvim/lua/plugins/git.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
{
|
||||
'tpope/vim-fugitive'
|
||||
},
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config=function ()
|
||||
require('gitsigns').setup {}
|
||||
end
|
||||
}
|
||||
}
|
10
nvim/.config/nvim/lua/plugins/indentation.lua
Normal file
10
nvim/.config/nvim/lua/plugins/indentation.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
'lukas-reineke/indent-blankline.nvim',
|
||||
main = "ibl",
|
||||
config = function ()
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars:append("eol:↴")
|
||||
require("ibl").setup {
|
||||
}
|
||||
end
|
||||
}
|
31
nvim/.config/nvim/lua/plugins/lint.lua
Normal file
31
nvim/.config/nvim/lua/plugins/lint.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
return {
|
||||
"mfussenegger/nvim-lint",
|
||||
event = {
|
||||
"BufReadPre",
|
||||
"BufNewFile",
|
||||
},
|
||||
config = function()
|
||||
local lint = require("lint")
|
||||
|
||||
lint.linters_by_ft = {
|
||||
javascript = { "eslint_d" },
|
||||
typescript = { "eslint_d" },
|
||||
javascriptreact = { "eslint_d" },
|
||||
typescriptreact = { "eslint_d" },
|
||||
python = { "flake8" },
|
||||
}
|
||||
|
||||
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
||||
group = lint_augroup,
|
||||
callback = function()
|
||||
lint.try_lint()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>ml", function()
|
||||
lint.try_lint()
|
||||
end, { desc = "Trigger linting for current file" })
|
||||
end,
|
||||
}
|
38
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
38
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
return {
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
{ "neovim/nvim-lspconfig" },
|
||||
{ "williamboman/mason.nvim" },
|
||||
{ "williamboman/mason-lspconfig.nvim" },
|
||||
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
|
||||
},
|
||||
config = function()
|
||||
local lsp_zero = require("lsp-zero")
|
||||
lsp_zero.on_attach(function(client, bufnr)
|
||||
-- see :help lsp-zero-keybindings
|
||||
-- to learn the available actions
|
||||
lsp_zero.default_keymaps({ buffer = bufnr })
|
||||
end)
|
||||
|
||||
require("mason").setup({})
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = {},
|
||||
handlers = {
|
||||
lsp_zero.default_setup,
|
||||
},
|
||||
})
|
||||
local mason_tool_installer = require("mason-tool-installer")
|
||||
|
||||
mason_tool_installer.setup({
|
||||
ensure_installed = {
|
||||
"prettier", -- prettier formatter
|
||||
"stylua", -- lua formatter
|
||||
"isort", -- python formatter
|
||||
"black", -- python formatter
|
||||
"flake8", -- python linter
|
||||
"eslint_d", -- js linter
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
222
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
222
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,222 @@
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
dependencies = {
|
||||
"folke/noice.nvim",
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
},
|
||||
config = function ()
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67'
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
|
||||
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = "",
|
||||
section_separators = "",
|
||||
-- theme = 'gruvbox',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. both are highlighted by c theme . so we
|
||||
-- are just setting default looks o statusline
|
||||
normal = {c = {fg = colors.fg, bg = colors.bg}},
|
||||
inactive = {c = {fg = colors.fg, bg = colors.bg}}
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- these will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {
|
||||
{
|
||||
require("noice").api.statusline.mode.get,
|
||||
cond = require("noice").api.statusline.mode.has,
|
||||
color = { fg = "#ff9e64" },
|
||||
}
|
||||
}
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_v = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {}
|
||||
}
|
||||
}
|
||||
|
||||
-- inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[''] = colors.blue,
|
||||
v = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
s = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
r = colors.violet,
|
||||
rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
-- auto change color according to neovims mode
|
||||
vim.api.nvim_command(
|
||||
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
||||
return ''
|
||||
end,
|
||||
color = "lualinemode",
|
||||
left_padding = 0
|
||||
}
|
||||
|
||||
ins_left {
|
||||
"mode",
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- filesize component
|
||||
function()
|
||||
local function format_file_size(file)
|
||||
local size = vim.fn.getfsize(file)
|
||||
if size <= 0 then return '' end
|
||||
local sufixes = {'b', 'k', 'm', 'g'}
|
||||
local i = 1
|
||||
while size > 1024 do
|
||||
size = size / 1024
|
||||
i = i + 1
|
||||
end
|
||||
return string.format('%.1f%s', size, sufixes[i])
|
||||
end
|
||||
local file = vim.fn.expand('%:p')
|
||||
if string.len(file) == 0 then return '' end
|
||||
return format_file_size(file)
|
||||
end,
|
||||
condition = conditions.buffer_not_empty
|
||||
}
|
||||
ins_left {
|
||||
-- Lsp server name .
|
||||
function()
|
||||
local msg = 'No Active Lsp'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then return msg end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = ' LSP:',
|
||||
color = {fg = '#ffffff', gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = {'nvim_diagnostic'},
|
||||
symbols = {error = ' ', warn = ' ', info = ' '},
|
||||
color_error = colors.red,
|
||||
color_warn = colors.yellow,
|
||||
color_info = colors.cyan
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {function() return '%=' end}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
file_status = true,
|
||||
path = 1,
|
||||
condition = conditions.buffer_not_empty,
|
||||
color = {fg = colors.magenta, gui = 'bold'}
|
||||
}
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
upper = true, -- I'm not sure why it's upper case either ;)
|
||||
condition = conditions.hide_in_width,
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
upper = true,
|
||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = {fg = colors.green, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
condition = conditions.check_git_workspace,
|
||||
color = {fg = colors.violet, gui = 'bold'}
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'diff',
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = {added = ' ', modified = '柳 ', removed = ' '},
|
||||
color_added = colors.green,
|
||||
color_modified = colors.orange,
|
||||
color_removed = colors.red,
|
||||
condition = conditions.hide_in_width
|
||||
}
|
||||
|
||||
ins_right {'location'}
|
||||
|
||||
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
|
||||
|
||||
require('lualine').setup(config)
|
||||
end
|
||||
}
|
6
nvim/.config/nvim/lua/plugins/misc.lua
Normal file
6
nvim/.config/nvim/lua/plugins/misc.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
'tpope/vim-surround',
|
||||
'tpope/vim-repeat',
|
||||
'tpope/vim-abolish',
|
||||
'machakann/vim-highlightedyank'
|
||||
}
|
15
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
15
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
return {
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
-- add any options here
|
||||
},
|
||||
dependencies = {
|
||||
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||
"MunifTanjim/nui.nvim",
|
||||
-- OPTIONAL:
|
||||
-- `nvim-notify` is only needed, if you want to use the notification view.
|
||||
-- If not available, we use `mini` as the fallback
|
||||
"rcarriga/nvim-notify",
|
||||
},
|
||||
}
|
10
nvim/.config/nvim/lua/plugins/oil.lua
Normal file
10
nvim/.config/nvim/lua/plugins/oil.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
'stevearc/oil.nvim',
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
keys = {
|
||||
{"-", "<cmd>Oil<cr>", desc="Open parent directory"},
|
||||
},
|
||||
config = function()
|
||||
require("oil").setup()
|
||||
end
|
||||
}
|
27
nvim/.config/nvim/lua/plugins/telescope.lua
Normal file
27
nvim/.config/nvim/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
return {
|
||||
'nvim-telescope/telescope.nvim', branch = '0.1.x',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
opts = {
|
||||
defaults = {
|
||||
file_ignore_patterns = { "**/*.pdf" },
|
||||
layout_strategy = "horizontal",
|
||||
layout_config = { prompt_position = "top" },
|
||||
sorting_strategy = "ascending",
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{"<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find files"},
|
||||
{"<leader>fe", "<cmd>Telescope git_files<cr>", desc = "Find file respecting .gitignore"},
|
||||
{"<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Grep file in file"},
|
||||
{"<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Search through buffers"},
|
||||
{"<leader>ft", "<cmd>Telescope tags<cr>", desc = "Search through tags"},
|
||||
{"<leader>fm", "<cmd>Telescope marks<cr>", desc = "Search through marks"},
|
||||
{"<leader>fs", "<cmd>Telescope search_history<cr>", desc = "Search through search"},
|
||||
},
|
||||
config = function()
|
||||
require('telescope').setup(
|
||||
|
||||
)
|
||||
end
|
||||
}
|
14
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
14
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
config = function ()
|
||||
local configs = require("nvim-treesitter.configs")
|
||||
|
||||
configs.setup({
|
||||
ensure_installed = { "lua", "vim", "vimdoc", "javascript", "html", "python", "dockerfile", "latex", "yaml", "regex", "bash", "markdown", "markdown_inline" },
|
||||
sync_install = false,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
})
|
||||
end
|
||||
}
|
8
nvim/.config/nvim/lua/plugins/ui.lua
Normal file
8
nvim/.config/nvim/lua/plugins/ui.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
return {
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"rcarriga/nvim-notify",
|
||||
}
|
||||
}
|
3
nvim/.config/nvim/lua/plugins/vim-tmux-navigator.lua
Normal file
3
nvim/.config/nvim/lua/plugins/vim-tmux-navigator.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
return {
|
||||
'christoomey/vim-tmux-navigator',
|
||||
}
|
13
nvim/.config/nvim/lua/plugins/which-key.lua
Normal file
13
nvim/.config/nvim/lua/plugins/which-key.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
init = function()
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 300
|
||||
end,
|
||||
opts = {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
}
|
||||
}
|
@@ -4,7 +4,6 @@ local exec = vim.api.nvim_exec -- execute Vimscript
|
||||
local g = vim.g -- global variables
|
||||
local opt = vim.opt -- global/buffer/windows-scoped options
|
||||
|
||||
g.mapleader = ' ' -- Leaderkey
|
||||
g.showmode = true
|
||||
g.hidden = true -- Required to keep multiple buffers open multiple buffers
|
||||
opt.mouse = 'a' -- enable mouse
|
||||
@@ -48,8 +47,6 @@ exec([[
|
||||
augroup end
|
||||
]], false)
|
||||
|
||||
cmd('colorscheme gruvbox')
|
||||
|
||||
|
||||
-- Python 3
|
||||
g.python3_host_prog="~/.venv/nvim/bin/python"
|
||||
|
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"Date": {
|
||||
"prefix": "date",
|
||||
"body": [
|
||||
"$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE"
|
||||
]
|
||||
},
|
||||
"Lorem Ipsum Sentence": {
|
||||
"prefix": "loremSent",
|
||||
"body": "Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.",
|
||||
"description": "Lorem Ipsum Sentence"
|
||||
},
|
||||
"Lorem Ipsum Paragraph": {
|
||||
"prefix": "loremPara",
|
||||
"body": "Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est aliquip amet voluptate voluptate dolor minim nulla est proident. Nostrud officia pariatur ut officia. Sit irure elit esse ea nulla sunt ex occaecat reprehenderit commodo officia dolor Lorem duis laboris cupidatat officia voluptate. Culpa proident adipisicing id nulla nisi laboris ex in Lorem sunt duis officia eiusmod. Aliqua reprehenderit commodo ex non excepteur duis sunt velit enim. Voluptate laboris sint cupidatat ullamco ut ea consectetur et est culpa et culpa duis.",
|
||||
"description": "Lorem Ipsum Paragraph"
|
||||
}
|
||||
}
|
@@ -1,850 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
@@ -1,288 +0,0 @@
|
||||
{
|
||||
"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."
|
||||
}
|
||||
}
|
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"image": {
|
||||
"prefix": "image",
|
||||
"body": [
|
||||
".. image:: $1",
|
||||
"\t:height: 200px",
|
||||
"\t:alt: $2",
|
||||
"$0"
|
||||
],
|
||||
"description": "Insert image"
|
||||
},
|
||||
"etape": {
|
||||
"prefix": ["etape", "étape"],
|
||||
"body": [
|
||||
"Étape ${1:1}: $2",
|
||||
"$0"
|
||||
],
|
||||
"description": "Insert image"
|
||||
}
|
||||
}
|
@@ -1,106 +0,0 @@
|
||||
{
|
||||
"\\begin{}…\\end{}": {
|
||||
"prefix": "begin",
|
||||
"body": [
|
||||
"\\\\begin{${1:env}}",
|
||||
"\t$0",
|
||||
"\\\\end{${1:env}}"
|
||||
],
|
||||
"description": "Begin - End"
|
||||
},
|
||||
"Display Math — \\[ … \\]": {
|
||||
"prefix": "$$",
|
||||
"body": [
|
||||
"\\[",
|
||||
"\t$TM_SELECTED_TEXT$1",
|
||||
"\\]"
|
||||
],
|
||||
"description": "Display Math"
|
||||
},
|
||||
"Itemize": {
|
||||
"prefix": "item",
|
||||
"body": [
|
||||
"\\\\begin{itemize}",
|
||||
"\t\\item $0",
|
||||
"\\\\end{itemize}"
|
||||
],
|
||||
"description": "Itemize"
|
||||
},
|
||||
"Enumerate": {
|
||||
"prefix": "enum",
|
||||
"body": [
|
||||
"\\\\begin{enumerate}",
|
||||
"\t\\item $0",
|
||||
"\\\\end{enumerate}"
|
||||
],
|
||||
"description": "enumerate"
|
||||
},
|
||||
"Task": {
|
||||
"prefix": "task",
|
||||
"body": [
|
||||
"\\\\begin{tasks}(${1:2})",
|
||||
"\t\\item $0",
|
||||
"\\\\end{task}"
|
||||
],
|
||||
"description": "enumerate"
|
||||
},
|
||||
"center": {
|
||||
"prefix": "center",
|
||||
"body": [
|
||||
"\\\\begin{center}",
|
||||
"\t$0",
|
||||
"\\\\end{center}"
|
||||
],
|
||||
"description": "center"
|
||||
},
|
||||
"tabular": {
|
||||
"prefix": "tabular",
|
||||
"body": [
|
||||
"\\\\begin{tabular}{$1}",
|
||||
"\t\\\\hline",
|
||||
"\t$0",
|
||||
"\t\\\\hline",
|
||||
"\\\\end{tabular}"
|
||||
],
|
||||
"description": "tabular"
|
||||
},
|
||||
|
||||
"minipage": {
|
||||
"prefix": "minipage",
|
||||
"body": [
|
||||
"\\\\begin{minipage}{${1:0.5}${2:\\\\linewidth}}",
|
||||
"\t$0",
|
||||
"\\\\end{minipage}"
|
||||
],
|
||||
"description": "minipage"
|
||||
},
|
||||
|
||||
"multicols": {
|
||||
"prefix": "multicols",
|
||||
"body": [
|
||||
"\\\\begin{multicols}{${1:2}}",
|
||||
"\t$0",
|
||||
"\\\\end{multicols}"
|
||||
],
|
||||
"description": "multicols"
|
||||
},
|
||||
|
||||
"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"
|
||||
}
|
||||
}
|
@@ -1,2 +1,2 @@
|
||||
$pdf_mode = 4;
|
||||
$lualatex='lualatex --interaction=nonstopmode';
|
||||
$lualatex='lualatex --interaction=nonstopmode -shell-escape';
|
||||
|
@@ -1,17 +1,17 @@
|
||||
profile chanay {
|
||||
output eDP-1 enable scale 1
|
||||
output "Optoma Corporation Optoma SVGA Q71P7100939" position 0,0
|
||||
profile maison2 {
|
||||
output eDP-1 disable
|
||||
output "Dell Inc. DELL E2216H 2XT766B1AVTI" position 0,0 transform 90 mode 1920x1080
|
||||
output "Samsung Electric Company LS27A600U HNMR502540" position 1080,240 mode 2560x1440
|
||||
}
|
||||
|
||||
profile stex101 {
|
||||
output eDP-1 enable scale 1
|
||||
output "Seiko Epson Corporation EPSON PJ 0x00000101" position 0,0
|
||||
}
|
||||
|
||||
|
||||
profile maison {
|
||||
output eDP-1 enable scale 1 position 320,1440
|
||||
output "Samsung Electric Company LS27A600U HNMR502540" position 0,0
|
||||
output eDP-1 disable
|
||||
output "Philips Consumer Electronics Company PHL 223V5 ZV01622003292" position 0,0 transform 90 mode 1920x1080
|
||||
output "Samsung Electric Company LS27A600U HNMR502540" position 1080,240 mode 2560x1440
|
||||
}
|
||||
|
||||
profile atelier {
|
||||
output eDP-1 enable scale 1 position 0,1080
|
||||
output "ROW AAA Unknown" mode 1280x800
|
||||
}
|
||||
|
||||
profile bdp {
|
||||
|
@@ -15,4 +15,4 @@ configuration {
|
||||
sidebar-mode: false;
|
||||
auto-select: false;
|
||||
}
|
||||
@theme "/home/lafrite/.local/share/rofi/rofi-themes-collection/themes/spotlight-dark.rasi"
|
||||
@theme "~/.local/share/rofi/themes/nord/nord.rasi"
|
||||
|
@@ -25,7 +25,8 @@ set $laptopScreen eDP-1
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
output * bg ~/Images/Wallpapers/Pteridium.jpg fill
|
||||
# output * bg ~/Images/Wallpapers/Pteridium.jpg fill
|
||||
output * bg ~/Images/Wallpapers/coraill.jpg fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
@@ -61,6 +62,11 @@ input type:touchpad {
|
||||
tap enabled
|
||||
}
|
||||
|
||||
input type:pointer {
|
||||
accel_profile flat
|
||||
pointer_accel 0
|
||||
}
|
||||
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
@@ -87,6 +93,7 @@ input type:touchpad {
|
||||
# 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.
|
||||
@@ -220,6 +227,12 @@ mode "resize" {
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
## Gesture
|
||||
#
|
||||
bindgesture swipe:right workspace prev
|
||||
bindgesture swipe:left workspace next
|
||||
|
||||
#
|
||||
# Audio
|
||||
#
|
||||
@@ -239,7 +252,8 @@ bindsym XF86MonBrightnessDown exec lightctl down
|
||||
# Decoration
|
||||
#
|
||||
|
||||
default_border pixel 1
|
||||
|
||||
default_border pixel 2
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #d65d0e #be5046 #ffffff #be5046 #be5046
|
||||
|
||||
@@ -253,5 +267,5 @@ bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
# include /etc/sway/config.d/*
|
||||
include /etc/sway/config.d/*
|
||||
include ~/.config/sway/config.d/*
|
||||
|
@@ -1,7 +1,3 @@
|
||||
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
||||
exec hash dbus-update-activation-environment 2>/dev/null && \
|
||||
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
||||
|
||||
exec_always blueman-applet
|
||||
exec_always /usr/bin/nm-applet --indicator
|
||||
exec_always nextcloud
|
||||
@@ -9,10 +5,13 @@ exec_always /usr/libexec/goa-daemon --replace
|
||||
exec gammastep-indicator
|
||||
exec mako
|
||||
exec "avizo-service"
|
||||
exec_always ~/.local/bin/sway/autotiling-rs
|
||||
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
#exec_always pkill kanshi; exec_always kanshi
|
||||
exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
|
||||
|
||||
exec swaymsg "workspace $ws1; exec firefox;"
|
||||
exec swaymsg "workspace $ws2; exec thunderbird;"
|
||||
|
||||
exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{
|
||||
[{
|
||||
"layer": "top",
|
||||
"output": "eDP-1",
|
||||
"height": 30,
|
||||
@@ -53,3 +53,59 @@
|
||||
"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,
|
||||
}
|
||||
}]
|
||||
|
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 "$@"
|
164
tmux/.tmux.conf
164
tmux/.tmux.conf
@@ -1,4 +1,6 @@
|
||||
set -g default-terminal "xterm-256color"
|
||||
set -g default-terminal "tmux-256color"
|
||||
set-option -sa terminal-features ',alacritty:RGB'
|
||||
# set-option -sa terminal-overrides ",screen:Tc"
|
||||
|
||||
## Vim user config
|
||||
|
||||
@@ -7,6 +9,13 @@ unbind C-b
|
||||
set -g prefix C-space
|
||||
bind C-space send-prefix
|
||||
|
||||
set-option -g status-position top
|
||||
# Start windows and panes at 1, not 0
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
|
||||
# C-space C-space will swap to last used window
|
||||
bind-key C-space last-window
|
||||
@@ -32,169 +41,32 @@ set -g history-limit 10000
|
||||
bind Escape copy-mode
|
||||
unbind p
|
||||
bind p paste-buffer
|
||||
#bind -t vi-copy 'v' begin-selection
|
||||
#bind -t vi-copy 'y' copy-selection
|
||||
#bind -t vi-copy 'Space' halfpage-down
|
||||
#bind -t vi-copy 'Bspace' halfpage-up
|
||||
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||
bind-key -T copy-mode-vi 'y' send -X copy-selection
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
|
||||
bind-key -T copy-mode-vi 'Space' send -X halfpage-down
|
||||
bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up
|
||||
|
||||
# Remap previous window
|
||||
bind b previous-window
|
||||
|
||||
# extra commands for interacting with the ICCCM clipboard
|
||||
bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
|
||||
bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"
|
||||
|
||||
# easy-to-remember split pane commands
|
||||
bind | split-window -h
|
||||
bind - split-window -v
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
# # moving between panes with vim movement keys
|
||||
# bind h select-pane -L
|
||||
# bind j select-pane -D
|
||||
# bind k select-pane -U
|
||||
# bind l select-pane -R
|
||||
# Smart pane switching with awareness of Vim splits.
|
||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
||||
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
||||
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
||||
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
||||
bind-key -T copy-mode-vi C-h select-pane -L
|
||||
bind-key -T copy-mode-vi C-j select-pane -D
|
||||
bind-key -T copy-mode-vi C-k select-pane -U
|
||||
bind-key -T copy-mode-vi C-l select-pane -R
|
||||
bind-key -T copy-mode-vi C-\ select-pane -l
|
||||
|
||||
# moving between windows with vim movement keys
|
||||
bind -r C-h select-window -t :-
|
||||
bind -r C-l select-window -t :+
|
||||
|
||||
# resize panes with vim movement keys
|
||||
bind -r H resize-pane -L 5
|
||||
bind -r J resize-pane -D 5
|
||||
bind -r K resize-pane -U 5
|
||||
bind -r L resize-pane -R 5
|
||||
|
||||
######################
|
||||
### DESIGN CHANGES ###
|
||||
######################
|
||||
|
||||
# panes
|
||||
set -g pane-border-fg black
|
||||
set -g pane-active-border-fg brightred
|
||||
|
||||
## Status bar design
|
||||
# status line
|
||||
# set -g status-utf8 on
|
||||
set -g status-justify left
|
||||
set -g status-bg default
|
||||
set -g status-fg colour12
|
||||
set -g status-interval 2
|
||||
|
||||
# messaging
|
||||
set -g message-fg black
|
||||
set -g message-bg yellow
|
||||
set -g message-command-fg blue
|
||||
set -g message-command-bg black
|
||||
|
||||
#window mode
|
||||
setw -g mode-bg colour6
|
||||
setw -g mode-fg colour0
|
||||
|
||||
# window status
|
||||
setw -g window-status-format " #F#I:#W#F "
|
||||
setw -g window-status-current-format " #F#I:#W#F "
|
||||
setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W "
|
||||
setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W "
|
||||
setw -g window-status-current-bg colour0
|
||||
setw -g window-status-current-fg colour11
|
||||
setw -g window-status-current-attr dim
|
||||
setw -g window-status-bg green
|
||||
setw -g window-status-fg black
|
||||
setw -g window-status-attr reverse
|
||||
|
||||
# Info on left (I don't have a session display for now)
|
||||
set -g status-left ''
|
||||
|
||||
# loud or quiet?
|
||||
set-option -g visual-activity off
|
||||
set-option -g visual-bell off
|
||||
set-option -g visual-silence off
|
||||
set-window-option -g monitor-activity off
|
||||
set-option -g bell-action none
|
||||
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
# The modes {
|
||||
setw -g clock-mode-colour colour135
|
||||
setw -g mode-attr bold
|
||||
setw -g mode-fg colour196
|
||||
setw -g mode-bg colour238
|
||||
|
||||
# }
|
||||
# The panes {
|
||||
|
||||
set -g pane-border-bg colour235
|
||||
set -g pane-border-fg colour238
|
||||
set -g pane-active-border-bg colour236
|
||||
set -g pane-active-border-fg colour51
|
||||
|
||||
# }
|
||||
# The statusbar {
|
||||
|
||||
set -g status-position bottom
|
||||
set -g status-bg colour234
|
||||
set -g status-fg colour137
|
||||
set -g status-attr dim
|
||||
set -g status-left '#[fg=colour81,bg=colour241,bold] #S '
|
||||
set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S '
|
||||
set -g status-right-length 50
|
||||
set -g status-left-length 20
|
||||
|
||||
setw -g window-status-current-fg colour81
|
||||
setw -g window-status-current-bg colour238
|
||||
setw -g window-status-current-attr bold
|
||||
setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F '
|
||||
|
||||
setw -g window-status-fg colour138
|
||||
setw -g window-status-bg colour235
|
||||
setw -g window-status-attr none
|
||||
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '
|
||||
|
||||
setw -g window-status-bell-attr bold
|
||||
setw -g window-status-bell-fg colour255
|
||||
setw -g window-status-bell-bg colour1
|
||||
|
||||
# }
|
||||
# The messages {
|
||||
|
||||
set -g message-attr bold
|
||||
set -g message-fg colour232
|
||||
set -g message-bg colour166
|
||||
|
||||
# }
|
||||
|
||||
set-option -g focus-events on
|
||||
|
||||
## Plugins
|
||||
# Supports `github_username/repo` or full git repo URLs
|
||||
set -g @tpm_plugins 'tmux-plugins/tpm'
|
||||
set -g @tpm_plugins 'tmux-plugins/tmux-sensible'
|
||||
# tmux-plugins/tmux-resurrect \
|
||||
# tmux-plugins/tmux-continuum \
|
||||
|
||||
## tmux-continuum: automatic restore
|
||||
#set -g @continuum-restore 'on'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
|
||||
set -g @plugin 'egel/tmux-gruvbox'
|
||||
set -g @tmux-gruvbox 'dark' # or 'light'
|
||||
|
||||
# Keep this line at the very bottom of tmux.conf.
|
||||
run-shell '~/.tmux/plugins/tpm/tpm'
|
||||
|
Submodule tmux/.tmux/plugins/tpm deleted from 108f76b628
@@ -234,6 +234,8 @@ fileviewer *.[1-8] man ./%c | col -b
|
||||
|
||||
" Images
|
||||
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
||||
\ {View in feh}
|
||||
\ feh %f,
|
||||
\ {View in sxiv}
|
||||
\ sxiv %f,
|
||||
\ {View in gpicview}
|
||||
@@ -332,7 +334,7 @@ filetype *.7z
|
||||
fileviewer *.7z 7z l %c
|
||||
|
||||
" Office files
|
||||
filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx,*.ods libreoffice %f &
|
||||
filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx,*.ods,*.csv libreoffice %f &
|
||||
fileviewer *.doc catdoc %c
|
||||
fileviewer *.docx docx2txt.pl %f -
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
fpath+=$ZDOTDIR/pure
|
||||
fpath+=$ZDOTDIR/zfunc
|
||||
|
||||
autoload -U compinit
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # menu select=2
|
||||
@@ -43,10 +44,10 @@ alias egrep='egrep --color=auto'
|
||||
alias cp='cp -iv'
|
||||
alias mv='mv -iv'
|
||||
alias rm='rm -i'
|
||||
alias cat='bat -pp'
|
||||
alias less='bat -p'
|
||||
|
||||
alias newsboat='tmux new -As newsboat newsboat'
|
||||
|
||||
|
||||
export PATH="$HOME/.local/bin/:$PATH"
|
||||
# Autosuggestions
|
||||
# git clone https://github.com/zsh-users/zsh-autosuggestions ~/.config/zsh/
|
||||
source ~/.config/zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
@@ -71,12 +72,13 @@ bindkey -M vicmd 'j' history-substring-search-down
|
||||
source ~/.config/zsh/auto-ls/auto-ls.zsh
|
||||
|
||||
# Pyenv
|
||||
eval "$(pyenv init --path)"
|
||||
# eval "$(pyenv init --path)"
|
||||
|
||||
|
||||
source ~/.config/zsh/completion.zsh
|
||||
source ~/.config/zsh/key-bindings.zsh
|
||||
|
||||
# password-store
|
||||
_fzf_complete_pass() {
|
||||
ARGS="$@"
|
||||
_fzf_complete '' "$@" < <(
|
||||
@@ -84,3 +86,16 @@ _fzf_complete_pass() {
|
||||
)
|
||||
}
|
||||
|
||||
# yarn global commands
|
||||
# export PATH="$(yarn global bin):$PATH"
|
||||
|
||||
# zk
|
||||
# export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||
|
||||
# tea
|
||||
# PROG=tea _CLI_ZSH_AUTOCOMPLETE_HACK=1 source "/home/lafrite/.config/tea/autocomplete.zsh"
|
||||
|
||||
# Newsboat
|
||||
# alias newsboat='tmux new -As newsboat newsboat'
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user