Compare commits

...

84 Commits

Author SHA1 Message Date
e332226281 Feat(sway): path and autotiling-rs 2024-02-12 08:09:30 +01:00
0ef904f5c1 Feat(sway): replace theme 2024-02-09 08:39:16 +01:00
5210b2a15a Feat(nvim): add noice 2024-01-06 20:42:56 +01:00
158c7a60a3 Feat: clean and add channels 2024-01-06 20:37:06 +01:00
39a18835a1 Feat(nvim): add mason_tool_installer 2023-11-15 06:14:35 +01:00
fa519bd74d Feat(nvim): add linting 2023-11-15 06:12:30 +01:00
f98a52e613 Feat(nvim): add formater for web tech, lua and python 2023-11-15 06:06:39 +01:00
44fb8a49fa Feat(newsboat): clean channel 2023-11-05 06:46:52 +01:00
52b956c423 Feat(sway): add reverse cable config 2023-11-05 06:46:09 +01:00
e43a76a132 Feat(nvim): add option for buffer completion 2023-11-05 06:44:33 +01:00
3029561478 Feat(nvim): add path and buffer 2023-11-05 06:40:03 +01:00
f85841cafe Feat(tmux): move status to the top 2023-10-29 04:18:51 +01:00
140872d0e6 Feat(sway): use default config 2023-10-20 06:27:15 +02:00
5b9d495de9 Feat(sway): add gesture 2023-10-20 06:26:33 +02:00
42b373b467 Feat: move from packer to lazy 2023-10-06 14:29:02 +02:00
9c5c85fe29 Feat: remove _ for keyword 2023-10-06 14:13:07 +02:00
6c6bbb47f3 feat: remove new instance shortcut 2023-09-25 10:18:27 +02:00
375d135e83 feat: add backlink ref 2023-09-25 10:18:13 +02:00
5e87cb1f94 feat: add comment 2023-09-25 10:18:00 +02:00
984fd8cfbd feat: clean old config 2023-09-25 10:17:39 +02:00
624c9ddd24 feat: add partager c'est sympa 2023-09-25 10:17:20 +02:00
e4c915c224 Feat: set terminal colors 2023-09-25 10:13:49 +02:00
06e9c790a9 Feat: add recording marcro 2023-07-22 07:41:42 +02:00
a49ce29958 Feat(zsh): add tea completion 2023-06-23 11:08:10 +02:00
ff7880d04d Feat(nvim): iskeyword _ for w motion 2023-06-15 06:36:32 +02:00
b745e15242 Feat(newsboat): modify g and G keys and add channels 2023-06-13 06:26:29 +02:00
c6a5e6ba07 Feat(nvim): add oil.nvim 2023-06-08 21:28:20 +02:00
af26c6978f Feat: add yarn global path 2023-06-07 06:40:39 +02:00
a6d2ce2f22 Feat(tmux): remove plugin directory 2023-04-30 06:31:52 +02:00
0a9e6f9dda Feat(tmux): change theme and copy 2023-04-30 06:31:26 +02:00
b069c2060b Feat(nvim): add mini.indentscope 2023-04-18 06:05:54 +02:00
2d40f69d6f Feat(pluging): add noice to improve the ui 2023-04-16 14:16:49 +02:00
30ba1656b4 Feat(plugin): add which-key.nvim 2023-04-16 14:00:54 +02:00
c96fdf218f Fix: lsp format to <leader>F 2023-04-05 15:58:01 +02:00
6ec22356e7 Feat(zk): add litterature directory 2023-04-04 11:45:59 +02:00
f3e3ee0438 Fix(nvim): remove ending with space in link snippet 2023-04-04 11:45:20 +02:00
58cea70665 Feat(newsboat): add channel 2023-04-04 11:44:55 +02:00
ba48178f00 Feat(nvim): replace telescope-file-browser by nvimtree 2023-04-04 11:44:23 +02:00
06b30a5c3e Fix(sway): imagepath syntax 2023-02-24 09:28:11 +01:00
c6d6cdc0aa Feat(nvim): add cmp-cmdline for command line completion 2023-02-21 17:54:55 +01:00
383c27850a Feat(newsboat): add channels 2023-02-21 10:16:55 +01:00
21e72dfb45 Feat(nvim): use external ltex 2023-02-21 10:16:22 +01:00
1d5e596ce0 Feat(nvim): zk new note shortcuts 2023-02-21 10:16:05 +01:00
bcc2772268 Feat(sway): add script for screenshots 2023-01-29 06:12:51 +01:00
757c0d3585 Feat(newsboat): add new channel 2023-01-29 04:42:03 +01:00
6780915f38 Feat(nvim): add vim abolish (greater sub) 2023-01-29 04:41:36 +01:00
c04543aba9 Feat(nvim): [[ shortcut for insert link 2023-01-29 04:40:08 +01:00
754ebcf1ae Fix(nvim): latex task snippet 2023-01-29 04:39:40 +01:00
a4de744aa7 Feat: add underscore link 2022-12-28 06:28:58 +01:00
4f11c1a9b9 Fix: disable treesitter indent for python 2022-12-28 06:28:27 +01:00
74e33d46b2 Feat: add centering and moving bloc remap 2022-12-21 05:10:48 +01:00
600b328691 Feat: add config for vertical monitor 2022-11-29 17:13:45 +01:00
d06a4e94cf Feat(kanshi): set maison 2022-11-22 05:46:28 +01:00
c44cd17970 Feat: zk config files 2022-11-21 10:09:06 +01:00
b0570700bb Fix: change proposition order 2022-11-21 10:08:31 +01:00
30d3ddfc90 Feat: add telekasten 2022-11-21 09:57:20 +01:00
3e0def88dd Feat: close buffer with telescope 2022-11-21 09:57:04 +01:00
d6c6d4f5d1 Feat: add zk default notes path 2022-11-21 09:55:20 +01:00
787bca3373 Feat: add comments 2022-11-10 04:26:38 +01:00
e57be0cfd2 Feat: remove vim-notes and replace wit telekasten 2022-11-09 08:28:46 +01:00
99a78b8e7d Feat: neomutt config with external imap and smtp 2022-11-09 06:58:25 +01:00
86ee7c8bce Feat: open csv with libreoffice 2022-11-08 19:32:31 +01:00
ad02746fc7 Feat: ignore vdirsyncer status 2022-10-28 09:28:13 +02:00
7c75eebe62 Feat: configure neomutt, khard and vdirsyncer 2022-10-28 09:27:09 +02:00
bd286dfa23 Feat: activate autotiling-rs 2022-10-21 21:12:05 +02:00
5617265cc6 Feat: add javascript snippets 2022-10-20 21:48:31 +02:00
418f122485 Feat: add shell escape 2022-10-17 17:52:30 +02:00
0302e76e1f Feat: add plusaudio suport 2022-10-17 17:52:17 +02:00
c21c9096c9 Feat: replace lsp-install by mason and add ltex 2022-10-17 17:51:22 +02:00
6b23fdf858 Feat: ajoute hits the road 2022-10-17 17:51:04 +02:00
1fe23703f4 Formatting 2022-10-10 14:16:20 +02:00
20b9e02adb Feat: feh for images 2022-10-09 07:36:44 +02:00
c7333aa79a Feat: use bat instead of cat or less 2022-10-04 09:48:14 +02:00
7cb967447a Feat: change background 2022-10-04 09:46:36 +02:00
e54b358410 Feat: add ljvs channel 2022-10-04 09:46:03 +02:00
1fbd08f657 Feat: add question and multquestion for AMC 2022-09-18 08:24:53 +02:00
f796d0775e Feat: add image snippet 2022-09-04 15:55:06 +02:00
ffb20ec8a4 Feat: open ods files with libreoffice 2022-08-23 16:46:26 +02:00
1734908df0 Feat: replace signify by gitsigns 2022-08-20 06:26:07 +02:00
01d09bc9c0 Feat: add telescope file_browser and rewrite keymap 2022-08-20 06:16:14 +02:00
4324070cac Refact: change loading methode 2022-08-20 05:59:04 +02:00
ebdb4420b6 Refact: change loading method 2022-08-20 05:58:36 +02:00
171c63a070 Feat: change loading method and disable in telescope and vim 2022-08-20 05:58:07 +02:00
46a53b7c38 Feat: add other languages 2022-08-20 05:56:58 +02:00
72 changed files with 1555 additions and 2134 deletions

2
.gitignore vendored
View File

@@ -20,3 +20,5 @@ newsboat/.newsboat/history.cmdline
mpd/.config/mpd/database mpd/.config/mpd/database
mpd/.config/mpd/state mpd/.config/mpd/state
neomutt/.config/vdirsyncer/status/

View File

@@ -106,4 +106,3 @@ key_bindings:
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } - { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } - { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
- { key: Minus, mods: Control, action: DecreaseFontSize } - { key: Minus, mods: Control, action: DecreaseFontSize }
- { key: N, mods: Control, action: SpawnNewInstance }

View File

@@ -124,7 +124,7 @@ MusicDir = "/media/documents/musique/"
# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for # Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for
# debugging). You can enter more than one driver as a colon-separated # debugging). You can enter more than one driver as a colon-separated
# list. The first working driver will be used. # list. The first working driver will be used.
#SoundDriver = JACK:ALSA:OSS SoundDriver = PULSEAUDIO:JACK:ALSA:OSS
# Jack output settings. # Jack output settings.
#JackClientName = "moc" #JackClientName = "moc"

View File

@@ -0,0 +1,51 @@
# example configuration file for khard version > 0.14.0
# place it under ~/.config/khard/khard.conf
# This file is parsed by the configobj library. The syntax is described at
# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
[addressbooks]
[[contacts]]
path = ~/.contacts/contacts/
[general]
debug = no
default_action = list
# These are either strings or comma seperated lists
editor = nvim, -i, NONE
merge_editor = vimdiff
[contact table]
# display names by first or last name: first_name / last_name / formatted_name
display = first_name
# group by address book: yes / no
group_by_addressbook = no
# reverse table ordering: yes / no
reverse = no
# append nicknames to name column: yes / no
show_nicknames = no
# show uid table column: yes / no
show_uids = yes
# sort by first or last name: first_name / last_name / formatted_name
sort = last_name
# localize dates: yes / no
localize_dates = yes
# set a comma separated list of preferred phone number types in descending priority
# or nothing for non-filtered alphabetical order
preferred_phone_number_type = pref, cell, home
# set a comma separated list of preferred email address types in descending priority
# or nothing for non-filtered alphabetical order
preferred_email_address_type = pref, work, home
[vcard]
# extend contacts with your own private objects
# these objects are stored with a leading "X-" before the object name in the vcard files
# every object label may only contain letters, digits and the - character
# example:
# private_objects = Jabber, Skype, Twitter
# default: , (the empty list)
# preferred vcard version: 3.0 / 4.0
preferred_version = 4.0
# Look into source vcf files to speed up search queries: yes / no
search_in_source_files = no
# skip unparsable vcard files: yes / no
skip_unparsable = no

View File

@@ -0,0 +1,50 @@
# Example for a user configuration file ~/.msmtprc
# With modern mail services that publish autoconfiguration information,
# you can simply run 'msmtp --configure yourmail@example.com' to get
# a basic working configuration.
# This example focusses on TLS and authentication. Features not used here
# include logging, timeouts, SOCKS proxies, TLS parameters, Delivery Status
# Notification (DSN) settings, and more.
# Set default values: use the mail submission port 587, and always use TLS.
# On this port, TLS is activated via STARTTLS.
defaults
port 587
tls on
tls_starttls on
auth on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
account bb_opytex
user Takanuva
passwordeval "pass mail/mailfence/Takanuva | head -n1"
auth on
host smtp.mailfence.com
port 465
# Envelope-from address
from benjamin.bertrand@opytex.org
tls_starttls off
account jb_opytex
user margot_benjamin
passwordeval "pass mail/jost_bertrand@opytex.org/margot_benjamin | head -n1"
auth on
host smtp.mailfence.com
port 465
# Envelope-from address
from jost_bertrand@opytex.org
tls_starttls off
account ac-lyon
user bbertrand
passwordeval "pass Prof/pronote/bbertrand | head -n1"
auth on
host smtps.ac-lyon.fr
# Envelope-from address
from benjamin.bertrand@ac-lyon.fr
# Set a default account
account default : bb_opytex

View File

@@ -0,0 +1,43 @@
# vim: filetype=muttrc
unmailboxes *
set from = "benjamin.bertrand@ac-lyon.fr"
set sendmail = "/usr/bin/msmtp -a ac-lyon"
set folder = "~/.mail/ac_lyon"
set spoolfile = "+INBOX"
set postponed = "+Drafts"
set record = "+Sent"
set trash = "+Trash"
set mbox_type = Maildir
set ssl_starttls = yes
set ssl_force_tls = yes
color status blue default
#mailboxes =INBOX =Sent =Drafts =Junk
# set my_pass = "`pass Prof/pronote/bbertrand`"
# set folder = "imaps://mail.ac-lyon.fr"
# set imap_user = bbertrand
# set imap_pass = $my_pass
#
# set ssl_force_tls = yes
# set smtp_url = smtps://$imap_user@smtps.ac-lyon.fr:587
# set smtp_pass = $my_pass
# set ssl_starttls = yes
# set smtp_authenticators = "login"
#
# set spoolfile = +INBOX
# mailboxes = +INBOX
# set imap_check_subscribed
#
# set record = "+Sent"
# set trash = "+Trash"
# set postponed = "+Drafts"
#
# ## Hook -- IMPORTANT!
# account-hook $folder "set imap_pass=`pass Prof/pronote/bbertrand`"

View File

@@ -0,0 +1,43 @@
# vim: filetype=muttrc
unmailboxes *
set from = "benjamin.bertrand@opytex.org"
set sendmail = "/usr/bin/msmtp -a bb_opytex"
set folder = "~/.mail/bb_opytex"
set spoolfile = "+INBOX"
set postponed = "+Drafts"
set record = "+Sent"
set trash = "+Junk"
set mbox_type = Maildir
set ssl_starttls = yes
set ssl_force_tls = yes
color status cyan default
# mailboxes =INBOX =Sent =Drafts =Junk
# set my_pass = "`pass mail/mailfence/Takanuva`"
# set folder = "imaps://imap.mailfence.com/"
# set imap_user = Takanuva
# set imap_pass = $my_pass
#
# set ssl_force_tls = yes
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
# set smtp_pass = $my_pass
# set ssl_starttls = yes
# set smtp_authenticators = "login"
#
#
# set spoolfile = +INBOX
#
# set record = "+Sent"
# set trash = "+Trash"
# set postponed = "+Drafts"
#
#
# ## Hook -- IMPORTANT!
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"

View File

@@ -0,0 +1,44 @@
# vim: filetype=muttrc
unmailboxes *
set imap_list_subscribed
set imap_check_subscribed
set from = "jost_bertrand@opytex.org"
set sendmail = "/usr/bin/msmtp -a jb_opytex"
set folder = "~/.mail/jb_opytex"
set spoolfile = "+INBOX"
set postponed = "+Drafts"
set record = "+Sent"
set trash = "+Junk"
set mbox_type = Maildir
set ssl_starttls = yes
set ssl_force_tls = yes
color status red default
# set my_pass = "`pass mail/mailfence/Takanuva`"
# set folder = "imaps://imap.mailfence.com/"
# set imap_user = Takanuva
# set imap_pass = $my_pass
#
# set ssl_force_tls = yes
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
# set smtp_pass = $my_pass
# set ssl_starttls = yes
# set smtp_authenticators = "login"
#
#
# set spoolfile = +INBOX
# set imap_check_subscribed
#
# set record = "+Sent"
# set trash = "+Trash"
# set postponed = "+Drafts"
#
#
# ## Hook -- IMPORTANT!
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"

View File

@@ -0,0 +1,100 @@
# -*-muttrc-*-
# Screenshot http://trovao.droplinegnome.org/stuff/mutt-zenburnt.png
#
# This is a zenburn-based neomutt color scheme that is not (even by far)
# complete. There's no copyright involved. Do whatever you want with it.
# Just be aware that I won't be held responsible if the current color-scheme
# explodes your mail client. ;)
#
# Do notice that this color scheme requires a terminal emulator that supports
# 256 color. Any modern X terminal emulator should have support for that and
# you can enable it by calling neomutt as "TERM=xterm-256color neomutt" or, if you
# use screen, by adding "term screen-256color" to your .screenrc.
#
# This file is in the public domain.
#
# general-doesn't-fit stuff
color normal color188 color237
color error color115 color236
color markers color142 color238
color tilde color108 color237
color status color144 color234
# index stuff
color indicator color108 color236
color tree color109 color237
color index color188 color237 ~A
color index color188 color237 ~N
color index color188 color237 ~O
color index color174 color237 ~F
color index color174 color237 ~D
# Message Index ----------------------------------------------------------------
## Weak
color index color08 color00 "~R" # read messages
color index color08 color00 "~d >45d" # older than 45 days
color index color08 color00 "~v~(!~N)" # collapsed thread with no unread
color index color08 color00 "~Q" # messages that have been replied to
## Strong
color index color21 color00 "(~U|~N|~O)" # unread, new, old messages
color index color21 color00 "~v~(~U|~N|~O)" # collapsed thread with unread
## Highlight
### Trusted
color index color06 color00 "~g" # PGP signed messages
color index color06 color00 "~G" # PGP encrypted messages
### Odd
color index color01 color00 "~E" # past Expires: header date
color index color01 color00 "~=" # duplicated
color index color01 color00 "~S" # marked by Supersedes: header
### Flagged
color index color05 color00 "~F" # flagged messages
color index color02 color00 "~v~(~F)" # collapsed thread with flagged inside
# Selection
color index color02 color18 "~T" # tagged messages
color index color01 color18 "~D" # deleted messages
#
# header stuff
color hdrdefault color223 color237
color header color223 color237 "^Subject"
# gpg stuff
color body color188 color237 "^gpg: Good signature.*"
color body color115 color236 "^gpg: BAD signature.*"
color body color174 color237 "^gpg: Can't check signature.*"
color body color174 color237 "^-----BEGIN PGP SIGNED MESSAGE-----"
color body color174 color237 "^-----BEGIN PGP SIGNATURE-----"
color body color174 color237 "^-----END PGP SIGNED MESSAGE-----"
color body color174 color237 "^-----END PGP SIGNATURE-----"
color body color174 color237 "^Version: GnuPG.*"
color body color174 color237 "^Comment: .*"
# url, email and web stuff
color body color174 color237 "(finger|ftp|http|https|news|telnet)://[^ >]*"
color body color174 color237 "<URL:[^ ]*>"
color body color174 color237 "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?"
color body color174 color237 "mailto: *[^ ]+\(\\i?subject=[^ ]+\)?"
color body color174 color237 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
# misc body stuff
color attachment color174 color237 #Add-ons to the message
color signature color223 color237
# quote levels
color quoted color108 color237
color quoted1 color116 color237
color quoted2 color247 color237
color quoted3 color108 color237
color quoted4 color116 color237
color quoted5 color247 color237
color quoted6 color108 color237
color quoted7 color116 color237
color quoted8 color247 color237
color quoted9 color108 color237

View File

@@ -0,0 +1,121 @@
# -*-muttrc-*-
# gruvbox dark (contrast dark):
# bg0 = 234
# bg1 = 237
# bg2 = 239
# bg3 = 241
# bg4 = 243
#
# gray = 245
#
# fg0 = 229
# fg1 = 223
# fg2 = 250
# fg3 = 248
# fg4 = 246
#
# red = 167
# green = 142
# yellow = 214
# blue = 109
# purple = 175
# aqua = 108
# orange = 208
# See http://www.mutt.org/doc/manual/#color
color attachment color109 color234
color bold color229 color234
color error color167 color234
color hdrdefault color246 color234
color indicator color223 color237
color markers color243 color234
color normal color223 color234
color quoted color250 color234
color quoted1 color108 color234
color quoted2 color250 color234
color quoted3 color108 color234
color quoted4 color250 color234
color quoted5 color108 color234
color search color234 color208
color signature color108 color234
color status color234 color250
color tilde color243 color234
color tree color142 color234
color underline color223 color239
color sidebar_divider color250 color234
color sidebar_new color142 color234
color index color142 color234 ~N
color index color108 color234 ~O
color index color109 color234 ~P
color index color214 color234 ~F
color index color175 color234 ~Q
color index color167 color234 ~=
color index color234 color223 ~T
color index color234 color167 ~D
color header color214 color234 "^(To:|From:)"
color header color142 color234 "^Subject:"
color header color108 color234 "^X-Spam-Status:"
color header color108 color234 "^Received:"
# Regex magic for URLs and hostnames
#
# Attention: BSD's regex has RE_DUP_MAX set to 255.
#
# Examples:
# http://some-service.example.com
# example.com
# a.example.com
# some-service.example.com
# example.com/
# example.com/datenschutz
# file:///tmp/foo
#
# Non-examples:
# 1.1.1900
# 14.02.2022/24:00
# 23.59
# w.l.o.g
# team.its
color body color142 color234 "[a-z]{3,255}://[[:graph:]]*"
color body color142 color234 "([-[:alnum:]]+\\.)+([0-9]{1,3}|[-[:alpha:]]+)/[[:graph:]]*"
color body color142 color234 "([-[:alnum:]]+\\.){2,255}[-[:alpha:]]{2,10}"
# IPv4 and IPv6 stolen from https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
color body color142 color234 "((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
color body color142 color234 "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
# Mail addresses and mailto URLs
color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
# some simleys and stuff
color body color234 color214 "[;:]-*[)>(<lt;|]"
color body color229 color234 "\\*[- A-Za-z]+\\*"
color body color214 color234 "^-.*PGP.*-*"
color body color142 color234 "^gpg: Good signature from"
color body color167 color234 "^gpg: Can't.*$"
color body color214 color234 "^gpg: WARNING:.*$"
color body color167 color234 "^gpg: BAD signature from"
color body color167 color234 "^gpg: Note: This key has expired!"
color body color214 color234 "^gpg: There is no indication that the signature belongs to the owner."
color body color214 color234 "^gpg: can't handle these multiple signatures"
color body color214 color234 "^gpg: signature verification suppressed"
color body color214 color234 "^gpg: invalid node with packet of type"
color body color142 color234 "^Good signature from:"
color body color167 color234 "^.?BAD.? signature from:"
color body color142 color234 "^Verification successful"
color body color167 color234 "^Verification [^s][^[:space:]]*$"
color compose header color223 color234
color compose security_encrypt color175 color234
color compose security_sign color109 color234
color compose security_both color142 color234
color compose security_none color208 color234

View File

@@ -0,0 +1 @@
mailboxes "+ac_lyon/Archives" "+ac_lyon/Archives.2019-2020" "+ac_lyon/Archives.2020-2021" "+ac_lyon/Archives.2021-2022" "+ac_lyon/Archives.2022-2023" "+ac_lyon/Archives/2019-2020" "+ac_lyon/Archives/2020-2021" "+ac_lyon/Archives/2021-2022" "+ac_lyon/Archives/2022-2023" "+ac_lyon/Brouillons" "+ac_lyon/Drafts" "+ac_lyon/Eleves" "+ac_lyon/Eleves.2nd1" "+ac_lyon/Eleves/2nd1" "+ac_lyon/Envoy&AOk-s" "+ac_lyon/INBOX" "+ac_lyon/Junk" "+ac_lyon/Sent" "+ac_lyon/TICE" "+ac_lyon/Trash" "+bb_opytex/Archive" "+bb_opytex/Drafts" "+bb_opytex/INBOX" "+bb_opytex/R&AOk-seautage" "+bb_opytex/Sent Items" "+bb_opytex/Spam?" "+bb_opytex/Trash" "+jb_opytex/2021" "+jb_opytex/2022" "+jb_opytex/Archive" "+jb_opytex/Drafts" "+jb_opytex/INBOX" "+jb_opytex/Sent Items" "+jb_opytex/Spam?" "+jb_opytex/Trash"

View File

@@ -0,0 +1,12 @@
# xdg-open
application/msword; /usr/bin/xdg-open %s
application/pdf; /usr/bin/xdg-open %s
application/postscript ; /usr/bin/xdg-open %s
# HTML
text/html; w3m -I %{charset} -T text/html; copiousoutput;
text/plain; nvim %s
#Images
image/png; /usr/bin/vimiv %s
image/jpeg; /usr/bin/vimiv %s

View File

@@ -0,0 +1,56 @@
# vim: filetype=muttrc
# sidebar mappings
bind index,pager \Ck sidebar-prev
bind index,pager \Cj sidebar-next
bind index,pager \Co sidebar-open
bind index,pager \Cp sidebar-prev-new
bind index,pager \Cn sidebar-next-new
bind index,pager B sidebar-toggle-visible
# global index and pager shortcuts
bind index,pager @ compose-to-sender
bind index,pager D purge-message
bind index <tab> sync-mailbox
bind index <space> collapse-thread
# Email completion bindings
bind editor <Tab> complete-query
bind editor ^T complete
# General rebindings
bind attach <return> view-mailcap
bind attach l view-mailcap
bind editor <space> noop
bind pager c imap-fetch-mail
bind index G last-entry
bind index g noop
bind index gg first-entry
bind pager,attach h exit
bind pager j next-line
bind pager k previous-line
bind pager l view-attachments
bind index D delete-message
bind index U undelete-message
bind index L limit
bind index h noop
bind index l display-message
bind browser h goto-parent
bind browser l select-entry
bind pager,browser gg top-page
bind pager,browser G bottom-page
bind index,pager,browser d half-down
bind index,pager,browser u half-up
bind index,pager R group-reply
bind index \031 previous-undeleted # Mouse wheel
bind index \005 next-undeleted # Mouse wheel
bind pager \031 previous-line # Mouse wheel
bind pager \005 next-line # Mouse wheel
bind editor <Tab> complete-query
#
## Shortcuts
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/ac-lyon<enter><change-folder>!<enter>'
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/bb_opytex<enter><change-folder>!<enter>'
macro index,pager <f4> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/jb_opytex<enter><change-folder>!<enter>'

View File

@@ -0,0 +1,15 @@
# vim: filetype=muttrc
source ~/.config/neomutt/settings
source ~/.config/neomutt/colors_gruvbox
source ~/.config/neomutt/mappings
#source ~/.config/neomutt/accounts/jb_opytex
folder-hook jb_opytex/* 'source ~/.config/neomutt/accounts/jb_opytex'
#source ~/.config/neomutt/accounts/bb_opytex
folder-hook bb_opytex/* 'source ~/.config/neomutt/accounts/bb_opytex'
source ~/.config/neomutt/accounts/ac-lyon
folder-hook ac_lyon/* 'source ~/.config/neomutt/accounts/ac-lyon'
#source ~/.config/neomutt/mailboxes

View File

@@ -0,0 +1,72 @@
# vim: filetype=muttrc
set editor = "nvim"
set realname = "Benjamin Bertrand"
set use_from = "yes"
# How often to check for new mail (time in seconds).
set mail_check = 120
# Allow Mutt to open a new IMAP connection automatically.
unset imap_passive
# Keep the IMAP connection alive by polling intermittently (time in seconds).
set imap_keepalive = 300
# main options
set envelope_from
set edit_headers # show headers when composing
set fast_reply # skip to compose when replying
set askcc # ask for CC:
set fcc_attach # save attachments with the body
set forward_format = "Fwd: %s" # format of subject when forwarding
set forward_decode # decode when forwarding
set attribution = "On %d, %n wrote:" # format of quoting header
set reply_to # reply to Reply to: field
set reverse_name # reply as whomever it was to
set include # include message in replies
set forward_quote # include message in forwards
set text_flowed
unset sig_dashes # no dashes before sig
unset mime_forward # forward attachments as part of body
unset help # No help bar at the top of index
# set status_on_top # Status bar on top of index
set tmpdir = ~/Programs/neomutt/temp # where to keep temp files
# status bar, date format, finding stuff etc.
set status_chars = " *%A"
set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?"
set date_format = "%d.%m.%Y %H:%M"
set sort = threads
set sort_aux = reverse-last-date-received
set uncollapse_jump
set sort_re
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
set send_charset = "utf-8:iso-8859-1:us-ascii"
set charset = "utf-8"
set arrow_cursor = "no" # Change `color indicator` depending
# Pager View Options
set pager_index_lines = 20 # Shows 10 lines of index when pager is active
set pager_context = 3
set pager_stop
set menu_scroll
set tilde
unset markers
# Mailcal for attachments
set mailcap_path = ~/.config/neomutt/mailcap
set header_cache = "~/.cache/mutt"
set message_cachedir = "~/.cache/mutt"
# Contact with khard
set query_command = "khard email --parsable --search-in-source-files '%s'"
# Set preffered view modes
auto_view text/html text/calendar application/ics # view html automatically
alternative_order text/html text/plain text/enriched text/*

View File

@@ -0,0 +1,67 @@
[general]
accounts = bb_opytex, jb_opytex, ac_lyon
pythonfile = ~/.config/offlineimap/offlineimap.py
maxsyncaccounts = 1
[mbnames]
enabled = yes
filename = ~/.config/neomutt/mailboxes
header = "mailboxes "
peritem = "+%(accountname)s/%(foldername)s"
sep = " "
footer = "\n"
[Account bb_opytex]
localrepository = Local-bb_opytex
remoterepository = Remote-bb_opytex
autorefresh = 1
quick = 10
[Repository Local-bb_opytex]
type = Maildir
localfolders = ~/.mail/bb_opytex
sep = /
[Repository Remote-bb_opytex]
type = IMAP
remotehost = imap.mailfence.com
remoteuser = Takanuva
remotepasseval = get_pass("mail/mailfence/Takanuva")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account jb_opytex]
localrepository = Local-jb_opytex
remoterepository = Remote-jb_opytex
autorefresh = 1
quick = 10
[Repository Local-jb_opytex]
type = Maildir
localfolders = ~/.mail/jb_opytex
sep = /
[Repository Remote-jb_opytex]
type = IMAP
remotehost = imap.mailfence.com
remoteuser = margot_benjamin
remotepasseval = get_pass("mail/jost_bertrand@opytex.org/margot_benjamin")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account ac_lyon]
localrepository = Local-ac_lyon
remoterepository = Remote-ac_lyon
autorefresh = 1
quick = 10
[Repository Local-ac_lyon]
type = Maildir
localfolders = ~/.mail/ac_lyon
sep = /
[Repository Remote-ac_lyon]
type = IMAP
remotehost = mail.ac-lyon.fr
remoteuser = bbertrand
remotepasseval = get_pass("Prof/pronote/bbertrand")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

View File

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

View File

@@ -0,0 +1,21 @@
[general]
status_path = "~/.config/vdirsyncer/status/"
[pair cloud_opytex_contact]
a = "cloud_opytex_contact_local"
b = "cloud_opytex_contact_remote"
collections = ["from a", "from b"]
conflict_resolution = "b wins"
[storage cloud_opytex_contact_local]
type = "filesystem"
path = "~/.contacts/"
fileext = ".vcf"
[storage cloud_opytex_contact_remote]
type = "carddav"
# We can simplify this URL here as well. In theory it shouldn't matter.
url = "https://cloud.poneyworld.net/remote.php/dav/addressbooks/users/lafrite/contacts/"
username = "lafrite"
password.fetch = ["command", "pass", "OVH/Panais/docker/cloud.poneyworld.net/lafrite"]

View File

@@ -1,8 +1,8 @@
auto-reload yes auto-reload yes
reload-time 30 reload-time 30
browser "chromium --incognito" browser "chromium --incognito"
macro y set browser "tmux new-window 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 macro Y set browser "mpv %u"; open-in-browser ; set browser "chromium --incognito"
unbind-key h unbind-key h
unbind-key j unbind-key j
@@ -14,6 +14,13 @@ bind-key j down
bind-key k up bind-key k up
bind-key l open 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 background default default
color listnormal default default color listnormal default default
color listnormal_unread default default color listnormal_unread default default

View File

@@ -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=UCV0qA-eDDICsRR9rPcnG7tw "Tech"
https://www.youtube.com/feeds/videos.xml?channel_id=UCR-DXc1voovS8nhAvccRZhg "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=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=UCg7HRuQ93hl9v8dTSt_XDHA "Ferme" "~Banabé"
https://www.youtube.com/feeds/videos.xml?channel_id=UCsM4_jihNFYe4CtSkXvDR-Q "Ferme" "~permaculture agroécologie etc..." 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=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=UCvDpfkniGG6WkX5L7DwyGaA "Bois" "Olivier Verdier"
https://www.youtube.com/feeds/videos.xml?channel_id=UC7TiJ6Tnxc_dSE42byTPMug "Bois" "Copain des copeaux" https://www.youtube.com/feeds/videos.xml?channel_id=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=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=UCjaudhGC0gBfEtMyQYzT3pA "Bois" "Atelier Floky"
https://www.youtube.com/feeds/videos.xml?channel_id=UCJNItGjNhUx3Zz6W4OCVfHA "Chantier" "~Passion renovation" https://www.youtube.com/feeds/videos.xml?channel_id=UCJNItGjNhUx3Zz6W4OCVfHA "Chantier" "~Passion renovation"
https://www.youtube.com/feeds/videos.xml?channel_id=UCxiqy-VOYw6uBE4raFCz4Ow "Chantier" "LJVS"
https://www.youtube.com/feeds/videos.xml?channel_id=UCKt0CjXg6PRocxlCss90e8g "Chantier" "Clément Beraud" https://www.youtube.com/feeds/videos.xml?channel_id=UCKt0CjXg6PRocxlCss90e8g "Chantier" "Clément Beraud"
https://www.youtube.com/feeds/videos.xml?channel_id=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf" https://www.youtube.com/feeds/videos.xml?channel_id=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf"
@@ -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=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=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=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=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=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=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=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=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=UCOk-gHyjcWZNj3Br4oxwh0A "Homelab" "Techno Tim"
https://www.youtube.com/feeds/videos.xml?channel_id=UCj_iGliGCkLcHSZ8eqVNPDQ "Programmation" "~Grafikart.fr" https://www.youtube.com/feeds/videos.xml?channel_id=UCWQaM7SpSECp9FELz-cHzuQ "Cording" "Dream of Code"
https://www.youtube.com/feeds/videos.xml?channel_id=UCYeiozh-4QwuC1sjgCmB92w "Cording" "DevOps Toolbox"
https://www.youtube.com/feeds/videos.xml?channel_id=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code" https://www.youtube.com/feeds/videos.xml?channel_id=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code"

View File

@@ -1,5 +1,17 @@
require('plugins') local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
vim.g.mapleader = ' ' -- Leaderkey
require("lazy").setup("plugins")
require('settings') require('settings')
require('mappings') require('mappings')
require('lsp')

View File

@@ -0,0 +1,36 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
"gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
"indent-blankline.nvim": { "branch": "master", "commit": "877c1db2bf957300097dd5348a665666a4d900cb" },
"lazy.nvim": { "branch": "main", "commit": "6b6f0a451200bb6abde85978c577c73ea1577758" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "22677c535fdc11a73da67a186a30e360d8857497" },
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" },
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
"noice.nvim": { "branch": "main", "commit": "7cf858c30841c9c41601ce58e5bc2023228037ef" },
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
"nvim-autopairs": { "branch": "master", "commit": "de4f7138a68d5d5063170f2182fd27faf06b0b54" },
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
"nvim-lspconfig": { "branch": "master", "commit": "2b361e043810d5587d9af0787f8ce40da92ec5e9" },
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
"nvim-treesitter": { "branch": "master", "commit": "10bfa4826f2235c600c073a82e0d78718aa7240e" },
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
"oil.nvim": { "branch": "master", "commit": "ac2928cca85ba3596e92f9f51940d46be2d606f8" },
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
"telescope.nvim": { "branch": "0.1.x", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" },
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
"vim-fugitive": { "branch": "master", "commit": "99db68d9b3304580bd383da7aaee05c7a954a344" },
"vim-highlightedyank": { "branch": "master", "commit": "fa3f57b097e9521ce41a66b6c7cf5d9adea70ea3" },
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" },
"vim-vsnip": { "branch": "master", "commit": "be277461265f1e5c7db470aa479f30956597ea9e" },
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
}

View File

@@ -1,132 +0,0 @@
local has_words_before = function()
if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then
return false
end
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local feedkey = function(key, mode)
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true)
end
local lsp_symbols = {
Text = "  (Text) ",
Method = "  (Method)",
Function = "  (Function)",
Constructor = "  (Constructor)",
Field = " ﴲ (Field)",
Variable = "[] (Variable)",
Class = "  (Class)",
Interface = " ﰮ (Interface)",
Module = "  (Module)",
Property = " 襁 (Property)",
Unit = "  (Unit)",
Value = "  (Value)",
Enum = " 練 (Enum)",
Keyword = "  (Keyword)",
Snippet = "  (Snippet)",
Color = "  (Color)",
File = "  (File)",
Reference = "  (Reference)",
Folder = "  (Folder)",
EnumMember = "  (EnumMember)",
Constant = " ﲀ (Constant)",
Struct = " ﳤ (Struct)",
Event = "  (Event)",
Operator = "  (Operator)",
TypeParameter = "  (TypeParameter)",
}
local cmp = require'cmp'
cmp.setup{
completion = {
completeopt = 'menuone,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'

View File

@@ -1,9 +0,0 @@
local autopairs_status_ok, autopairs = pcall(require, "nvim-autopairs")
if not autopairs_status_ok then
return
end
autopairs.setup{
ignored_next_char = string.gsub([[ [%w%%%'%[%"%.] ]],"%s+", ""),
}

View File

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

View File

@@ -1,6 +0,0 @@
vim.opt.list = true
vim.opt.listchars:append("eol:↴")
require("indent_blankline").setup {
show_end_of_line = true,
}

View File

@@ -1,214 +0,0 @@
-- Eviline config for lualine
-- Author: shadmansaleh
-- Credit: glepnir
local lualine = require 'lualine'
-- Color table for highlights
local colors = {
bg = '#202328',
fg = '#bbc2cf',
yellow = '#ECBE7B',
cyan = '#008080',
darkblue = '#081633',
green = '#98be65',
orange = '#FF8800',
violet = '#a9a1e1',
magenta = '#c678dd',
blue = '#51afef',
red = '#ec5f67'
}
local conditions = {
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
check_git_workspace = function()
local filepath = vim.fn.expand('%:p:h')
local gitdir = vim.fn.finddir('.git', filepath .. ';')
return gitdir and #gitdir > 0 and #gitdir < #filepath
end
}
-- Config
local config = {
options = {
-- Disable sections and component separators
component_separators = "",
section_separators = "",
-- theme = 'gruvbox',
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. both are highlighted by c theme . so we
-- are just setting default looks o statusline
normal = {c = {fg = colors.fg, bg = colors.bg}},
inactive = {c = {fg = colors.fg, bg = colors.bg}}
}
},
sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- these will be filled later
lualine_c = {},
lualine_x = {}
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_v = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {}
}
}
-- inserts a component in lualine_c at left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
-- inserts a component in lualine_x ot right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
local mode_color = {
n = colors.red,
i = colors.green,
v = colors.blue,
[''] = colors.blue,
v = colors.blue,
c = colors.magenta,
no = colors.red,
s = colors.orange,
s = colors.orange,
[''] = colors.orange,
ic = colors.yellow,
r = colors.violet,
rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
['r?'] = colors.cyan,
['!'] = colors.red,
t = colors.red
}
ins_left {
-- mode component
function()
-- auto change color according to neovims mode
vim.api.nvim_command(
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
return ''
end,
color = "lualinemode",
left_padding = 0
}
ins_left {
"mode",
color = {fg = colors.green, gui = 'bold'}
}
ins_left {
-- filesize component
function()
local function format_file_size(file)
local size = vim.fn.getfsize(file)
if size <= 0 then return '' end
local sufixes = {'b', 'k', 'm', 'g'}
local i = 1
while size > 1024 do
size = size / 1024
i = i + 1
end
return string.format('%.1f%s', size, sufixes[i])
end
local file = vim.fn.expand('%:p')
if string.len(file) == 0 then return '' end
return format_file_size(file)
end,
condition = conditions.buffer_not_empty
}
ins_left {
-- Lsp server name .
function()
local msg = 'No Active Lsp'
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then return msg end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = ' LSP:',
color = {fg = '#ffffff', gui = 'bold'}
}
ins_left {
'diagnostics',
sources = {'nvim_diagnostic'},
symbols = {error = '', warn = '', info = ''},
color_error = colors.red,
color_warn = colors.yellow,
color_info = colors.cyan
}
-- Insert mid section. You can make any number of sections in neovim :)
-- for lualine it's any number greater then 2
ins_left {function() return '%=' end}
ins_left {
'filename',
file_status = true,
path = 1,
condition = conditions.buffer_not_empty,
color = {fg = colors.magenta, gui = 'bold'}
}
-- Add components to right sections
ins_right {
'o:encoding', -- option component same as &encoding in viml
upper = true, -- I'm not sure why it's upper case either ;)
condition = conditions.hide_in_width,
color = {fg = colors.green, gui = 'bold'}
}
ins_right {
'fileformat',
upper = true,
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
color = {fg = colors.green, gui = 'bold'}
}
ins_right {
'branch',
icon = '',
condition = conditions.check_git_workspace,
color = {fg = colors.violet, gui = 'bold'}
}
ins_right {
'diff',
-- Is it me or the symbol for modified us really weird
symbols = {added = '', modified = '', removed = ''},
color_added = colors.green,
color_modified = colors.orange,
color_removed = colors.red,
condition = conditions.hide_in_width
}
ins_right {'location'}
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
-- Now don't forget to initialize lualine
lualine.setup(config)

View File

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

View File

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

View File

@@ -1,46 +0,0 @@
local previewers = require('telescope.previewers')
local Job = require('plenary.job')
local new_maker = function(filepath, bufnr, opts)
filepath = vim.fn.expand(filepath)
Job:new({
command = 'file',
args = { '--mime-type', '-b', filepath },
on_exit = function(j)
local mime_type = vim.split(j:result()[1], '/')[1]
if mime_type == "text" then
previewers.buffer_previewer_maker(filepath, bufnr, opts)
else
-- maybe we want to write something to the buffer here
vim.schedule(function()
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, { 'BINARY' })
end)
end
end
}):sync()
end
require('telescope').setup {
defaults = {
buffer_previewer_maker = new_maker,
file_ignore_patterns = {"**/*.pdf"},
},
extensions = {
fzf = {
fuzzy = true, -- false will only do exact matching
override_generic_sorter = true, -- override the generic sorter
override_file_sorter = true, -- override the file sorter
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
-- the default case_mode is "smart_case"
}
}
}
require('telescope').load_extension('fzf')
local map = vim.api.nvim_set_keymap
-- Find files using Telescope command-line sugar.
map('n', '<leader>e', '<cmd>Telescope find_files<cr>', {})
map('n', '<leader>g', '<cmd>Telescope live_grep<cr>', {})
map('n', '<leader>b', '<cmd>Telescope buffers<cr>', {})
map('n', '<leader>h', '<cmd>Telescope help_tags<cr>', {})

