Compare commits
185 Commits
Author | SHA1 | Date | |
---|---|---|---|
d812c32e37 | |||
9cf5d8d5e0 | |||
2131bb57c4 | |||
5210b2a15a | |||
158c7a60a3 | |||
39a18835a1 | |||
fa519bd74d | |||
f98a52e613 | |||
44fb8a49fa | |||
52b956c423 | |||
e43a76a132 | |||
3029561478 | |||
f85841cafe | |||
140872d0e6 | |||
5b9d495de9 | |||
42b373b467 | |||
9c5c85fe29 | |||
6c6bbb47f3 | |||
375d135e83 | |||
5e87cb1f94 | |||
984fd8cfbd | |||
624c9ddd24 | |||
e4c915c224 | |||
06e9c790a9 | |||
a49ce29958 | |||
ff7880d04d | |||
b745e15242 | |||
c6a5e6ba07 | |||
af26c6978f | |||
a6d2ce2f22 | |||
0a9e6f9dda | |||
b069c2060b | |||
2d40f69d6f | |||
30ba1656b4 | |||
c96fdf218f | |||
6ec22356e7 | |||
f3e3ee0438 | |||
58cea70665 | |||
ba48178f00 | |||
06b30a5c3e | |||
c6d6cdc0aa | |||
383c27850a | |||
21e72dfb45 | |||
1d5e596ce0 | |||
bcc2772268 | |||
757c0d3585 | |||
6780915f38 | |||
c04543aba9 | |||
754ebcf1ae | |||
a4de744aa7 | |||
4f11c1a9b9 | |||
74e33d46b2 | |||
600b328691 | |||
d06a4e94cf | |||
c44cd17970 | |||
b0570700bb | |||
30d3ddfc90 | |||
3e0def88dd | |||
d6c6d4f5d1 | |||
787bca3373 | |||
e57be0cfd2 | |||
99a78b8e7d | |||
86ee7c8bce | |||
ad02746fc7 | |||
7c75eebe62 | |||
bd286dfa23 | |||
5617265cc6 | |||
418f122485 | |||
0302e76e1f | |||
c21c9096c9 | |||
6b23fdf858 | |||
1fe23703f4 | |||
20b9e02adb | |||
c7333aa79a | |||
7cb967447a | |||
e54b358410 | |||
1fbd08f657 | |||
f796d0775e | |||
ffb20ec8a4 | |||
1734908df0 | |||
01d09bc9c0 | |||
4324070cac | |||
ebdb4420b6 | |||
171c63a070 | |||
46a53b7c38 | |||
a3d16cbff2 | |||
8aefb98d32 | |||
fb43e9e0ea | |||
3617161e87 | |||
8850ed0668 | |||
62c81143bf | |||
e60dcb4cda | |||
9d9a5c9a54 | |||
99a6d39916 | |||
57ec4f7e2d | |||
d853923953 | |||
bd62855dc9 | |||
0117c53cb7 | |||
62ba0e08fb | |||
2633d677c4 | |||
b00ba05e2b | |||
e95e3119fc | |||
9e616bc68b | |||
6188442dcb | |||
143b791d6b | |||
242a7a02e6 | |||
21060f0ef9 | |||
7e85124b10 | |||
171ed7447e | |||
197eafd34d | |||
07de246f77 | |||
e04c89b57a | |||
fe0c7e7630 | |||
4e6384ac3e | |||
ecf6b9fb6a | |||
b2e957ba9c | |||
150341e4c2 | |||
6f637e746e | |||
d6214ac324 | |||
d8519974f5 | |||
f7056eca23 | |||
f0af5d5b3f | |||
f6a7fe0563 | |||
ea12f5ba70 | |||
29a815e43c | |||
9da1a5ed65 | |||
f6cebbacb3 | |||
48dc36f660 | |||
6a1540bcb0 | |||
1bae59ca93 | |||
c89d6b8c39 | |||
3c26a04bb6 | |||
4f971c9df9 | |||
e71eae2345 | |||
0f0e24d16c | |||
ba6bb2bfba | |||
769acc8605 | |||
16194e4431 | |||
fed96f0ad1 | |||
a8f7cbdaea | |||
fe3ee3aefe | |||
b143fb61a9 | |||
216417e85e | |||
d1cb75acff | |||
3b3a46ddfb | |||
b89c49cb34 | |||
9d85245129 | |||
f0a1460022 | |||
cf14508462 | |||
44336cfb5b | |||
9568a1a3c2 | |||
7090ff15bf | |||
b151282f15 | |||
a726bf12ac | |||
025e863c75 | |||
783508bf25 | |||
829bf55d82 | |||
f133c72653 | |||
f24a4e8a47 | |||
f26fd07e96 | |||
99fa23f6ad | |||
a17b6e79b1 | |||
72b109c14a | |||
b1cf2bbab6 | |||
4f07c62070 | |||
99517cf4e4 | |||
c74ed2a1e3 | |||
4491310bba | |||
b53e69beb8 | |||
21cbaeb542 | |||
c1f449ed3d | |||
df067d434c | |||
a42946553a | |||
4bb4356727 | |||
7e6bfc2f4d | |||
243ea5a116 | |||
4ce449368e | |||
c65fffdd9c | |||
4e4b45bb24 | |||
e95bbfd0ad | |||
ea98f4be74 | |||
c897b57295 | |||
e9cf99cf8e | |||
da6ff29448 | |||
9dd08b6d18 |
17
.gitignore
vendored
17
.gitignore
vendored
@ -5,3 +5,20 @@ vifm/.config/vifm/vifm-help.txt
|
|||||||
vifm/.config/vifm/vifminfo.json
|
vifm/.config/vifm/vifminfo.json
|
||||||
|
|
||||||
nvim/.config/nvim/autoload
|
nvim/.config/nvim/autoload
|
||||||
|
nvim/.config/nvim/plugin
|
||||||
|
|
||||||
|
vim/.vim/autoload/
|
||||||
|
vim/.vim/plugged/
|
||||||
|
|
||||||
|
moc/.moc/last_directory
|
||||||
|
moc/.moc/pid
|
||||||
|
moc/.moc/playlist.m3u
|
||||||
|
|
||||||
|
newsboat/.newsboat/cache.db
|
||||||
|
newsboat/.newsboat/cache.db.lock
|
||||||
|
newsboat/.newsboat/history.cmdline
|
||||||
|
|
||||||
|
mpd/.config/mpd/database
|
||||||
|
mpd/.config/mpd/state
|
||||||
|
|
||||||
|
neomutt/.config/vdirsyncer/status/
|
||||||
|
@ -1 +1,7 @@
|
|||||||
# My dotfiles
|
# My dotfiles
|
||||||
|
|
||||||
|
## Sway
|
||||||
|
|
||||||
|
Paquets à installer
|
||||||
|
|
||||||
|
sway waybar rofi rofi-pass nm-applet blueman brightnessctl
|
||||||
|
46
X/.Xdefaults
Normal file
46
X/.Xdefaults
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
URxvt*font: xft:DroidSansMono Nerd Font Mono:pixelsize=14,xft:UbuntuMono Nerd Font:pixelsize=12
|
||||||
|
URxvt*letterSpace: -1
|
||||||
|
URxvt*scrollBar: false
|
||||||
|
|
||||||
|
! Extensions
|
||||||
|
URxvt.perl-ext-common: default,matcher,fullscreen,resize-font
|
||||||
|
! fullscreen with F11
|
||||||
|
URxvt.keysym.F11: perl:fullscreen:switch
|
||||||
|
|
||||||
|
! `font-size` plugin
|
||||||
|
URxvt.resize-font.smaller: C-Down
|
||||||
|
URxvt.resize-font.bigger: C-Up
|
||||||
|
|
||||||
|
! Open link with firefox
|
||||||
|
! URxvt.url-launcher: /usr/bin/xdg-open
|
||||||
|
URxvt.url-launcher: /usr/bin/firefox
|
||||||
|
URxvt.matcher.button: 1
|
||||||
|
|
||||||
|
! hard contrast: *background: #1d2021
|
||||||
|
*background: #282828
|
||||||
|
! soft contrast: *background: #32302f
|
||||||
|
*foreground: #ebdbb2
|
||||||
|
! Black + DarkGrey
|
||||||
|
*color0: #282828
|
||||||
|
*color8: #928374
|
||||||
|
! DarkRed + Red
|
||||||
|
*color1: #cc241d
|
||||||
|
*color9: #fb4934
|
||||||
|
! DarkGreen + Green
|
||||||
|
*color2: #98971a
|
||||||
|
*color10: #b8bb26
|
||||||
|
! DarkYellow + Yellow
|
||||||
|
*color3: #d79921
|
||||||
|
*color11: #fabd2f
|
||||||
|
! DarkBlue + Blue
|
||||||
|
*color4: #458588
|
||||||
|
*color12: #83a598
|
||||||
|
! DarkMagenta + Magenta
|
||||||
|
*color5: #b16286
|
||||||
|
*color13: #d3869b
|
||||||
|
! DarkCyan + Cyan
|
||||||
|
*color6: #689d6a
|
||||||
|
*color14: #8ec07c
|
||||||
|
! LightGrey + White
|
||||||
|
*color7: #a89984
|
||||||
|
*color15: #ebdbb2
|
@ -45,7 +45,7 @@ font:
|
|||||||
style: Bold Italic
|
style: Bold Italic
|
||||||
|
|
||||||
# Point size
|
# Point size
|
||||||
size: 11.0
|
size: 12.0
|
||||||
|
|
||||||
offset:
|
offset:
|
||||||
x: 0
|
x: 0
|
||||||
@ -82,6 +82,22 @@ selection:
|
|||||||
|
|
||||||
live_config_reload: true
|
live_config_reload: true
|
||||||
|
|
||||||
|
cursor:
|
||||||
|
# Cursor style
|
||||||
|
#
|
||||||
|
# Values for 'style':
|
||||||
|
# - ▇ Block
|
||||||
|
# - _ Underline
|
||||||
|
# - | Beam
|
||||||
|
style: Block
|
||||||
|
|
||||||
|
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||||
|
# window is not focused.
|
||||||
|
unfocused_hollow: true
|
||||||
|
|
||||||
|
mouse_bindings:
|
||||||
|
- { mouse: Middle, action: PasteSelection }
|
||||||
|
|
||||||
key_bindings:
|
key_bindings:
|
||||||
- { key: V, mods: Control|Shift, action: Paste }
|
- { key: V, mods: Control|Shift, action: Paste }
|
||||||
- { key: C, mods: Control|Shift, action: Copy }
|
- { key: C, mods: Control|Shift, action: Copy }
|
||||||
@ -90,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 }
|
|
||||||
|
5
git/.gitconfig
Normal file
5
git/.gitconfig
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[user]
|
||||||
|
name = Bertrand Benjamin
|
||||||
|
email = benjamin.bertrand@opytex.org
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
@ -124,7 +124,7 @@ MusicDir = "/media/documents/musique/"
|
|||||||
# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for
|
# 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"
|
||||||
|
418
mpd/.config/mpd/mdp.conf
Normal file
418
mpd/.config/mpd/mdp.conf
Normal file
@ -0,0 +1,418 @@
|
|||||||
|
# An example configuration file for MPD.
|
||||||
|
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
|
||||||
|
|
||||||
|
|
||||||
|
# Files and directories #######################################################
|
||||||
|
#
|
||||||
|
# This setting controls the top directory which MPD will search to discover the
|
||||||
|
# available audio files and add them to the daemon's online database. This
|
||||||
|
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||||
|
# be disabled and audio files will only be accepted over ipc socket (using
|
||||||
|
# file:// protocol) or streaming files over an accepted protocol.
|
||||||
|
#
|
||||||
|
music_directory "~/Musique"
|
||||||
|
#
|
||||||
|
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||||
|
# directory is storage for playlists created by MPD. The server will use
|
||||||
|
# playlist files not created by the server but only if they are in the MPD
|
||||||
|
# format. This setting defaults to playlist saving being disabled.
|
||||||
|
#
|
||||||
|
playlist_directory "~/.config/mpd/playlists"
|
||||||
|
#
|
||||||
|
# This setting sets the location of the MPD database. This file is used to
|
||||||
|
# load the database at server start up and store the database while the
|
||||||
|
# server is not up. This setting defaults to disabled which will allow
|
||||||
|
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||||
|
# files over an accepted protocol.
|
||||||
|
#
|
||||||
|
db_file "~/.config/mpd/database"
|
||||||
|
|
||||||
|
# These settings are the locations for the daemon log files for the daemon.
|
||||||
|
#
|
||||||
|
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||||
|
# setting defaults to logging to syslog.
|
||||||
|
#
|
||||||
|
# If you use systemd, do not configure a log_file. With systemd, MPD
|
||||||
|
# defaults to the systemd journal, which is fine.
|
||||||
|
#
|
||||||
|
log_file "syslog"
|
||||||
|
|
||||||
|
# This setting sets the location of the file which stores the process ID
|
||||||
|
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||||
|
# default and the pid file will not be stored.
|
||||||
|
#
|
||||||
|
# If you use systemd, do not configure a pid_file.
|
||||||
|
#
|
||||||
|
#pid_file "~/.mpd/pid"
|
||||||
|
|
||||||
|
# This setting sets the location of the file which contains information about
|
||||||
|
# most variables to get MPD back into the same general shape it was in before
|
||||||
|
# it was brought down. This setting is disabled by default and the server
|
||||||
|
# state will be reset on server start up.
|
||||||
|
#
|
||||||
|
state_file "~/.config/mpd/state"
|
||||||
|
#
|
||||||
|
# The location of the sticker database. This is a database which
|
||||||
|
# manages dynamic information attached to songs.
|
||||||
|
#
|
||||||
|
#sticker_file "~/.mpd/sticker.sql"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# General music daemon options ################################################
|
||||||
|
#
|
||||||
|
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||||
|
# root and you may use this setting to make MPD change its user ID after
|
||||||
|
# initialization. This setting is disabled by default and MPD is run as the
|
||||||
|
# current user.
|
||||||
|
#
|
||||||
|
#user "nobody"
|
||||||
|
#
|
||||||
|
# This setting specifies the group that MPD will run as. If not specified
|
||||||
|
# primary group of user specified with "user" setting will be used (if set).
|
||||||
|
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||||
|
# have permission to use sound card.
|
||||||
|
#
|
||||||
|
#group "nogroup"
|
||||||
|
#
|
||||||
|
# This setting sets the address for the daemon to listen on. Careful attention
|
||||||
|
# should be paid if this is assigned to anything other than the default, any.
|
||||||
|
# This setting can deny access to control of the daemon. Not effective if
|
||||||
|
# systemd socket activation is in use.
|
||||||
|
#
|
||||||
|
# For network
|
||||||
|
#bind_to_address "any"
|
||||||
|
#
|
||||||
|
# And for Unix Socket
|
||||||
|
#bind_to_address "~/.mpd/socket"
|
||||||
|
#
|
||||||
|
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||||
|
# to.
|
||||||
|
#
|
||||||
|
#port "6600"
|
||||||
|
#
|
||||||
|
# Suppress all messages below the given threshold. Use "verbose" for
|
||||||
|
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
|
||||||
|
# "warning" and "error".
|
||||||
|
#
|
||||||
|
#log_level "notice"
|
||||||
|
#
|
||||||
|
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||||
|
# of starting playback after startup.
|
||||||
|
#
|
||||||
|
#restore_paused "no"
|
||||||
|
#
|
||||||
|
# This setting enables MPD to create playlists in a format usable by other
|
||||||
|
# music players.
|
||||||
|
#
|
||||||
|
#save_absolute_paths_in_playlists "no"
|
||||||
|
#
|
||||||
|
# This setting defines a list of tag types that will be extracted during the
|
||||||
|
# audio file discovery process. The complete list of possible values can be
|
||||||
|
# found in the user manual.
|
||||||
|
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||||
|
#
|
||||||
|
# This example just enables the "comment" tag without disabling all
|
||||||
|
# the other supported tags:
|
||||||
|
#metadata_to_use "+comment"
|
||||||
|
#
|
||||||
|
# This setting enables automatic update of MPD's database when files in
|
||||||
|
# music_directory are changed.
|
||||||
|
#
|
||||||
|
auto_update "yes"
|
||||||
|
#
|
||||||
|
# Limit the depth of the directories being watched, 0 means only watch
|
||||||
|
# the music directory itself. There is no limit by default.
|
||||||
|
#
|
||||||
|
#auto_update_depth "3"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Symbolic link behavior ######################################################
|
||||||
|
#
|
||||||
|
# If this setting is set to "yes", MPD will discover audio files by following
|
||||||
|
# symbolic links outside of the configured music_directory.
|
||||||
|
#
|
||||||
|
#follow_outside_symlinks "yes"
|
||||||
|
#
|
||||||
|
# If this setting is set to "yes", MPD will discover audio files by following
|
||||||
|
# symbolic links inside of the configured music_directory.
|
||||||
|
#
|
||||||
|
#follow_inside_symlinks "yes"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Zeroconf / Avahi Service Discovery ##########################################
|
||||||
|
#
|
||||||
|
# If this setting is set to "yes", service information will be published with
|
||||||
|
# Zeroconf / Avahi.
|
||||||
|
#
|
||||||
|
#zeroconf_enabled "yes"
|
||||||
|
#
|
||||||
|
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||||
|
# this MPD server on the network. %h will be replaced with the hostname.
|
||||||
|
#
|
||||||
|
#zeroconf_name "Music Player @ %h"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Permissions #################################################################
|
||||||
|
#
|
||||||
|
# If this setting is set, MPD will require password authorization. The password
|
||||||
|
# setting can be specified multiple times for different password profiles.
|
||||||
|
#
|
||||||
|
#password "password@read,add,control,admin"
|
||||||
|
#
|
||||||
|
# This setting specifies the permissions a user has who has not yet logged in.
|
||||||
|
#
|
||||||
|
#default_permissions "read,add,control,admin"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Database #######################################################################
|
||||||
|
#
|
||||||
|
# An example of a database section instead of the old 'db_file' setting.
|
||||||
|
# It enables mounting other storages into the music directory.
|
||||||
|
#
|
||||||
|
#database {
|
||||||
|
# plugin "simple"
|
||||||
|
# path "~/.local/share/mpd/db
|
||||||
|
# cache_directory "~/.local/share/mpd/cache"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of database config for a satellite setup
|
||||||
|
#
|
||||||
|
#music_directory "nfs://fileserver.local/srv/mp3"
|
||||||
|
#database {
|
||||||
|
# plugin "proxy"
|
||||||
|
# host "other.mpd.host"
|
||||||
|
# port "6600"
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Input #######################################################################
|
||||||
|
#
|
||||||
|
input {
|
||||||
|
plugin "curl"
|
||||||
|
# proxy "proxy.isp.com:8080"
|
||||||
|
# proxy_user "user"
|
||||||
|
# proxy_password "password"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Audio Output ################################################################
|
||||||
|
#
|
||||||
|
# MPD supports various audio output types, as well as playing through multiple
|
||||||
|
# audio outputs at the same time, through multiple audio_output settings
|
||||||
|
# blocks. Setting this block is optional, though the server will only attempt
|
||||||
|
# autodetection for one sound card.
|
||||||
|
#
|
||||||
|
# An example of an ALSA output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "alsa"
|
||||||
|
# name "My ALSA Device"
|
||||||
|
## device "hw:0,0" # optional
|
||||||
|
## mixer_type "hardware" # optional
|
||||||
|
## mixer_device "default" # optional
|
||||||
|
## mixer_control "PCM" # optional
|
||||||
|
## mixer_index "0" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an OSS output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "oss"
|
||||||
|
# name "My OSS Device"
|
||||||
|
## device "/dev/dsp" # optional
|
||||||
|
## mixer_type "hardware" # optional
|
||||||
|
## mixer_device "/dev/mixer" # optional
|
||||||
|
## mixer_control "PCM" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a shout output (for streaming to Icecast):
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "shout"
|
||||||
|
# encoder "vorbis" # optional
|
||||||
|
# name "My Shout Stream"
|
||||||
|
# host "localhost"
|
||||||
|
# port "8000"
|
||||||
|
# mount "/mpd.ogg"
|
||||||
|
# password "hackme"
|
||||||
|
# quality "5.0"
|
||||||
|
# bitrate "128"
|
||||||
|
# format "44100:16:1"
|
||||||
|
## protocol "icecast2" # optional
|
||||||
|
## user "source" # optional
|
||||||
|
## description "My Stream Description" # optional
|
||||||
|
## url "http://example.com" # optional
|
||||||
|
## genre "jazz" # optional
|
||||||
|
## public "no" # optional
|
||||||
|
## timeout "2" # optional
|
||||||
|
## mixer_type "software" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a recorder output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "recorder"
|
||||||
|
# name "My recorder"
|
||||||
|
# encoder "vorbis" # optional, vorbis or lame
|
||||||
|
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||||
|
## quality "5.0" # do not define if bitrate is defined
|
||||||
|
# bitrate "128" # do not define if quality is defined
|
||||||
|
# format "44100:16:1"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a httpd output (built-in HTTP streaming server):
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "httpd"
|
||||||
|
# name "My HTTP Stream"
|
||||||
|
# encoder "vorbis" # optional, vorbis or lame
|
||||||
|
# port "8000"
|
||||||
|
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||||
|
## quality "5.0" # do not define if bitrate is defined
|
||||||
|
# bitrate "128" # do not define if quality is defined
|
||||||
|
# format "44100:16:1"
|
||||||
|
# max_clients "0" # optional 0=no limit
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "pulse"
|
||||||
|
# name "My Pulse Output"
|
||||||
|
## server "remote_server" # optional
|
||||||
|
## sink "remote_server_sink" # optional
|
||||||
|
## media_role "media_role" #optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a winmm output (Windows multimedia API).
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "winmm"
|
||||||
|
# name "My WinMM output"
|
||||||
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||||
|
# or
|
||||||
|
## device "0" # optional
|
||||||
|
## mixer_type "hardware" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of a wasapi output (Windows multimedia API).
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "wasapi"
|
||||||
|
# name "My WASAPI output"
|
||||||
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||||
|
# or
|
||||||
|
## device "0" # optional
|
||||||
|
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
|
||||||
|
## exclusive "no" # optional
|
||||||
|
## Enumerate all devices in log.
|
||||||
|
## enumerate "no" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an openal output.
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "openal"
|
||||||
|
# name "My OpenAL output"
|
||||||
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an sndio output.
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "sndio"
|
||||||
|
# name "sndio output"
|
||||||
|
# mixer_type "hardware"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# An example of an OS X output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "osx"
|
||||||
|
# name "My OS X Device"
|
||||||
|
## device "Built-in Output" # optional
|
||||||
|
## channel_map "-1,-1,0,1" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
## Example "pipe" output:
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "pipe"
|
||||||
|
# name "my pipe"
|
||||||
|
# command "aplay -f cd 2>/dev/null"
|
||||||
|
## Or if you're want to use AudioCompress
|
||||||
|
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||||
|
## Or to send raw PCM stream through PCM:
|
||||||
|
# command "nc example.org 8765"
|
||||||
|
# format "44100:16:2"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
## An example of a null output (for no audio output):
|
||||||
|
#
|
||||||
|
#audio_output {
|
||||||
|
# type "null"
|
||||||
|
# name "My Null Output"
|
||||||
|
# mixer_type "none" # optional
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Normalization automatic volume adjustments ##################################
|
||||||
|
#
|
||||||
|
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||||
|
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||||
|
# chooses between "track" and "album" depending on the current state of
|
||||||
|
# random playback. If random playback is enabled then "track" mode is used.
|
||||||
|
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
|
||||||
|
# more details about ReplayGain.
|
||||||
|
# This setting is off by default.
|
||||||
|
#
|
||||||
|
#replaygain "album"
|
||||||
|
#
|
||||||
|
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||||
|
# default this setting is disabled.
|
||||||
|
#
|
||||||
|
#replaygain_preamp "0"
|
||||||
|
#
|
||||||
|
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
||||||
|
# By default this setting is disabled.
|
||||||
|
#
|
||||||
|
#replaygain_missing_preamp "0"
|
||||||
|
#
|
||||||
|
# This setting enables or disables ReplayGain limiting.
|
||||||
|
# MPD calculates actual amplification based on the ReplayGain tags
|
||||||
|
# and replaygain_preamp / replaygain_missing_preamp setting.
|
||||||
|
# If replaygain_limit is enabled MPD will never amplify audio signal
|
||||||
|
# above its original level. If replaygain_limit is disabled such amplification
|
||||||
|
# might occur. By default this setting is enabled.
|
||||||
|
#
|
||||||
|
#replaygain_limit "yes"
|
||||||
|
#
|
||||||
|
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||||
|
# result in the volume of all playing audio to be adjusted so the output has
|
||||||
|
# equal "loudness". This setting is disabled by default.
|
||||||
|
#
|
||||||
|
#volume_normalization "no"
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Character Encoding ##########################################################
|
||||||
|
#
|
||||||
|
# If file or directory names do not display correctly for your locale then you
|
||||||
|
# may need to modify this setting.
|
||||||
|
#
|
||||||
|
#filesystem_charset "UTF-8"
|
||||||
|
#
|
||||||
|
###############################################################################
|
10
mpd/.config/ncmpcpp/bindings
Normal file
10
mpd/.config/ncmpcpp/bindings
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
def_key "j"
|
||||||
|
scroll_down
|
||||||
|
def_key "k"
|
||||||
|
scroll_up
|
||||||
|
|
||||||
|
def_key "g"
|
||||||
|
move_home
|
||||||
|
|
||||||
|
def_key "G"
|
||||||
|
move_end
|
1
mpd/.config/ncmpcpp/config
Normal file
1
mpd/.config/ncmpcpp/config
Normal file
@ -0,0 +1 @@
|
|||||||
|
execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)"
|
51
neomutt/.config/khard/khard.conf
Normal file
51
neomutt/.config/khard/khard.conf
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# example configuration file for khard version > 0.14.0
|
||||||
|
# place it under ~/.config/khard/khard.conf
|
||||||
|
# This file is parsed by the configobj library. The syntax is described at
|
||||||
|
# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
|
||||||
|
|
||||||
|
[addressbooks]
|
||||||
|
[[contacts]]
|
||||||
|
path = ~/.contacts/contacts/
|
||||||
|
|
||||||
|
[general]
|
||||||
|
debug = no
|
||||||
|
default_action = list
|
||||||
|
# These are either strings or comma seperated lists
|
||||||
|
editor = nvim, -i, NONE
|
||||||
|
merge_editor = vimdiff
|
||||||
|
|
||||||
|
[contact table]
|
||||||
|
# display names by first or last name: first_name / last_name / formatted_name
|
||||||
|
display = first_name
|
||||||
|
# group by address book: yes / no
|
||||||
|
group_by_addressbook = no
|
||||||
|
# reverse table ordering: yes / no
|
||||||
|
reverse = no
|
||||||
|
# append nicknames to name column: yes / no
|
||||||
|
show_nicknames = no
|
||||||
|
# show uid table column: yes / no
|
||||||
|
show_uids = yes
|
||||||
|
# sort by first or last name: first_name / last_name / formatted_name
|
||||||
|
sort = last_name
|
||||||
|
# localize dates: yes / no
|
||||||
|
localize_dates = yes
|
||||||
|
# set a comma separated list of preferred phone number types in descending priority
|
||||||
|
# or nothing for non-filtered alphabetical order
|
||||||
|
preferred_phone_number_type = pref, cell, home
|
||||||
|
# set a comma separated list of preferred email address types in descending priority
|
||||||
|
# or nothing for non-filtered alphabetical order
|
||||||
|
preferred_email_address_type = pref, work, home
|
||||||
|
|
||||||
|
[vcard]
|
||||||
|
# extend contacts with your own private objects
|
||||||
|
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||||
|
# every object label may only contain letters, digits and the - character
|
||||||
|
# example:
|
||||||
|
# private_objects = Jabber, Skype, Twitter
|
||||||
|
# default: , (the empty list)
|
||||||
|
# preferred vcard version: 3.0 / 4.0
|
||||||
|
preferred_version = 4.0
|
||||||
|
# Look into source vcf files to speed up search queries: yes / no
|
||||||
|
search_in_source_files = no
|
||||||
|
# skip unparsable vcard files: yes / no
|
||||||
|
skip_unparsable = no
|
50
neomutt/.config/msmtp/config
Normal file
50
neomutt/.config/msmtp/config
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Example for a user configuration file ~/.msmtprc
|
||||||
|
|
||||||
|
# With modern mail services that publish autoconfiguration information,
|
||||||
|
# you can simply run 'msmtp --configure yourmail@example.com' to get
|
||||||
|
# a basic working configuration.
|
||||||
|
|
||||||
|
# This example focusses on TLS and authentication. Features not used here
|
||||||
|
# include logging, timeouts, SOCKS proxies, TLS parameters, Delivery Status
|
||||||
|
# Notification (DSN) settings, and more.
|
||||||
|
|
||||||
|
# Set default values: use the mail submission port 587, and always use TLS.
|
||||||
|
# On this port, TLS is activated via STARTTLS.
|
||||||
|
defaults
|
||||||
|
port 587
|
||||||
|
tls on
|
||||||
|
tls_starttls on
|
||||||
|
auth on
|
||||||
|
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||||
|
logfile ~/.msmtp.log
|
||||||
|
|
||||||
|
account bb_opytex
|
||||||
|
user Takanuva
|
||||||
|
passwordeval "pass mail/mailfence/Takanuva | head -n1"
|
||||||
|
auth on
|
||||||
|
host smtp.mailfence.com
|
||||||
|
port 465
|
||||||
|
# Envelope-from address
|
||||||
|
from benjamin.bertrand@opytex.org
|
||||||
|
tls_starttls off
|
||||||
|
|
||||||
|
account jb_opytex
|
||||||
|
user margot_benjamin
|
||||||
|
passwordeval "pass mail/jost_bertrand@opytex.org/margot_benjamin | head -n1"
|
||||||
|
auth on
|
||||||
|
host smtp.mailfence.com
|
||||||
|
port 465
|
||||||
|
# Envelope-from address
|
||||||
|
from jost_bertrand@opytex.org
|
||||||
|
tls_starttls off
|
||||||
|
|
||||||
|
account ac-lyon
|
||||||
|
user bbertrand
|
||||||
|
passwordeval "pass Prof/pronote/bbertrand | head -n1"
|
||||||
|
auth on
|
||||||
|
host smtps.ac-lyon.fr
|
||||||
|
# Envelope-from address
|
||||||
|
from benjamin.bertrand@ac-lyon.fr
|
||||||
|
|
||||||
|
# Set a default account
|
||||||
|
account default : bb_opytex
|
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
43
neomutt/.config/neomutt/accounts/ac-lyon
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# vim: filetype=muttrc
|
||||||
|
unmailboxes *
|
||||||
|
|
||||||
|
set from = "benjamin.bertrand@ac-lyon.fr"
|
||||||
|
|
||||||
|
set sendmail = "/usr/bin/msmtp -a ac-lyon"
|
||||||
|
set folder = "~/.mail/ac_lyon"
|
||||||
|
|
||||||
|
set spoolfile = "+INBOX"
|
||||||
|
set postponed = "+Drafts"
|
||||||
|
set record = "+Sent"
|
||||||
|
set trash = "+Trash"
|
||||||
|
|
||||||
|
set mbox_type = Maildir
|
||||||
|
set ssl_starttls = yes
|
||||||
|
set ssl_force_tls = yes
|
||||||
|
|
||||||
|
color status blue default
|
||||||
|
|
||||||
|
#mailboxes =INBOX =Sent =Drafts =Junk
|
||||||
|
|
||||||
|
|
||||||
|
# set my_pass = "`pass Prof/pronote/bbertrand`"
|
||||||
|
# set folder = "imaps://mail.ac-lyon.fr"
|
||||||
|
# set imap_user = bbertrand
|
||||||
|
# set imap_pass = $my_pass
|
||||||
|
#
|
||||||
|
# set ssl_force_tls = yes
|
||||||
|
# set smtp_url = smtps://$imap_user@smtps.ac-lyon.fr:587
|
||||||
|
# set smtp_pass = $my_pass
|
||||||
|
# set ssl_starttls = yes
|
||||||
|
# set smtp_authenticators = "login"
|
||||||
|
#
|
||||||
|
# set spoolfile = +INBOX
|
||||||
|
# mailboxes = +INBOX
|
||||||
|
# set imap_check_subscribed
|
||||||
|
#
|
||||||
|
# set record = "+Sent"
|
||||||
|
# set trash = "+Trash"
|
||||||
|
# set postponed = "+Drafts"
|
||||||
|
#
|
||||||
|
# ## Hook -- IMPORTANT!
|
||||||
|
# account-hook $folder "set imap_pass=`pass Prof/pronote/bbertrand`"
|
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
43
neomutt/.config/neomutt/accounts/bb_opytex
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# vim: filetype=muttrc
|
||||||
|
unmailboxes *
|
||||||
|
|
||||||
|
set from = "benjamin.bertrand@opytex.org"
|
||||||
|
|
||||||
|
set sendmail = "/usr/bin/msmtp -a bb_opytex"
|
||||||
|
set folder = "~/.mail/bb_opytex"
|
||||||
|
|
||||||
|
set spoolfile = "+INBOX"
|
||||||
|
set postponed = "+Drafts"
|
||||||
|
set record = "+Sent"
|
||||||
|
set trash = "+Junk"
|
||||||
|
|
||||||
|
|
||||||
|
set mbox_type = Maildir
|
||||||
|
set ssl_starttls = yes
|
||||||
|
set ssl_force_tls = yes
|
||||||
|
|
||||||
|
color status cyan default
|
||||||
|
|
||||||
|
# mailboxes =INBOX =Sent =Drafts =Junk
|
||||||
|
|
||||||
|
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
||||||
|
# set folder = "imaps://imap.mailfence.com/"
|
||||||
|
# set imap_user = Takanuva
|
||||||
|
# set imap_pass = $my_pass
|
||||||
|
#
|
||||||
|
# set ssl_force_tls = yes
|
||||||
|
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
||||||
|
# set smtp_pass = $my_pass
|
||||||
|
# set ssl_starttls = yes
|
||||||
|
# set smtp_authenticators = "login"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# set spoolfile = +INBOX
|
||||||
|
#
|
||||||
|
# set record = "+Sent"
|
||||||
|
# set trash = "+Trash"
|
||||||
|
# set postponed = "+Drafts"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# ## Hook -- IMPORTANT!
|
||||||
|
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
44
neomutt/.config/neomutt/accounts/jb_opytex
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# vim: filetype=muttrc
|
||||||
|
unmailboxes *
|
||||||
|
set imap_list_subscribed
|
||||||
|
set imap_check_subscribed
|
||||||
|
|
||||||
|
set from = "jost_bertrand@opytex.org"
|
||||||
|
|
||||||
|
set sendmail = "/usr/bin/msmtp -a jb_opytex"
|
||||||
|
set folder = "~/.mail/jb_opytex"
|
||||||
|
|
||||||
|
set spoolfile = "+INBOX"
|
||||||
|
set postponed = "+Drafts"
|
||||||
|
set record = "+Sent"
|
||||||
|
set trash = "+Junk"
|
||||||
|
|
||||||
|
set mbox_type = Maildir
|
||||||
|
set ssl_starttls = yes
|
||||||
|
set ssl_force_tls = yes
|
||||||
|
|
||||||
|
|
||||||
|
color status red default
|
||||||
|
|
||||||
|
# set my_pass = "`pass mail/mailfence/Takanuva`"
|
||||||
|
# set folder = "imaps://imap.mailfence.com/"
|
||||||
|
# set imap_user = Takanuva
|
||||||
|
# set imap_pass = $my_pass
|
||||||
|
#
|
||||||
|
# set ssl_force_tls = yes
|
||||||
|
# set smtp_url = smtps://$imap_user@smtp.mailfence.com:465
|
||||||
|
# set smtp_pass = $my_pass
|
||||||
|
# set ssl_starttls = yes
|
||||||
|
# set smtp_authenticators = "login"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# set spoolfile = +INBOX
|
||||||
|
# set imap_check_subscribed
|
||||||
|
#
|
||||||
|
# set record = "+Sent"
|
||||||
|
# set trash = "+Trash"
|
||||||
|
# set postponed = "+Drafts"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# ## Hook -- IMPORTANT!
|
||||||
|
# account-hook $folder "set imap_pass=`pass mail/mailfence/Takanuva`"
|
100
neomutt/.config/neomutt/colors
Normal file
100
neomutt/.config/neomutt/colors
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# -*-muttrc-*-
|
||||||
|
|
||||||
|
# Screenshot http://trovao.droplinegnome.org/stuff/mutt-zenburnt.png
|
||||||
|
#
|
||||||
|
# This is a zenburn-based neomutt color scheme that is not (even by far)
|
||||||
|
# complete. There's no copyright involved. Do whatever you want with it.
|
||||||
|
# Just be aware that I won't be held responsible if the current color-scheme
|
||||||
|
# explodes your mail client. ;)
|
||||||
|
#
|
||||||
|
# Do notice that this color scheme requires a terminal emulator that supports
|
||||||
|
# 256 color. Any modern X terminal emulator should have support for that and
|
||||||
|
# you can enable it by calling neomutt as "TERM=xterm-256color neomutt" or, if you
|
||||||
|
# use screen, by adding "term screen-256color" to your .screenrc.
|
||||||
|
#
|
||||||
|
# This file is in the public domain.
|
||||||
|
#
|
||||||
|
|
||||||
|
# general-doesn't-fit stuff
|
||||||
|
color normal color188 color237
|
||||||
|
color error color115 color236
|
||||||
|
color markers color142 color238
|
||||||
|
color tilde color108 color237
|
||||||
|
color status color144 color234
|
||||||
|
|
||||||
|
# index stuff
|
||||||
|
color indicator color108 color236
|
||||||
|
color tree color109 color237
|
||||||
|
color index color188 color237 ~A
|
||||||
|
color index color188 color237 ~N
|
||||||
|
color index color188 color237 ~O
|
||||||
|
color index color174 color237 ~F
|
||||||
|
color index color174 color237 ~D
|
||||||
|
|
||||||
|
# Message Index ----------------------------------------------------------------
|
||||||
|
|
||||||
|
## Weak
|
||||||
|
color index color08 color00 "~R" # read messages
|
||||||
|
color index color08 color00 "~d >45d" # older than 45 days
|
||||||
|
color index color08 color00 "~v~(!~N)" # collapsed thread with no unread
|
||||||
|
color index color08 color00 "~Q" # messages that have been replied to
|
||||||
|
|
||||||
|
## Strong
|
||||||
|
color index color21 color00 "(~U|~N|~O)" # unread, new, old messages
|
||||||
|
color index color21 color00 "~v~(~U|~N|~O)" # collapsed thread with unread
|
||||||
|
|
||||||
|
## Highlight
|
||||||
|
### Trusted
|
||||||
|
color index color06 color00 "~g" # PGP signed messages
|
||||||
|
color index color06 color00 "~G" # PGP encrypted messages
|
||||||
|
### Odd
|
||||||
|
color index color01 color00 "~E" # past Expires: header date
|
||||||
|
color index color01 color00 "~=" # duplicated
|
||||||
|
color index color01 color00 "~S" # marked by Supersedes: header
|
||||||
|
### Flagged
|
||||||
|
color index color05 color00 "~F" # flagged messages
|
||||||
|
color index color02 color00 "~v~(~F)" # collapsed thread with flagged inside
|
||||||
|
|
||||||
|
# Selection
|
||||||
|
color index color02 color18 "~T" # tagged messages
|
||||||
|
color index color01 color18 "~D" # deleted messages
|
||||||
|
|
||||||
|
#
|
||||||
|
|
||||||
|
# header stuff
|
||||||
|
color hdrdefault color223 color237
|
||||||
|
color header color223 color237 "^Subject"
|
||||||
|
|
||||||
|
# gpg stuff
|
||||||
|
color body color188 color237 "^gpg: Good signature.*"
|
||||||
|
color body color115 color236 "^gpg: BAD signature.*"
|
||||||
|
color body color174 color237 "^gpg: Can't check signature.*"
|
||||||
|
color body color174 color237 "^-----BEGIN PGP SIGNED MESSAGE-----"
|
||||||
|
color body color174 color237 "^-----BEGIN PGP SIGNATURE-----"
|
||||||
|
color body color174 color237 "^-----END PGP SIGNED MESSAGE-----"
|
||||||
|
color body color174 color237 "^-----END PGP SIGNATURE-----"
|
||||||
|
color body color174 color237 "^Version: GnuPG.*"
|
||||||
|
color body color174 color237 "^Comment: .*"
|
||||||
|
|
||||||
|
# url, email and web stuff
|
||||||
|
color body color174 color237 "(finger|ftp|http|https|news|telnet)://[^ >]*"
|
||||||
|
color body color174 color237 "<URL:[^ ]*>"
|
||||||
|
color body color174 color237 "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?"
|
||||||
|
color body color174 color237 "mailto: *[^ ]+\(\\i?subject=[^ ]+\)?"
|
||||||
|
color body color174 color237 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||||
|
|
||||||
|
# misc body stuff
|
||||||
|
color attachment color174 color237 #Add-ons to the message
|
||||||
|
color signature color223 color237
|
||||||
|
|
||||||
|
# quote levels
|
||||||
|
color quoted color108 color237
|
||||||
|
color quoted1 color116 color237
|
||||||
|
color quoted2 color247 color237
|
||||||
|
color quoted3 color108 color237
|
||||||
|
color quoted4 color116 color237
|
||||||
|
color quoted5 color247 color237
|
||||||
|
color quoted6 color108 color237
|
||||||
|
color quoted7 color116 color237
|
||||||
|
color quoted8 color247 color237
|
||||||
|
color quoted9 color108 color237
|
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
121
neomutt/.config/neomutt/colors_gruvbox
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
# -*-muttrc-*-
|
||||||
|
# gruvbox dark (contrast dark):
|
||||||
|
|
||||||
|
# bg0 = 234
|
||||||
|
# bg1 = 237
|
||||||
|
# bg2 = 239
|
||||||
|
# bg3 = 241
|
||||||
|
# bg4 = 243
|
||||||
|
#
|
||||||
|
# gray = 245
|
||||||
|
#
|
||||||
|
# fg0 = 229
|
||||||
|
# fg1 = 223
|
||||||
|
# fg2 = 250
|
||||||
|
# fg3 = 248
|
||||||
|
# fg4 = 246
|
||||||
|
#
|
||||||
|
# red = 167
|
||||||
|
# green = 142
|
||||||
|
# yellow = 214
|
||||||
|
# blue = 109
|
||||||
|
# purple = 175
|
||||||
|
# aqua = 108
|
||||||
|
# orange = 208
|
||||||
|
|
||||||
|
|
||||||
|
# See http://www.mutt.org/doc/manual/#color
|
||||||
|
|
||||||
|
color attachment color109 color234
|
||||||
|
color bold color229 color234
|
||||||
|
color error color167 color234
|
||||||
|
color hdrdefault color246 color234
|
||||||
|
color indicator color223 color237
|
||||||
|
color markers color243 color234
|
||||||
|
color normal color223 color234
|
||||||
|
color quoted color250 color234
|
||||||
|
color quoted1 color108 color234
|
||||||
|
color quoted2 color250 color234
|
||||||
|
color quoted3 color108 color234
|
||||||
|
color quoted4 color250 color234
|
||||||
|
color quoted5 color108 color234
|
||||||
|
color search color234 color208
|
||||||
|
color signature color108 color234
|
||||||
|
color status color234 color250
|
||||||
|
color tilde color243 color234
|
||||||
|
color tree color142 color234
|
||||||
|
color underline color223 color239
|
||||||
|
|
||||||
|
color sidebar_divider color250 color234
|
||||||
|
color sidebar_new color142 color234
|
||||||
|
|
||||||
|
color index color142 color234 ~N
|
||||||
|
color index color108 color234 ~O
|
||||||
|
color index color109 color234 ~P
|
||||||
|
color index color214 color234 ~F
|
||||||
|
color index color175 color234 ~Q
|
||||||
|
color index color167 color234 ~=
|
||||||
|
color index color234 color223 ~T
|
||||||
|
color index color234 color167 ~D
|
||||||
|
|
||||||
|
color header color214 color234 "^(To:|From:)"
|
||||||
|
color header color142 color234 "^Subject:"
|
||||||
|
color header color108 color234 "^X-Spam-Status:"
|
||||||
|
color header color108 color234 "^Received:"
|
||||||
|
|
||||||
|
# Regex magic for URLs and hostnames
|
||||||
|
#
|
||||||
|
# Attention: BSD's regex has RE_DUP_MAX set to 255.
|
||||||
|
#
|
||||||
|
# Examples:
|
||||||
|
# http://some-service.example.com
|
||||||
|
# example.com
|
||||||
|
# a.example.com
|
||||||
|
# some-service.example.com
|
||||||
|
# example.com/
|
||||||
|
# example.com/datenschutz
|
||||||
|
# file:///tmp/foo
|
||||||
|
#
|
||||||
|
# Non-examples:
|
||||||
|
# 1.1.1900
|
||||||
|
# 14.02.2022/24:00
|
||||||
|
# 23.59
|
||||||
|
# w.l.o.g
|
||||||
|
# team.its
|
||||||
|
color body color142 color234 "[a-z]{3,255}://[[:graph:]]*"
|
||||||
|
color body color142 color234 "([-[:alnum:]]+\\.)+([0-9]{1,3}|[-[:alpha:]]+)/[[:graph:]]*"
|
||||||
|
color body color142 color234 "([-[:alnum:]]+\\.){2,255}[-[:alpha:]]{2,10}"
|
||||||
|
|
||||||
|
# IPv4 and IPv6 stolen from https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
|
||||||
|
color body color142 color234 "((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
|
||||||
|
color body color142 color234 "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
|
||||||
|
|
||||||
|
# Mail addresses and mailto URLs
|
||||||
|
color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||||
|
color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
||||||
|
|
||||||
|
# some simleys and stuff
|
||||||
|
color body color234 color214 "[;:]-*[)>(<lt;|]"
|
||||||
|
color body color229 color234 "\\*[- A-Za-z]+\\*"
|
||||||
|
|
||||||
|
color body color214 color234 "^-.*PGP.*-*"
|
||||||
|
color body color142 color234 "^gpg: Good signature from"
|
||||||
|
color body color167 color234 "^gpg: Can't.*$"
|
||||||
|
color body color214 color234 "^gpg: WARNING:.*$"
|
||||||
|
color body color167 color234 "^gpg: BAD signature from"
|
||||||
|
color body color167 color234 "^gpg: Note: This key has expired!"
|
||||||
|
color body color214 color234 "^gpg: There is no indication that the signature belongs to the owner."
|
||||||
|
color body color214 color234 "^gpg: can't handle these multiple signatures"
|
||||||
|
color body color214 color234 "^gpg: signature verification suppressed"
|
||||||
|
color body color214 color234 "^gpg: invalid node with packet of type"
|
||||||
|
|
||||||
|
color body color142 color234 "^Good signature from:"
|
||||||
|
color body color167 color234 "^.?BAD.? signature from:"
|
||||||
|
color body color142 color234 "^Verification successful"
|
||||||
|
color body color167 color234 "^Verification [^s][^[:space:]]*$"
|
||||||
|
|
||||||
|
color compose header color223 color234
|
||||||
|
color compose security_encrypt color175 color234
|
||||||
|
color compose security_sign color109 color234
|
||||||
|
color compose security_both color142 color234
|
||||||
|
color compose security_none color208 color234
|
1
neomutt/.config/neomutt/mailboxes
Normal file
1
neomutt/.config/neomutt/mailboxes
Normal file
@ -0,0 +1 @@
|
|||||||
|
mailboxes "+ac_lyon/Archives" "+ac_lyon/Archives.2019-2020" "+ac_lyon/Archives.2020-2021" "+ac_lyon/Archives.2021-2022" "+ac_lyon/Archives.2022-2023" "+ac_lyon/Archives/2019-2020" "+ac_lyon/Archives/2020-2021" "+ac_lyon/Archives/2021-2022" "+ac_lyon/Archives/2022-2023" "+ac_lyon/Brouillons" "+ac_lyon/Drafts" "+ac_lyon/Eleves" "+ac_lyon/Eleves.2nd1" "+ac_lyon/Eleves/2nd1" "+ac_lyon/Envoy&AOk-s" "+ac_lyon/INBOX" "+ac_lyon/Junk" "+ac_lyon/Sent" "+ac_lyon/TICE" "+ac_lyon/Trash" "+bb_opytex/Archive" "+bb_opytex/Drafts" "+bb_opytex/INBOX" "+bb_opytex/R&AOk-seautage" "+bb_opytex/Sent Items" "+bb_opytex/Spam?" "+bb_opytex/Trash" "+jb_opytex/2021" "+jb_opytex/2022" "+jb_opytex/Archive" "+jb_opytex/Drafts" "+jb_opytex/INBOX" "+jb_opytex/Sent Items" "+jb_opytex/Spam?" "+jb_opytex/Trash"
|
12
neomutt/.config/neomutt/mailcap
Normal file
12
neomutt/.config/neomutt/mailcap
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# xdg-open
|
||||||
|
application/msword; /usr/bin/xdg-open %s
|
||||||
|
application/pdf; /usr/bin/xdg-open %s
|
||||||
|
application/postscript ; /usr/bin/xdg-open %s
|
||||||
|
|
||||||
|
# HTML
|
||||||
|
text/html; w3m -I %{charset} -T text/html; copiousoutput;
|
||||||
|
text/plain; nvim %s
|
||||||
|
|
||||||
|
#Images
|
||||||
|
image/png; /usr/bin/vimiv %s
|
||||||
|
image/jpeg; /usr/bin/vimiv %s
|
56
neomutt/.config/neomutt/mappings
Normal file
56
neomutt/.config/neomutt/mappings
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# vim: filetype=muttrc
|
||||||
|
|
||||||
|
# sidebar mappings
|
||||||
|
bind index,pager \Ck sidebar-prev
|
||||||
|
bind index,pager \Cj sidebar-next
|
||||||
|
bind index,pager \Co sidebar-open
|
||||||
|
bind index,pager \Cp sidebar-prev-new
|
||||||
|
bind index,pager \Cn sidebar-next-new
|
||||||
|
bind index,pager B sidebar-toggle-visible
|
||||||
|
|
||||||
|
# global index and pager shortcuts
|
||||||
|
bind index,pager @ compose-to-sender
|
||||||
|
bind index,pager D purge-message
|
||||||
|
bind index <tab> sync-mailbox
|
||||||
|
bind index <space> collapse-thread
|
||||||
|
|
||||||
|
# Email completion bindings
|
||||||
|
bind editor <Tab> complete-query
|
||||||
|
bind editor ^T complete
|
||||||
|
|
||||||
|
|
||||||
|
# General rebindings
|
||||||
|
bind attach <return> view-mailcap
|
||||||
|
bind attach l view-mailcap
|
||||||
|
bind editor <space> noop
|
||||||
|
bind pager c imap-fetch-mail
|
||||||
|
bind index G last-entry
|
||||||
|
bind index g noop
|
||||||
|
bind index gg first-entry
|
||||||
|
bind pager,attach h exit
|
||||||
|
bind pager j next-line
|
||||||
|
bind pager k previous-line
|
||||||
|
bind pager l view-attachments
|
||||||
|
bind index D delete-message
|
||||||
|
bind index U undelete-message
|
||||||
|
bind index L limit
|
||||||
|
bind index h noop
|
||||||
|
bind index l display-message
|
||||||
|
bind browser h goto-parent
|
||||||
|
bind browser l select-entry
|
||||||
|
bind pager,browser gg top-page
|
||||||
|
bind pager,browser G bottom-page
|
||||||
|
bind index,pager,browser d half-down
|
||||||
|
bind index,pager,browser u half-up
|
||||||
|
bind index,pager R group-reply
|
||||||
|
bind index \031 previous-undeleted # Mouse wheel
|
||||||
|
bind index \005 next-undeleted # Mouse wheel
|
||||||
|
bind pager \031 previous-line # Mouse wheel
|
||||||
|
bind pager \005 next-line # Mouse wheel
|
||||||
|
bind editor <Tab> complete-query
|
||||||
|
#
|
||||||
|
## Shortcuts
|
||||||
|
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/ac-lyon<enter><change-folder>!<enter>'
|
||||||
|
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/bb_opytex<enter><change-folder>!<enter>'
|
||||||
|
macro index,pager <f4> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/jb_opytex<enter><change-folder>!<enter>'
|
||||||
|
|
15
neomutt/.config/neomutt/neomuttrc
Normal file
15
neomutt/.config/neomutt/neomuttrc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# vim: filetype=muttrc
|
||||||
|
|
||||||
|
source ~/.config/neomutt/settings
|
||||||
|
source ~/.config/neomutt/colors_gruvbox
|
||||||
|
source ~/.config/neomutt/mappings
|
||||||
|
|
||||||
|
|
||||||
|
#source ~/.config/neomutt/accounts/jb_opytex
|
||||||
|
folder-hook jb_opytex/* 'source ~/.config/neomutt/accounts/jb_opytex'
|
||||||
|
#source ~/.config/neomutt/accounts/bb_opytex
|
||||||
|
folder-hook bb_opytex/* 'source ~/.config/neomutt/accounts/bb_opytex'
|
||||||
|
source ~/.config/neomutt/accounts/ac-lyon
|
||||||
|
folder-hook ac_lyon/* 'source ~/.config/neomutt/accounts/ac-lyon'
|
||||||
|
|
||||||
|
#source ~/.config/neomutt/mailboxes
|
72
neomutt/.config/neomutt/settings
Normal file
72
neomutt/.config/neomutt/settings
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# vim: filetype=muttrc
|
||||||
|
|
||||||
|
set editor = "nvim"
|
||||||
|
|
||||||
|
set realname = "Benjamin Bertrand"
|
||||||
|
set use_from = "yes"
|
||||||
|
|
||||||
|
# How often to check for new mail (time in seconds).
|
||||||
|
set mail_check = 120
|
||||||
|
|
||||||
|
# Allow Mutt to open a new IMAP connection automatically.
|
||||||
|
unset imap_passive
|
||||||
|
|
||||||
|
# Keep the IMAP connection alive by polling intermittently (time in seconds).
|
||||||
|
set imap_keepalive = 300
|
||||||
|
|
||||||
|
# main options
|
||||||
|
set envelope_from
|
||||||
|
set edit_headers # show headers when composing
|
||||||
|
set fast_reply # skip to compose when replying
|
||||||
|
set askcc # ask for CC:
|
||||||
|
set fcc_attach # save attachments with the body
|
||||||
|
set forward_format = "Fwd: %s" # format of subject when forwarding
|
||||||
|
set forward_decode # decode when forwarding
|
||||||
|
set attribution = "On %d, %n wrote:" # format of quoting header
|
||||||
|
set reply_to # reply to Reply to: field
|
||||||
|
set reverse_name # reply as whomever it was to
|
||||||
|
set include # include message in replies
|
||||||
|
set forward_quote # include message in forwards
|
||||||
|
set text_flowed
|
||||||
|
unset sig_dashes # no dashes before sig
|
||||||
|
unset mime_forward # forward attachments as part of body
|
||||||
|
unset help # No help bar at the top of index
|
||||||
|
# set status_on_top # Status bar on top of index
|
||||||
|
set tmpdir = ~/Programs/neomutt/temp # where to keep temp files
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# status bar, date format, finding stuff etc.
|
||||||
|
set status_chars = " *%A"
|
||||||
|
set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?"
|
||||||
|
set date_format = "%d.%m.%Y %H:%M"
|
||||||
|
set sort = threads
|
||||||
|
set sort_aux = reverse-last-date-received
|
||||||
|
set uncollapse_jump
|
||||||
|
set sort_re
|
||||||
|
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
||||||
|
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
||||||
|
set send_charset = "utf-8:iso-8859-1:us-ascii"
|
||||||
|
set charset = "utf-8"
|
||||||
|
set arrow_cursor = "no" # Change `color indicator` depending
|
||||||
|
|
||||||
|
|
||||||
|
# Pager View Options
|
||||||
|
set pager_index_lines = 20 # Shows 10 lines of index when pager is active
|
||||||
|
set pager_context = 3
|
||||||
|
set pager_stop
|
||||||
|
set menu_scroll
|
||||||
|
set tilde
|
||||||
|
unset markers
|
||||||
|
|
||||||
|
# Mailcal for attachments
|
||||||
|
set mailcap_path = ~/.config/neomutt/mailcap
|
||||||
|
set header_cache = "~/.cache/mutt"
|
||||||
|
set message_cachedir = "~/.cache/mutt"
|
||||||
|
|
||||||
|
# Contact with khard
|
||||||
|
set query_command = "khard email --parsable --search-in-source-files '%s'"
|
||||||
|
|
||||||
|
# Set preffered view modes
|
||||||
|
auto_view text/html text/calendar application/ics # view html automatically
|
||||||
|
alternative_order text/html text/plain text/enriched text/*
|
Binary file not shown.
67
neomutt/.config/offlineimap/config
Normal file
67
neomutt/.config/offlineimap/config
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
[general]
|
||||||
|
accounts = bb_opytex, jb_opytex, ac_lyon
|
||||||
|
pythonfile = ~/.config/offlineimap/offlineimap.py
|
||||||
|
maxsyncaccounts = 1
|
||||||
|
|
||||||
|
[mbnames]
|
||||||
|
enabled = yes
|
||||||
|
filename = ~/.config/neomutt/mailboxes
|
||||||
|
header = "mailboxes "
|
||||||
|
peritem = "+%(accountname)s/%(foldername)s"
|
||||||
|
sep = " "
|
||||||
|
footer = "\n"
|
||||||
|
|
||||||
|
|
||||||
|
[Account bb_opytex]
|
||||||
|
localrepository = Local-bb_opytex
|
||||||
|
remoterepository = Remote-bb_opytex
|
||||||
|
autorefresh = 1
|
||||||
|
quick = 10
|
||||||
|
|
||||||
|
[Repository Local-bb_opytex]
|
||||||
|
type = Maildir
|
||||||
|
localfolders = ~/.mail/bb_opytex
|
||||||
|
sep = /
|
||||||
|
|
||||||
|
[Repository Remote-bb_opytex]
|
||||||
|
type = IMAP
|
||||||
|
remotehost = imap.mailfence.com
|
||||||
|
remoteuser = Takanuva
|
||||||
|
remotepasseval = get_pass("mail/mailfence/Takanuva")
|
||||||
|
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
[Account jb_opytex]
|
||||||
|
localrepository = Local-jb_opytex
|
||||||
|
remoterepository = Remote-jb_opytex
|
||||||
|
autorefresh = 1
|
||||||
|
quick = 10
|
||||||
|
|
||||||
|
[Repository Local-jb_opytex]
|
||||||
|
type = Maildir
|
||||||
|
localfolders = ~/.mail/jb_opytex
|
||||||
|
sep = /
|
||||||
|
|
||||||
|
[Repository Remote-jb_opytex]
|
||||||
|
type = IMAP
|
||||||
|
remotehost = imap.mailfence.com
|
||||||
|
remoteuser = margot_benjamin
|
||||||
|
remotepasseval = get_pass("mail/jost_bertrand@opytex.org/margot_benjamin")
|
||||||
|
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
[Account ac_lyon]
|
||||||
|
localrepository = Local-ac_lyon
|
||||||
|
remoterepository = Remote-ac_lyon
|
||||||
|
autorefresh = 1
|
||||||
|
quick = 10
|
||||||
|
|
||||||
|
[Repository Local-ac_lyon]
|
||||||
|
type = Maildir
|
||||||
|
localfolders = ~/.mail/ac_lyon
|
||||||
|
sep = /
|
||||||
|
|
||||||
|
[Repository Remote-ac_lyon]
|
||||||
|
type = IMAP
|
||||||
|
remotehost = mail.ac-lyon.fr
|
||||||
|
remoteuser = bbertrand
|
||||||
|
remotepasseval = get_pass("Prof/pronote/bbertrand")
|
||||||
|
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
5
neomutt/.config/offlineimap/offlineimap.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
from subprocess import check_output
|
||||||
|
|
||||||
|
|
||||||
|
def get_pass(path):
|
||||||
|
return check_output("pass " + path, shell=True).splitlines()[0]
|
21
neomutt/.config/vdirsyncer/config
Normal file
21
neomutt/.config/vdirsyncer/config
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[general]
|
||||||
|
status_path = "~/.config/vdirsyncer/status/"
|
||||||
|
|
||||||
|
[pair cloud_opytex_contact]
|
||||||
|
a = "cloud_opytex_contact_local"
|
||||||
|
b = "cloud_opytex_contact_remote"
|
||||||
|
collections = ["from a", "from b"]
|
||||||
|
conflict_resolution = "b wins"
|
||||||
|
|
||||||
|
[storage cloud_opytex_contact_local]
|
||||||
|
type = "filesystem"
|
||||||
|
path = "~/.contacts/"
|
||||||
|
fileext = ".vcf"
|
||||||
|
|
||||||
|
[storage cloud_opytex_contact_remote]
|
||||||
|
type = "carddav"
|
||||||
|
|
||||||
|
# We can simplify this URL here as well. In theory it shouldn't matter.
|
||||||
|
url = "https://cloud.poneyworld.net/remote.php/dav/addressbooks/users/lafrite/contacts/"
|
||||||
|
username = "lafrite"
|
||||||
|
password.fetch = ["command", "pass", "OVH/Panais/docker/cloud.poneyworld.net/lafrite"]
|
@ -1,8 +1,8 @@
|
|||||||
auto-reload yes
|
auto-reload yes
|
||||||
reload-time 30
|
reload-time 30
|
||||||
browser chromium
|
browser "chromium --incognito"
|
||||||
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser chromium
|
macro y set browser "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
|
||||||
|
@ -3,9 +3,14 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw "Te
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCeeFfhMcJa1kjtfZAGskOCA "Tech"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCeeFfhMcJa1kjtfZAGskOCA "Tech"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsRIv1fsbnQRIPKmUQbRzZg "Tech"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCsRIv1fsbnQRIPKmUQbRzZg "Tech"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw "Tech"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCV0qA-eDDICsRR9rPcnG7tw "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCR-DXc1voovS8nhAvccRZhg "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCVRJ6D343dX-x730MRP8tNw "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCG5Ph9Mm6UEQLJJ-kGIC2AQ "Tech" "OneMarcFifty"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCWedHS9qKebauVIK2J7383g "Tech" "Underscore_"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9C07cryUrKzLuAzwITPA3A "SC2" "SC2HL"
|
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCr_3nQ4eRCwm_XUDpf62MAg "Information "Partager C'est Sympa"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCg7HRuQ93hl9v8dTSt_XDHA "Ferme" "~Banabé"
|
https://www.youtube.com/feeds/videos.xml?channel_id=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..."
|
||||||
@ -22,16 +27,23 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCL_r1ELEvAuN0peKUxI0Umw "Pe
|
|||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCzVy7DiPyVvfiOvXF_XMs4Q "Apnée" "~Adam Freediver"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCzVy7DiPyVvfiOvXF_XMs4Q "Apnée" "~Adam Freediver"
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCRoFIKcVNGvv9Oimdb9FBGg "Apnée" "Hodgepodge"
|
||||||
|
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJNItGjNhUx3Zz6W4OCVfHA "Bois" "~Passion renovation"
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCvDpfkniGG6WkX5L7DwyGaA "Bois" "Olivier Verdier"
|
https://www.youtube.com/feeds/videos.xml?channel_id=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"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9fGq2-6FaftcegcIadLf6A "Bois" "Samuel Mamias"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC9fGq2-6FaftcegcIadLf6A "Bois" "Samuel Mamias"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOuow_HIYmeaIqi42zVs3qg "Bois" "Kirby Meets Audio"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCOuow_HIYmeaIqi42zVs3qg "Bois" "Kirby Meets Audio"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7FkqjV8SU5I8FCHXQSQe9Q "Bois" "Ishitani furniture"
|
https://www.youtube.com/feeds/videos.xml?channel_id=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=UCxiqy-VOYw6uBE4raFCz4Ow "Chantier" "LJVS"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCKt0CjXg6PRocxlCss90e8g "Chantier" "Clément Beraud"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCjED9uS41ioeFuPfbR-OBlw "DIY" "Les frères Poulain"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCWimnuBF27nwOxgUBJ4qNeg "DIY" "Abrege"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC6x7GwJxuoABSosgVXDYtTw "DIY" "I like to make stuff"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6mIxFTvXkWQVEHPsEdflzQ "Electronique" "GreatScott!"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC6mIxFTvXkWQVEHPsEdflzQ "Electronique" "GreatScott!"
|
||||||
|
|
||||||
@ -39,13 +51,20 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCP6qAy9q_Lkhzu2reZfun9g "Sk
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjHh3N6jUJKdrtTqNorpRhg "Ski" "Bon appetit"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCjHh3N6jUJKdrtTqNorpRhg "Ski" "Bon appetit"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCdtrhMQTlTWNLGcmx1Qy80Q "Ski" "Fabien Maierhofer"
|
https://www.youtube.com/feeds/videos.xml?channel_id=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=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"
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
" Use completion-nvim in every buffer
|
|
||||||
autocmd BufEnter * lua require'nvim-comp'.on_attach()
|
|
||||||
|
|
||||||
let g:completion_enable_snippet = 'UltiSnips'
|
|
||||||
let g:completion_matching_strategy_list = ['exact', 'substring', 'fuzzy']
|
|
||||||
|
|
||||||
" Use <Tab> and <S-Tab> to navigate through popup menu
|
|
||||||
" inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
|
||||||
" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
|
||||||
|
|
||||||
"map <c-p> to manually trigger completion
|
|
||||||
"imap <silent> <c-p> <Plug>(completion_trigger)
|
|
||||||
|
|
||||||
" Set completeopt to have a better completion experience
|
|
||||||
set completeopt=menuone,noinsert,noselect
|
|
||||||
|
|
||||||
" Avoid showing message extra message when using completion
|
|
||||||
set shortmess+=c
|
|
@ -1,19 +0,0 @@
|
|||||||
" Better window navigation
|
|
||||||
" nnoremap <C-h> <C-w>h
|
|
||||||
" nnoremap <C-j> <C-w>j
|
|
||||||
" nnoremap <C-k> <C-w>k
|
|
||||||
" nnoremap <C-l> <C-w>l
|
|
||||||
|
|
||||||
" Align blocks of text and keep them selected
|
|
||||||
vmap < <gv
|
|
||||||
vmap > >gv
|
|
||||||
|
|
||||||
" Automatically spell check last error in insert mode
|
|
||||||
inoremap <c-f> <c-g>u<Esc>[s1z=`]a<c-g>u
|
|
||||||
|
|
||||||
" Find files using Telescope command-line sugar.
|
|
||||||
nnoremap <leader>e <cmd>Telescope find_files<cr>
|
|
||||||
nnoremap <leader>g <cmd>Telescope live_grep<cr>
|
|
||||||
nnoremap <leader>b <cmd>Telescope buffers<cr>
|
|
||||||
nnoremap <leader>h <cmd>Telescope help_tags<cr>
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
|||||||
" set leader key
|
|
||||||
let g:mapleader = "\<Space>"
|
|
||||||
|
|
||||||
syntax enable " Enables syntax highlighing
|
|
||||||
set hidden " Required to keep multiple buffers open multiple buffers
|
|
||||||
set wrap " Display long lines as just one line
|
|
||||||
set pumheight=10 " Makes popup menu smaller
|
|
||||||
set encoding=utf-8 " The encoding displayed
|
|
||||||
set fileencoding=utf-8 " The encoding written to file
|
|
||||||
set ruler " Show the cursor position all the time
|
|
||||||
set cmdheight=1 " More space for displaying messages
|
|
||||||
set iskeyword+=- " treat dash separated words as a word text object"
|
|
||||||
set mouse=a " Enable your mouse
|
|
||||||
set t_Co=256 " Support 256 colors
|
|
||||||
|
|
||||||
set conceallevel=0 " So that I can see `` in markdown files
|
|
||||||
set tabstop=4 " Insert 2 spaces for a tab
|
|
||||||
set shiftwidth=4 " Change the number of space characters inserted for indentation
|
|
||||||
set smarttab " Makes tabbing smarter will realize you have 2 vs 4
|
|
||||||
set expandtab " Converts tabs to spaces
|
|
||||||
set smartindent " Makes indenting smart
|
|
||||||
set autoindent " Good auto indent
|
|
||||||
set foldmethod=indent
|
|
||||||
|
|
||||||
set laststatus=2 " Always display the status line
|
|
||||||
|
|
||||||
set number " Line number
|
|
||||||
set relativenumber " Relative line number
|
|
||||||
set cursorline " Enable highlighting of the current line
|
|
||||||
set showtabline=1 " show tabs only when there are some
|
|
||||||
|
|
||||||
set background=dark " tell vim what the background color looks like
|
|
||||||
|
|
||||||
set nobackup " This is recommended by coc
|
|
||||||
set nowritebackup " This is recommended by coc
|
|
||||||
set noswapfile
|
|
||||||
|
|
||||||
set updatetime=300 " Faster completion
|
|
||||||
set timeoutlen=500 " By default timeoutlen is 1000 ms
|
|
||||||
|
|
||||||
set clipboard=unnamedplus " Copy paste between vim and everything else
|
|
||||||
|
|
||||||
set showmode " Display edition mode
|
|
||||||
"set noshowmode " We don't need to see things like -- INSERT -- anymore
|
|
||||||
|
|
||||||
set incsearch " hightlight while searching
|
|
||||||
set ignorecase " Ignore case while searching
|
|
||||||
set smartcase " Override ignorecase if search patern contains upper case
|
|
||||||
set wildmenu " Enable wildmenu
|
|
||||||
|
|
||||||
set spell " Enable spell checking
|
|
||||||
set spelllang=fr,en
|
|
||||||
|
|
||||||
set nrformats+=alpha " letter concidered as number for Ctrl-A or Ctrl-X
|
|
||||||
|
|
||||||
"set autochdir " Your working directory will always be the same as your working directory
|
|
||||||
|
|
||||||
execute "set colorcolumn=" . join(range(81,335), ',')
|
|
||||||
|
|
||||||
colorscheme zenburn
|
|
||||||
|
|
||||||
" Set completeopt to have a better completion experience
|
|
||||||
" set completeopt=menuone,noinsert,noselect
|
|
||||||
" set completeopt=menuone,noselect
|
|
||||||
|
|
||||||
" Avoid showing message extra message when using completion
|
|
||||||
set shortmess+=c
|
|
||||||
|
|
||||||
let g:indentLine_setConceal = 0
|
|
@ -1,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')
|
|
||||||
|
36
nvim/.config/nvim/lazy-lock.json
Normal file
36
nvim/.config/nvim/lazy-lock.json
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
||||||
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
|
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
||||||
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
|
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
|
||||||
|
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
|
||||||
|
"indent-blankline.nvim": { "branch": "master", "commit": "877c1db2bf957300097dd5348a665666a4d900cb" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6b6f0a451200bb6abde85978c577c73ea1577758" },
|
||||||
|
"lsp-zero.nvim": { "branch": "v3.x", "commit": "22677c535fdc11a73da67a186a30e360d8857497" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "7cf858c30841c9c41601ce58e5bc2023228037ef" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
||||||
|
"nvim-autopairs": { "branch": "master", "commit": "de4f7138a68d5d5063170f2182fd27faf06b0b54" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
||||||
|
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "2b361e043810d5587d9af0787f8ce40da92ec5e9" },
|
||||||
|
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "10bfa4826f2235c600c073a82e0d78718aa7240e" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
|
||||||
|
"oil.nvim": { "branch": "master", "commit": "ac2928cca85ba3596e92f9f51940d46be2d606f8" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
||||||
|
"telescope.nvim": { "branch": "0.1.x", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" },
|
||||||
|
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
|
||||||
|
"vim-fugitive": { "branch": "master", "commit": "99db68d9b3304580bd383da7aaee05c7a954a344" },
|
||||||
|
"vim-highlightedyank": { "branch": "master", "commit": "fa3f57b097e9521ce41a66b6c7cf5d9adea70ea3" },
|
||||||
|
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
|
||||||
|
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||||
|
"vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" },
|
||||||
|
"vim-vsnip": { "branch": "master", "commit": "be277461265f1e5c7db470aa479f30956597ea9e" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
|
||||||
|
}
|
@ -1,98 +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 = true, behavior = cmp.ConfirmBehavior.Replace}),
|
|
||||||
["<cr>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Insert}),
|
|
||||||
["<Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if vim.fn.pumvisible() == 1 then
|
|
||||||
feedkey("<C-n>", "n")
|
|
||||||
elseif vim.fn["vsnip#available"]() == 1 then
|
|
||||||
feedkey("<Plug>(vsnip-expand-or-jump)", "")
|
|
||||||
elseif has_words_before() then
|
|
||||||
cmp.complete()
|
|
||||||
else
|
|
||||||
fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
|
|
||||||
["<S-Tab>"] = cmp.mapping(function()
|
|
||||||
if vim.fn.pumvisible() == 1 then
|
|
||||||
feedkey("<C-p>", "n")
|
|
||||||
elseif vim.fn["vsnip#jumpable"](-1) == 1 then
|
|
||||||
feedkey("<Plug>(vsnip-jump-prev)", "")
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
},
|
|
||||||
source = {
|
|
||||||
{ name = 'buffer' },
|
|
||||||
{ name = 'vsnip' },
|
|
||||||
{ name = 'path' },
|
|
||||||
{ name = 'spell' },
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
vim.cmd [[autocmd FileType TelescopePrompt lua require('cmp').setup.buffer { enabled = false }]]
|
|
||||||
vim.g.vsnip_snippet_dir = '~/.config/nvim/vsnips'
|
|
@ -1,23 +0,0 @@
|
|||||||
vim.g.maplocalleader = " "
|
|
||||||
|
|
||||||
vim.g.vimtex_compiler_latex = {}
|
|
||||||
vim.g.vimtex_compiler_latex["backend"] = 'nvim'
|
|
||||||
|
|
||||||
vim.g.vimtex_compiler_latex['backend'] = 'nvim'
|
|
||||||
vim.g.vimtex_compiler_latex['background'] = 1
|
|
||||||
vim.g.vimtex_compiler_latex[ 'build_dir'] = ''
|
|
||||||
vim.g.vimtex_compiler_latex[ 'callback'] = 0
|
|
||||||
vim.g.vimtex_compiler_latex[ 'continuous'] = 1
|
|
||||||
vim.g.vimtex_compiler_latex[ 'options'] = { '-pdf',
|
|
||||||
'-verbose',
|
|
||||||
'-file-line-error',
|
|
||||||
'-synctex=1',
|
|
||||||
'-interaction=nonstopmode',
|
|
||||||
'-silent',
|
|
||||||
'-shell-escape',
|
|
||||||
}
|
|
||||||
|
|
||||||
vim.g.vimtex_view_method = 'zathura'
|
|
||||||
|
|
||||||
-- Les fichiers sty et cls sont vus comme des fichiers tex
|
|
||||||
vim.cmd("autocmd BufRead,BufNewFile *.{sty,cls} setlocal syntax=tex")
|
|
@ -1,62 +0,0 @@
|
|||||||
|
|
||||||
local nvim_lsp = require('lspconfig')
|
|
||||||
|
|
||||||
-- Use an on_attach function to only map the following keys
|
|
||||||
-- after the language server attaches to the current buffer
|
|
||||||
local on_attach = function(client, bufnr)
|
|
||||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
|
||||||
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
|
||||||
|
|
||||||
--Enable completion triggered by <c-x><c-o>
|
|
||||||
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
|
||||||
|
|
||||||
-- Mappings.
|
|
||||||
local opts = { noremap=true, silent=true }
|
|
||||||
|
|
||||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
|
||||||
-- See references
|
|
||||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
|
||||||
-- show documentation
|
|
||||||
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
|
||||||
-- Rename
|
|
||||||
buf_set_keymap('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
|
||||||
|
|
||||||
-- je sais pas ce c'est que ces workspaces
|
|
||||||
buf_set_keymap('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
|
||||||
buf_set_keymap('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
|
||||||
buf_set_keymap('n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
|
||||||
-- ??
|
|
||||||
buf_set_keymap('n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
|
||||||
-- Details on diagnostics
|
|
||||||
buf_set_keymap('n', '<leader>d', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
|
||||||
-- Cycle over diagnostics
|
|
||||||
buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
|
||||||
buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
|
||||||
-- Get diagnostic on local list
|
|
||||||
buf_set_keymap('n', '<leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
|
|
||||||
buf_set_keymap("n", "<leader>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
|
||||||
|
|
||||||
buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
|
||||||
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
|
||||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
|
||||||
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
|
||||||
buf_set_keymap('n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
|
||||||
-- map buffer local keybindings when the language server attaches
|
|
||||||
local servers = { "texlab", "pyright", "vuels", "tsserver" }
|
|
||||||
for _, lsp in ipairs(servers) do
|
|
||||||
nvim_lsp[lsp].setup {
|
|
||||||
on_attach = on_attach,
|
|
||||||
flags = {
|
|
||||||
debounce_text_changes = 150,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
nvim_lsp.vuels.setup{
|
|
||||||
on_attach = function(client)
|
|
||||||
client.resolved_capabilities.document_formatting = true
|
|
||||||
end;
|
|
||||||
}
|
|
@ -1,22 +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)
|
||||||
|
|
||||||
-- Find files using Telescope command-line sugar.
|
-- Centering after moving half page or search
|
||||||
map('n', '<leader>e', '<cmd>Telescope find_files<cr>', {})
|
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||||
map('n', '<leader>g', '<cmd>Telescope live_grep<cr>', {})
|
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||||
map('n', '<leader>b', '<cmd>Telescope buffers<cr>', {})
|
vim.keymap.set("n", "n", "nzzzv")
|
||||||
map('n', '<leader>h', '<cmd>Telescope help_tags<cr>', {})
|
vim.keymap.set("n", "N", "Nzzzv")
|
||||||
|
|
||||||
|
-- Move block on visual mode
|
||||||
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||||
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||||
|
@ -1,86 +0,0 @@
|
|||||||
-- Only required if you have packer configured as `opt`
|
|
||||||
vim.cmd [[packadd packer.nvim]]
|
|
||||||
|
|
||||||
return require('packer').startup(function()
|
|
||||||
use 'morhetz/gruvbox'
|
|
||||||
|
|
||||||
-- Status line
|
|
||||||
use {
|
|
||||||
'hoob3rt/lualine.nvim',
|
|
||||||
config = function ()
|
|
||||||
require('lualine').setup{
|
|
||||||
options = {
|
|
||||||
icons_enabled = true,
|
|
||||||
theme = 'gruvbox',
|
|
||||||
component_separators = {'', ''},
|
|
||||||
section_separators = {'', ''},
|
|
||||||
disabled_filetypes = {}
|
|
||||||
},
|
|
||||||
sections = {
|
|
||||||
lualine_a = {'mode'},
|
|
||||||
lualine_b = {'branch'},
|
|
||||||
lualine_c = {'filename'},
|
|
||||||
lualine_x = {
|
|
||||||
{ 'diagnostics', sources = {"nvim_lsp"}, symbols = {error = ' ', warn = ' ', info = ' ', hint = ' '} },
|
|
||||||
'encoding',
|
|
||||||
'filetype'
|
|
||||||
},
|
|
||||||
lualine_y = {'progress'},
|
|
||||||
lualine_z = {'location'}
|
|
||||||
},
|
|
||||||
inactive_sections = {
|
|
||||||
lualine_a = {},
|
|
||||||
lualine_b = {},
|
|
||||||
lualine_c = {'filename'},
|
|
||||||
lualine_x = {'location'},
|
|
||||||
lualine_y = {},
|
|
||||||
lualine_z = {}
|
|
||||||
},
|
|
||||||
tabline = {},
|
|
||||||
extensions = {}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
use 'tpope/vim-fugitive'
|
|
||||||
use 'mhinz/vim-signify'
|
|
||||||
|
|
||||||
use 'tpope/vim-surround'
|
|
||||||
use 'tpope/vim-repeat'
|
|
||||||
|
|
||||||
use 'neovim/nvim-lspconfig'
|
|
||||||
use {
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
event = 'InsertEnter',
|
|
||||||
config = [[require('completion')]],
|
|
||||||
requires = {
|
|
||||||
-- 'hrsh7th/vim-vsnip-integ',
|
|
||||||
'rafamadriz/friendly-snippets',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
use {"hrsh7th/vim-vsnip", after = "nvim-cmp"}
|
|
||||||
use {"hrsh7th/cmp-vsnip", after = "nvim-cmp"}
|
|
||||||
use {"hrsh7th/cmp-buffer", after = "nvim-cmp"}
|
|
||||||
use {'hrsh7th/cmp-path', after = "nvim-cmp"}
|
|
||||||
use {"hrsh7th/cmp-nvim-lsp", after = "nvim-cmp"}
|
|
||||||
use {'f3fora/cmp-spell', after = "nvim-cmp"}
|
|
||||||
|
|
||||||
use 'nvim-lua/popup.nvim'
|
|
||||||
use {
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
requires = { {'nvim-lua/plenary.nvim'} }
|
|
||||||
}
|
|
||||||
|
|
||||||
use {
|
|
||||||
'lervag/vimtex',
|
|
||||||
config = [[require('config.vimtex')]],
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Highlight on Yank
|
|
||||||
use 'machakann/vim-highlightedyank'
|
|
||||||
-- Autoclose parenthesis
|
|
||||||
use 'jiangmiao/auto-pairs'
|
|
||||||
|
|
||||||
use 'kyazdani42/nvim-web-devicons'
|
|
||||||
|
|
||||||
end)
|
|
7
nvim/.config/nvim/lua/plugins/autopairs.lua
Normal file
7
nvim/.config/nvim/lua/plugins/autopairs.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
'windwp/nvim-autopairs',
|
||||||
|
event = "InsertEnter",
|
||||||
|
opts = {
|
||||||
|
disable_filetype = { "TelescopePrompt" , "vim" },
|
||||||
|
} -- this is equalent to setup({}) function
|
||||||
|
}
|
14
nvim/.config/nvim/lua/plugins/colorizer.lua
Normal file
14
nvim/.config/nvim/lua/plugins/colorizer.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
'norcalli/nvim-colorizer.lua',
|
||||||
|
config = function ()
|
||||||
|
vim.opt.termguicolors = true
|
||||||
|
require('colorizer').setup {
|
||||||
|
'css';
|
||||||
|
'javascript';
|
||||||
|
html = {
|
||||||
|
mode = 'foreground';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
}
|
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
return {
|
||||||
|
"morhetz/gruvbox",
|
||||||
|
lazy = false, -- make sure we load this during startup if it is your main colorscheme
|
||||||
|
priority = 1000, -- make sure to load this before all the other start plugins
|
||||||
|
config = function()
|
||||||
|
-- load the colorscheme here
|
||||||
|
vim.cmd([[colorscheme gruvbox]])
|
||||||
|
end
|
||||||
|
}
|
6
nvim/.config/nvim/lua/plugins/comment.lua
Normal file
6
nvim/.config/nvim/lua/plugins/comment.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
'numToStr/Comment.nvim',
|
||||||
|
config=function ()
|
||||||
|
require('Comment').setup()
|
||||||
|
end
|
||||||
|
}
|
69
nvim/.config/nvim/lua/plugins/completion.lua
Normal file
69
nvim/.config/nvim/lua/plugins/completion.lua
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
return {
|
||||||
|
'hrsh7th/nvim-cmp',
|
||||||
|
dependencies = {
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
'hrsh7th/cmp-buffer',
|
||||||
|
'hrsh7th/cmp-path',
|
||||||
|
'hrsh7th/cmp-cmdline',
|
||||||
|
'hrsh7th/cmp-vsnip',
|
||||||
|
'hrsh7th/vim-vsnip',
|
||||||
|
},
|
||||||
|
config = function ()
|
||||||
|
local cmp = require'cmp'
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered(),
|
||||||
|
documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'vsnip' }, -- For vsnip users.
|
||||||
|
{ name = 'path' },
|
||||||
|
{
|
||||||
|
name = 'buffer',
|
||||||
|
option = {
|
||||||
|
keyword_length = 3,
|
||||||
|
get_bufnrs = function()
|
||||||
|
return vim.api.nvim_list_bufs()
|
||||||
|
end
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Set configuration for specific filetype.
|
||||||
|
cmp.setup.filetype('gitcommit', {
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||||
|
cmp.setup.cmdline({ '/', '?' }, {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = {
|
||||||
|
{ name = 'buffer' }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||||
|
cmp.setup.cmdline(':', {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'path' }
|
||||||
|
}, {
|
||||||
|
{ name = 'cmdline' }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
end
|
||||||
|
}
|
37
nvim/.config/nvim/lua/plugins/formatting.lua
Normal file
37
nvim/.config/nvim/lua/plugins/formatting.lua
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
return {
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
local conform = require("conform")
|
||||||
|
|
||||||
|
conform.setup({
|
||||||
|
formatters_by_ft = {
|
||||||
|
javascript = { "prettier" },
|
||||||
|
typescript = { "prettier" },
|
||||||
|
javascriptreact = { "prettier" },
|
||||||
|
typescriptreact = { "prettier" },
|
||||||
|
svelte = { "prettier" },
|
||||||
|
css = { "prettier" },
|
||||||
|
html = { "prettier" },
|
||||||
|
json = { "prettier" },
|
||||||
|
yaml = { "prettier" },
|
||||||
|
markdown = { "prettier" },
|
||||||
|
graphql = { "prettier" },
|
||||||
|
lua = { "stylua" },
|
||||||
|
python = { "isort", "black" },
|
||||||
|
},
|
||||||
|
format_on_save = {
|
||||||
|
lsp_fallback = true,
|
||||||
|
async = false,
|
||||||
|
timeout_ms = 500,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
||||||
|
conform.format({
|
||||||
|
lsp_fallback = true,
|
||||||
|
async = false,
|
||||||
|
timeout_ms = 500,
|
||||||
|
})
|
||||||
|
end, { desc = "Format file or range (in visual mode)" })
|
||||||
|
end,
|
||||||
|
}
|
11
nvim/.config/nvim/lua/plugins/git.lua
Normal file
11
nvim/.config/nvim/lua/plugins/git.lua
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'tpope/vim-fugitive'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'lewis6991/gitsigns.nvim',
|
||||||
|
config=function ()
|
||||||
|
require('gitsigns').setup {}
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
10
nvim/.config/nvim/lua/plugins/indentation.lua
Normal file
10
nvim/.config/nvim/lua/plugins/indentation.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
return {
|
||||||
|
'lukas-reineke/indent-blankline.nvim',
|
||||||
|
main = "ibl",
|
||||||
|
config = function ()
|
||||||
|
vim.opt.list = true
|
||||||
|
vim.opt.listchars:append("eol:↴")
|
||||||
|
require("ibl").setup {
|
||||||
|
}
|
||||||
|
end
|
||||||
|
}
|
31
nvim/.config/nvim/lua/plugins/lint.lua
Normal file
31
nvim/.config/nvim/lua/plugins/lint.lua
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
return {
|
||||||
|
"mfussenegger/nvim-lint",
|
||||||
|
event = {
|
||||||
|
"BufReadPre",
|
||||||
|
"BufNewFile",
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local lint = require("lint")
|
||||||
|
|
||||||
|
lint.linters_by_ft = {
|
||||||
|
javascript = { "eslint_d" },
|
||||||
|
typescript = { "eslint_d" },
|
||||||
|
javascriptreact = { "eslint_d" },
|
||||||
|
typescriptreact = { "eslint_d" },
|
||||||
|
python = { "flake8" },
|
||||||
|
}
|
||||||
|
|
||||||
|
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
||||||
|
group = lint_augroup,
|
||||||
|
callback = function()
|
||||||
|
lint.try_lint()
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>ml", function()
|
||||||
|
lint.try_lint()
|
||||||
|
end, { desc = "Trigger linting for current file" })
|
||||||
|
end,
|
||||||
|
}
|
38
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
38
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
return {
|
||||||
|
"VonHeikemen/lsp-zero.nvim",
|
||||||
|
branch = "v3.x",
|
||||||
|
dependencies = {
|
||||||
|
{ "neovim/nvim-lspconfig" },
|
||||||
|
{ "williamboman/mason.nvim" },
|
||||||
|
{ "williamboman/mason-lspconfig.nvim" },
|
||||||
|
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local lsp_zero = require("lsp-zero")
|
||||||
|
lsp_zero.on_attach(function(client, bufnr)
|
||||||
|
-- see :help lsp-zero-keybindings
|
||||||
|
-- to learn the available actions
|
||||||
|
lsp_zero.default_keymaps({ buffer = bufnr })
|
||||||
|
end)
|
||||||
|
|
||||||
|
require("mason").setup({})
|
||||||
|
require("mason-lspconfig").setup({
|
||||||
|
ensure_installed = {},
|
||||||
|
handlers = {
|
||||||
|
lsp_zero.default_setup,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
local mason_tool_installer = require("mason-tool-installer")
|
||||||
|
|
||||||
|
mason_tool_installer.setup({
|
||||||
|
ensure_installed = {
|
||||||
|
"prettier", -- prettier formatter
|
||||||
|
"stylua", -- lua formatter
|
||||||
|
"isort", -- python formatter
|
||||||
|
"black", -- python formatter
|
||||||
|
"flake8", -- python linter
|
||||||
|
"eslint_d", -- js linter
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
222
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
222
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
return {
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"folke/noice.nvim",
|
||||||
|
'nvim-tree/nvim-web-devicons',
|
||||||
|
},
|
||||||
|
config = function ()
|
||||||
|
local colors = {
|
||||||
|
bg = '#202328',
|
||||||
|
fg = '#bbc2cf',
|
||||||
|
yellow = '#ECBE7B',
|
||||||
|
cyan = '#008080',
|
||||||
|
darkblue = '#081633',
|
||||||
|
green = '#98be65',
|
||||||
|
orange = '#FF8800',
|
||||||
|
violet = '#a9a1e1',
|
||||||
|
magenta = '#c678dd',
|
||||||
|
blue = '#51afef',
|
||||||
|
red = '#ec5f67'
|
||||||
|
}
|
||||||
|
|
||||||
|
local conditions = {
|
||||||
|
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
|
||||||
|
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
|
||||||
|
check_git_workspace = function()
|
||||||
|
local filepath = vim.fn.expand('%:p:h')
|
||||||
|
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||||
|
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Config
|
||||||
|
local config = {
|
||||||
|
options = {
|
||||||
|
-- Disable sections and component separators
|
||||||
|
component_separators = "",
|
||||||
|
section_separators = "",
|
||||||
|
-- theme = 'gruvbox',
|
||||||
|
theme = {
|
||||||
|
-- We are going to use lualine_c an lualine_x as left and
|
||||||
|
-- right section. both are highlighted by c theme . so we
|
||||||
|
-- are just setting default looks o statusline
|
||||||
|
normal = {c = {fg = colors.fg, bg = colors.bg}},
|
||||||
|
inactive = {c = {fg = colors.fg, bg = colors.bg}}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
-- these are to remove the defaults
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {},
|
||||||
|
-- these will be filled later
|
||||||
|
lualine_c = {},
|
||||||
|
lualine_x = {
|
||||||
|
{
|
||||||
|
require("noice").api.statusline.mode.get,
|
||||||
|
cond = require("noice").api.statusline.mode.has,
|
||||||
|
color = { fg = "#ff9e64" },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
-- these are to remove the defaults
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_v = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {},
|
||||||
|
lualine_c = {},
|
||||||
|
lualine_x = {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- inserts a component in lualine_c at left section
|
||||||
|
local function ins_left(component)
|
||||||
|
table.insert(config.sections.lualine_c, component)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- inserts a component in lualine_x ot right section
|
||||||
|
local function ins_right(component)
|
||||||
|
table.insert(config.sections.lualine_x, component)
|
||||||
|
end
|
||||||
|
|
||||||
|
local mode_color = {
|
||||||
|
n = colors.red,
|
||||||
|
i = colors.green,
|
||||||
|
v = colors.blue,
|
||||||
|
[''] = colors.blue,
|
||||||
|
v = colors.blue,
|
||||||
|
c = colors.magenta,
|
||||||
|
no = colors.red,
|
||||||
|
s = colors.orange,
|
||||||
|
s = colors.orange,
|
||||||
|
[''] = colors.orange,
|
||||||
|
ic = colors.yellow,
|
||||||
|
r = colors.violet,
|
||||||
|
rv = colors.violet,
|
||||||
|
cv = colors.red,
|
||||||
|
ce = colors.red,
|
||||||
|
r = colors.cyan,
|
||||||
|
rm = colors.cyan,
|
||||||
|
['r?'] = colors.cyan,
|
||||||
|
['!'] = colors.red,
|
||||||
|
t = colors.red
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
-- mode component
|
||||||
|
function()
|
||||||
|
-- auto change color according to neovims mode
|
||||||
|
vim.api.nvim_command(
|
||||||
|
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
||||||
|
return ''
|
||||||
|
end,
|
||||||
|
color = "lualinemode",
|
||||||
|
left_padding = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
"mode",
|
||||||
|
color = {fg = colors.green, gui = 'bold'}
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
-- filesize component
|
||||||
|
function()
|
||||||
|
local function format_file_size(file)
|
||||||
|
local size = vim.fn.getfsize(file)
|
||||||
|
if size <= 0 then return '' end
|
||||||
|
local sufixes = {'b', 'k', 'm', 'g'}
|
||||||
|
local i = 1
|
||||||
|
while size > 1024 do
|
||||||
|
size = size / 1024
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
return string.format('%.1f%s', size, sufixes[i])
|
||||||
|
end
|
||||||
|
local file = vim.fn.expand('%:p')
|
||||||
|
if string.len(file) == 0 then return '' end
|
||||||
|
return format_file_size(file)
|
||||||
|
end,
|
||||||
|
condition = conditions.buffer_not_empty
|
||||||
|
}
|
||||||
|
ins_left {
|
||||||
|
-- Lsp server name .
|
||||||
|
function()
|
||||||
|
local msg = 'No Active Lsp'
|
||||||
|
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||||
|
local clients = vim.lsp.get_active_clients()
|
||||||
|
if next(clients) == nil then return msg end
|
||||||
|
for _, client in ipairs(clients) do
|
||||||
|
local filetypes = client.config.filetypes
|
||||||
|
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||||
|
return client.name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return msg
|
||||||
|
end,
|
||||||
|
icon = ' LSP:',
|
||||||
|
color = {fg = '#ffffff', gui = 'bold'}
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
'diagnostics',
|
||||||
|
sources = {'nvim_diagnostic'},
|
||||||
|
symbols = {error = ' ', warn = ' ', info = ' '},
|
||||||
|
color_error = colors.red,
|
||||||
|
color_warn = colors.yellow,
|
||||||
|
color_info = colors.cyan
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Insert mid section. You can make any number of sections in neovim :)
|
||||||
|
-- for lualine it's any number greater then 2
|
||||||
|
ins_left {function() return '%=' end}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
'filename',
|
||||||
|
file_status = true,
|
||||||
|
path = 1,
|
||||||
|
condition = conditions.buffer_not_empty,
|
||||||
|
color = {fg = colors.magenta, gui = 'bold'}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Add components to right sections
|
||||||
|
ins_right {
|
||||||
|
'o:encoding', -- option component same as &encoding in viml
|
||||||
|
upper = true, -- I'm not sure why it's upper case either ;)
|
||||||
|
condition = conditions.hide_in_width,
|
||||||
|
color = {fg = colors.green, gui = 'bold'}
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {
|
||||||
|
'fileformat',
|
||||||
|
upper = true,
|
||||||
|
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||||
|
color = {fg = colors.green, gui = 'bold'}
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {
|
||||||
|
'branch',
|
||||||
|
icon = '',
|
||||||
|
condition = conditions.check_git_workspace,
|
||||||
|
color = {fg = colors.violet, gui = 'bold'}
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {
|
||||||
|
'diff',
|
||||||
|
-- Is it me or the symbol for modified us really weird
|
||||||
|
symbols = {added = ' ', modified = '柳 ', removed = ' '},
|
||||||
|
color_added = colors.green,
|
||||||
|
color_modified = colors.orange,
|
||||||
|
color_removed = colors.red,
|
||||||
|
condition = conditions.hide_in_width
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {'location'}
|
||||||
|
|
||||||
|
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
|
||||||
|
|
||||||
|
require('lualine').setup(config)
|
||||||
|
end
|
||||||
|
}
|
6
nvim/.config/nvim/lua/plugins/misc.lua
Normal file
6
nvim/.config/nvim/lua/plugins/misc.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
'tpope/vim-surround',
|
||||||
|
'tpope/vim-repeat',
|
||||||
|
'tpope/vim-abolish',
|
||||||
|
'machakann/vim-highlightedyank'
|
||||||
|
}
|
15
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
15
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
return {
|
||||||
|
"folke/noice.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {
|
||||||
|
-- add any options here
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
-- OPTIONAL:
|
||||||
|
-- `nvim-notify` is only needed, if you want to use the notification view.
|
||||||
|
-- If not available, we use `mini` as the fallback
|
||||||
|
"rcarriga/nvim-notify",
|
||||||
|
},
|
||||||
|
}
|
10
nvim/.config/nvim/lua/plugins/oil.lua
Normal file
10
nvim/.config/nvim/lua/plugins/oil.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
return {
|
||||||
|
'stevearc/oil.nvim',
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
keys = {
|
||||||
|
{"-", "<cmd>Oil<cr>", desc="Open parent directory"},
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("oil").setup()
|
||||||
|
end
|
||||||
|
}
|
27
nvim/.config/nvim/lua/plugins/telescope.lua
Normal file
27
nvim/.config/nvim/lua/plugins/telescope.lua
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
return {
|
||||||
|
'nvim-telescope/telescope.nvim', branch = '0.1.x',
|
||||||
|
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||||
|
opts = {
|
||||||
|
defaults = {
|
||||||
|
file_ignore_patterns = { "**/*.pdf" },
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = { prompt_position = "top" },
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{"<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find files"},
|
||||||
|
{"<leader>fe", "<cmd>Telescope git_files<cr>", desc = "Find file respecting .gitignore"},
|
||||||
|
{"<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Grep file in file"},
|
||||||
|
{"<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Search through buffers"},
|
||||||
|
{"<leader>ft", "<cmd>Telescope tags<cr>", desc = "Search through tags"},
|
||||||
|
{"<leader>fm", "<cmd>Telescope marks<cr>", desc = "Search through marks"},
|
||||||
|
{"<leader>fs", "<cmd>Telescope search_history<cr>", desc = "Search through search"},
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require('telescope').setup(
|
||||||
|
|
||||||
|
)
|
||||||
|
end
|
||||||
|
}
|
14
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
14
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function ()
|
||||||
|
local configs = require("nvim-treesitter.configs")
|
||||||
|
|
||||||
|
configs.setup({
|
||||||
|
ensure_installed = { "lua", "vim", "vimdoc", "javascript", "html", "python", "dockerfile", "latex", "yaml", "regex", "bash", "markdown", "markdown_inline" },
|
||||||
|
sync_install = false,
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
})
|
||||||
|
end
|
||||||
|
}
|
8
nvim/.config/nvim/lua/plugins/ui.lua
Normal file
8
nvim/.config/nvim/lua/plugins/ui.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
return {
|
||||||
|
"folke/noice.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
dependencies = {
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
"rcarriga/nvim-notify",
|
||||||
|
}
|
||||||
|
}
|
3
nvim/.config/nvim/lua/plugins/vim-tmux-navigator.lua
Normal file
3
nvim/.config/nvim/lua/plugins/vim-tmux-navigator.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
return {
|
||||||
|
'christoomey/vim-tmux-navigator',
|
||||||
|
}
|
13
nvim/.config/nvim/lua/plugins/which-key.lua
Normal file
13
nvim/.config/nvim/lua/plugins/which-key.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
return {
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
init = function()
|
||||||
|
vim.o.timeout = true
|
||||||
|
vim.o.timeoutlen = 300
|
||||||
|
end,
|
||||||
|
opts = {
|
||||||
|
-- your configuration comes here
|
||||||
|
-- or leave it empty to use the default settings
|
||||||
|
-- refer to the configuration section below
|
||||||
|
}
|
||||||
|
}
|
@ -4,7 +4,6 @@ local exec = vim.api.nvim_exec -- execute Vimscript
|
|||||||
local g = vim.g -- global variables
|
local 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
|
||||||
@ -26,7 +25,7 @@ opt.cursorline = true -- highlight current line
|
|||||||
opt.ignorecase = true -- Ignore case on search
|
opt.ignorecase = true -- Ignore case on search
|
||||||
opt.smartcase = true -- ignore lowercse for the whoel pattern
|
opt.smartcase = true -- ignore lowercse for the whoel pattern
|
||||||
|
|
||||||
-- opt.completeopt = 'menu,noselect,noinsert' -- completion options
|
opt.completeopt = 'menuone,noselect,noinsert' -- completion options
|
||||||
|
|
||||||
opt.spell = true
|
opt.spell = true
|
||||||
opt.spelllang = {'fr', 'en'}
|
opt.spelllang = {'fr', 'en'}
|
||||||
@ -48,4 +47,6 @@ exec([[
|
|||||||
augroup end
|
augroup end
|
||||||
]], false)
|
]], false)
|
||||||
|
|
||||||
cmd('colorscheme gruvbox')
|
|
||||||
|
-- Python 3
|
||||||
|
g.python3_host_prog="~/.venv/nvim/bin/python"
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
let g:lightline = {
|
|
||||||
\ 'colorscheme': 'wombat',
|
|
||||||
\ 'active': {
|
|
||||||
\ 'left': [ [ 'mode', 'paste' ],
|
|
||||||
\ [ 'gitbranch', 'readonly', 'relativepath', 'modified'] ]
|
|
||||||
\ },
|
|
||||||
\ 'component_function': {
|
|
||||||
\ 'gitbranch': 'FugitiveHead'
|
|
||||||
\ },
|
|
||||||
\ }
|
|
@ -1,101 +0,0 @@
|
|||||||
let g:compe = {}
|
|
||||||
let g:compe.enabled = v:true
|
|
||||||
let g:compe.autocomplete = v:true
|
|
||||||
let g:compe.debug = v:false
|
|
||||||
let g:compe.min_length = 1
|
|
||||||
let g:compe.preselect = 'enable'
|
|
||||||
let g:compe.throttle_time = 80
|
|
||||||
let g:compe.source_timeout = 200
|
|
||||||
let g:compe.resolve_timeout = 800
|
|
||||||
let g:compe.incomplete_delay = 400
|
|
||||||
let g:compe.max_abbr_width = 100
|
|
||||||
let g:compe.max_kind_width = 100
|
|
||||||
let g:compe.max_menu_width = 100
|
|
||||||
let g:compe.documentation = v:true
|
|
||||||
|
|
||||||
let g:compe.source = {}
|
|
||||||
let g:compe.source.path = v:true
|
|
||||||
let g:compe.source.buffer = v:true
|
|
||||||
let g:compe.source.calc = v:true
|
|
||||||
let g:compe.source.nvim_lsp = v:true
|
|
||||||
let g:compe.source.nvim_lua = v:true
|
|
||||||
let g:compe.source.vsnip = v:true
|
|
||||||
let g:compe.source.ultisnips = v:true
|
|
||||||
let g:compe.source.luasnip = v:true
|
|
||||||
let g:compe.source.emoji = v:false
|
|
||||||
|
|
||||||
" NOTE: You can use other key to expand snippet.
|
|
||||||
|
|
||||||
|
|
||||||
" Expand
|
|
||||||
imap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
|
|
||||||
smap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
|
|
||||||
|
|
||||||
" Expand or jump
|
|
||||||
imap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
|
|
||||||
smap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
|
|
||||||
|
|
||||||
" Jump forward or backward
|
|
||||||
imap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
|
|
||||||
smap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
|
|
||||||
imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
|
|
||||||
smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
|
|
||||||
|
|
||||||
" Select or cut text to use as $TM_SELECTED_TEXT in the next snippet.
|
|
||||||
" See https://github.com/hrsh7th/vim-vsnip/pull/50
|
|
||||||
nmap s <Plug>(vsnip-select-text)
|
|
||||||
xmap s <Plug>(vsnip-select-text)
|
|
||||||
nmap S <Plug>(vsnip-cut-text)
|
|
||||||
xmap S <Plug>(vsnip-cut-text)
|
|
||||||
|
|
||||||
" " If you want to use snippet for multiple filetypes, you can `g:vsnip_filetypes` for it.
|
|
||||||
" let g:vsnip_filetypes = {}
|
|
||||||
" let g:vsnip_filetypes.javascriptreact = ['javascript']
|
|
||||||
" let g:vsnip_filetypes.typescriptreact = ['typescript']
|
|
||||||
|
|
||||||
lua << EOF
|
|
||||||
local t = function(str)
|
|
||||||
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
|
||||||
end
|
|
||||||
|
|
||||||
local check_back_space = function()
|
|
||||||
local col = vim.fn.col('.') - 1
|
|
||||||
if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
|
|
||||||
return true
|
|
||||||
else
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Use (s-)tab to:
|
|
||||||
--- move to prev/next item in completion menuone
|
|
||||||
--- jump to prev/next snippet's placeholder
|
|
||||||
_G.tab_complete = function()
|
|
||||||
if vim.fn.pumvisible() == 1 then
|
|
||||||
return t "<C-n>"
|
|
||||||
elseif check_back_space() then
|
|
||||||
return t "<Tab>"
|
|
||||||
else
|
|
||||||
return vim.fn['compe#complete']()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
_G.s_tab_complete = function()
|
|
||||||
if vim.fn.pumvisible() == 1 then
|
|
||||||
return t "<C-p>"
|
|
||||||
else
|
|
||||||
return t "<S-Tab>"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
|
||||||
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
|
||||||
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
|
||||||
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
|
||||||
|
|
||||||
--This line is important for auto-import
|
|
||||||
vim.api.nvim_set_keymap('i', '<cr>', 'compe#confirm("<cr>")', { expr = true })
|
|
||||||
vim.api.nvim_set_keymap('i', '<c-space>', 'compe#complete()', { expr = true })
|
|
||||||
EOF
|
|
||||||
|
|
||||||
let g:vsnip_snippet_dir = expand('~/.config/nvim/vsnips')
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
" auto-install vim-plug
|
|
||||||
if empty(glob('~/.config/nvim/autoload/plug.vim'))
|
|
||||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
|
|
||||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
||||||
"autocmd VimEnter * PlugInstall
|
|
||||||
"autocmd VimEnter * PlugInstall | source $MYVIMRC
|
|
||||||
endif
|
|
||||||
|
|
||||||
call plug#begin('~/.config/nvim/autoload/plugged')
|
|
||||||
|
|
||||||
Plug 'jnurmine/Zenburn'
|
|
||||||
Plug 'itchyny/lightline.vim'
|
|
||||||
|
|
||||||
"Plug 'tpope/vim-sensible'
|
|
||||||
Plug 'tpope/vim-fugitive'
|
|
||||||
Plug 'mhinz/vim-signify'
|
|
||||||
Plug 'tpope/vim-surround'
|
|
||||||
Plug 'tpope/vim-repeat'
|
|
||||||
|
|
||||||
Plug 'junegunn/goyo.vim'
|
|
||||||
Plug 'christoomey/vim-tmux-navigator'
|
|
||||||
Plug 'Yggdroot/indentLine'
|
|
||||||
|
|
||||||
" Plug 'SirVer/ultisnips'
|
|
||||||
" Plug 'honza/vim-snippets'
|
|
||||||
Plug 'neovim/nvim-lspconfig'
|
|
||||||
Plug 'hrsh7th/nvim-compe'
|
|
||||||
Plug 'hrsh7th/vim-vsnip'
|
|
||||||
Plug 'hrsh7th/vim-vsnip-integ'
|
|
||||||
Plug 'rafamadriz/friendly-snippets'
|
|
||||||
|
|
||||||
" Plug 'nvim-lua/completion-nvim'
|
|
||||||
|
|
||||||
Plug 'nvim-lua/popup.nvim'
|
|
||||||
Plug 'nvim-lua/plenary.nvim'
|
|
||||||
Plug 'nvim-telescope/telescope.nvim'
|
|
||||||
|
|
||||||
Plug 'lervag/vimtex'
|
|
||||||
|
|
||||||
" Highlight on Yank
|
|
||||||
Plug 'machakann/vim-highlightedyank'
|
|
||||||
" Autoclose parenthesis
|
|
||||||
" Plug 'cohama/lexima.vim'
|
|
||||||
Plug 'jiangmiao/auto-pairs'
|
|
||||||
|
|
||||||
" Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
|
||||||
|
|
||||||
call plug#end()
|
|
@ -1,25 +0,0 @@
|
|||||||
let maplocalleader = "\<Space>"
|
|
||||||
|
|
||||||
let g:tex_conceal = ""
|
|
||||||
set conceallevel=0
|
|
||||||
|
|
||||||
let g:vimtex_compiler_latexmk = {
|
|
||||||
\ 'backend' : 'nvim',
|
|
||||||
\ 'background' : 1,
|
|
||||||
\ 'build_dir' : '',
|
|
||||||
\ 'callback' : 0,
|
|
||||||
\ 'continuous' : 1,
|
|
||||||
\ 'options' : [
|
|
||||||
\ '-pdf',
|
|
||||||
\ '-verbose',
|
|
||||||
\ '-file-line-error',
|
|
||||||
\ '-synctex=1',
|
|
||||||
\ '-interaction=nonstopmode',
|
|
||||||
\ '-silent',
|
|
||||||
\ '-shell-escape',
|
|
||||||
\ ],
|
|
||||||
\}
|
|
||||||
let g:vimtex_view_method = 'zathura'
|
|
||||||
|
|
||||||
" Les fichiers sty et cls sont vus comme des fichiers tex
|
|
||||||
autocmd BufRead,BufNewFile *.{sty,cls} setlocal syntax=tex
|
|
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"image": {
|
|
||||||
"prefix": "image",
|
|
||||||
"body": [
|
|
||||||
".. image:: $1",
|
|
||||||
"\t:height: 200px",
|
|
||||||
"\t:alt: $2",
|
|
||||||
"$0"
|
|
||||||
],
|
|
||||||
"description": "Insert image"
|
|
||||||
},
|
|
||||||
"etape": {
|
|
||||||
"prefix": ["etape", "étape"],
|
|
||||||
"body": [
|
|
||||||
"Étape ${1:1}: $2",
|
|
||||||
"$0"
|
|
||||||
],
|
|
||||||
"description": "Insert image"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"tabular": {
|
|
||||||
"prefix": "tabular",
|
|
||||||
"body": [
|
|
||||||
"\\\\begin{tabular}{$1}",
|
|
||||||
"\\\\hline",
|
|
||||||
"\t$0",
|
|
||||||
"\\\\hline",
|
|
||||||
"\\\\end{tabular}"
|
|
||||||
],
|
|
||||||
"description": "tabular"
|
|
||||||
},
|
|
||||||
"center": {
|
|
||||||
"prefix": "center",
|
|
||||||
"body": [
|
|
||||||
"\\\\begin{center}",
|
|
||||||
"\t$0",
|
|
||||||
"\\\\end{center}"
|
|
||||||
],
|
|
||||||
"description": "center"
|
|
||||||
},
|
|
||||||
"minipage": {
|
|
||||||
"prefix": "minipage",
|
|
||||||
"body": [
|
|
||||||
"\\\\begin{minipage}{${1:0.5}${2:\\\\linewidth}}",
|
|
||||||
"\t$0",
|
|
||||||
"\\\\end{minipage}"
|
|
||||||
],
|
|
||||||
"description": "minipage"
|
|
||||||
}
|
|
||||||
}
|
|
2
nvim/.latexmkrc
Normal file
2
nvim/.latexmkrc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
$pdf_mode = 4;
|
||||||
|
$lualatex='lualatex --interaction=nonstopmode -shell-escape';
|
5
qtile/.config/qtile/autostart.sh
Executable file
5
qtile/.config/qtile/autostart.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
nm-applet &
|
||||||
|
pasystray &
|
||||||
|
nextcloud &
|
||||||
|
xrandr --output VGA-1 --off --output HDMI-1 --mode 1920x1080 --pos 1080x420 --rotate normal --output DP-1 --off --output HDMI-2 --mode 1920x1080 --pos 0x0 --rotate left --output DP-2 --off
|
267
qtile/.config/qtile/config.py
Normal file
267
qtile/.config/qtile/config.py
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
# Copyright (c) 2010 Aldo Cortesi
|
||||||
|
# Copyright (c) 2010, 2014 dequis
|
||||||
|
# Copyright (c) 2012 Randall Ma
|
||||||
|
# Copyright (c) 2012-2014 Tycho Andersen
|
||||||
|
# Copyright (c) 2012 Craig Barnes
|
||||||
|
# Copyright (c) 2013 horsik
|
||||||
|
# Copyright (c) 2013 Tao Sauvage
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
|
||||||
|
from libqtile.config import Key, Screen, Group, Drag, Click, ScratchPad, DropDown
|
||||||
|
from libqtile.command import lazy
|
||||||
|
from libqtile import layout, bar, widget, extension, hook
|
||||||
|
from libqtile.log_utils import logger
|
||||||
|
from os.path import expanduser
|
||||||
|
from subprocess import call
|
||||||
|
|
||||||
|
|
||||||
|
from typing import List # noqa: F401
|
||||||
|
|
||||||
|
wmname = "???"
|
||||||
|
MOD = "mod4"
|
||||||
|
TERM = "urxvt"
|
||||||
|
|
||||||
|
# Base16 - hybrid (with 5 and 13 from jmbi)
|
||||||
|
colors = {
|
||||||
|
# special
|
||||||
|
"FG": "#c5c8c6",
|
||||||
|
"BG": "#1d1f21",
|
||||||
|
"C": "#c5c8c6",
|
||||||
|
# black
|
||||||
|
0: "#282a2e",
|
||||||
|
8: "#373b41",
|
||||||
|
# red
|
||||||
|
1: "#a54242",
|
||||||
|
9: "#cc6666",
|
||||||
|
# green
|
||||||
|
2: "#8c9440",
|
||||||
|
10: "#b5bd68",
|
||||||
|
# yellow
|
||||||
|
3: "#de935f",
|
||||||
|
11: "#f0c674",
|
||||||
|
# blue
|
||||||
|
4: "#5f819d",
|
||||||
|
12: "#81a2be",
|
||||||
|
# magenta
|
||||||
|
5: "#d13516",
|
||||||
|
13: "#c25431",
|
||||||
|
# cyan
|
||||||
|
6: "#5e8d87",
|
||||||
|
14: "#8abeb7",
|
||||||
|
# white
|
||||||
|
7: "#707880",
|
||||||
|
15: "#c5c8c6",
|
||||||
|
}
|
||||||
|
|
||||||
|
keys = [
|
||||||
|
Key([MOD], "f", lazy.window.toggle_floating()),
|
||||||
|
# Moving inside a screen
|
||||||
|
Key([MOD], "Tab", lazy.layout.next()),
|
||||||
|
Key([MOD], "j", lazy.layout.down()),
|
||||||
|
Key([MOD], "k", lazy.layout.up()),
|
||||||
|
Key([MOD, "shift"], "Tab", lazy.layout.rotate()),
|
||||||
|
# Key([MOD, "shift"], "Tab", lazy.spawncmd()), # circle inside layout
|
||||||
|
Key([MOD, "shift"], "k", lazy.layout.shuffle_up()),
|
||||||
|
Key([MOD, "shift"], "j", lazy.layout.shuffle_down()),
|
||||||
|
# Move between screens
|
||||||
|
Key([MOD], "l", lazy.to_screen(0)),
|
||||||
|
Key([MOD], "h", lazy.to_screen(1)),
|
||||||
|
# Key([MOD, "shift"], "l", move to screen 1),
|
||||||
|
# Key([MOD, "shift"], "h", move to screen 0),
|
||||||
|
# Toggle between different layouts as defined below
|
||||||
|
Key([MOD], "space", lazy.next_layout()),
|
||||||
|
# Toggle between split and unsplit sides of stack.
|
||||||
|
# Split = all windows displayed
|
||||||
|
# Unsplit = 1 window displayed, like Max layout, but still with
|
||||||
|
# multiple stack panes
|
||||||
|
# Key([MOD, "shift"], "Return", lazy.layout.toggle_split()),
|
||||||
|
# Swap panes of split stack
|
||||||
|
# Key([MOD, "shift"], "space", lazy.layout.rotate()),
|
||||||
|
# Screens
|
||||||
|
Key([MOD], "r", lazy.spawncmd()),
|
||||||
|
# Key([MOD], 'r', lazy.run_extension(extension.DmenuRun(
|
||||||
|
# dmenu_prompt=">",
|
||||||
|
# dmenu_font="Andika-8",
|
||||||
|
# background="#15181a",
|
||||||
|
# foreground="#00ff00",
|
||||||
|
# selected_background="#079822",
|
||||||
|
# selected_foreground="#fff",
|
||||||
|
# dmenu_height=24, # Only supported by some dmenu forks
|
||||||
|
# ))),
|
||||||
|
Key([MOD], "Return", lazy.spawn(TERM)),
|
||||||
|
Key([MOD], "q", lazy.window.kill()),
|
||||||
|
Key([MOD, "control"], "r", lazy.restart()),
|
||||||
|
Key([MOD, "control"], "q", lazy.shutdown()),
|
||||||
|
Key([MOD, "control"], "equal", lazy.spawn("systemctl suspend")),
|
||||||
|
# Change the volume if our keyboard has keys
|
||||||
|
Key([], "XF86AudioRaiseVolume", lazy.spawn("pamixer -i 2")),
|
||||||
|
Key([], "XF86AudioLowerVolume", lazy.spawn("pamixer -d 2")),
|
||||||
|
Key([], "XF86AudioMute", lazy.spawn("pamixer -t")),
|
||||||
|
]
|
||||||
|
|
||||||
|
groups = [
|
||||||
|
Group("t:", spawn="firefox", layout="Tall", persist=True),
|
||||||
|
Group("y:", spawn="thunderbird", layout="verticaltile", persist=True),
|
||||||
|
Group("u:", spawn=TERM+" -e sh -c tmuxp load enseignement", layout="TallRight", persist=True),
|
||||||
|
Group("i:", layout="Wide", persist=True),
|
||||||
|
Group("o:", layout="TallRight", persist=True),
|
||||||
|
Group("p:", layout="Wide", persist=True),
|
||||||
|
]
|
||||||
|
|
||||||
|
groups_keys = ["t", "y", "u", "i", "o", "p"]
|
||||||
|
|
||||||
|
for i, g in enumerate(groups):
|
||||||
|
k = groups_keys[i]
|
||||||
|
keys.extend(
|
||||||
|
[
|
||||||
|
# mod1 + letter of group = switch to group
|
||||||
|
Key([MOD], k, lazy.group[g.name].toscreen()),
|
||||||
|
# mod1 + shift + letter of group = switch to & move focused window to group
|
||||||
|
Key(
|
||||||
|
[MOD, "shift"], k, lazy.window.togroup(g.name)
|
||||||
|
), # , lazy.group[g.name].toscreen()),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
groups.append(
|
||||||
|
ScratchPad(
|
||||||
|
"scratchpad",
|
||||||
|
[
|
||||||
|
DropDown(
|
||||||
|
"music", TERM+" -e sh -c mocp", x=0.25, y=0.25, height=0.5, width=0.5, opacity=0.8
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
keys.extend(
|
||||||
|
[
|
||||||
|
Key([MOD], "m", lazy.group["scratchpad"].dropdown_toggle("music")),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
borders = {
|
||||||
|
"border_focus": colors[13],
|
||||||
|
"border_normal": colors["BG"],
|
||||||
|
}
|
||||||
|
|
||||||
|
layouts = [
|
||||||
|
layout.Max(),
|
||||||
|
layout.VerticalTile(**borders),
|
||||||
|
layout.MonadTall(
|
||||||
|
name="Tall",
|
||||||
|
align=0,
|
||||||
|
ratio=0.5,
|
||||||
|
**borders,
|
||||||
|
),
|
||||||
|
layout.MonadTall(
|
||||||
|
name="TallRight",
|
||||||
|
align=0,
|
||||||
|
ratio=0.7,
|
||||||
|
**borders,
|
||||||
|
),
|
||||||
|
layout.MonadWide(
|
||||||
|
name="Wide",
|
||||||
|
ratio=0.8,
|
||||||
|
**borders,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
widget_defaults = dict(
|
||||||
|
font="DroidSans",
|
||||||
|
fontsize=12,
|
||||||
|
padding=3,
|
||||||
|
)
|
||||||
|
extension_defaults = widget_defaults.copy()
|
||||||
|
|
||||||
|
screens = [
|
||||||
|
Screen(),
|
||||||
|
Screen(
|
||||||
|
top=bar.Bar(
|
||||||
|
[
|
||||||
|
widget.GroupBox(
|
||||||
|
active=colors["FG"],
|
||||||
|
foreground=colors[8],
|
||||||
|
highlight_color=[colors[1], colors[13]],
|
||||||
|
highlight_method="border",
|
||||||
|
this_current_screen_border=colors[13],
|
||||||
|
this_screen_border=colors[8],
|
||||||
|
other_current_screen_border=colors[13],
|
||||||
|
other_screen_border=colors[8],
|
||||||
|
),
|
||||||
|
widget.Prompt(
|
||||||
|
background=colors[13],
|
||||||
|
),
|
||||||
|
# widget.WindowName(),
|
||||||
|
widget.Spacer(bar.STRETCH),
|
||||||
|
widget.Clock(
|
||||||
|
format="%a %d %B %Y %H:%M",
|
||||||
|
background=colors[13],
|
||||||
|
foreground=colors[15],
|
||||||
|
),
|
||||||
|
widget.Systray(),
|
||||||
|
# widget.CurrentLayoutIcon(scale=0.5),
|
||||||
|
],
|
||||||
|
size=24,
|
||||||
|
background=colors["BG"],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
# Drag floating layouts.
|
||||||
|
mouse = [
|
||||||
|
Drag(
|
||||||
|
[MOD],
|
||||||
|
"Button1",
|
||||||
|
lazy.window.set_position_floating(),
|
||||||
|
start=lazy.window.get_position(),
|
||||||
|
),
|
||||||
|
Drag(
|
||||||
|
[MOD], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()
|
||||||
|
),
|
||||||
|
Click([MOD], "Button2", lazy.window.bring_to_front()),
|
||||||
|
]
|
||||||
|
|
||||||
|
dgroups_key_binder = None
|
||||||
|
dgroups_app_rules = [] # type: List
|
||||||
|
main = None
|
||||||
|
follow_mouse_focus = True
|
||||||
|
bring_front_click = False
|
||||||
|
cursor_warp = False
|
||||||
|
auto_fullscreen = True
|
||||||
|
focus_on_window_activation = "smart"
|
||||||
|
|
||||||
|
@hook.subscribe.client_new
|
||||||
|
def floating_dialogs(window):
|
||||||
|
dialog = window.window.get_wm_type() == 'dialog'
|
||||||
|
transient = window.window.get_wm_transient_for()
|
||||||
|
if dialog or transient:
|
||||||
|
window.floating = True
|
||||||
|
|
||||||
|
@hook.subscribe.startup_once
|
||||||
|
def autostart():
|
||||||
|
home = expanduser("~")
|
||||||
|
call([home + "/.config/qtile/autostart.sh"])
|
||||||
|
|
||||||
|
|
||||||
|
@hook.subscribe.screen_change
|
||||||
|
def restart_on_randr(qtile):
|
||||||
|
qtile.cmd_restart()
|
2
qtile/.config/qtile/dualscreen.sh
Executable file
2
qtile/.config/qtile/dualscreen.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
xrandr --output VGA-1 --off --output HDMI-1 --mode 1920x1080 --pos 1080x420 --rotate normal --output DP-1 --off --output HDMI-2 --mode 1920x1080 --pos 0x0 --rotate left --output DP-2 --off
|
19
qutebrowser/.config/qutebrowser/autoconfig.yml
Normal file
19
qutebrowser/.config/qutebrowser/autoconfig.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# If a config.py file exists, this file is ignored unless it's explicitly loaded
|
||||||
|
# via config.load_autoconfig(). For more information, see:
|
||||||
|
# https://github.com/qutebrowser/qutebrowser/blob/master/doc/help/configuring.asciidoc#loading-autoconfigyml
|
||||||
|
# DO NOT edit this file by hand, qutebrowser will overwrite it.
|
||||||
|
# Instead, create a config.py - see :help for details.
|
||||||
|
|
||||||
|
config_version: 2
|
||||||
|
settings:
|
||||||
|
auto_save.session:
|
||||||
|
global: true
|
||||||
|
content.blocking.method:
|
||||||
|
global: both
|
||||||
|
content.geolocation:
|
||||||
|
https://www.reseau-canope.fr: false
|
||||||
|
spellcheck.languages:
|
||||||
|
global:
|
||||||
|
- fr-FR
|
||||||
|
zoom.default:
|
||||||
|
global: 120%
|
0
qutebrowser/.config/qutebrowser/bookmarks/urls
Normal file
0
qutebrowser/.config/qutebrowser/bookmarks/urls
Normal file
2
qutebrowser/.config/qutebrowser/config.py
Normal file
2
qutebrowser/.config/qutebrowser/config.py
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
config.load_autoconfig()
|
||||||
|
config.source("gruvbox_dark_medium.py")
|
300
qutebrowser/.config/qutebrowser/gruvbox_dark_medium.py
Normal file
300
qutebrowser/.config/qutebrowser/gruvbox_dark_medium.py
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
|
||||||
|
# Base16 qutebrowser template by theova
|
||||||
|
# Gruvbox dark, medium scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
|
||||||
|
|
||||||
|
base00 = "#282828"
|
||||||
|
base01 = "#3c3836"
|
||||||
|
base02 = "#504945"
|
||||||
|
base03 = "#665c54"
|
||||||
|
base04 = "#bdae93"
|
||||||
|
base05 = "#d5c4a1"
|
||||||
|
base06 = "#ebdbb2"
|
||||||
|
base07 = "#fbf1c7"
|
||||||
|
base08 = "#fb4934"
|
||||||
|
base09 = "#fe8019"
|
||||||
|
base0A = "#fabd2f"
|
||||||
|
base0B = "#b8bb26"
|
||||||
|
base0C = "#8ec07c"
|
||||||
|
base0D = "#83a598"
|
||||||
|
base0E = "#d3869b"
|
||||||
|
base0F = "#d65d0e"
|
||||||
|
|
||||||
|
# set qutebrowser colors
|
||||||
|
|
||||||
|
# Text color of the completion widget. May be a single color to use for
|
||||||
|
# all columns or a list of three colors, one for each column.
|
||||||
|
c.colors.completion.fg = base05
|
||||||
|
|
||||||
|
# Background color of the completion widget for odd rows.
|
||||||
|
c.colors.completion.odd.bg = base01
|
||||||
|
|
||||||
|
# Background color of the completion widget for even rows.
|
||||||
|
c.colors.completion.even.bg = base00
|
||||||
|
|
||||||
|
# Foreground color of completion widget category headers.
|
||||||
|
c.colors.completion.category.fg = base0A
|
||||||
|
|
||||||
|
# Background color of the completion widget category headers.
|
||||||
|
c.colors.completion.category.bg = base00
|
||||||
|
|
||||||
|
# Top border color of the completion widget category headers.
|
||||||
|
c.colors.completion.category.border.top = base00
|
||||||
|
|
||||||
|
# Bottom border color of the completion widget category headers.
|
||||||
|
c.colors.completion.category.border.bottom = base00
|
||||||
|
|
||||||
|
# Foreground color of the selected completion item.
|
||||||
|
c.colors.completion.item.selected.fg = base05
|
||||||
|
|
||||||
|
# Background color of the selected completion item.
|
||||||
|
c.colors.completion.item.selected.bg = base02
|
||||||
|
|
||||||
|
# Top border color of the selected completion item.
|
||||||
|
c.colors.completion.item.selected.border.top = base02
|
||||||
|
|
||||||
|
# Bottom border color of the selected completion item.
|
||||||
|
c.colors.completion.item.selected.border.bottom = base02
|
||||||
|
|
||||||
|
# Foreground color of the matched text in the selected completion item.
|
||||||
|
c.colors.completion.item.selected.match.fg = base0B
|
||||||
|
|
||||||
|
# Foreground color of the matched text in the completion.
|
||||||
|
c.colors.completion.match.fg = base0F
|
||||||
|
|
||||||
|
# Color of the scrollbar handle in the completion view.
|
||||||
|
c.colors.completion.scrollbar.fg = base05
|
||||||
|
|
||||||
|
# Color of the scrollbar in the completion view.
|
||||||
|
c.colors.completion.scrollbar.bg = base00
|
||||||
|
|
||||||
|
# Background color of disabled items in the context menu.
|
||||||
|
c.colors.contextmenu.disabled.bg = base01
|
||||||
|
|
||||||
|
# Foreground color of disabled items in the context menu.
|
||||||
|
c.colors.contextmenu.disabled.fg = base04
|
||||||
|
|
||||||
|
# Background color of the context menu. If set to null, the Qt default is used.
|
||||||
|
c.colors.contextmenu.menu.bg = base00
|
||||||
|
|
||||||
|
# Foreground color of the context menu. If set to null, the Qt default is used.
|
||||||
|
c.colors.contextmenu.menu.fg = base05
|
||||||
|
|
||||||
|
# Background color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||||
|
c.colors.contextmenu.selected.bg = base02
|
||||||
|
|
||||||
|
#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||||
|
c.colors.contextmenu.selected.fg = base05
|
||||||
|
|
||||||
|
# Background color for the download bar.
|
||||||
|
c.colors.downloads.bar.bg = base00
|
||||||
|
|
||||||
|
# Color gradient start for download text.
|
||||||
|
c.colors.downloads.start.fg = base00
|
||||||
|
|
||||||
|
# Color gradient start for download backgrounds.
|
||||||
|
c.colors.downloads.start.bg = base0D
|
||||||
|
|
||||||
|
# Color gradient end for download text.
|
||||||
|
c.colors.downloads.stop.fg = base00
|
||||||
|
|
||||||
|
# Color gradient stop for download backgrounds.
|
||||||
|
c.colors.downloads.stop.bg = base0C
|
||||||
|
|
||||||
|
# Foreground color for downloads with errors.
|
||||||
|
c.colors.downloads.error.fg = base08
|
||||||
|
|
||||||
|
# Font color for hints.
|
||||||
|
c.colors.hints.fg = base00
|
||||||
|
|
||||||
|
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||||
|
# for transparency.
|
||||||
|
c.colors.hints.bg = base0A
|
||||||
|
|
||||||
|
# Font color for the matched part of hints.
|
||||||
|
c.colors.hints.match.fg = base05
|
||||||
|
|
||||||
|
# Text color for the keyhint widget.
|
||||||
|
c.colors.keyhint.fg = base05
|
||||||
|
|
||||||
|
# Highlight color for keys to complete the current keychain.
|
||||||
|
c.colors.keyhint.suffix.fg = base05
|
||||||
|
|
||||||
|
# Background color of the keyhint widget.
|
||||||
|
c.colors.keyhint.bg = base00
|
||||||
|
|
||||||
|
# Foreground color of an error message.
|
||||||
|
c.colors.messages.error.fg = base00
|
||||||
|
|
||||||
|
# Background color of an error message.
|
||||||
|
c.colors.messages.error.bg = base08
|
||||||
|
|
||||||
|
# Border color of an error message.
|
||||||
|
c.colors.messages.error.border = base08
|
||||||
|
|
||||||
|
# Foreground color of a warning message.
|
||||||
|
c.colors.messages.warning.fg = base00
|
||||||
|
|
||||||
|
# Background color of a warning message.
|
||||||
|
c.colors.messages.warning.bg = base0E
|
||||||
|
|
||||||
|
# Border color of a warning message.
|
||||||
|
c.colors.messages.warning.border = base0E
|
||||||
|
|
||||||
|
# Foreground color of an info message.
|
||||||
|
c.colors.messages.info.fg = base05
|
||||||
|
|
||||||
|
# Background color of an info message.
|
||||||
|
c.colors.messages.info.bg = base00
|
||||||
|
|
||||||
|
# Border color of an info message.
|
||||||
|
c.colors.messages.info.border = base00
|
||||||
|
|
||||||
|
# Foreground color for prompts.
|
||||||
|
c.colors.prompts.fg = base05
|
||||||
|
|
||||||
|
# Border used around UI elements in prompts.
|
||||||
|
c.colors.prompts.border = base00
|
||||||
|
|
||||||
|
# Background color for prompts.
|
||||||
|
c.colors.prompts.bg = base00
|
||||||
|
|
||||||
|
# Background color for the selected item in filename prompts.
|
||||||
|
c.colors.prompts.selected.bg = base02
|
||||||
|
|
||||||
|
# Foreground color for the selected item in filename prompts.
|
||||||
|
c.colors.prompts.selected.fg = base05
|
||||||
|
|
||||||
|
# Foreground color of the statusbar.
|
||||||
|
c.colors.statusbar.normal.fg = base0B
|
||||||
|
|
||||||
|
# Background color of the statusbar.
|
||||||
|
c.colors.statusbar.normal.bg = base00
|
||||||
|
|
||||||
|
# Foreground color of the statusbar in insert mode.
|
||||||
|
c.colors.statusbar.insert.fg = base00
|
||||||
|
|
||||||
|
# Background color of the statusbar in insert mode.
|
||||||
|
c.colors.statusbar.insert.bg = base0A
|
||||||
|
|
||||||
|
# Foreground color of the statusbar in passthrough mode.
|
||||||
|
c.colors.statusbar.passthrough.fg = base00
|
||||||
|
|
||||||
|
# Background color of the statusbar in passthrough mode.
|
||||||
|
c.colors.statusbar.passthrough.bg = base0C
|
||||||
|
|
||||||
|
# Foreground color of the statusbar in private browsing mode.
|
||||||
|
c.colors.statusbar.private.fg = base00
|
||||||
|
|
||||||
|
# Background color of the statusbar in private browsing mode.
|
||||||
|
c.colors.statusbar.private.bg = base01
|
||||||
|
|
||||||
|
# Foreground color of the statusbar in command mode.
|
||||||
|
c.colors.statusbar.command.fg = base05
|
||||||
|
|
||||||
|
# Background color of the statusbar in command mode.
|
||||||
|
c.colors.statusbar.command.bg = base00
|
||||||
|
|
||||||
|
# Foreground color of the statusbar in private browsing + command mode.
|
||||||
|
c.colors.statusbar.command.private.fg = base05
|
||||||
|
|
||||||
|
# Background color of the statusbar in private browsing + command mode.
|
||||||
|
c.colors.statusbar.command.private.bg = base00
|
||||||
|
|
||||||
|
# Foreground color of the statusbar in caret mode.
|
||||||
|
c.colors.statusbar.caret.fg = base00
|
||||||
|
|
||||||
|
# Background color of the statusbar in caret mode.
|
||||||
|
c.colors.statusbar.caret.bg = base0E
|
||||||
|
|
||||||
|
# Foreground color of the statusbar in caret mode with a selection.
|
||||||
|
c.colors.statusbar.caret.selection.fg = base00
|
||||||
|
|
||||||
|
# Background color of the statusbar in caret mode with a selection.
|
||||||
|
c.colors.statusbar.caret.selection.bg = base0D
|
||||||
|
|
||||||
|
# Background color of the progress bar.
|
||||||
|
c.colors.statusbar.progress.bg = base0D
|
||||||
|
|
||||||
|
# Default foreground color of the URL in the statusbar.
|
||||||
|
c.colors.statusbar.url.fg = base05
|
||||||
|
|
||||||
|
# Foreground color of the URL in the statusbar on error.
|
||||||
|
c.colors.statusbar.url.error.fg = base08
|
||||||
|
|
||||||
|
# Foreground color of the URL in the statusbar for hovered links.
|
||||||
|
c.colors.statusbar.url.hover.fg = base05
|
||||||
|
|
||||||
|
# Foreground color of the URL in the statusbar on successful load
|
||||||
|
# (http).
|
||||||
|
c.colors.statusbar.url.success.http.fg = base0C
|
||||||
|
|
||||||
|
# Foreground color of the URL in the statusbar on successful load
|
||||||
|
# (https).
|
||||||
|
c.colors.statusbar.url.success.https.fg = base0B
|
||||||
|
|
||||||
|
# Foreground color of the URL in the statusbar when there's a warning.
|
||||||
|
c.colors.statusbar.url.warn.fg = base0E
|
||||||
|
|
||||||
|
# Background color of the tab bar.
|
||||||
|
c.colors.tabs.bar.bg = base00
|
||||||
|
|
||||||
|
# Color gradient start for the tab indicator.
|
||||||
|
c.colors.tabs.indicator.start = base0D
|
||||||
|
|
||||||
|
# Color gradient end for the tab indicator.
|
||||||
|
c.colors.tabs.indicator.stop = base0C
|
||||||
|
|
||||||
|
# Color for the tab indicator on errors.
|
||||||
|
c.colors.tabs.indicator.error = base08
|
||||||
|
|
||||||
|
# Foreground color of unselected odd tabs.
|
||||||
|
c.colors.tabs.odd.fg = base05
|
||||||
|
|
||||||
|
# Background color of unselected odd tabs.
|
||||||
|
c.colors.tabs.odd.bg = base01
|
||||||
|
|
||||||
|
# Foreground color of unselected even tabs.
|
||||||
|
c.colors.tabs.even.fg = base05
|
||||||
|
|
||||||
|
# Background color of unselected even tabs.
|
||||||
|
c.colors.tabs.even.bg = base00
|
||||||
|
|
||||||
|
# Background color of pinned unselected even tabs.
|
||||||
|
c.colors.tabs.pinned.even.bg = base0C
|
||||||
|
|
||||||
|
# Foreground color of pinned unselected even tabs.
|
||||||
|
c.colors.tabs.pinned.even.fg = base07
|
||||||
|
|
||||||
|
# Background color of pinned unselected odd tabs.
|
||||||
|
c.colors.tabs.pinned.odd.bg = base0B
|
||||||
|
|
||||||
|
# Foreground color of pinned unselected odd tabs.
|
||||||
|
c.colors.tabs.pinned.odd.fg = base07
|
||||||
|
|
||||||
|
# Background color of pinned selected even tabs.
|
||||||
|
c.colors.tabs.pinned.selected.even.bg = base02
|
||||||
|
|
||||||
|
# Foreground color of pinned selected even tabs.
|
||||||
|
c.colors.tabs.pinned.selected.even.fg = base05
|
||||||
|
|
||||||
|
# Background color of pinned selected odd tabs.
|
||||||
|
c.colors.tabs.pinned.selected.odd.bg = base02
|
||||||
|
|
||||||
|
# Foreground color of pinned selected odd tabs.
|
||||||
|
c.colors.tabs.pinned.selected.odd.fg = base05
|
||||||
|
|
||||||
|
# Foreground color of selected odd tabs.
|
||||||
|
c.colors.tabs.selected.odd.fg = base05
|
||||||
|
|
||||||
|
# Background color of selected odd tabs.
|
||||||
|
c.colors.tabs.selected.odd.bg = base0F
|
||||||
|
|
||||||
|
# Foreground color of selected even tabs.
|
||||||
|
c.colors.tabs.selected.even.fg = base05
|
||||||
|
|
||||||
|
# Background color of selected even tabs.
|
||||||
|
c.colors.tabs.selected.even.bg = base0F
|
||||||
|
|
||||||
|
# Background color for webpages if unset (or empty to use the theme's
|
||||||
|
# color).
|
||||||
|
# c.colors.webpage.bg = base00
|
0
qutebrowser/.config/qutebrowser/quickmarks
Normal file
0
qutebrowser/.config/qutebrowser/quickmarks
Normal file
1
qutebrowser/.config/qutebrowser/user.css
Normal file
1
qutebrowser/.config/qutebrowser/user.css
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
58
sway/.config/gammastep/config.ini
Normal file
58
sway/.config/gammastep/config.ini
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
; Global settings
|
||||||
|
[general]
|
||||||
|
; Set the day and night screen temperatures
|
||||||
|
temp-day=5700
|
||||||
|
temp-night=4000
|
||||||
|
; Disable the smooth fade between temperatures when Redshift starts and stops.
|
||||||
|
; 0 will cause an immediate change between screen temperatures.
|
||||||
|
; 1 will gradually apply the new screen temperature over a couple of seconds.
|
||||||
|
fade=1
|
||||||
|
; Solar elevation thresholds.
|
||||||
|
; By default, Redshift will use the current elevation of the sun to determine
|
||||||
|
; whether it is daytime, night or in transition (dawn/dusk). When the sun is
|
||||||
|
; above the degrees specified with elevation-high it is considered daytime and
|
||||||
|
; below elevation-low it is considered night.
|
||||||
|
;elevation-high=3
|
||||||
|
;elevation-low=-6
|
||||||
|
; Custom dawn/dusk intervals.
|
||||||
|
; Instead of using the solar elevation, the time intervals of dawn and dusk
|
||||||
|
; can be specified manually. The times must be specified as HH:MM in 24-hour
|
||||||
|
; format.
|
||||||
|
;dawn-time=6:00-7:45
|
||||||
|
;dusk-time=18:35-20:15
|
||||||
|
; Set the screen brightness. Default is 1.0.
|
||||||
|
; brightness=0.8
|
||||||
|
; It is also possible to use different settings for day and night
|
||||||
|
; since version 1.8.
|
||||||
|
brightness-day=1
|
||||||
|
brightness-night=0.7
|
||||||
|
; Set the screen gamma (for all colors, or each color channel
|
||||||
|
; individually)
|
||||||
|
; gamma=0.8
|
||||||
|
;gamma=0.8:0.7:0.8
|
||||||
|
; This can also be set individually for day and night since
|
||||||
|
; version 1.10.
|
||||||
|
gamma-day=0.8:0.7:0.8
|
||||||
|
gamma-night=0.7
|
||||||
|
; Set the location-provider: 'geoclue2', 'manual'.
|
||||||
|
; The location provider settings are in a different section.
|
||||||
|
location-provider=manual
|
||||||
|
; Set the adjustment-method: 'randr', 'vidmode', 'drm', 'wayland'.
|
||||||
|
; 'randr' is the preferred X11 method, 'vidmode' is an older API
|
||||||
|
; that works in some cases when 'randr' does not.
|
||||||
|
; The adjustment method settings are in a different section.
|
||||||
|
adjustment-method=wayland
|
||||||
|
; Configuration of the location-provider:
|
||||||
|
; type 'gammastep -l PROVIDER:help' to see the settings.
|
||||||
|
; ex: 'gammastep -l manual:help'
|
||||||
|
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
|
||||||
|
; are negative numbers.
|
||||||
|
[manual]
|
||||||
|
lat=46.2
|
||||||
|
lon=5.7
|
||||||
|
; Configuration of the adjustment-method
|
||||||
|
; type 'gammastep -m METHOD:help' to see the settings.
|
||||||
|
; ex: 'gammastep -m randr:help'
|
||||||
|
; In this example, randr is configured to adjust only screen 0.
|
||||||
|
; Note that the numbering starts from 0, so this is actually the first screen.
|
||||||
|
; If this option is not specified, Redshift will try to adjust _all_ screens.
|
25
sway/.config/kanshi/config
Normal file
25
sway/.config/kanshi/config
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
profile maison2 {
|
||||||
|
output eDP-1 disable
|
||||||
|
output "Dell Inc. DELL E2216H 2XT766B1AVTI" position 0,0 transform 90 mode 1920x1080
|
||||||
|
output "Samsung Electric Company LS27A600U HNMR502540" position 1080,240 mode 2560x1440
|
||||||
|
}
|
||||||
|
profile maison {
|
||||||
|
output eDP-1 disable
|
||||||
|
output "Philips Consumer Electronics Company PHL 223V5 ZV01622003292" position 0,0 transform 90 mode 1920x1080
|
||||||
|
output "Samsung Electric Company LS27A600U HNMR502540" position 1080,240 mode 2560x1440
|
||||||
|
}
|
||||||
|
|
||||||
|
profile atelier {
|
||||||
|
output eDP-1 enable scale 1 position 0,1080
|
||||||
|
output "ROW AAA Unknown" mode 1280x800
|
||||||
|
}
|
||||||
|
|
||||||
|
profile bdp {
|
||||||
|
output eDP-1 enable scale 1 position 320,1440
|
||||||
|
output "Dell Inc. DELL U3417W 660X87290G9L" position 0,0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
profile undocked {
|
||||||
|
output eDP-1 enable scale 1
|
||||||
|
}
|
23
sway/.config/mako/config
Normal file
23
sway/.config/mako/config
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
sort=-time
|
||||||
|
layer=overlay
|
||||||
|
background-color=#282828
|
||||||
|
width=300
|
||||||
|
height=110
|
||||||
|
border-size=2
|
||||||
|
border-color=#88c0d0
|
||||||
|
border-radius=5
|
||||||
|
icons=0
|
||||||
|
max-icon-size=64
|
||||||
|
default-timeout=5000
|
||||||
|
ignore-timeout=1
|
||||||
|
font=monospace 10
|
||||||
|
|
||||||
|
[urgency=low]
|
||||||
|
border-color=#ebdbb2
|
||||||
|
|
||||||
|
[urgency=normal]
|
||||||
|
border-color=#d65d0e
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
border-color=#cc241d
|
||||||
|
default-timeout=0
|
124
sway/.config/rofi-pass/config
Normal file
124
sway/.config/rofi-pass/config
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
# permanently set alternative root dir. Use ":" to separate multiple roots
|
||||||
|
# which can be switched at runtime with shift+left/right
|
||||||
|
# root=/path/to/root
|
||||||
|
|
||||||
|
# rofi command. Make sure to have "$@" as last argument
|
||||||
|
_rofi () {
|
||||||
|
rofi -i -no-auto-select "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# default command to generate passwords
|
||||||
|
_pwgen () {
|
||||||
|
pwgen -y "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# image viewer to display qrcode of selected entry
|
||||||
|
# qrencode is needed to generate the image and a viewer
|
||||||
|
# that can read from pipes. Known viewers to work are feh and display
|
||||||
|
_image_viewer () {
|
||||||
|
# feh -
|
||||||
|
display
|
||||||
|
}
|
||||||
|
|
||||||
|
# It is possible to use wl-copy and wl-paste from wl-clipboard
|
||||||
|
# Just uncomment the lines with wl-copy and wl-paste
|
||||||
|
# and comment the xclip lines
|
||||||
|
#
|
||||||
|
_clip_in_primary() {
|
||||||
|
# xclip
|
||||||
|
wl-copy-p
|
||||||
|
}
|
||||||
|
|
||||||
|
_clip_in_clipboard() {
|
||||||
|
#xclip -selection clipboard
|
||||||
|
wl-copy
|
||||||
|
}
|
||||||
|
|
||||||
|
_clip_out_primary() {
|
||||||
|
# xclip -o
|
||||||
|
wl-paste -p
|
||||||
|
}
|
||||||
|
|
||||||
|
_clip_out_clipboard() {
|
||||||
|
# xclip --selection clipboard -o
|
||||||
|
wl-paste
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# xdotool needs the keyboard layout to be set using setxkbmap
|
||||||
|
# You can do this in your autostart scripts (e.g. xinitrc)
|
||||||
|
|
||||||
|
# If for some reason, you cannot do this, you can set the command here.
|
||||||
|
# and set fix_layout to true
|
||||||
|
fix_layout=true
|
||||||
|
|
||||||
|
layout_cmd () {
|
||||||
|
setxkbmap fr
|
||||||
|
}
|
||||||
|
|
||||||
|
# fields to be used
|
||||||
|
URL_field='url'
|
||||||
|
USERNAME_field='user'
|
||||||
|
AUTOTYPE_field='autotype'
|
||||||
|
|
||||||
|
# delay to be used for :delay keyword
|
||||||
|
delay=2
|
||||||
|
|
||||||
|
# rofi-pass needs to close itself before it can type passwords. Set delay here.
|
||||||
|
wait=0.2
|
||||||
|
|
||||||
|
# delay between keypresses when typing (in ms)
|
||||||
|
xdotool_delay=12
|
||||||
|
|
||||||
|
## Programs to be used
|
||||||
|
# Editor
|
||||||
|
EDITOR='gvim -f'
|
||||||
|
|
||||||
|
# Browser
|
||||||
|
BROWSER='xdg-open'
|
||||||
|
|
||||||
|
## Misc settings
|
||||||
|
|
||||||
|
default_do='menu' # menu, autotype, copyPass, typeUser, typePass, copyUser, copyUrl, viewEntry, typeMenu, actionMenu, copyMenu, openUrl
|
||||||
|
auto_enter='false'
|
||||||
|
notify='false'
|
||||||
|
default_autotype='user :tab pass'
|
||||||
|
|
||||||
|
# color of the help messages
|
||||||
|
# leave empty for autodetection
|
||||||
|
help_color="#4872FF"
|
||||||
|
|
||||||
|
# Clipboard settings
|
||||||
|
# Possible options: primary, clipboard, both
|
||||||
|
clip=primary
|
||||||
|
|
||||||
|
# Seconds before clearing pass from clipboard
|
||||||
|
clip_clear=45
|
||||||
|
|
||||||
|
## Options for generating new password entries
|
||||||
|
|
||||||
|
# open new password entries in editor
|
||||||
|
edit_new_pass="true"
|
||||||
|
|
||||||
|
# default_user is also used for password files that have no user field.
|
||||||
|
default_user=:filename
|
||||||
|
#default_user="${ROFI_PASS_DEFAULT_USER-$(whoami)}"
|
||||||
|
#default_user2=mary_ann
|
||||||
|
#password_length=12
|
||||||
|
|
||||||
|
# Custom Keybindings
|
||||||
|
autotype="Alt+1"
|
||||||
|
type_user="Alt+2"
|
||||||
|
type_pass="Alt+3"
|
||||||
|
open_url="Alt+4"
|
||||||
|
copy_name="Alt+u"
|
||||||
|
copy_url="Alt+l"
|
||||||
|
copy_pass="Alt+p"
|
||||||
|
show="Alt+o"
|
||||||
|
copy_entry="Alt+2"
|
||||||
|
type_entry="Alt+1"
|
||||||
|
copy_menu="Alt+c"
|
||||||
|
action_menu="Alt+a"
|
||||||
|
type_menu="Alt+t"
|
||||||
|
help="Alt+h"
|
||||||
|
switch="Alt+x"
|
18
sway/.config/rofi/config.rasi
Normal file
18
sway/.config/rofi/config.rasi
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
configuration {
|
||||||
|
terminal: "kitty";
|
||||||
|
modi: "combi,window,drun";
|
||||||
|
combi-modi: "drun,window";
|
||||||
|
font: "Noto Sans Bold 10";
|
||||||
|
show-icons: true;
|
||||||
|
icon-theme: "Tela circle dark";
|
||||||
|
combi-hide-mode-prefix: true;
|
||||||
|
drun-show-actions: true;
|
||||||
|
drun-display-format: "{name}";
|
||||||
|
disable-history: false;
|
||||||
|
fullscreen: false;
|
||||||
|
hide-scrollbar: true;
|
||||||
|
sidebar-mode: false;
|
||||||
|
auto-select: false;
|
||||||
|
}
|
||||||
|
@theme "/home/lafrite/.local/share/rofi/rofi-themes-collection/themes/spotlight-dark.rasi"
|
274
sway/.config/sway/config
Normal file
274
sway/.config/sway/config
Normal file
@ -0,0 +1,274 @@
|
|||||||
|
# Default config for sway
|
||||||
|
#
|
||||||
|
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||||
|
#
|
||||||
|
# Read `man 5 sway` for a complete reference.
|
||||||
|
|
||||||
|
### Variables
|
||||||
|
#
|
||||||
|
# Logo key. Use Mod1 for Alt.
|
||||||
|
set $mod Mod4
|
||||||
|
# Home row direction keys, like vim
|
||||||
|
set $left h
|
||||||
|
set $down j
|
||||||
|
set $up k
|
||||||
|
set $right l
|
||||||
|
# Your preferred terminal emulator
|
||||||
|
set $term alacritty
|
||||||
|
# Your preferred application launcher
|
||||||
|
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||||
|
# on the original workspace that the command was run on.
|
||||||
|
set $menu rofi -show drun
|
||||||
|
|
||||||
|
set $laptopScreen eDP-1
|
||||||
|
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
|
# output * bg ~/Images/Wallpapers/Pteridium.jpg fill
|
||||||
|
output * bg ~/Images/Wallpapers/coraill.jpg fill
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||||
|
#
|
||||||
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
|
|
||||||
|
### Idle configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# exec swayidle -w \
|
||||||
|
# timeout 300 'swaylock -f -c 000000' \
|
||||||
|
# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||||
|
# before-sleep 'swaylock -f -c 000000'
|
||||||
|
#
|
||||||
|
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||||
|
# your displays after another 300 seconds, and turn your screens back on when
|
||||||
|
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||||
|
|
||||||
|
### Input configuration
|
||||||
|
|
||||||
|
|
||||||
|
input type:keyboard {
|
||||||
|
xkb_layout "fr"
|
||||||
|
xkb_variant ""
|
||||||
|
}
|
||||||
|
|
||||||
|
input * xkb_numlock enable
|
||||||
|
|
||||||
|
input type:touchpad {
|
||||||
|
natural_scroll enabled
|
||||||
|
tap enabled
|
||||||
|
}
|
||||||
|
|
||||||
|
input type:pointer {
|
||||||
|
accel_profile flat
|
||||||
|
pointer_accel 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||||
|
# dwt enabled
|
||||||
|
# tap enabled
|
||||||
|
# natural_scroll enabled
|
||||||
|
# middle_emulation enabled
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||||
|
# Read `man 5 sway-input` for more information about this section.
|
||||||
|
|
||||||
|
### Key bindings
|
||||||
|
#
|
||||||
|
# Basics:
|
||||||
|
#
|
||||||
|
# Start a terminal
|
||||||
|
bindsym $mod+Return exec $term
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bindsym $mod+q kill
|
||||||
|
|
||||||
|
# Start your launcher
|
||||||
|
bindsym $mod+d exec $menu
|
||||||
|
# bindsym $mod+p exec rofi-pass
|
||||||
|
bindsym $mod+p exec tessen
|
||||||
|
bindsym Print exec ~/.local/bin/sway/rofi_screenshot.sh 2> ~/tmp/rofi_debug.log
|
||||||
|
|
||||||
|
# Drag floating windows by holding down $mod and left mouse button.
|
||||||
|
# Resize them with right mouse button + $mod.
|
||||||
|
# Despite the name, also works for non-floating windows.
|
||||||
|
# Change normal to inverse to use left mouse button for resizing and right
|
||||||
|
# mouse button for dragging.
|
||||||
|
floating_modifier $mod normal
|
||||||
|
|
||||||
|
# Reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
# Exit sway (logs you out of your Wayland session)
|
||||||
|
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
||||||
|
#
|
||||||
|
# Moving around:
|
||||||
|
#
|
||||||
|
# Move your focus around
|
||||||
|
bindsym $mod+$left focus left
|
||||||
|
bindsym $mod+$down focus down
|
||||||
|
bindsym $mod+$up focus up
|
||||||
|
bindsym $mod+$right focus right
|
||||||
|
# Or use $mod+[up|down|left|right]
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# Move the focused window with the same, but add Shift
|
||||||
|
bindsym $mod+Shift+$left move left
|
||||||
|
bindsym $mod+Shift+$down move down
|
||||||
|
bindsym $mod+Shift+$up move up
|
||||||
|
bindsym $mod+Shift+$right move right
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
#
|
||||||
|
# Workspaces:
|
||||||
|
#
|
||||||
|
set $ws1 1:
|
||||||
|
set $ws2 2:
|
||||||
|
set $ws3 3:
|
||||||
|
set $ws4 4:
|
||||||
|
set $ws5 5:
|
||||||
|
set $ws6 6:
|
||||||
|
set $ws7 7:
|
||||||
|
set $ws8 8:
|
||||||
|
set $ws9 9:
|
||||||
|
|
||||||
|
bindsym $mod+ampersand workspace $ws1
|
||||||
|
bindsym $mod+eacute workspace $ws2
|
||||||
|
bindsym $mod+quotedbl workspace $ws3
|
||||||
|
bindsym $mod+apostrophe workspace $ws4
|
||||||
|
bindsym $mod+parenleft workspace $ws5
|
||||||
|
bindsym $mod+minus workspace $ws6
|
||||||
|
bindsym $mod+egrave workspace $ws7
|
||||||
|
bindsym $mod+underscore workspace $ws8
|
||||||
|
bindsym $mod+ccedilla workspace $ws9
|
||||||
|
|
||||||
|
bindsym $mod+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+9 move container to workspace $ws9
|
||||||
|
|
||||||
|
|
||||||
|
bindsym $mod+Ctrl+greater move workspace to output right
|
||||||
|
bindsym $mod+Ctrl+less move workspace to output left
|
||||||
|
|
||||||
|
# move to last workspace
|
||||||
|
bindsym $mod+space workspace back_and_forth
|
||||||
|
#
|
||||||
|
# Layout stuff:
|
||||||
|
#
|
||||||
|
# You can "split" the current object of your focus with
|
||||||
|
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||||
|
# respectively.
|
||||||
|
bindsym $mod+b splith
|
||||||
|
bindsym $mod+v splitv
|
||||||
|
|
||||||
|
# Switch the current container between different layout styles
|
||||||
|
# bindsym $mod+s layout stacking
|
||||||
|
# bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# Make the current focus fullscreen
|
||||||
|
bindsym $mod+f fullscreen
|
||||||
|
|
||||||
|
# Toggle the current focus between tiling and floating mode
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# Swap focus between the tiling area and the floating area
|
||||||
|
bindsym $mod+y focus mode_toggle
|
||||||
|
|
||||||
|
# Move focus to the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
#
|
||||||
|
# Scratchpad:
|
||||||
|
#
|
||||||
|
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||||
|
# You can send windows there and get them back later.
|
||||||
|
|
||||||
|
# Move the currently focused window to the scratchpad
|
||||||
|
bindsym $mod+Shift+m move scratchpad
|
||||||
|
|
||||||
|
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||||
|
# If there are multiple scratchpad windows, this command cycles through them.
|
||||||
|
bindsym $mod+m scratchpad show
|
||||||
|
#
|
||||||
|
# Resizing containers:
|
||||||
|
#
|
||||||
|
mode "resize" {
|
||||||
|
bindsym $left resize shrink width 10px
|
||||||
|
bindsym $down resize grow height 10px
|
||||||
|
bindsym $up resize shrink height 10px
|
||||||
|
bindsym $right resize grow width 10px
|
||||||
|
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym Left resize shrink width 10px
|
||||||
|
bindsym Down resize grow height 10px
|
||||||
|
bindsym Up resize shrink height 10px
|
||||||
|
bindsym Right resize grow width 10px
|
||||||
|
|
||||||
|
# Return to default mode
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
#
|
||||||
|
## Gesture
|
||||||
|
#
|
||||||
|
bindgesture swipe:right workspace prev
|
||||||
|
bindgesture swipe:left workspace next
|
||||||
|
|
||||||
|
#
|
||||||
|
# Audio
|
||||||
|
#
|
||||||
|
|
||||||
|
bindsym XF86AudioRaiseVolume exec volumectl -u up
|
||||||
|
bindsym XF86AudioLowerVolume exec volumectl -u down
|
||||||
|
bindsym XF86AudioMute exec volumectl toggle-mute
|
||||||
|
bindsym XF86AudioMicMute exec volumectl -m toggle-mute
|
||||||
|
|
||||||
|
#
|
||||||
|
# Brightness
|
||||||
|
#
|
||||||
|
bindsym XF86MonBrightnessUp exec lightctl up
|
||||||
|
bindsym XF86MonBrightnessDown exec lightctl down
|
||||||
|
|
||||||
|
#
|
||||||
|
# Decoration
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
default_border pixel 2
|
||||||
|
# class border backgr. text indicator child_border
|
||||||
|
client.focused #d65d0e #be5046 #ffffff #be5046 #be5046
|
||||||
|
|
||||||
|
#
|
||||||
|
# Status Bar:
|
||||||
|
#
|
||||||
|
# Read `man 5 sway-bar` for more information about this section.
|
||||||
|
bar {
|
||||||
|
# position top
|
||||||
|
# output $laptopScreen
|
||||||
|
swaybar_command waybar
|
||||||
|
}
|
||||||
|
|
||||||
|
include /etc/sway/config.d/*
|
||||||
|
include ~/.config/sway/config.d/*
|
17
sway/.config/sway/config.d/misc_autostart
Normal file
17
sway/.config/sway/config.d/misc_autostart
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
exec_always blueman-applet
|
||||||
|
exec_always /usr/bin/nm-applet --indicator
|
||||||
|
exec_always nextcloud
|
||||||
|
exec_always /usr/libexec/goa-daemon --replace
|
||||||
|
exec gammastep-indicator
|
||||||
|
exec mako
|
||||||
|
exec "avizo-service"
|
||||||
|
exec_always autotiling-rs
|
||||||
|
|
||||||
|
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
|
|
||||||
|
#exec_always pkill kanshi; exec_always kanshi
|
||||||
|
exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
|
||||||
|
|
||||||
|
exec swaymsg "workspace $ws1; exec firefox;"
|
||||||
|
exec swaymsg "workspace $ws2; exec thunderbird;"
|
||||||
|
exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"
|
11
sway/.config/systemd/user/kanshi.service
Normal file
11
sway/.config/systemd/user/kanshi.service
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Dynamic output configuration for Wayland compositors
|
||||||
|
Documentation=https://sr.ht/~emersion/kanshi
|
||||||
|
BindsTo=sway-session.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/kanshi
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sway-session.target
|
6
sway/.config/systemd/user/sway-session.target
Normal file
6
sway/.config/systemd/user/sway-session.target
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Sway compositor session
|
||||||
|
Documentation=man:systemd.special
|
||||||
|
BindsTo=graphical-session.target
|
||||||
|
Wants=graphical-session-pre.target
|
||||||
|
After=graphical-session-pre.target
|
@ -0,0 +1 @@
|
|||||||
|
/home/lafrite/.config/systemd/user/kanshi.service
|
111
sway/.config/waybar/config
Normal file
111
sway/.config/waybar/config
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
[{
|
||||||
|
"layer": "top",
|
||||||
|
"output": "eDP-1",
|
||||||
|
"height": 30,
|
||||||
|
"modules-left": ["sway/mode","sway/window" ],
|
||||||
|
"modules-center": ["sway/workspaces" ],
|
||||||
|
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
||||||
|
"sway/window": {
|
||||||
|
"max-length": 50
|
||||||
|
},
|
||||||
|
"sway/workspaces": {
|
||||||
|
"all-outputs": true
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 20,
|
||||||
|
"critical": 10
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
// "format-good": "", // An empty format will hide the module
|
||||||
|
// "format-full": "",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%a, %d. %b %H:%M}",
|
||||||
|
"on-click": "gnome-calendar"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-source": "{volume}% ",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 21,
|
||||||
|
"spacing": 10,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"layer": "bottom",
|
||||||
|
"position": "bottom",
|
||||||
|
"output": "DP-2",
|
||||||
|
"height": 30,
|
||||||
|
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||||
|
"modules-center": ["sway/window"],
|
||||||
|
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
||||||
|
"sway/window": {
|
||||||
|
"max-length": 50
|
||||||
|
},
|
||||||
|
"sway/workspaces": {
|
||||||
|
"all-outputs": true
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 20,
|
||||||
|
"critical": 10
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
// "format-good": "", // An empty format will hide the module
|
||||||
|
// "format-full": "",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%a, %d. %b %H:%M}",
|
||||||
|
"on-click": "gnome-calendar"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-source": "{volume}% ",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 21,
|
||||||
|
"spacing": 10,
|
||||||
|
}
|
||||||
|
}]
|
23
sway/.config/waybar/gruvbox.css
Normal file
23
sway/.config/waybar/gruvbox.css
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
@define-color background #282828;
|
||||||
|
@define-color foreground #ebdbb2;
|
||||||
|
@define-color black #282828;
|
||||||
|
@define-color red #cc241d;
|
||||||
|
@define-color green #98971a;
|
||||||
|
@define-color yellow #d79921;
|
||||||
|
@define-color blue #458588;
|
||||||
|
@define-color magenta #b16286;
|
||||||
|
@define-color cyan #689d6a;
|
||||||
|
@define-color white #a89984;
|
||||||
|
@define-color aqua #689d6a;
|
||||||
|
@define-color orange #d65d0e;
|
||||||
|
|
||||||
|
@define-color magenta_b #d3869b;
|
||||||
|
@define-color cyan_b #8ec07c;
|
||||||
|
@define-color yellow_b #fabd2f;
|
||||||
|
@define-color white_b #ebdbb2;
|
||||||
|
@define-color black_b #928374;
|
||||||
|
@define-color red_b #fb4934;
|
||||||
|
@define-color green_b #b8bb26;
|
||||||
|
@define-color blue_b #83a598;
|
||||||
|
@define-color aqua_b #8ec07c;
|
||||||
|
@define-color orange_b #fe8010;
|
91
sway/.config/waybar/style.css
Normal file
91
sway/.config/waybar/style.css
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
font-family: Droid Nerd Font Mono;
|
||||||
|
font-size: 14px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "gruvbox.css";
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: @background;
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 2px;
|
||||||
|
background: transparent;
|
||||||
|
color: @foreground;
|
||||||
|
border-bottom: 3px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background: @orange_b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.visible {
|
||||||
|
background: @orange;
|
||||||
|
border-radius: 2px;
|
||||||
|
border-top: 3px solid @orange_b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode,
|
||||||
|
#clock,
|
||||||
|
#battery {
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background: @red;
|
||||||
|
border-bottom: 3px solid @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: @foreground;
|
||||||
|
color: @background;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-openvpn,
|
||||||
|
#network,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#clock,
|
||||||
|
#tray {
|
||||||
|
padding: 0 6px;
|
||||||
|
margin: 0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.warning:not(.charging) {
|
||||||
|
background: @red;
|
||||||
|
color: @foreground;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
87
sway/.local/bin/sway/rofi_screenshot.sh
Executable file
87
sway/.local/bin/sway/rofi_screenshot.sh
Executable file
@ -0,0 +1,87 @@
|
|||||||
|
#! /usr/bin/zsh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PICTURES_DIR="$(xdg-user-dir PICTURES)"
|
||||||
|
ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||||
|
|
||||||
|
monitor="$(swaymsg -t get_outputs | jq '[.[].focused] | index(true)')"
|
||||||
|
alias myrofi="rofi -dmenu -matching fuzzy -i -sort -sorting-method fzf -monitor $monitor"
|
||||||
|
|
||||||
|
select_window() {
|
||||||
|
declare -A windows
|
||||||
|
|
||||||
|
swaymsg -t get_tree |
|
||||||
|
jq -r '..|.nodes? + .floating_nodes?|arrays|select(length > 0)|.[]|select((.nodes + .floating_nodes | length) == 0)|select(.visible)|(.app_id + ": " + .name + "\n" + (.rect.x | tostring) + "," + (.rect.y | tostring) + " " + (.rect.width | tostring) + "x" + (.rect.height | tostring))' |
|
||||||
|
while read window_name; read geometry; do
|
||||||
|
windows[$window_name]="$geometry"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ${windows[$(print -l ${(@k)windows} | myrofi)]}
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
actions="Copy region to clipboard\nSave region to $PICTURES_DIR\nCopy window to clipboard\nSave window to $PICTURES_DIR\nSave region to zk"
|
||||||
|
|
||||||
|
if [[ "$(swaymsg -t get_outputs | jq length)" == "1" ]]; then
|
||||||
|
actions+="\nCopy screen to clipboard\nSave screen to $PICTURES_DIR"
|
||||||
|
else
|
||||||
|
actions+="\nCopy current monitor to clipboard\nSave current monitor to $PICTURES_DIR\nCopy all monitors to clipboard\nSave all monitors to $PICTURES_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
selection="$(echo "$actions" | myrofi -p "Take a screenshot")"
|
||||||
|
|
||||||
|
filename="$(date +'screenshot_%Y%m%d%H%M%s.png')"
|
||||||
|
imagepath="${PICTURES_DIR}/$filename"
|
||||||
|
zkpath="${ZK_NOTEBOOK_DIR}/fig/$filename"
|
||||||
|
case "$selection" in
|
||||||
|
"Copy region to clipboard")
|
||||||
|
grim -g "$(slurp)" - | wl-copy
|
||||||
|
notify-send "Region copied to clipboard"
|
||||||
|
;;
|
||||||
|
"Save region to $PICTURES_DIR")
|
||||||
|
grim -g "$(slurp)" "$imagepath"
|
||||||
|
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||||
|
;;
|
||||||
|
"Save region to zk")
|
||||||
|
grim -g "$(slurp)" "$zkpath"
|
||||||
|
sh_path="../fig/${zkpath##*/}"
|
||||||
|
wl-copy $sh_path
|
||||||
|
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved" "$sh_path is copied")
|
||||||
|
;;
|
||||||
|
"Copy window to clipboard")
|
||||||
|
grim -g "$(select_window)" - | wl-copy
|
||||||
|
notify-send "Window copied to clipboard"
|
||||||
|
;;
|
||||||
|
"Save window to $PICTURES_DIR")
|
||||||
|
grim -g "$(select_window)" "$imagepath"
|
||||||
|
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||||
|
;;
|
||||||
|
"Copy current monitor to clipboard")
|
||||||
|
monitor="$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')"
|
||||||
|
grim -o $monitor - | wl-copy
|
||||||
|
notify-send "Monitor $monitor copied to clipboard"
|
||||||
|
;;
|
||||||
|
"Save current monitor to $PICTURES_DIR")
|
||||||
|
grim -o "$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')" "$imagepath"
|
||||||
|
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||||
|
;;
|
||||||
|
"Copy screen to clipboard"|"Copy all monitors to clipboard")
|
||||||
|
grim - | wl-copy
|
||||||
|
notify-send "Screen copied to clipboard"
|
||||||
|
;;
|
||||||
|
"Save screen to $PICTURES_DIR"|"Save all monitors to $PICTURES_DIR")
|
||||||
|
grim "$imagepath"
|
||||||
|
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ "$reply" == "2" ]]; then
|
||||||
|
nautilus -s $imagepath
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
163
tmux/.tmux.conf
163
tmux/.tmux.conf
@ -1,4 +1,6 @@
|
|||||||
set -g default-terminal "screen-256color"
|
set -g default-terminal "tmux-256color"
|
||||||
|
set-option -sa terminal-features ',alacritty:RGB'
|
||||||
|
# set-option -sa terminal-overrides ",screen:Tc"
|
||||||
|
|
||||||
## Vim user config
|
## 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,168 +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
|
|
||||||
|
|
||||||
# }
|
|
||||||
|
|
||||||
|
|
||||||
## 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'
|
||||||
|
@ -1 +0,0 @@
|
|||||||
Subproject commit 108f76b628a0df927df142036f1fdec829a5ff00
|
|
@ -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}
|
||||||
@ -243,6 +245,9 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
|||||||
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
||||||
\ convert -identify %f -verbose /dev/null
|
\ convert -identify %f -verbose /dev/null
|
||||||
|
|
||||||
|
filetype *.svg inkscape %f
|
||||||
|
|
||||||
|
|
||||||
" OpenRaster
|
" OpenRaster
|
||||||
filextype *.ora
|
filextype *.ora
|
||||||
\ {Edit in MyPaint}
|
\ {Edit in MyPaint}
|
||||||
@ -329,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 -
|
||||||
|
|
||||||
|
118
vim/.vim/config/base.vim
Normal file
118
vim/.vim/config/base.vim
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
" Lines number
|
||||||
|
set number
|
||||||
|
|
||||||
|
" Always show the statusline
|
||||||
|
set laststatus=2
|
||||||
|
|
||||||
|
" Necessary to show Unicode glyphs
|
||||||
|
set encoding=utf8
|
||||||
|
|
||||||
|
" smart tab
|
||||||
|
set smartindent
|
||||||
|
|
||||||
|
" Tab to..?
|
||||||
|
set shiftround
|
||||||
|
|
||||||
|
" Display edition mode
|
||||||
|
set showmode
|
||||||
|
|
||||||
|
" Ignore case in search mode
|
||||||
|
set ignorecase
|
||||||
|
|
||||||
|
" Override the 'ignorecase' option if the search pattern
|
||||||
|
" contains upper case characters.
|
||||||
|
set smartcase
|
||||||
|
|
||||||
|
" Display uncomplete commands (??)
|
||||||
|
set showcmd
|
||||||
|
|
||||||
|
" Vim file name completion relative to current file
|
||||||
|
set autochdir
|
||||||
|
|
||||||
|
" While typing a search command, show immediately where the
|
||||||
|
" so far typed pattern matches.
|
||||||
|
set incsearch
|
||||||
|
|
||||||
|
" Use <C-L> to clear the highlighting of :set hlsearch.
|
||||||
|
set hlsearch
|
||||||
|
if maparg('<C-L>', 'n') ==# ''
|
||||||
|
nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Turn on the WiLd menu
|
||||||
|
set wildmenu
|
||||||
|
|
||||||
|
" Ignore compiled files
|
||||||
|
set wildignore=*.o,*~,*.pyc,*.swp
|
||||||
|
|
||||||
|
" Wrap lines
|
||||||
|
set wrap
|
||||||
|
|
||||||
|
" Turn backup off, since most stuff is in SVN, git et.c anyway...
|
||||||
|
set nobackup
|
||||||
|
set noswapfile
|
||||||
|
|
||||||
|
" Having relative number for lines
|
||||||
|
set relativenumber
|
||||||
|
|
||||||
|
" Display tab and ends of lines
|
||||||
|
" Shortcut to rapidly toggle `set list`
|
||||||
|
nmap <leader>L :set list!<CR>
|
||||||
|
|
||||||
|
" Behaviour of tab
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set softtabstop=4
|
||||||
|
set expandtab
|
||||||
|
|
||||||
|
" Folding
|
||||||
|
set foldmethod=indent
|
||||||
|
|
||||||
|
" Use the same symbols as TextMate for tabstops and EOLs
|
||||||
|
" set listchars=tab:▸\ ,eol:¬
|
||||||
|
set listchars=nbsp:¤,tab:··,trail:¤,extends:▶,precedes:◀
|
||||||
|
|
||||||
|
" allow backspacing over everything in insert mode
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
|
||||||
|
set history=50 " keep 50 lines of command line history
|
||||||
|
set ruler " show the cursor position all the time
|
||||||
|
"
|
||||||
|
" In many terminal emulators the mouse works just fine, thus enable it.
|
||||||
|
if has('mouse')
|
||||||
|
set mouse=a
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Decorations
|
||||||
|
" ====================
|
||||||
|
" Switch syntax highlighting on, when the terminal has colors
|
||||||
|
" Also switch on highlighting the last used search pattern.
|
||||||
|
if &t_Co > 2 || has("gui_running")
|
||||||
|
syntax on
|
||||||
|
endif
|
||||||
|
|
||||||
|
" When set to "dark", Vim will try to use colors that look
|
||||||
|
" good on a dark background. When set to "light", Vim will
|
||||||
|
" try to use colors that look good on a light background.
|
||||||
|
" Any other value is illegal.
|
||||||
|
set background=dark
|
||||||
|
|
||||||
|
" Color Scheme
|
||||||
|
colorscheme zenburn
|
||||||
|
|
||||||
|
set cursorline
|
||||||
|
|
||||||
|
" Align blocks of text and keep them selected
|
||||||
|
vmap < <gv
|
||||||
|
vmap > >gv
|
||||||
|
|
||||||
|
" Spelling
|
||||||
|
" set spelllang=fr
|
||||||
|
autocmd BufRead,BufNewFile *.{md,tex,rst} setlocal spell spelllang=fr
|
||||||
|
autocmd FileType tex,latex,markdown,md,rst setlocal spell spelllang=fr
|
||||||
|
|
||||||
|
" Remove trailing whitespace at the end of lines
|
||||||
|
autocmd BufWritePre * %s/\s\+$//e
|
||||||
|
|
||||||
|
" Different color for far columns
|
||||||
|
execute "set colorcolumn=" . join(range(81,335), ',')
|
24
vim/.vim/config/plugins.vim
Normal file
24
vim/.vim/config/plugins.vim
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
" lightline -> no need showmod
|
||||||
|
set noshowmode
|
||||||
|
let g:lightline = {
|
||||||
|
\ 'colorscheme': 'selenized_dark',
|
||||||
|
\ 'active': {
|
||||||
|
\ 'left': [ [ 'mode', 'paste' ],
|
||||||
|
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
|
||||||
|
\ },
|
||||||
|
\ 'component_function': {
|
||||||
|
\ 'gitbranch': 'FugitiveHead'
|
||||||
|
\ },
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Supertab
|
||||||
|
let g:SuperTabDefaultCompletionType = "context"
|
||||||
|
|
||||||
|
" Airline
|
||||||
|
let g:airline_powerline_fonts = 1
|
||||||
|
let g:tmuxline_powerline_separators = 0
|
||||||
|
|
||||||
|
" Nerdtree
|
||||||
|
let NERDTreeIgnore = ['.pyc$']
|
||||||
|
"autocmd VimEnter * NERDTree
|
||||||
|
|
61
vim/.vimrc
Normal file
61
vim/.vimrc
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
set nocompatible " be iMproved, required
|
||||||
|
noremap <Space> <Nop>
|
||||||
|
map <Space> <Leader>
|
||||||
|
let mapleader = "\<Space>"
|
||||||
|
let localleader = "\<Space>"
|
||||||
|
|
||||||
|
" set the runtime path to include plug.com and initialize
|
||||||
|
call plug#begin('~/.vim/plugged')
|
||||||
|
|
||||||
|
"" plug.vim management
|
||||||
|
Plug 'junegunn/vim-plug'
|
||||||
|
|
||||||
|
" Airline statusline
|
||||||
|
Plug 'itchyny/lightline.vim'
|
||||||
|
|
||||||
|
|
||||||
|
"" Basic config for vim
|
||||||
|
Plug 'tpope/vim-sensible'
|
||||||
|
|
||||||
|
" Git integration
|
||||||
|
Plug 'tpope/vim-fugitive'
|
||||||
|
|
||||||
|
" Nerdtree
|
||||||
|
Plug 'scrooloose/nerdtree'
|
||||||
|
Plug 'Xuyuanp/nerdtree-git-plugin'
|
||||||
|
|
||||||
|
|
||||||
|
" Change surround
|
||||||
|
Plug 'tpope/vim-surround'
|
||||||
|
|
||||||
|
" Clever substitute
|
||||||
|
Plug 'tpope/tpope-vim-abolish'
|
||||||
|
|
||||||
|
" Repeat
|
||||||
|
Plug 'tpope/vim-repeat'
|
||||||
|
|
||||||
|
" Git on lines
|
||||||
|
Plug 'airblade/vim-gitgutter'
|
||||||
|
|
||||||
|
" Polyglot synthax hightlight autodetect
|
||||||
|
Plug 'sheerun/vim-polyglot'
|
||||||
|
|
||||||
|
" Show indent lines
|
||||||
|
Plug 'Yggdroot/indentLine'
|
||||||
|
|
||||||
|
" Tmux integration
|
||||||
|
Plug 'christoomey/vim-tmux-navigator'
|
||||||
|
|
||||||
|
"" Color scheme
|
||||||
|
Plug 'jnurmine/Zenburn'
|
||||||
|
|
||||||
|
" All of your Plugs must be added before the following line
|
||||||
|
call plug#end() " required
|
||||||
|
"
|
||||||
|
|
||||||
|
" import config from ./config
|
||||||
|
" runtime! config/**/*.vim
|
||||||
|
"runtime! config/*.vim
|
||||||
|
runtime! config/base.vim
|
||||||
|
runtime! config/plugins.vim
|
||||||
|
set conceallevel=0
|
@ -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
|
||||||
@ -11,6 +12,8 @@ _comp_options+=(globdots) # Include hidden files.
|
|||||||
autoload -U promptinit; promptinit
|
autoload -U promptinit; promptinit
|
||||||
prompt pure
|
prompt pure
|
||||||
|
|
||||||
|
export PURE_PROMPT_SYMBOL='%f%n%f%F{magenta}❯'
|
||||||
|
|
||||||
# Cursor for vimode
|
# Cursor for vimode
|
||||||
# ZLE hooks for prompt's vi mode status
|
# ZLE hooks for prompt's vi mode status
|
||||||
function zle-line-init zle-keymap-select {
|
function zle-line-init zle-keymap-select {
|
||||||
@ -41,7 +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'
|
||||||
|
|
||||||
|
# Newsboat
|
||||||
alias newsboat='tmux new -As newsboat newsboat'
|
alias newsboat='tmux new -As newsboat newsboat'
|
||||||
|
|
||||||
|
|
||||||
@ -68,10 +74,14 @@ bindkey -M vicmd 'j' history-substring-search-down
|
|||||||
# Auto-ls
|
# Auto-ls
|
||||||
source ~/.config/zsh/auto-ls/auto-ls.zsh
|
source ~/.config/zsh/auto-ls/auto-ls.zsh
|
||||||
|
|
||||||
|
# Pyenv
|
||||||
|
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 '' "$@" < <(
|
||||||
@ -79,3 +89,11 @@ _fzf_complete_pass() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# yarn global commands
|
||||||
|
export PATH="$(yarn global bin):$PATH"
|
||||||
|
|
||||||
|
# zk
|
||||||
|
export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||||
|
|
||||||
|
# tea
|
||||||
|
PROG=tea _CLI_ZSH_AUTOCOMPLETE_HACK=1 source "/home/lafrite/.config/tea/autocomplete.zsh"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
export TERM='rxvt-256color'
|
#export TERM='rxvt-256color'
|
||||||
|
|
||||||
# XDG
|
# XDG
|
||||||
export XDG_CONFIG_HOME=$HOME/.config
|
export XDG_CONFIG_HOME=$HOME/.config
|
||||||
|
Loading…
Reference in New Issue
Block a user