View File

@@ -1,13 +0,0 @@
require'nvim-treesitter.configs'.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()"

View File

@@ -1,6 +0,0 @@
vim.g.maplocalleader = " "
vim.g.vimtex_view_method = 'zathura'
-- Les fichiers sty et cls sont vus comme des fichiers tex
vim.cmd("autocmd BufRead,BufNewFile *.{sty,cls} setlocal syntax=tex")

View File

@@ -1,73 +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" }
for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup {
on_attach = on_attach,
flags = {
debounce_text_changes = 150,
},
}
end
nvim_lsp.vuels.setup{
on_attach = function(client)
client.resolved_capabilities.document_formatting = true
end;
}

View File

@@ -1,17 +1,19 @@
local map = vim.api.nvim_set_keymap local map = vim.api.nvim_set_keymap
local default_opts = {noremap = true, silent = true} 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 -- Align blocks of text and keep them selected
map('v', '<', '<gv', {}) map('v', '<', '<gv', {})
map('v', '>', '>gv', {}) map('v', '>', '>gv', {})
-- Automatically spell check last error in insert mode -- Automatically spell check last error in insert mode
map('i', '<c-f>', '<c-g>u<Esc>[s1z=`]a<c-g>u', default_opts) map('i', '<c-f>', '<c-g>u<Esc>[s1z=`]a<c-g>u', default_opts)
-- Centering after moving half page or search
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- Move block on visual mode
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")

View File

@@ -1,141 +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 '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 {
'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)

View File

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

View File

@@ -0,0 +1,14 @@
return {
'norcalli/nvim-colorizer.lua',
config = function ()
vim.opt.termguicolors = true
require('colorizer').setup {
'css';
'javascript';
html = {
mode = 'foreground';
}
}
end
}

View File

@@ -0,0 +1,9 @@
return {
"morhetz/gruvbox",
lazy = false, -- make sure we load this during startup if it is your main colorscheme
priority = 1000, -- make sure to load this before all the other start plugins
config = function()
-- load the colorscheme here
vim.cmd([[colorscheme gruvbox]])
end
}

View File

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

View File

@@ -0,0 +1,69 @@
return {
'hrsh7th/nvim-cmp',
dependencies = {
'neovim/nvim-lspconfig',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'hrsh7th/cmp-vsnip',
'hrsh7th/vim-vsnip',
},
config = function ()
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'vsnip' }, -- For vsnip users.
{ name = 'path' },
{
name = 'buffer',
option = {
keyword_length = 3,
get_bufnrs = function()
return vim.api.nvim_list_bufs()
end
}
},
}, {
{ name = 'buffer' },
})
})
-- Set configuration for specific filetype.
cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
}, {
{ name = 'buffer' },
})
})
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
}
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
})
})
end
}

View File

@@ -0,0 +1,37 @@
return {
"stevearc/conform.nvim",
event = { "BufReadPre", "BufNewFile" },
config = function()
local conform = require("conform")
conform.setup({
formatters_by_ft = {
javascript = { "prettier" },
typescript = { "prettier" },
javascriptreact = { "prettier" },
typescriptreact = { "prettier" },
svelte = { "prettier" },
css = { "prettier" },
html = { "prettier" },
json = { "prettier" },
yaml = { "prettier" },
markdown = { "prettier" },
graphql = { "prettier" },
lua = { "stylua" },
python = { "isort", "black" },
},
format_on_save = {
lsp_fallback = true,
async = false,
timeout_ms = 500,
},
})
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
conform.format({
lsp_fallback = true,
async = false,
timeout_ms = 500,
})
end, { desc = "Format file or range (in visual mode)" })
end,
}

View File

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

View File

@@ -0,0 +1,10 @@
return {
'lukas-reineke/indent-blankline.nvim',
main = "ibl",
config = function ()
vim.opt.list = true
vim.opt.listchars:append("eol:↴")
require("ibl").setup {
}
end
}

View File

@@ -0,0 +1,31 @@
return {
"mfussenegger/nvim-lint",
event = {
"BufReadPre",
"BufNewFile",
},
config = function()
local lint = require("lint")
lint.linters_by_ft = {
javascript = { "eslint_d" },
typescript = { "eslint_d" },
javascriptreact = { "eslint_d" },
typescriptreact = { "eslint_d" },
python = { "flake8" },
}
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function()
lint.try_lint()
end,
})
vim.keymap.set("n", "<leader>ml", function()
lint.try_lint()
end, { desc = "Trigger linting for current file" })
end,
}

View File

@@ -0,0 +1,38 @@
return {
"VonHeikemen/lsp-zero.nvim",
branch = "v3.x",
dependencies = {
{ "neovim/nvim-lspconfig" },
{ "williamboman/mason.nvim" },
{ "williamboman/mason-lspconfig.nvim" },
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
},
config = function()
local lsp_zero = require("lsp-zero")
lsp_zero.on_attach(function(client, bufnr)
-- see :help lsp-zero-keybindings
-- to learn the available actions
lsp_zero.default_keymaps({ buffer = bufnr })
end)
require("mason").setup({})
require("mason-lspconfig").setup({
ensure_installed = {},
handlers = {
lsp_zero.default_setup,
},
})
local mason_tool_installer = require("mason-tool-installer")
mason_tool_installer.setup({
ensure_installed = {
"prettier", -- prettier formatter
"stylua", -- lua formatter
"isort", -- python formatter
"black", -- python formatter
"flake8", -- python linter
"eslint_d", -- js linter
},
})
end,
}

View File

@@ -0,0 +1,222 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = {
"folke/noice.nvim",
'nvim-tree/nvim-web-devicons',
},
config = function ()
local colors = {
bg = '#202328',
fg = '#bbc2cf',
yellow = '#ECBE7B',
cyan = '#008080',
darkblue = '#081633',
green = '#98be65',
orange = '#FF8800',
violet = '#a9a1e1',
magenta = '#c678dd',
blue = '#51afef',
red = '#ec5f67'
}
local conditions = {
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
check_git_workspace = function()
local filepath = vim.fn.expand('%:p:h')
local gitdir = vim.fn.finddir('.git', filepath .. ';')
return gitdir and #gitdir > 0 and #gitdir < #filepath
end
}
-- Config
local config = {
options = {
-- Disable sections and component separators
component_separators = "",
section_separators = "",
-- theme = 'gruvbox',
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. both are highlighted by c theme . so we
-- are just setting default looks o statusline
normal = {c = {fg = colors.fg, bg = colors.bg}},
inactive = {c = {fg = colors.fg, bg = colors.bg}}
}
},
sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- these will be filled later
lualine_c = {},
lualine_x = {
{
require("noice").api.statusline.mode.get,
cond = require("noice").api.statusline.mode.has,
color = { fg = "#ff9e64" },
}
}
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_v = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {}
}
}
-- inserts a component in lualine_c at left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
-- inserts a component in lualine_x ot right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
local mode_color = {
n = colors.red,
i = colors.green,
v = colors.blue,
[''] = colors.blue,
v = colors.blue,
c = colors.magenta,
no = colors.red,
s = colors.orange,
s = colors.orange,
[''] = colors.orange,
ic = colors.yellow,
r = colors.violet,
rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
['r?'] = colors.cyan,
['!'] = colors.red,
t = colors.red
}
ins_left {
-- mode component
function()
-- auto change color according to neovims mode
vim.api.nvim_command(
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
return ''
end,
color = "lualinemode",
left_padding = 0
}
ins_left {
"mode",
color = {fg = colors.green, gui = 'bold'}
}
ins_left {
-- filesize component
function()
local function format_file_size(file)
local size = vim.fn.getfsize(file)
if size <= 0 then return '' end
local sufixes = {'b', 'k', 'm', 'g'}
local i = 1
while size > 1024 do
size = size / 1024
i = i + 1
end
return string.format('%.1f%s', size, sufixes[i])
end
local file = vim.fn.expand('%:p')
if string.len(file) == 0 then return '' end
return format_file_size(file)
end,
condition = conditions.buffer_not_empty
}
ins_left {
-- Lsp server name .
function()
local msg = 'No Active Lsp'
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then return msg end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = ' LSP:',
color = {fg = '#ffffff', gui = 'bold'}
}
ins_left {
'diagnostics',
sources = {'nvim_diagnostic'},
symbols = {error = '', warn = '', info = ''},
color_error = colors.red,
color_warn = colors.yellow,
color_info = colors.cyan
}
-- Insert mid section. You can make any number of sections in neovim :)
-- for lualine it's any number greater then 2
ins_left {function() return '%=' end}
ins_left {
'filename',
file_status = true,
path = 1,
condition = conditions.buffer_not_empty,
color = {fg = colors.magenta, gui = 'bold'}
}
-- Add components to right sections
ins_right {
'o:encoding', -- option component same as &encoding in viml
upper = true, -- I'm not sure why it's upper case either ;)
condition = conditions.hide_in_width,
color = {fg = colors.green, gui = 'bold'}
}
ins_right {
'fileformat',
upper = true,
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
color = {fg = colors.green, gui = 'bold'}
}
ins_right {
'branch',
icon = '',
condition = conditions.check_git_workspace,
color = {fg = colors.violet, gui = 'bold'}
}
ins_right {
'diff',
-- Is it me or the symbol for modified us really weird
symbols = {added = '', modified = '', removed = ''},
color_added = colors.green,
color_modified = colors.orange,
color_removed = colors.red,
condition = conditions.hide_in_width
}
ins_right {'location'}
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
require('lualine').setup(config)
end
}

View File

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

View File

@@ -0,0 +1,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",
},
}

View File

@@ -0,0 +1,10 @@
return {
'stevearc/oil.nvim',
dependencies = { "nvim-tree/nvim-web-devicons" },
keys = {
{"-", "<cmd>Oil<cr>", desc="Open parent directory"},
},
config = function()
require("oil").setup()
end
}

View File

@@ -0,0 +1,27 @@
return {
'nvim-telescope/telescope.nvim', branch = '0.1.x',
dependencies = { 'nvim-lua/plenary.nvim' },
opts = {
defaults = {
file_ignore_patterns = { "**/*.pdf" },
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
keys = {
{"<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find files"},
{"<leader>fe", "<cmd>Telescope git_files<cr>", desc = "Find file respecting .gitignore"},
{"<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Grep file in file"},
{"<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Search through buffers"},
{"<leader>ft", "<cmd>Telescope tags<cr>", desc = "Search through tags"},
{"<leader>fm", "<cmd>Telescope marks<cr>", desc = "Search through marks"},
{"<leader>fs", "<cmd>Telescope search_history<cr>", desc = "Search through search"},
},
config = function()
require('telescope').setup(
)
end
}

View File

@@ -0,0 +1,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
}

View File

@@ -0,0 +1,8 @@
return {
"folke/noice.nvim",
event = "VeryLazy",
dependencies = {
"MunifTanjim/nui.nvim",
"rcarriga/nvim-notify",
}
}

View File

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

View File

@@ -0,0 +1,13 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
}

View File

@@ -4,7 +4,6 @@ local exec = vim.api.nvim_exec -- execute Vimscript
local g = vim.g -- global variables local g = vim.g -- global variables
local opt = vim.opt -- global/buffer/windows-scoped options local opt = vim.opt -- global/buffer/windows-scoped options
g.mapleader = ' ' -- Leaderkey
g.showmode = true g.showmode = true
g.hidden = true -- Required to keep multiple buffers open multiple buffers g.hidden = true -- Required to keep multiple buffers open multiple buffers
opt.mouse = 'a' -- enable mouse opt.mouse = 'a' -- enable mouse
@@ -48,8 +47,6 @@ exec([[
augroup end augroup end
]], false) ]], false)
cmd('colorscheme gruvbox')
-- Python 3 -- Python 3
g.python3_host_prog="~/.venv/nvim/bin/python" g.python3_host_prog="~/.venv/nvim/bin/python"

View File

@@ -1,18 +0,0 @@
{
"Date": {
"prefix": "date",
"body": [
"$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE"
]
},
"Lorem Ipsum Sentence": {
"prefix": "loremSent",
"body": "Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.",
"description": "Lorem Ipsum Sentence"
},
"Lorem Ipsum Paragraph": {
"prefix": "loremPara",
"body": "Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est aliquip amet voluptate voluptate dolor minim nulla est proident. Nostrud officia pariatur ut officia. Sit irure elit esse ea nulla sunt ex occaecat reprehenderit commodo officia dolor Lorem duis laboris cupidatat officia voluptate. Culpa proident adipisicing id nulla nisi laboris ex in Lorem sunt duis officia eiusmod. Aliqua reprehenderit commodo ex non excepteur duis sunt velit enim. Voluptate laboris sint cupidatat ullamco ut ea consectetur et est culpa et culpa duis.",
"description": "Lorem Ipsum Paragraph"
}
}

View File

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

View File

@@ -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": ["![${1}](${2}) ${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."
}
}

View File

@@ -1,20 +0,0 @@
{
"image": {
"prefix": "image",
"body": [
".. image:: $1",
"\t:height: 200px",
"\t:alt: $2",
"$0"
],
"description": "Insert image"
},
"etape": {
"prefix": ["etape", "étape"],
"body": [
"Étape ${1:1}: $2",
"$0"
],
"description": "Insert image"
}
}

View File

@@ -1,95 +0,0 @@
{
"\\begin{}…\\end{}": {
"prefix": "begin",
"body": [
"\\\\begin{${1:env}}",
"\t$0",
"\\\\end{${1:env}}"
],
"description": "Begin - End"
},
"Display Math — \\[ … \\]": {
"prefix": "$$",
"body": [
"\\[",
"\t$TM_SELECTED_TEXT$1",
"\\]"
],
"description": "Display Math"
},
"Itemize": {
"prefix": "item",
"body": [
"\\\\begin{itemize}",
"\t\\item $0",
"\\\\end{itemize}"
],
"description": "Itemize"
},
"Enumerate": {
"prefix": "enum",
"body": [
"\\\\begin{enumerate}",
"\t\\item $0",
"\\\\end{enumerate}"
],
"description": "enumerate"
},
"Task": {
"prefix": "task",
"body": [
"\\\\begin{tasks}(${1:2})",
"\t\\item $0",
"\\\\end{task}"
],
"description": "enumerate"
},
"center": {
"prefix": "center",
"body": [
"\\\\begin{center}",
"\t$0",
"\\\\end{center}"
],
"description": "center"
},
"tabular": {
"prefix": "tabular",
"body": [
"\\\\begin{tabular}{$1}",
"\t\\\\hline",
"\t$0",
"\t\\\\hline",
"\\\\end{tabular}"
],
"description": "tabular"
},
"minipage": {
"prefix": "minipage",
"body": [
"\\\\begin{minipage}{${1:0.5}${2:\\\\linewidth}}",
"\t$0",
"\\\\end{minipage}"
],
"description": "minipage"
},
"multicols": {
"prefix": "multicols",
"body": [
"\\\\begin{multicols}{${1:2}}",
"\t$0",
"\\\\end{multicols}"
],
"description": "multicols"
},
"exercise": {
"prefix": "exercise",
"body": [
"\\\\begin{exercise}[subtitle={${1:subtitle}}, step={${2:1}}, origin={${3:Création}}, topics={${4:chapitre}}, tags={${5:tags}}, mode={${5:groupe}}]",
"\t$0",
"\\\\end{exercise}"
],
"description": "exercise xsim"
}
}

View File

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

View File

@@ -1,17 +1,17 @@
profile chanay { profile maison2 {
output eDP-1 enable scale 1 output eDP-1 disable
output "Optoma Corporation Optoma SVGA Q71P7100939" position 0,0 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 { profile maison {
output eDP-1 enable scale 1 position 320,1440 output eDP-1 disable
output "Samsung Electric Company LS27A600U HNMR502540" position 0,0 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 { profile bdp {

View File

@@ -15,4 +15,4 @@ configuration {
sidebar-mode: false; sidebar-mode: false;
auto-select: 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"

View File

@@ -25,7 +25,8 @@ set $laptopScreen eDP-1
### Output configuration ### Output configuration
# #
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) # 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: # Example configuration:
# #
@@ -61,6 +62,11 @@ input type:touchpad {
tap enabled tap enabled
} }
input type:pointer {
accel_profile flat
pointer_accel 0
}
# #
# Example configuration: # Example configuration:
# #
@@ -87,6 +93,7 @@ input type:touchpad {
# Start your launcher # Start your launcher
bindsym $mod+d exec $menu bindsym $mod+d exec $menu
bindsym $mod+p exec rofi-pass 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. # Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod. # Resize them with right mouse button + $mod.
@@ -220,6 +227,12 @@ mode "resize" {
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
#
## Gesture
#
bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
# #
# Audio # Audio
# #
@@ -239,7 +252,8 @@ bindsym XF86MonBrightnessDown exec lightctl down
# Decoration # Decoration
# #
default_border pixel 1
default_border pixel 2
# class border backgr. text indicator child_border # class border backgr. text indicator child_border
client.focused #d65d0e #be5046 #ffffff #be5046 #be5046 client.focused #d65d0e #be5046 #ffffff #be5046 #be5046
@@ -253,5 +267,5 @@ bar {
swaybar_command waybar swaybar_command waybar
} }
# include /etc/sway/config.d/* include /etc/sway/config.d/*
include ~/.config/sway/config.d/* include ~/.config/sway/config.d/*

View File

@@ -1,7 +1,3 @@
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
exec hash dbus-update-activation-environment 2>/dev/null && \
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
exec_always blueman-applet exec_always blueman-applet
exec_always /usr/bin/nm-applet --indicator exec_always /usr/bin/nm-applet --indicator
exec_always nextcloud exec_always nextcloud
@@ -9,10 +5,13 @@ exec_always /usr/libexec/goa-daemon --replace
exec gammastep-indicator exec gammastep-indicator
exec mako exec mako
exec "avizo-service" 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 pkill kanshi; exec_always kanshi
exec_always "systemctl --user import-environment; systemctl --user start sway-session.target" exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
exec swaymsg "workspace $ws1; exec firefox;" exec swaymsg "workspace $ws1; exec firefox;"
exec swaymsg "workspace $ws2; exec thunderbird;" exec swaymsg "workspace $ws2; exec thunderbird;"
exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"

View File

@@ -1,4 +1,4 @@
{ [{
"layer": "top", "layer": "top",
"output": "eDP-1", "output": "eDP-1",
"height": 30, "height": 30,
@@ -53,3 +53,59 @@
"spacing": 10, "spacing": 10,
} }
}, },
{
"layer": "bottom",
"position": "bottom",
"output": "DP-2",
"height": 30,
"modules-left": ["sway/workspaces", "sway/mode"],
"modules-center": ["sway/window"],
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
"sway/window": {
"max-length": 50
},
"sway/workspaces": {
"all-outputs": true
},
"battery": {
"states": {
// "good": 95,
"warning": 20,
"critical": 10
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"clock": {
"format": "{:%a, %d. %b %H:%M}",
"on-click": "gnome-calendar"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"tray": {
"icon-size": 21,
"spacing": 10,
}
}]

View File

@@ -0,0 +1,87 @@
#! /usr/bin/zsh
set -e
PICTURES_DIR="$(xdg-user-dir PICTURES)"
ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
monitor="$(swaymsg -t get_outputs | jq '[.[].focused] | index(true)')"
alias myrofi="rofi -dmenu -matching fuzzy -i -sort -sorting-method fzf -monitor $monitor"
select_window() {
declare -A windows
swaymsg -t get_tree |
jq -r '..|.nodes? + .floating_nodes?|arrays|select(length > 0)|.[]|select((.nodes + .floating_nodes | length) == 0)|select(.visible)|(.app_id + ": " + .name + "\n" + (.rect.x | tostring) + "," + (.rect.y | tostring) + " " + (.rect.width | tostring) + "x" + (.rect.height | tostring))' |
while read window_name; read geometry; do
windows[$window_name]="$geometry"
done
echo ${windows[$(print -l ${(@k)windows} | myrofi)]}
}
main() {
actions="Copy region to clipboard\nSave region to $PICTURES_DIR\nCopy window to clipboard\nSave window to $PICTURES_DIR\nSave region to zk"
if [[ "$(swaymsg -t get_outputs | jq length)" == "1" ]]; then
actions+="\nCopy screen to clipboard\nSave screen to $PICTURES_DIR"
else
actions+="\nCopy current monitor to clipboard\nSave current monitor to $PICTURES_DIR\nCopy all monitors to clipboard\nSave all monitors to $PICTURES_DIR"
fi
selection="$(echo "$actions" | myrofi -p "Take a screenshot")"
filename="$(date +'screenshot_%Y%m%d%H%M%s.png')"
imagepath="${PICTURES_DIR}/$filename"
zkpath="${ZK_NOTEBOOK_DIR}/fig/$filename"
case "$selection" in
"Copy region to clipboard")
grim -g "$(slurp)" - | wl-copy
notify-send "Region copied to clipboard"
;;
"Save region to $PICTURES_DIR")
grim -g "$(slurp)" "$imagepath"
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
;;
"Save region to zk")
grim -g "$(slurp)" "$zkpath"
sh_path="../fig/${zkpath##*/}"
wl-copy $sh_path
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved" "$sh_path is copied")
;;
"Copy window to clipboard")
grim -g "$(select_window)" - | wl-copy
notify-send "Window copied to clipboard"
;;
"Save window to $PICTURES_DIR")
grim -g "$(select_window)" "$imagepath"
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
;;
"Copy current monitor to clipboard")
monitor="$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')"
grim -o $monitor - | wl-copy
notify-send "Monitor $monitor copied to clipboard"
;;
"Save current monitor to $PICTURES_DIR")
grim -o "$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')" "$imagepath"
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
;;
"Copy screen to clipboard"|"Copy all monitors to clipboard")
grim - | wl-copy
notify-send "Screen copied to clipboard"
;;
"Save screen to $PICTURES_DIR"|"Save all monitors to $PICTURES_DIR")
grim "$imagepath"
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
;;
*)
exit 1
;;
esac
if [[ "$reply" == "2" ]]; then
nautilus -s $imagepath
fi
}
main "$@"

View File

@@ -1,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 ## Vim user config
@@ -7,6 +9,13 @@ unbind C-b
set -g prefix C-space set -g prefix C-space
bind C-space send-prefix 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 # C-space C-space will swap to last used window
bind-key C-space last-window bind-key C-space last-window
@@ -32,169 +41,32 @@ set -g history-limit 10000
bind Escape copy-mode bind Escape copy-mode
unbind p unbind p
bind p paste-buffer bind p paste-buffer
#bind -t vi-copy 'v' begin-selection bind-key -T copy-mode-vi v send-keys -X begin-selection
#bind -t vi-copy 'y' copy-selection bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
#bind -t vi-copy 'Space' halfpage-down bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
#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 'Space' send -X halfpage-down bind-key -T copy-mode-vi 'Space' send -X halfpage-down
bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up
# Remap previous window # Remap previous window
bind b 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 # easy-to-remember split pane commands
bind | split-window -h bind | split-window -h
bind - split-window -v bind - split-window -v
unbind '"' unbind '"'
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 ## Plugins
# Supports `github_username/repo` or full git repo URLs # Supports `github_username/repo` or full git repo URLs
set -g @tpm_plugins 'tmux-plugins/tpm' set -g @tpm_plugins 'tmux-plugins/tpm'
set -g @tpm_plugins 'tmux-plugins/tmux-sensible' set -g @tpm_plugins 'tmux-plugins/tmux-sensible'
# tmux-plugins/tmux-resurrect \
# tmux-plugins/tmux-continuum \
## tmux-continuum: automatic restore set -g @plugin 'christoomey/vim-tmux-navigator'
#set -g @continuum-restore 'on' 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. # Keep this line at the very bottom of tmux.conf.
run-shell '~/.tmux/plugins/tpm/tpm' run-shell '~/.tmux/plugins/tpm/tpm'

View File

@@ -234,6 +234,8 @@ fileviewer *.[1-8] man ./%c | col -b
" Images " Images
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
\ {View in feh}
\ feh %f,
\ {View in sxiv} \ {View in sxiv}
\ sxiv %f, \ sxiv %f,
\ {View in gpicview} \ {View in gpicview}
@@ -332,7 +334,7 @@ filetype *.7z
fileviewer *.7z 7z l %c fileviewer *.7z 7z l %c
" Office files " Office files
filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f & filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx,*.ods,*.csv libreoffice %f &
fileviewer *.doc catdoc %c fileviewer *.doc catdoc %c
fileviewer *.docx docx2txt.pl %f - fileviewer *.docx docx2txt.pl %f -

View File

@@ -1,4 +1,5 @@
fpath+=$ZDOTDIR/pure fpath+=$ZDOTDIR/pure
fpath+=$ZDOTDIR/zfunc
autoload -U compinit autoload -U compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # menu select=2 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 cp='cp -iv'
alias mv='mv -iv' alias mv='mv -iv'
alias rm='rm -i' 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 # Autosuggestions
# git clone https://github.com/zsh-users/zsh-autosuggestions ~/.config/zsh/ # git clone https://github.com/zsh-users/zsh-autosuggestions ~/.config/zsh/
source ~/.config/zsh/zsh-autosuggestions/zsh-autosuggestions.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 source ~/.config/zsh/auto-ls/auto-ls.zsh
# Pyenv # Pyenv
eval "$(pyenv init --path)" # eval "$(pyenv init --path)"
source ~/.config/zsh/completion.zsh source ~/.config/zsh/completion.zsh
source ~/.config/zsh/key-bindings.zsh source ~/.config/zsh/key-bindings.zsh
# password-store
_fzf_complete_pass() { _fzf_complete_pass() {
ARGS="$@" ARGS="$@"
_fzf_complete '' "$@" < <( _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'