Compare commits
No commits in common. "Linux" and "main" have entirely different histories.
|
@ -1,28 +0,0 @@
|
||||||
BSD 3-Clause License
|
|
||||||
|
|
||||||
Copyright (c) 2023, Eduardo Cueto-Mendoza
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of the copyright holder nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from
|
|
||||||
this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
@ -1,32 +0,0 @@
|
||||||
[general]
|
|
||||||
live_config_reload = true
|
|
||||||
|
|
||||||
import = [
|
|
||||||
"~/.config/alacritty/themes/tokyo_night_enhanced.toml"
|
|
||||||
]
|
|
||||||
|
|
||||||
[cursor.style]
|
|
||||||
shape = "Block"
|
|
||||||
|
|
||||||
[font]
|
|
||||||
size = 20
|
|
||||||
normal = { family = "Terminess Nerd Font", style = "Regular" }
|
|
||||||
bold = { family = "Terminess Nerd Font", style = "Bold" }
|
|
||||||
italic = { family = "Terminess Nerd Font", style = "Italic" }
|
|
||||||
bold_italic = { family = "Terminess Nerd Font", style = "Bold Italic" }
|
|
||||||
builtin_box_drawing = false
|
|
||||||
|
|
||||||
[scrolling]
|
|
||||||
history = 100000
|
|
||||||
|
|
||||||
[selection]
|
|
||||||
save_to_clipboard = true
|
|
||||||
|
|
||||||
[window]
|
|
||||||
opacity = 0.85
|
|
||||||
startup_mode = "Maximized"
|
|
||||||
|
|
||||||
[keyboard]
|
|
||||||
bindings = [
|
|
||||||
{key="Space", mods="Command | Shift", mode="AppCursor | AppKeypad | ~Search | Alt | Vi", command="ToggleViMode"},
|
|
||||||
]
|
|
|
@ -1,35 +0,0 @@
|
||||||
# Colors (Homebrew)
|
|
||||||
|
|
||||||
[colors.bright]
|
|
||||||
black = '#666666'
|
|
||||||
#blue = '#0000ff'
|
|
||||||
blue = '#0000b2'
|
|
||||||
cyan = '#00e5e5'
|
|
||||||
green = '#00d900'
|
|
||||||
magenta = '#e500e5'
|
|
||||||
red = '#e50000'
|
|
||||||
white = '#e5e5e5'
|
|
||||||
yellow = '#e5e500'
|
|
||||||
|
|
||||||
[colors.cursor]
|
|
||||||
cursor = '#23ff18'
|
|
||||||
text = '#ff0018'
|
|
||||||
|
|
||||||
[colors.normal]
|
|
||||||
black = '#000000'
|
|
||||||
#blue = '#0000b2'
|
|
||||||
blue = '#0000ff'
|
|
||||||
cyan = '#00a6b2'
|
|
||||||
green = '#00a600'
|
|
||||||
magenta = '#b200b2'
|
|
||||||
red = '#990000'
|
|
||||||
white = '#bfbfbf'
|
|
||||||
yellow = '#999900'
|
|
||||||
|
|
||||||
[colors.primary]
|
|
||||||
background = '#000000'
|
|
||||||
foreground = '#00ff00'
|
|
||||||
|
|
||||||
[colors.selection]
|
|
||||||
background = '#083905'
|
|
||||||
text = '#ffffff'
|
|
|
@ -1,36 +0,0 @@
|
||||||
# github Alacritty Colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#24292e'
|
|
||||||
foreground = '#d1d5da'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#586069'
|
|
||||||
red = '#ea4a5a'
|
|
||||||
green = '#34d058'
|
|
||||||
yellow = '#ffea7f'
|
|
||||||
blue = '#2188ff'
|
|
||||||
magenta = '#b392f0'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#d1d5da'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#959da5'
|
|
||||||
red = '#f97583'
|
|
||||||
green = '#85e89d'
|
|
||||||
yellow = '#ffea7f'
|
|
||||||
blue = '#79b8ff'
|
|
||||||
magenta = '#b392f0'
|
|
||||||
cyan = '#56d4dd'
|
|
||||||
white = '#fafbfc'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = '#d18616'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = '#f97583'
|
|
|
@ -1,36 +0,0 @@
|
||||||
# github Alacritty Colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#0d1117'
|
|
||||||
foreground = '#b3b1ad'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#484f58'
|
|
||||||
red = '#ff7b72'
|
|
||||||
green = '#3fb950'
|
|
||||||
yellow = '#d29922'
|
|
||||||
blue = '#58a6ff'
|
|
||||||
magenta = '#bc8cff'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#b1bac4'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#6e7681'
|
|
||||||
red = '#ffa198'
|
|
||||||
green = '#56d364'
|
|
||||||
yellow = '#e3b341'
|
|
||||||
blue = '#79c0ff'
|
|
||||||
magenta = '#d2a8ff'
|
|
||||||
cyan = '#56d4dd'
|
|
||||||
white = '#f0f6fc'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = '#d18616'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = '#ffa198'
|
|
|
@ -1,36 +0,0 @@
|
||||||
# github Alacritty Colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#0d1117'
|
|
||||||
foreground = '#b3b1ad'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#484f58'
|
|
||||||
red = '#ff7b72'
|
|
||||||
green = '#3fb950'
|
|
||||||
yellow = '#d29922'
|
|
||||||
blue = '#58a6ff'
|
|
||||||
magenta = '#bc8cff'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#b1bac4'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#6e7681'
|
|
||||||
red = '#ffa198'
|
|
||||||
green = '#56d364'
|
|
||||||
yellow = '#e3b341'
|
|
||||||
blue = '#79c0ff'
|
|
||||||
magenta = '#d2a8ff'
|
|
||||||
cyan = '#56d4dd'
|
|
||||||
white = '#f0f6fc'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = '#d18616'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = '#ffa198'
|
|
|
@ -1,36 +0,0 @@
|
||||||
# github Alacritty Colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#22272e'
|
|
||||||
foreground = '#768390'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#545d68'
|
|
||||||
red = '#f47067'
|
|
||||||
green = '#57ab5a'
|
|
||||||
yellow = '#c69026'
|
|
||||||
blue = '#539bf5'
|
|
||||||
magenta = '#b083f0'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#909dab'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#636e7b'
|
|
||||||
red = '#ff938a'
|
|
||||||
green = '#6bc46d'
|
|
||||||
yellow = '#daaa3f'
|
|
||||||
blue = '#6cb6ff'
|
|
||||||
magenta = '#dcbdfb'
|
|
||||||
cyan = '#56d4dd'
|
|
||||||
white = '#cdd9e5'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = '#d18616'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = '#ff938a'
|
|
|
@ -1,33 +0,0 @@
|
||||||
# (Github Dark High Contrast) Colors for Alacritty
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#0a0c10'
|
|
||||||
foreground = '#f0f3f6'
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
[colors.cursor]
|
|
||||||
text = '#0a0c10'
|
|
||||||
cursor = '#f0f3f6'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#7a828e'
|
|
||||||
red = '#ff9492'
|
|
||||||
green = '#26cd4d'
|
|
||||||
yellow = '#f0b72f'
|
|
||||||
blue = '#71b7ff'
|
|
||||||
magenta = '#cb9eff'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#d9dee3'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#9ea7b3'
|
|
||||||
red = '#ffb1af'
|
|
||||||
green = '#4ae168'
|
|
||||||
yellow = '#f7c843'
|
|
||||||
blue = '#91cbff'
|
|
||||||
magenta = '#cb9eff'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#d9dee3'
|
|
|
@ -1,33 +0,0 @@
|
||||||
# (Github Dark Tritanopia) Colors for Alacritty
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#0d1117'
|
|
||||||
foreground = '#c9d1d9'
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
[colors.cursor]
|
|
||||||
text = '#0d1117'
|
|
||||||
cursor = '#c9d1d9'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#484f58'
|
|
||||||
red = '#ff7b72'
|
|
||||||
green = '#58a6ff'
|
|
||||||
yellow = '#d29922'
|
|
||||||
blue = '#58a6ff'
|
|
||||||
magenta = '#bc8cff'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#b1bac4'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#6e7681'
|
|
||||||
red = '#ffa198'
|
|
||||||
green = '#79c0ff'
|
|
||||||
yellow = '#e3b341'
|
|
||||||
blue = '#79c0ff'
|
|
||||||
magenta = '#bc8cff'
|
|
||||||
cyan = '#39c5cf'
|
|
||||||
white = '#b1bac4'
|
|
|
@ -1,36 +0,0 @@
|
||||||
# github Alacritty Colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#ffffff'
|
|
||||||
foreground = '#24292f'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#24292e'
|
|
||||||
red = '#d73a49'
|
|
||||||
green = '#28a745'
|
|
||||||
yellow = '#dbab09'
|
|
||||||
blue = '#0366d6'
|
|
||||||
magenta = '#5a32a3'
|
|
||||||
cyan = '#0598bc'
|
|
||||||
white = '#6a737d'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#959da5'
|
|
||||||
red = '#cb2431'
|
|
||||||
green = '#22863a'
|
|
||||||
yellow = '#b08800'
|
|
||||||
blue = '#005cc5'
|
|
||||||
magenta = '#5a32a3'
|
|
||||||
cyan = '#3192aa'
|
|
||||||
white = '#d1d5da'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = '#d18616'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = '#cb2431'
|
|
|
@ -1,36 +0,0 @@
|
||||||
# github Alacritty Colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#ffffff'
|
|
||||||
foreground = '#0E1116'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#24292f'
|
|
||||||
red = '#cf222e'
|
|
||||||
green = '#116329'
|
|
||||||
yellow = '#4d2d00'
|
|
||||||
blue = '#0969da'
|
|
||||||
magenta = '#8250df'
|
|
||||||
cyan = '#1b7c83'
|
|
||||||
white = '#6e7781'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#57606a'
|
|
||||||
red = '#a40e26'
|
|
||||||
green = '#1a7f37'
|
|
||||||
yellow = '#633c01'
|
|
||||||
blue = '#218bff'
|
|
||||||
magenta = '#a475f9'
|
|
||||||
cyan = '#3192aa'
|
|
||||||
white = '#8c959f'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = '#d18616'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = '#a40e26'
|
|
|
@ -1,36 +0,0 @@
|
||||||
# github Alacritty Colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#ffffff'
|
|
||||||
foreground = '#0E1116'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#24292f'
|
|
||||||
red = '#cf222e'
|
|
||||||
green = '#116329'
|
|
||||||
yellow = '#4d2d00'
|
|
||||||
blue = '#0969da'
|
|
||||||
magenta = '#8250df'
|
|
||||||
cyan = '#1b7c83'
|
|
||||||
white = '#6e7781'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#57606a'
|
|
||||||
red = '#a40e26'
|
|
||||||
green = '#1a7f37'
|
|
||||||
yellow = '#633c01'
|
|
||||||
blue = '#218bff'
|
|
||||||
magenta = '#a475f9'
|
|
||||||
cyan = '#3192aa'
|
|
||||||
white = '#8c959f'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = '#d18616'
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = '#a40e26'
|
|
|
@ -1,33 +0,0 @@
|
||||||
# (Github Light High Contrast) Colors for Alacritty
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#ffffff'
|
|
||||||
foreground = '#010409'
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
[colors.cursor]
|
|
||||||
text = '#ffffff'
|
|
||||||
cursor = '#0e1116'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#0e1116'
|
|
||||||
red = '#a0111f'
|
|
||||||
green = '#024c1a'
|
|
||||||
yellow = '#3f2200'
|
|
||||||
blue = '#0349b4'
|
|
||||||
magenta = '#622cbc'
|
|
||||||
cyan = '#1b7c83'
|
|
||||||
white = '#66707b'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#4b535d'
|
|
||||||
red = '#86061d'
|
|
||||||
green = '#055d20'
|
|
||||||
yellow = '#4e2c00'
|
|
||||||
blue = '#1168e3'
|
|
||||||
magenta = '#622cbc'
|
|
||||||
cyan = '#1b7c83'
|
|
||||||
white = '#66707b'
|
|
|
@ -1,33 +0,0 @@
|
||||||
# (Github Light Tritanopia) Colors for Alacritty
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#ffffff'
|
|
||||||
foreground = '#1b1f24'
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
[colors.cursor]
|
|
||||||
text = '#ffffff'
|
|
||||||
cursor = '#24292f'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#24292f'
|
|
||||||
red = '#cf222e'
|
|
||||||
green = '#0550ae'
|
|
||||||
yellow = '#4d2d00'
|
|
||||||
blue = '#0969da'
|
|
||||||
magenta = '#8250df'
|
|
||||||
cyan = '#1b7c83'
|
|
||||||
white = '#6e7781'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#57606a'
|
|
||||||
red = '#a40e26'
|
|
||||||
green = '#0969da'
|
|
||||||
yellow = '#633c01'
|
|
||||||
blue = '#218bff'
|
|
||||||
magenta = '#8250df'
|
|
||||||
cyan = '#1b7c83'
|
|
||||||
white = '#6e7781'
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#000000'
|
|
||||||
foreground = '#19a33a'
|
|
||||||
|
|
||||||
[colors.cursor]
|
|
||||||
text = '#122637'
|
|
||||||
cursor = '#14f105'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#282e2a'
|
|
||||||
red = '#70a542'
|
|
||||||
green = '#00ca07'
|
|
||||||
yellow = '#5fde6d'
|
|
||||||
blue = '#5f9d75'
|
|
||||||
magenta = '#678f71'
|
|
||||||
cyan = '#5e8d87'
|
|
||||||
white = '#718070'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#394738'
|
|
||||||
red = '#66cc7b'
|
|
||||||
green = '#03e880'
|
|
||||||
yellow = '#74f0a3'
|
|
||||||
blue = '#81beba'
|
|
||||||
magenta = '#94bb9b'
|
|
||||||
cyan = '#8abeb7'
|
|
||||||
white = '#b2cab6'
|
|
|
@ -1,29 +0,0 @@
|
||||||
# Colors (Tokyo Night)
|
|
||||||
# Source https//github.com/zatchheems/tokyo-night-alacritty-theme
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#1a1b26'
|
|
||||||
foreground = '#a9b1d6'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#32344a'
|
|
||||||
red = '#f7768e'
|
|
||||||
green = '#9ece6a'
|
|
||||||
yellow = '#e0af68'
|
|
||||||
blue = '#7aa2f7'
|
|
||||||
magenta = '#ad8ee6'
|
|
||||||
cyan = '#449dab'
|
|
||||||
white = '#787c99'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#444b6a'
|
|
||||||
red = '#ff7a93'
|
|
||||||
green = '#b9f27c'
|
|
||||||
yellow = '#ff9e64'
|
|
||||||
blue = '#7da6ff'
|
|
||||||
magenta = '#bb9af7'
|
|
||||||
cyan = '#0db9d7'
|
|
||||||
white = '#acb0d0'
|
|
|
@ -1,30 +0,0 @@
|
||||||
[colors.primary]
|
|
||||||
background = "#08080b"
|
|
||||||
foreground = "#787c99"
|
|
||||||
|
|
||||||
[colors.cursor]
|
|
||||||
cursor = "#787c99"
|
|
||||||
|
|
||||||
[colors.selection]
|
|
||||||
text = "CellForeground"
|
|
||||||
background = "#515c7e"
|
|
||||||
|
|
||||||
[colors.normal]
|
|
||||||
black = "#363b54"
|
|
||||||
red = "#f7768e"
|
|
||||||
green = "#41a6b5"
|
|
||||||
yellow = "#e0af68"
|
|
||||||
blue = "#7aa2f7"
|
|
||||||
magenta = "#bb9af7"
|
|
||||||
cyan = "#7dcfff"
|
|
||||||
white = "#787c99"
|
|
||||||
|
|
||||||
[colors.bright]
|
|
||||||
black = "#363b54"
|
|
||||||
red = "#f7768e"
|
|
||||||
green = "#41a6b5"
|
|
||||||
yellow = "#e0af68"
|
|
||||||
blue = "#7aa2f7"
|
|
||||||
magenta = "#bb9af7"
|
|
||||||
cyan = "#7dcfff"
|
|
||||||
white = "#787c99"
|
|
|
@ -1,29 +0,0 @@
|
||||||
# Colors (Tokyo Night Storm variant)
|
|
||||||
# Source https//github.com/zatchheems/tokyo-night-alacritty-theme
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#24283b'
|
|
||||||
foreground = '#a9b1d6'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#32344a'
|
|
||||||
red = '#f7768e'
|
|
||||||
green = '#9ece6a'
|
|
||||||
yellow = '#e0af68'
|
|
||||||
blue = '#7aa2f7'
|
|
||||||
magenta = '#ad8ee6'
|
|
||||||
cyan = '#449dab'
|
|
||||||
white = '#9699a8'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#444b6a'
|
|
||||||
red = '#ff7a93'
|
|
||||||
green = '#b9f27c'
|
|
||||||
yellow = '#ff9e64'
|
|
||||||
blue = '#7da6ff'
|
|
||||||
magenta = '#bb9af7'
|
|
||||||
cyan = '#0db9d7'
|
|
||||||
white = '#acb0d0'
|
|
|
@ -1,28 +0,0 @@
|
||||||
# XTerm's default colors
|
|
||||||
|
|
||||||
# Default colors
|
|
||||||
[colors.primary]
|
|
||||||
background = '#000000'
|
|
||||||
foreground = '#ffffff'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
[colors.normal]
|
|
||||||
black = '#000000'
|
|
||||||
red = '#cd0000'
|
|
||||||
green = '#00cd00'
|
|
||||||
yellow = '#cdcd00'
|
|
||||||
blue = '#0000ee'
|
|
||||||
magenta = '#cd00cd'
|
|
||||||
cyan = '#00cdcd'
|
|
||||||
white = '#e5e5e5'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
[colors.bright]
|
|
||||||
black = '#7f7f7f'
|
|
||||||
red = '#ff0000'
|
|
||||||
green = '#00ff00'
|
|
||||||
yellow = '#ffff00'
|
|
||||||
blue = '#5c5cff'
|
|
||||||
magenta = '#ff00ff'
|
|
||||||
cyan = '#00ffff'
|
|
||||||
white = '#ffffff'
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.2 MiB |
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +0,0 @@
|
||||||
[core]
|
|
||||||
#modules = mpd,sensors,memory,battery,nic,datetime
|
|
||||||
modules = mpd,sensors,memory,battery,datetime
|
|
||||||
autohide = mpd
|
|
||||||
theme = rose-pine
|
|
||||||
|
|
||||||
[module-parameters]
|
|
||||||
#datetime.format = "%a %b %d %R %Z"
|
|
||||||
datetime.format = %a %b %d %R
|
|
||||||
memory.format = {percent:05.02f}%
|
|
||||||
mpd.format = {file} {name} {artist}
|
|
||||||
#nic.exclude = lo,virbr,docker,vboxnet,veth,br,.*:avahi,enp2s0
|
|
||||||
#nic.include = wlp3s0
|
|
||||||
#nic.format = {intf} {state} {strength}
|
|
|
@ -1 +0,0 @@
|
||||||
fish_variables
|
|
|
@ -1,131 +0,0 @@
|
||||||
#
|
|
||||||
# AUTO GENERATED BY 'fish-lsp'
|
|
||||||
#
|
|
||||||
# * Any command should generate the completions file
|
|
||||||
#
|
|
||||||
# >_ fish-lsp complete > ~/.config/fish/completions/fish-lsp.fish
|
|
||||||
# >_ fish-lsp complete --fish > ~/.config/fish/completions/fish-lsp.fish
|
|
||||||
# >_ yarn install # from inside the 'fish-lsp'
|
|
||||||
#
|
|
||||||
# * You can test the completions by editing:
|
|
||||||
#
|
|
||||||
# ~/.config/fish/completions/fish-lsp.fish
|
|
||||||
#
|
|
||||||
# or by using the command:
|
|
||||||
#
|
|
||||||
# >_ fish-lsp complete
|
|
||||||
#
|
|
||||||
# to visually check what is wrong
|
|
||||||
#
|
|
||||||
# * For more info, try editing the generated output inside:
|
|
||||||
#
|
|
||||||
# ~/...install_path.../fish-lsp/src/utils/get-lsp-completions.ts
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
# Returns exit code of 0 if any command (argv[1..-1]) appears once, ignores flags.
|
|
||||||
function __fish_lsp_using_command
|
|
||||||
set -l commands $argv
|
|
||||||
set -l cmd (commandline -opc)
|
|
||||||
if test (count $cmd) -gt 1
|
|
||||||
set -l command_seen_once 1
|
|
||||||
for c in $cmd[2..-1]
|
|
||||||
switch $c
|
|
||||||
case '-*'
|
|
||||||
continue
|
|
||||||
case $commands
|
|
||||||
# If the command is seen more than once then return 1
|
|
||||||
if test $command_seen_once -eq 1
|
|
||||||
set command_seen_once 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
case '*'
|
|
||||||
if test $command_seen_once -eq 0
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return $command_seen_once
|
|
||||||
end
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
# disable file completions
|
|
||||||
complete -c fish-lsp -f
|
|
||||||
|
|
||||||
complete -c fish-lsp -n "__fish_use_subcommand" -a "
|
|
||||||
start\t'subcmd to start the lsp using stdin/stdout'
|
|
||||||
logger\t'test the logger by displaying it'
|
|
||||||
info\t'show the build info of fish-lsp'
|
|
||||||
url\t'show a helpful url related to the fish-lsp'
|
|
||||||
complete\t'generate completions file for ~/.config/fish/completions'
|
|
||||||
env\t'generate fish shell env variables to be used by lsp'"
|
|
||||||
|
|
||||||
set __fish_lsp_subcommands start
|
|
||||||
|
|
||||||
# fish_lsp [start] --<TAB>
|
|
||||||
complete -c fish-lsp -n '__fish_seen_subcommand_from $__fish_lsp_subcommands' -a "
|
|
||||||
--dump\t'dump output and stop server'
|
|
||||||
--enable\t'enable feature'
|
|
||||||
--disable\t'disable feature'"
|
|
||||||
|
|
||||||
# fish-lsp url --<TAB>
|
|
||||||
complete -c fish-lsp -n "__fish_seen_subcommand_from url" -a "
|
|
||||||
--repo 'show git url'
|
|
||||||
--git 'show git url'
|
|
||||||
--npm 'show npm url'
|
|
||||||
--homepage 'show homepage url'
|
|
||||||
--contributions 'show git contributions url'
|
|
||||||
--wiki 'show git wiki url'
|
|
||||||
--issues 'show git issues url'
|
|
||||||
--report 'show git issues url'
|
|
||||||
--discussions 'show git discussions url'
|
|
||||||
--clients-repo 'show git clients-repo url'
|
|
||||||
--sources 'show useful list of sources'"
|
|
||||||
|
|
||||||
# fish-lsp complete <TAB>
|
|
||||||
complete -c fish-lsp -n __fish_use_subcommand -a complete -d 'completion utils for fish-lsp cli'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command complete; and not __fish_contains_opt features' -l features -d 'show features'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command complete; and not __fish_contains_opt fish' -l fish -d 'show completion/fish-lsp.fish'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command complete; and not __fish_contains_opt names' -l names -d 'show feature names of completions'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command complete; and not __fish_contains_opt toggle' -l toggle -d 'show feature names of completions'
|
|
||||||
|
|
||||||
# fish-lsp info --<TAB>
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt bin' -l bin -d 'show the binary path'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt repo' -l repo -d 'show the repo path'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt time' -l time -d 'show the build-time'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt env' -l env -d 'show the env-variables used'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt lsp-version' -l lsp-version -d 'show the npm package for the lsp-version'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt capabilities' -l capabilities -d 'show the lsp capabilities implemented'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt man-file' -l man-file -d 'show man file path'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt logs-file' -l logs-file -d 'show logs.txt file path'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command info; and not __fish_contains_opt more' -l more -d 'show more info'
|
|
||||||
|
|
||||||
# fish-lsp logger --<TAB>
|
|
||||||
complete -c fish-lsp -n __fish_use_subcommand -x -a logger -d 'logger utilities'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command logger; and not __fish_contains_opt -s s show' -s s -l show -d 'show the "logs.txt" file'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command logger; and not __fish_contains_opt -s c clear' -s c -l clear -d 'clear the "logs.txt" file'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command logger; and not __fish_contains_opt -s q quiet' -s q -l quiet -d 'only write to "logs.txt" file'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command logger; and not __fish_contains_opt -s d date' -s d -l date -d 'write date to "logs.txt" file'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command logger; and not __fish_contains_opt config' -l config -d 'show the logger config'
|
|
||||||
|
|
||||||
# print all $fish_lsp_submcommands
|
|
||||||
function _fish_lsp_get_features
|
|
||||||
printf %b\n complete hover rename reference formatting codeAction codeLens folding signature executeCommand inlayHint highlight diagnostic
|
|
||||||
end
|
|
||||||
|
|
||||||
# fish-lsp env --<TAB>
|
|
||||||
complete -c fish-lsp -n __fish_use_subcommand -x -a env -d 'generate fish shell env variables to be used by lsp'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command env; and not __fish_contains_opt -s s show; and not __fish_contains_opt -s c create' -s s -l show -d 'show the current fish-lsp env variables'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command env; and not __fish_contains_opt -s c create; and not __fish_contains_opt -s s show' -s c -l create -d 'build initial fish-lsp env variables'
|
|
||||||
complete -c fish-lsp -n '__fish_lsp_using_command env; and not __fish_contains_opt no-comments' -l no-comments -d 'skip outputting comments'
|
|
||||||
|
|
||||||
# COMPLETION: fish-lsp subcmd <option> [VALUE] (`fish-lsp start --enable ...`)
|
|
||||||
complete -c fish-lsp -n '__fish_seen_subcommand_from $__fish_lsp_subcommands' -l enable -xa '(_fish_lsp_get_features)'
|
|
||||||
complete -c fish-lsp -n '__fish_seen_subcommand_from $__fish_lsp_subcommands' -l disable -xa '(_fish_lsp_get_features)'
|
|
||||||
|
|
||||||
# built by the command:
|
|
||||||
# fish-lsp complete ~/.config/fish/completions/fish-lsp.fish
|
|
|
@ -1,7 +0,0 @@
|
||||||
complete --command fisher --exclusive --long help --description "Print help"
|
|
||||||
complete --command fisher --exclusive --long version --description "Print version"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
|
|
||||||
complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"
|
|
|
@ -1,8 +0,0 @@
|
||||||
complete fzf_configure_bindings --no-files
|
|
||||||
complete fzf_configure_bindings --long help --short h --description "Print help" --condition "not __fish_seen_argument --help -h"
|
|
||||||
complete fzf_configure_bindings --long directory --description "Change the key binding for Search Directory" --condition "not __fish_seen_argument --directory"
|
|
||||||
complete fzf_configure_bindings --long git_log --description "Change the key binding for Search Git Log" --condition "not __fish_seen_argument --git_log"
|
|
||||||
complete fzf_configure_bindings --long git_status --description "Change the key binding for Search Git Status" --condition "not __fish_seen_argument --git_status"
|
|
||||||
complete fzf_configure_bindings --long history --description "Change the key binding for Search History" --condition "not __fish_seen_argument --history"
|
|
||||||
complete fzf_configure_bindings --long processes --description "Change the key binding for Search Processes" --condition "not __fish_seen_argument --processes"
|
|
||||||
complete fzf_configure_bindings --long variables --description "Change the key binding for Search Variables" --condition "not __fish_seen_argument --variables"
|
|
|
@ -1,28 +0,0 @@
|
||||||
# fzf.fish is only meant to be used in interactive mode. If not in interactive mode and not in CI, skip the config to speed up shell startup
|
|
||||||
if not status is-interactive && test "$CI" != true
|
|
||||||
exit
|
|
||||||
end
|
|
||||||
|
|
||||||
# Because of scoping rules, to capture the shell variables exactly as they are, we must read
|
|
||||||
# them before even executing _fzf_search_variables. We use psub to store the
|
|
||||||
# variables' info in temporary files and pass in the filenames as arguments.
|
|
||||||
# This variable is global so that it can be referenced by fzf_configure_bindings and in tests
|
|
||||||
set --global _fzf_search_vars_command '_fzf_search_variables (set --show | psub) (set --names | psub)'
|
|
||||||
|
|
||||||
|
|
||||||
# Install the default bindings, which are mnemonic and minimally conflict with fish's preset bindings
|
|
||||||
fzf_configure_bindings
|
|
||||||
|
|
||||||
# Doesn't erase autoloaded _fzf_* functions because they are not easily accessible once key bindings are erased
|
|
||||||
function _fzf_uninstall --on-event fzf_uninstall
|
|
||||||
_fzf_uninstall_bindings
|
|
||||||
|
|
||||||
set --erase _fzf_search_vars_command
|
|
||||||
functions --erase _fzf_uninstall _fzf_migration_message _fzf_uninstall_bindings fzf_configure_bindings
|
|
||||||
complete --erase fzf_configure_bindings
|
|
||||||
|
|
||||||
set_color cyan
|
|
||||||
echo "fzf.fish uninstalled."
|
|
||||||
echo "You may need to manually remove fzf_configure_bindings from your config.fish if you were using custom key bindings."
|
|
||||||
set_color normal
|
|
||||||
end
|
|
|
@ -1,14 +0,0 @@
|
||||||
switch (uname)
|
|
||||||
case FreeBSD NetBSD DragonFly
|
|
||||||
echo Hi Beastie!
|
|
||||||
case Linux
|
|
||||||
#echo Hi Tux!
|
|
||||||
set -x RUSTUP_HOME '/usr/local/share/rustup'
|
|
||||||
case Darwin
|
|
||||||
#echo Hi Hexley!
|
|
||||||
source "$HOME/.cargo/env.fish"
|
|
||||||
case '*'
|
|
||||||
echo Hi, stranger!
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
|
@ -1,119 +0,0 @@
|
||||||
#echo Hi Tux!
|
|
||||||
fish_vi_key_bindings
|
|
||||||
set ID (id -u)
|
|
||||||
# Start tmux
|
|
||||||
if not set -q TMUX; and [ $ID != 0 ]
|
|
||||||
echo "Setting tmux"
|
|
||||||
#set -g TMUX tmux new-session -d -s base
|
|
||||||
#eval $TMUX
|
|
||||||
#tmux attach-session -d -t base
|
|
||||||
eval tmux
|
|
||||||
end
|
|
||||||
|
|
||||||
# PATH
|
|
||||||
# Local PATH
|
|
||||||
fish_add_path -a $HOME/.local/bin
|
|
||||||
|
|
||||||
# Mason PATH
|
|
||||||
fish_add_path -a $HOME/.local/share/nvim/mason/bin
|
|
||||||
|
|
||||||
# sbin PATH
|
|
||||||
fish_add_path -a /sbin
|
|
||||||
fish_add_path -a /usr/sbin
|
|
||||||
|
|
||||||
# Rust
|
|
||||||
fish_add_path -a /usr/local/share/cargo/bin
|
|
||||||
|
|
||||||
# Android
|
|
||||||
fish_add_path -a /usr/share/android-tools
|
|
||||||
|
|
||||||
# rocm
|
|
||||||
fish_add_path -a /opt/rocm/bin
|
|
||||||
|
|
||||||
# Java
|
|
||||||
#fish_add_path -a /usr/local/jdk-21/bin
|
|
||||||
|
|
||||||
# Ltex-LS
|
|
||||||
#fish_add_path -a /usr/local/share/ltex-ls-16.0.0/bin
|
|
||||||
|
|
||||||
# pyenv
|
|
||||||
set -x PYENV_ROOT /usr/share/pyenv
|
|
||||||
fish_add_path -a $PYENV_ROOT/bin
|
|
||||||
pyenv init - fish | source
|
|
||||||
status --is-interactive; and pyenv virtualenv-init - | source
|
|
||||||
|
|
||||||
# Zig
|
|
||||||
fish_add_path -a /usr/share/zig
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# VARIABLES
|
|
||||||
# For Torch
|
|
||||||
set -gx HSA_OVERRIDE_GFX_VERSION '10.3.0'
|
|
||||||
|
|
||||||
# bat
|
|
||||||
set -x BAT_THEME 'tokyonight_night'
|
|
||||||
|
|
||||||
# Rust
|
|
||||||
set -gx CARGO_HOME '/usr/local/share/cargo'
|
|
||||||
|
|
||||||
# ssh and gpg
|
|
||||||
set -x GPG_TTY (tty)
|
|
||||||
set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
|
|
||||||
gpgconf --launch gpg-agent
|
|
||||||
gpg-connect-agent updatestartuptty /bye > /dev/null
|
|
||||||
|
|
||||||
# Editor
|
|
||||||
set -gx EDITOR 'nvim'
|
|
||||||
|
|
||||||
# Manpager
|
|
||||||
#set -gx PAGER 'nvim +Man!'
|
|
||||||
|
|
||||||
# Term for ssh
|
|
||||||
#set -gx TERM 'xterm-256color'
|
|
||||||
|
|
||||||
# fzf
|
|
||||||
set -x FZF_CTRL_T_OPTS "--preview 'bat -n --color=always --line-range :500 {}'"
|
|
||||||
set -x FZF_ALT_C_OPTS "--preview 'eza --tree --color=always {} | head 200'"
|
|
||||||
|
|
||||||
|
|
||||||
# ALIAS
|
|
||||||
# convinience
|
|
||||||
alias doas="sudo"
|
|
||||||
|
|
||||||
# Neovim
|
|
||||||
alias vi="nvim"
|
|
||||||
alias vim="nvim"
|
|
||||||
|
|
||||||
# cat
|
|
||||||
alias cat="bat"
|
|
||||||
|
|
||||||
# ls
|
|
||||||
alias ls="eza --color=always --long --git --icons=always --group"
|
|
||||||
|
|
||||||
# mutt
|
|
||||||
#alias mutt='neomutt'
|
|
||||||
|
|
||||||
# rsync
|
|
||||||
alias rsync='rsync -h -v -r -P -p -t --stats'
|
|
||||||
|
|
||||||
# wget folder
|
|
||||||
alias wget_f='wget -r -np -R "index.html*"'
|
|
||||||
|
|
||||||
# btop
|
|
||||||
alias top='btop'
|
|
||||||
|
|
||||||
# fzf
|
|
||||||
fzf --fish | source
|
|
||||||
|
|
||||||
# git signed
|
|
||||||
function git --wraps git
|
|
||||||
switch $argv[1]
|
|
||||||
case commit
|
|
||||||
/usr/bin/git commit -S
|
|
||||||
case tag
|
|
||||||
/usr/bin/git tag -S
|
|
||||||
case '*'
|
|
||||||
/usr/bin/git $argv
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,2 +0,0 @@
|
||||||
jorgebucaran/fisher
|
|
||||||
patrickf1/fzf.fish
|
|
|
@ -1,43 +0,0 @@
|
||||||
function _fzf_configure_bindings_help --description "Prints the help message for fzf_configure_bindings."
|
|
||||||
echo "\
|
|
||||||
USAGE:
|
|
||||||
fzf_configure_bindings [--COMMAND=[KEY_SEQUENCE]...]
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
fzf_configure_bindings installs key bindings for fzf.fish's commands and erases any bindings it
|
|
||||||
previously installed. It installs bindings for both default and insert modes. fzf.fish executes
|
|
||||||
it without options on fish startup to install the out-of-the-box key bindings.
|
|
||||||
|
|
||||||
By default, commands are bound to a mnemonic key sequence, shown below. Each command's binding
|
|
||||||
can be configured using a namesake corresponding option:
|
|
||||||
COMMAND | DEFAULT KEY SEQUENCE | CORRESPONDING OPTION
|
|
||||||
Search Directory | Ctrl+Alt+F (F for file) | --directory
|
|
||||||
Search Git Log | Ctrl+Alt+L (L for log) | --git_log
|
|
||||||
Search Git Status | Ctrl+Alt+S (S for status) | --git_status
|
|
||||||
Search History | Ctrl+R (R for reverse) | --history
|
|
||||||
Search Processes | Ctrl+Alt+P (P for process) | --processes
|
|
||||||
Search Variables | Ctrl+V (V for variable) | --variables
|
|
||||||
Override a command's binding by specifying its corresponding option with the desired key
|
|
||||||
sequence. Disable a command's binding by specifying its corresponding option with no value.
|
|
||||||
|
|
||||||
Because fzf_configure_bindings erases bindings it previously installed, it can be cleanly
|
|
||||||
executed multiple times. Once the desired fzf_configure_bindings command has been found, add it
|
|
||||||
to your config.fish in order to persist the customized bindings.
|
|
||||||
|
|
||||||
In terms of validation, fzf_configure_bindings fails if passed unknown options. It expects an
|
|
||||||
equals sign between an option's name and value. However, it does not validate key sequences.
|
|
||||||
|
|
||||||
Pass -h or --help to print this help message and exit.
|
|
||||||
|
|
||||||
EXAMPLES
|
|
||||||
Default bindings but bind Search Directory to Ctrl+F and Search Variables to Ctrl+Alt+V
|
|
||||||
\$ fzf_configure_bindings --directory=\cf --variables=\e\cv
|
|
||||||
Default bindings but disable Search History
|
|
||||||
\$ fzf_configure_bindings --history=
|
|
||||||
An agglomeration of different options
|
|
||||||
\$ fzf_configure_bindings --git_status=\cg --history=\ch --variables= --processes=
|
|
||||||
|
|
||||||
SEE Also
|
|
||||||
To learn more about fish key bindings, see bind(1) and fish_key_reader(1).
|
|
||||||
"
|
|
||||||
end
|
|
|
@ -1,15 +0,0 @@
|
||||||
# helper function for _fzf_search_variables
|
|
||||||
function _fzf_extract_var_info --argument-names variable_name set_show_output --description "Extract and reformat lines pertaining to \$variable_name from \$set_show_output."
|
|
||||||
# Extract only the lines about the variable, all of which begin with either
|
|
||||||
# $variable_name: ...or... $variable_name[
|
|
||||||
string match --regex "^\\\$$variable_name(?::|\[).*" <$set_show_output |
|
|
||||||
|
|
||||||
# Strip the variable name prefix, including ": " for scope info lines
|
|
||||||
string replace --regex "^\\\$$variable_name(?:: )?" '' |
|
|
||||||
|
|
||||||
# Distill the lines of values, replacing...
|
|
||||||
# [1]: |value|
|
|
||||||
# ...with...
|
|
||||||
# [1] value
|
|
||||||
string replace --regex ": \|(.*)\|" ' $1'
|
|
||||||
end
|
|
|
@ -1,49 +0,0 @@
|
||||||
# helper for _fzf_search_git_status
|
|
||||||
# arg should be a line from git status --short, e.g.
|
|
||||||
# MM functions/_fzf_preview_changed_file.fish
|
|
||||||
# D README.md
|
|
||||||
# R LICENSE -> "New License"
|
|
||||||
function _fzf_preview_changed_file --argument-names path_status --description "Show the git diff of the given file."
|
|
||||||
# remove quotes because they'll be interpreted literally by git diff
|
|
||||||
# no need to requote when referencing $path because fish does not perform word splitting
|
|
||||||
# https://fishshell.com/docs/current/fish_for_bash_users.html
|
|
||||||
set -f path (string unescape (string sub --start 4 $path_status))
|
|
||||||
# first letter of short format shows index, second letter shows working tree
|
|
||||||
# https://git-scm.com/docs/git-status/2.35.0#_short_format
|
|
||||||
set -f index_status (string sub --length 1 $path_status)
|
|
||||||
set -f working_tree_status (string sub --start 2 --length 1 $path_status)
|
|
||||||
|
|
||||||
set -f diff_opts --color=always
|
|
||||||
|
|
||||||
if test $index_status = '?'
|
|
||||||
_fzf_report_diff_type Untracked
|
|
||||||
_fzf_preview_file $path
|
|
||||||
else if contains {$index_status}$working_tree_status DD AU UD UA DU AA UU
|
|
||||||
# Unmerged statuses taken directly from git status help's short format table
|
|
||||||
# Unmerged statuses are mutually exclusive with other statuses, so if we see
|
|
||||||
# these, then safe to assume the path is unmerged
|
|
||||||
_fzf_report_diff_type Unmerged
|
|
||||||
git diff $diff_opts -- $path
|
|
||||||
else
|
|
||||||
if test $index_status != ' '
|
|
||||||
_fzf_report_diff_type Staged
|
|
||||||
|
|
||||||
# renames are only detected in the index, never working tree, so only need to test for it here
|
|
||||||
# https://stackoverflow.com/questions/73954214
|
|
||||||
if test $index_status = R
|
|
||||||
# diff the post-rename path with the original path, otherwise the diff will show the entire file as being added
|
|
||||||
set -f orig_and_new_path (string split --max 1 -- ' -> ' $path)
|
|
||||||
git diff --staged $diff_opts -- $orig_and_new_path[1] $orig_and_new_path[2]
|
|
||||||
# path currently has the form of "original -> current", so we need to correct it before it's used below
|
|
||||||
set path $orig_and_new_path[2]
|
|
||||||
else
|
|
||||||
git diff --staged $diff_opts -- $path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $working_tree_status != ' '
|
|
||||||
_fzf_report_diff_type Unstaged
|
|
||||||
git diff $diff_opts -- $path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,43 +0,0 @@
|
||||||
# helper function for _fzf_search_directory and _fzf_search_git_status
|
|
||||||
function _fzf_preview_file --description "Print a preview for the given file based on its file type."
|
|
||||||
# because there's no way to guarantee that _fzf_search_directory passes the path to _fzf_preview_file
|
|
||||||
# as one argument, we collect all the arguments into one single variable and treat that as the path
|
|
||||||
set -f file_path $argv
|
|
||||||
|
|
||||||
if test -L "$file_path" # symlink
|
|
||||||
# notify user and recurse on the target of the symlink, which can be any of these file types
|
|
||||||
set -l target_path (realpath "$file_path")
|
|
||||||
|
|
||||||
set_color yellow
|
|
||||||
echo "'$file_path' is a symlink to '$target_path'."
|
|
||||||
set_color normal
|
|
||||||
|
|
||||||
_fzf_preview_file "$target_path"
|
|
||||||
else if test -f "$file_path" # regular file
|
|
||||||
if set --query fzf_preview_file_cmd
|
|
||||||
# need to escape quotes to make sure eval receives file_path as a single arg
|
|
||||||
eval "$fzf_preview_file_cmd '$file_path'"
|
|
||||||
else
|
|
||||||
bat --style=numbers --color=always "$file_path"
|
|
||||||
end
|
|
||||||
else if test -d "$file_path" # directory
|
|
||||||
if set --query fzf_preview_dir_cmd
|
|
||||||
# see above
|
|
||||||
eval "$fzf_preview_dir_cmd '$file_path'"
|
|
||||||
else
|
|
||||||
# -A list hidden files as well, except for . and ..
|
|
||||||
# -F helps classify files by appending symbols after the file name
|
|
||||||
command ls -A -F "$file_path"
|
|
||||||
end
|
|
||||||
else if test -c "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" "character device file"
|
|
||||||
else if test -b "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" "block device file"
|
|
||||||
else if test -S "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" socket
|
|
||||||
else if test -p "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" "named pipe"
|
|
||||||
else
|
|
||||||
echo "$file_path doesn't exist." >&2
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,18 +0,0 @@
|
||||||
# helper for _fzf_preview_changed_file
|
|
||||||
# prints out something like
|
|
||||||
# ╭────────╮
|
|
||||||
# │ Staged │
|
|
||||||
# ╰────────╯
|
|
||||||
function _fzf_report_diff_type --argument-names diff_type --description "Print a distinct colored header meant to preface a git patch."
|
|
||||||
# number of "-" to draw is the length of the string to box + 2 for padding
|
|
||||||
set -f repeat_count (math 2 + (string length $diff_type))
|
|
||||||
set -f line (string repeat --count $repeat_count ─)
|
|
||||||
set -f top_border ╭$line╮
|
|
||||||
set -f btm_border ╰$line╯
|
|
||||||
|
|
||||||
set_color yellow
|
|
||||||
echo $top_border
|
|
||||||
echo "│ $diff_type │"
|
|
||||||
echo $btm_border
|
|
||||||
set_color normal
|
|
||||||
end
|
|
|
@ -1,6 +0,0 @@
|
||||||
# helper function for _fzf_preview_file
|
|
||||||
function _fzf_report_file_type --argument-names file_path file_type --description "Explain the file type for a file."
|
|
||||||
set_color red
|
|
||||||
echo "Cannot preview '$file_path': it is a $file_type."
|
|
||||||
set_color normal
|
|
||||||
end
|
|
|
@ -1,33 +0,0 @@
|
||||||
function _fzf_search_directory --description "Search the current directory. Replace the current token with the selected file paths."
|
|
||||||
# Directly use fd binary to avoid output buffering delay caused by a fd alias, if any.
|
|
||||||
# Debian-based distros install fd as fdfind and the fd package is something else, so
|
|
||||||
# check for fdfind first. Fall back to "fd" for a clear error message.
|
|
||||||
set -f fd_cmd (command -v fdfind || command -v fd || echo "fd")
|
|
||||||
set -f --append fd_cmd --color=always $fzf_fd_opts
|
|
||||||
|
|
||||||
set -f fzf_arguments --multi --ansi $fzf_directory_opts
|
|
||||||
set -f token (commandline --current-token)
|
|
||||||
# expand any variables or leading tilde (~) in the token
|
|
||||||
set -f expanded_token (eval echo -- $token)
|
|
||||||
# unescape token because it's already quoted so backslashes will mess up the path
|
|
||||||
set -f unescaped_exp_token (string unescape -- $expanded_token)
|
|
||||||
|
|
||||||
# If the current token is a directory and has a trailing slash,
|
|
||||||
# then use it as fd's base directory.
|
|
||||||
if string match --quiet -- "*/" $unescaped_exp_token && test -d "$unescaped_exp_token"
|
|
||||||
set --append fd_cmd --base-directory=$unescaped_exp_token
|
|
||||||
# use the directory name as fzf's prompt to indicate the search is limited to that directory
|
|
||||||
set --prepend fzf_arguments --prompt="Directory $unescaped_exp_token> " --preview="_fzf_preview_file $expanded_token{}"
|
|
||||||
set -f file_paths_selected $unescaped_exp_token($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments)
|
|
||||||
else
|
|
||||||
set --prepend fzf_arguments --prompt="Directory> " --query="$unescaped_exp_token" --preview='_fzf_preview_file {}'
|
|
||||||
set -f file_paths_selected ($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
commandline --current-token --replace -- (string escape -- $file_paths_selected | string join ' ')
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
|
@ -1,36 +0,0 @@
|
||||||
function _fzf_search_git_log --description "Search the output of git log and preview commits. Replace the current token with the selected commit hash."
|
|
||||||
if not git rev-parse --git-dir >/dev/null 2>&1
|
|
||||||
echo '_fzf_search_git_log: Not in a git repository.' >&2
|
|
||||||
else
|
|
||||||
if not set --query fzf_git_log_format
|
|
||||||
# %h gives you the abbreviated commit hash, which is useful for saving screen space, but we will have to expand it later below
|
|
||||||
set -f fzf_git_log_format '%C(bold blue)%h%C(reset) - %C(cyan)%ad%C(reset) %C(yellow)%d%C(reset) %C(normal)%s%C(reset) %C(dim normal)[%an]%C(reset)'
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f preview_cmd 'git show --color=always --stat --patch {1}'
|
|
||||||
if set --query fzf_diff_highlighter
|
|
||||||
set preview_cmd "$preview_cmd | $fzf_diff_highlighter"
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f selected_log_lines (
|
|
||||||
git log --no-show-signature --color=always --format=format:$fzf_git_log_format --date=short | \
|
|
||||||
_fzf_wrapper --ansi \
|
|
||||||
--multi \
|
|
||||||
--scheme=history \
|
|
||||||
--prompt="Git Log> " \
|
|
||||||
--preview=$preview_cmd \
|
|
||||||
--query=(commandline --current-token) \
|
|
||||||
$fzf_git_log_opts
|
|
||||||
)
|
|
||||||
if test $status -eq 0
|
|
||||||
for line in $selected_log_lines
|
|
||||||
set -f abbreviated_commit_hash (string split --field 1 " " $line)
|
|
||||||
set -f full_commit_hash (git rev-parse $abbreviated_commit_hash)
|
|
||||||
set -f --append commit_hashes $full_commit_hash
|
|
||||||
end
|
|
||||||
commandline --current-token --replace (string join ' ' $commit_hashes)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
|
@ -1,41 +0,0 @@
|
||||||
function _fzf_search_git_status --description "Search the output of git status. Replace the current token with the selected file paths."
|
|
||||||
if not git rev-parse --git-dir >/dev/null 2>&1
|
|
||||||
echo '_fzf_search_git_status: Not in a git repository.' >&2
|
|
||||||
else
|
|
||||||
set -f preview_cmd '_fzf_preview_changed_file {}'
|
|
||||||
if set --query fzf_diff_highlighter
|
|
||||||
set preview_cmd "$preview_cmd | $fzf_diff_highlighter"
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f selected_paths (
|
|
||||||
# Pass configuration color.status=always to force status to use colors even though output is sent to a pipe
|
|
||||||
git -c color.status=always status --short |
|
|
||||||
_fzf_wrapper --ansi \
|
|
||||||
--multi \
|
|
||||||
--prompt="Git Status> " \
|
|
||||||
--query=(commandline --current-token) \
|
|
||||||
--preview=$preview_cmd \
|
|
||||||
--nth="2.." \
|
|
||||||
$fzf_git_status_opts
|
|
||||||
)
|
|
||||||
if test $status -eq 0
|
|
||||||
# git status --short automatically escapes the paths of most files for us so not going to bother trying to handle
|
|
||||||
# the few edges cases of weird file names that should be extremely rare (e.g. "this;needs;escaping")
|
|
||||||
set -f cleaned_paths
|
|
||||||
|
|
||||||
for path in $selected_paths
|
|
||||||
if test (string sub --length 1 $path) = R
|
|
||||||
# path has been renamed and looks like "R LICENSE -> LICENSE.md"
|
|
||||||
# extract the path to use from after the arrow
|
|
||||||
set --append cleaned_paths (string split -- "-> " $path)[-1]
|
|
||||||
else
|
|
||||||
set --append cleaned_paths (string sub --start=4 $path)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --current-token --replace -- (string join ' ' $cleaned_paths)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
|
@ -1,39 +0,0 @@
|
||||||
function _fzf_search_history --description "Search command history. Replace the command line with the selected command."
|
|
||||||
# history merge incorporates history changes from other fish sessions
|
|
||||||
# it errors out if called in private mode
|
|
||||||
if test -z "$fish_private_mode"
|
|
||||||
builtin history merge
|
|
||||||
end
|
|
||||||
|
|
||||||
if not set --query fzf_history_time_format
|
|
||||||
# Reference https://devhints.io/strftime to understand strftime format symbols
|
|
||||||
set -f fzf_history_time_format "%m-%d %H:%M:%S"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Delinate time from command in history entries using the vertical box drawing char (U+2502).
|
|
||||||
# Then, to get raw command from history entries, delete everything up to it. The ? on regex is
|
|
||||||
# necessary to make regex non-greedy so it won't match into commands containing the char.
|
|
||||||
set -f time_prefix_regex '^.*? │ '
|
|
||||||
# Delinate commands throughout pipeline using null rather than newlines because commands can be multi-line
|
|
||||||
set -f commands_selected (
|
|
||||||
builtin history --null --show-time="$fzf_history_time_format │ " |
|
|
||||||
_fzf_wrapper --read0 \
|
|
||||||
--print0 \
|
|
||||||
--multi \
|
|
||||||
--scheme=history \
|
|
||||||
--prompt="History> " \
|
|
||||||
--query=(commandline) \
|
|
||||||
--preview="string replace --regex '$time_prefix_regex' '' -- {} | fish_indent --ansi" \
|
|
||||||
--preview-window="bottom:3:wrap" \
|
|
||||||
$fzf_history_opts |
|
|
||||||
string split0 |
|
|
||||||
# remove timestamps from commands selected
|
|
||||||
string replace --regex $time_prefix_regex ''
|
|
||||||
)
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
commandline --replace -- $commands_selected
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
|
@ -1,32 +0,0 @@
|
||||||
function _fzf_search_processes --description "Search all running processes. Replace the current token with the pid of the selected process."
|
|
||||||
# Directly use ps command because it is often aliased to a different command entirely
|
|
||||||
# or with options that dirty the search results and preview output
|
|
||||||
set -f ps_cmd (command -v ps || echo "ps")
|
|
||||||
# use all caps to be consistent with ps default format
|
|
||||||
# snake_case because ps doesn't seem to allow spaces in the field names
|
|
||||||
set -f ps_preview_fmt (string join ',' 'pid' 'ppid=PARENT' 'user' '%cpu' 'rss=RSS_IN_KB' 'start=START_TIME' 'command')
|
|
||||||
set -f processes_selected (
|
|
||||||
$ps_cmd -A -opid,command | \
|
|
||||||
_fzf_wrapper --multi \
|
|
||||||
--prompt="Processes> " \
|
|
||||||
--query (commandline --current-token) \
|
|
||||||
--ansi \
|
|
||||||
# first line outputted by ps is a header, so we need to mark it as so
|
|
||||||
--header-lines=1 \
|
|
||||||
# ps uses exit code 1 if the process was not found, in which case show an message explaining so
|
|
||||||
--preview="$ps_cmd -o '$ps_preview_fmt' -p {1} || echo 'Cannot preview {1} because it exited.'" \
|
|
||||||
--preview-window="bottom:4:wrap" \
|
|
||||||
$fzf_processes_opts
|
|
||||||
)
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
for process in $processes_selected
|
|
||||||
set -f --append pids_selected (string split --no-empty --field=1 -- " " $process)
|
|
||||||
end
|
|
||||||
|
|
||||||
# string join to replace the newlines outputted by string split with spaces
|
|
||||||
commandline --current-token --replace -- (string join ' ' $pids_selected)
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
|
@ -1,47 +0,0 @@
|
||||||
# This function expects the following two arguments:
|
|
||||||
# argument 1 = output of (set --show | psub), i.e. a file with the scope info and values of all variables
|
|
||||||
# argument 2 = output of (set --names | psub), i.e. a file with all variable names
|
|
||||||
function _fzf_search_variables --argument-names set_show_output set_names_output --description "Search and preview shell variables. Replace the current token with the selected variable."
|
|
||||||
if test -z "$set_names_output"
|
|
||||||
printf '%s\n' '_fzf_search_variables requires 2 arguments.' >&2
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
return 22 # 22 means invalid argument in POSIX
|
|
||||||
end
|
|
||||||
|
|
||||||
# Exclude the history variable from being piped into fzf because
|
|
||||||
# 1. it's not included in $set_names_output
|
|
||||||
# 2. it tends to be a very large value => increases computation time
|
|
||||||
# 3._fzf_search_history is a much better way to examine history anyway
|
|
||||||
set -f all_variable_names (string match --invert history <$set_names_output)
|
|
||||||
|
|
||||||
set -f current_token (commandline --current-token)
|
|
||||||
# Use the current token to pre-populate fzf's query. If the current token begins
|
|
||||||
# with a $, remove it from the query so that it will better match the variable names
|
|
||||||
set -f cleaned_curr_token (string replace -- '$' '' $current_token)
|
|
||||||
|
|
||||||
set -f variable_names_selected (
|
|
||||||
printf '%s\n' $all_variable_names |
|
|
||||||
_fzf_wrapper --preview "_fzf_extract_var_info {} $set_show_output" \
|
|
||||||
--prompt="Variables> " \
|
|
||||||
--preview-window="wrap" \
|
|
||||||
--multi \
|
|
||||||
--query=$cleaned_curr_token \
|
|
||||||
$fzf_variables_opts
|
|
||||||
)
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
# If the current token begins with a $, do not overwrite the $ when
|
|
||||||
# replacing the current token with the selected variable.
|
|
||||||
# Uses brace expansion to prepend $ to each variable name.
|
|
||||||
commandline --current-token --replace (
|
|
||||||
if string match --quiet -- '$*' $current_token
|
|
||||||
string join " " \${$variable_names_selected}
|
|
||||||
else
|
|
||||||
string join " " $variable_names_selected
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
|
@ -1,21 +0,0 @@
|
||||||
function _fzf_wrapper --description "Prepares some environment variables before executing fzf."
|
|
||||||
# Make sure fzf uses fish to execute preview commands, some of which
|
|
||||||
# are autoloaded fish functions so don't exist in other shells.
|
|
||||||
# Use --function so that it doesn't clobber SHELL outside this function.
|
|
||||||
set -f --export SHELL (command --search fish)
|
|
||||||
|
|
||||||
# If neither FZF_DEFAULT_OPTS nor FZF_DEFAULT_OPTS_FILE are set, then set some sane defaults.
|
|
||||||
# See https://github.com/junegunn/fzf#environment-variables
|
|
||||||
set --query FZF_DEFAULT_OPTS FZF_DEFAULT_OPTS_FILE
|
|
||||||
if test $status -eq 2
|
|
||||||
# cycle allows jumping between the first and last results, making scrolling faster
|
|
||||||
# layout=reverse lists results top to bottom, mimicking the familiar layouts of git log, history, and env
|
|
||||||
# border shows where the fzf window begins and ends
|
|
||||||
# height=90% leaves space to see the current command and some scrollback, maintaining context of work
|
|
||||||
# preview-window=wrap wraps long lines in the preview window, making reading easier
|
|
||||||
# marker=* makes the multi-select marker more distinguishable from the pointer (since both default to >)
|
|
||||||
set --export FZF_DEFAULT_OPTS '--cycle --layout=reverse --border --height=90% --preview-window=wrap --marker="*"'
|
|
||||||
end
|
|
||||||
|
|
||||||
fzf $argv
|
|
||||||
end
|
|
|
@ -1,21 +0,0 @@
|
||||||
function fish_greeting
|
|
||||||
if not set -q fish_greeting
|
|
||||||
set -l line1 (printf (_ 'Welcome %sEduardo%s, remember to drink water!') (set_color yellow) (set_color normal))
|
|
||||||
set -g fish_greeting "$line1"
|
|
||||||
end
|
|
||||||
|
|
||||||
if set -q fish_private_mode
|
|
||||||
set -l line (_ "fish is running in private mode, history will not be persisted.")
|
|
||||||
if set -q fish_greeting[1]
|
|
||||||
set -g fish_greeting $fish_greeting\n$line
|
|
||||||
else
|
|
||||||
set -g fish_greeting $line
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# The greeting used to be skipped when fish_greeting was empty (not just undefined)
|
|
||||||
# Keep it that way to not print superfluous newlines on old configuration
|
|
||||||
test -n "$fish_greeting"
|
|
||||||
and echo $fish_greeting
|
|
||||||
end
|
|
||||||
|
|
|
@ -1,240 +0,0 @@
|
||||||
function fisher --argument-names cmd --description "A plugin manager for Fish"
|
|
||||||
set --query fisher_path || set --local fisher_path $__fish_config_dir
|
|
||||||
set --local fisher_version 4.4.5
|
|
||||||
set --local fish_plugins $__fish_config_dir/fish_plugins
|
|
||||||
|
|
||||||
switch "$cmd"
|
|
||||||
case -v --version
|
|
||||||
echo "fisher, version $fisher_version"
|
|
||||||
case "" -h --help
|
|
||||||
echo "Usage: fisher install <plugins...> Install plugins"
|
|
||||||
echo " fisher remove <plugins...> Remove installed plugins"
|
|
||||||
echo " fisher update <plugins...> Update installed plugins"
|
|
||||||
echo " fisher update Update all installed plugins"
|
|
||||||
echo " fisher list [<regex>] List installed plugins matching regex"
|
|
||||||
echo "Options:"
|
|
||||||
echo " -v, --version Print version"
|
|
||||||
echo " -h, --help Print this help message"
|
|
||||||
echo "Variables:"
|
|
||||||
echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~
|
|
||||||
case ls list
|
|
||||||
string match --entire --regex -- "$argv[2]" $_fisher_plugins
|
|
||||||
case install update remove
|
|
||||||
isatty || read --local --null --array stdin && set --append argv $stdin
|
|
||||||
|
|
||||||
set --local install_plugins
|
|
||||||
set --local update_plugins
|
|
||||||
set --local remove_plugins
|
|
||||||
set --local arg_plugins $argv[2..-1]
|
|
||||||
set --local old_plugins $_fisher_plugins
|
|
||||||
set --local new_plugins
|
|
||||||
|
|
||||||
test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins | string replace -- \~ ~)
|
|
||||||
|
|
||||||
if ! set --query argv[2]
|
|
||||||
if test "$cmd" != update
|
|
||||||
echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1
|
|
||||||
else if ! set --query file_plugins
|
|
||||||
echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
set arg_plugins $file_plugins
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $arg_plugins
|
|
||||||
set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin)
|
|
||||||
contains -- "$plugin" $new_plugins || set --append new_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query argv[2]
|
|
||||||
for plugin in $new_plugins
|
|
||||||
if contains -- "$plugin" $old_plugins
|
|
||||||
test "$cmd" = remove &&
|
|
||||||
set --append remove_plugins $plugin ||
|
|
||||||
set --append update_plugins $plugin
|
|
||||||
else if test "$cmd" = install
|
|
||||||
set --append install_plugins $plugin
|
|
||||||
else
|
|
||||||
echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for plugin in $new_plugins
|
|
||||||
contains -- "$plugin" $old_plugins &&
|
|
||||||
set --append update_plugins $plugin ||
|
|
||||||
set --append install_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $old_plugins
|
|
||||||
contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local pid_list
|
|
||||||
set --local source_plugins
|
|
||||||
set --local fetch_plugins $update_plugins $install_plugins
|
|
||||||
set --local fish_path (status fish-path)
|
|
||||||
|
|
||||||
echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal)
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
set --local source (command mktemp -d)
|
|
||||||
set --append source_plugins $source
|
|
||||||
|
|
||||||
command mkdir -p $source/{completions,conf.d,themes,functions}
|
|
||||||
|
|
||||||
$fish_path --command "
|
|
||||||
if test -e $plugin
|
|
||||||
command cp -Rf $plugin/* $source
|
|
||||||
else
|
|
||||||
set temp (command mktemp -d)
|
|
||||||
set repo (string split -- \@ $plugin) || set repo[2] HEAD
|
|
||||||
|
|
||||||
if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1])
|
|
||||||
set name (string split -- / \$path)[-1]
|
|
||||||
set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz
|
|
||||||
else
|
|
||||||
set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2]
|
|
||||||
end
|
|
||||||
|
|
||||||
echo Fetching (set_color --underline)\$url(set_color normal)
|
|
||||||
|
|
||||||
if command curl -q --silent -L \$url | command tar -xzC \$temp -f - 2>/dev/null
|
|
||||||
command cp -Rf \$temp/*/* $source
|
|
||||||
else
|
|
||||||
echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
|
|
||||||
command rm -rf $source
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf \$temp
|
|
||||||
end
|
|
||||||
|
|
||||||
set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files
|
|
||||||
" &
|
|
||||||
|
|
||||||
set --append pid_list (jobs --last --pid)
|
|
||||||
end
|
|
||||||
|
|
||||||
wait $pid_list 2>/dev/null
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
|
|
||||||
if set --local index (contains --index -- "$plugin" $install_plugins)
|
|
||||||
set --erase install_plugins[$index]
|
|
||||||
else
|
|
||||||
set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $remove_plugins
|
|
||||||
if set --local index (contains --index -- "$plugin" $_fisher_plugins)
|
|
||||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
|
||||||
|
|
||||||
if contains -- "$plugin" $remove_plugins
|
|
||||||
for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
emit {$name}_uninstall
|
|
||||||
end
|
|
||||||
printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
|
||||||
set --erase _fisher_plugins[$index]
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf (string replace -- \~ ~ $$plugin_files_var)
|
|
||||||
|
|
||||||
functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
|
|
||||||
for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
complete --erase --command $name
|
|
||||||
end
|
|
||||||
|
|
||||||
set --erase $plugin_files_var
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query update_plugins[1] || set --query install_plugins[1]
|
|
||||||
command mkdir -p $fisher_path/{functions,themes,conf.d,completions}
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $install_plugins
|
|
||||||
set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
|
|
||||||
set --local files $source/{functions,themes,conf.d,completions}/*
|
|
||||||
|
|
||||||
if set --local index (contains --index -- $plugin $install_plugins)
|
|
||||||
set --local user_files $fisher_path/{functions,themes,conf.d,completions}/*
|
|
||||||
set --local conflict_files
|
|
||||||
|
|
||||||
for file in (string replace -- $source/ $fisher_path/ $files)
|
|
||||||
contains -- $file $user_files && set --append conflict_files $file
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query conflict_files[1] && set --erase install_plugins[$index]
|
|
||||||
echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2
|
|
||||||
continue
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for file in (string replace -- $source/ "" $files)
|
|
||||||
command cp -RLf $source/$file $fisher_path/$file
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
|
||||||
|
|
||||||
set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~)
|
|
||||||
|
|
||||||
contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin
|
|
||||||
contains -- $plugin $install_plugins && set --local event install || set --local event update
|
|
||||||
|
|
||||||
printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
|
||||||
|
|
||||||
for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~)
|
|
||||||
source $file
|
|
||||||
if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file)
|
|
||||||
emit {$name}_$event
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf $source_plugins
|
|
||||||
|
|
||||||
if set --query _fisher_plugins[1]
|
|
||||||
set --local commit_plugins
|
|
||||||
|
|
||||||
for plugin in $file_plugins
|
|
||||||
contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $_fisher_plugins
|
|
||||||
contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
string replace --regex -- $HOME \~ $commit_plugins >$fish_plugins
|
|
||||||
else
|
|
||||||
set --erase _fisher_plugins
|
|
||||||
command rm -f $fish_plugins
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
|
|
||||||
|
|
||||||
test "$total" != "0 0 0" && echo (string join ", " (
|
|
||||||
test $total[1] = 0 || echo "Installed $total[1]") (
|
|
||||||
test $total[2] = 0 || echo "Updated $total[2]") (
|
|
||||||
test $total[3] = 0 || echo "Removed $total[3]")
|
|
||||||
) plugin/s
|
|
||||||
case \*
|
|
||||||
echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! set --query _fisher_upgraded_to_4_4
|
|
||||||
set --universal _fisher_upgraded_to_4_4
|
|
||||||
if functions --query _fisher_list
|
|
||||||
set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share
|
|
||||||
command rm -rf $XDG_DATA_HOME/fisher
|
|
||||||
functions --erase _fisher_{list,plugin_parse}
|
|
||||||
fisher update >/dev/null 2>/dev/null
|
|
||||||
else
|
|
||||||
for var in (set --names | string match --entire --regex '^_fisher_.+_files$')
|
|
||||||
set $var (string replace -- ~ \~ $$var)
|
|
||||||
end
|
|
||||||
functions --erase _fisher_fish_postexec
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,46 +0,0 @@
|
||||||
# Always installs bindings for insert and default mode for simplicity and b/c it has almost no side-effect
|
|
||||||
# https://gitter.im/fish-shell/fish-shell?at=60a55915ee77a74d685fa6b1
|
|
||||||
function fzf_configure_bindings --description "Installs the default key bindings for fzf.fish with user overrides passed as options."
|
|
||||||
# no need to install bindings if not in interactive mode or running tests
|
|
||||||
status is-interactive || test "$CI" = true; or return
|
|
||||||
|
|
||||||
set -f options_spec h/help 'directory=?' 'git_log=?' 'git_status=?' 'history=?' 'processes=?' 'variables=?'
|
|
||||||
argparse --max-args=0 --ignore-unknown $options_spec -- $argv 2>/dev/null
|
|
||||||
if test $status -ne 0
|
|
||||||
echo "Invalid option or a positional argument was provided." >&2
|
|
||||||
_fzf_configure_bindings_help
|
|
||||||
return 22
|
|
||||||
else if set --query _flag_help
|
|
||||||
_fzf_configure_bindings_help
|
|
||||||
return
|
|
||||||
else
|
|
||||||
# Initialize with default key sequences and then override or disable them based on flags
|
|
||||||
# index 1 = directory, 2 = git_log, 3 = git_status, 4 = history, 5 = processes, 6 = variables
|
|
||||||
set -f key_sequences \e\cf \e\cl \e\cs \cr \e\cp \cv # \c = control, \e = escape
|
|
||||||
set --query _flag_directory && set key_sequences[1] "$_flag_directory"
|
|
||||||
set --query _flag_git_log && set key_sequences[2] "$_flag_git_log"
|
|
||||||
set --query _flag_git_status && set key_sequences[3] "$_flag_git_status"
|
|
||||||
set --query _flag_history && set key_sequences[4] "$_flag_history"
|
|
||||||
set --query _flag_processes && set key_sequences[5] "$_flag_processes"
|
|
||||||
set --query _flag_variables && set key_sequences[6] "$_flag_variables"
|
|
||||||
|
|
||||||
# If fzf bindings already exists, uninstall it first for a clean slate
|
|
||||||
if functions --query _fzf_uninstall_bindings
|
|
||||||
_fzf_uninstall_bindings
|
|
||||||
end
|
|
||||||
|
|
||||||
for mode in default insert
|
|
||||||
test -n $key_sequences[1] && bind --mode $mode $key_sequences[1] _fzf_search_directory
|
|
||||||
test -n $key_sequences[2] && bind --mode $mode $key_sequences[2] _fzf_search_git_log
|
|
||||||
test -n $key_sequences[3] && bind --mode $mode $key_sequences[3] _fzf_search_git_status
|
|
||||||
test -n $key_sequences[4] && bind --mode $mode $key_sequences[4] _fzf_search_history
|
|
||||||
test -n $key_sequences[5] && bind --mode $mode $key_sequences[5] _fzf_search_processes
|
|
||||||
test -n $key_sequences[6] && bind --mode $mode $key_sequences[6] "$_fzf_search_vars_command"
|
|
||||||
end
|
|
||||||
|
|
||||||
function _fzf_uninstall_bindings --inherit-variable key_sequences
|
|
||||||
bind --erase -- $key_sequences
|
|
||||||
bind --erase --mode insert -- $key_sequences
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,108 +0,0 @@
|
||||||
font-family = Terminess Nerd Font
|
|
||||||
font-size = 18
|
|
||||||
font-thicken = false
|
|
||||||
theme = Homebrew
|
|
||||||
#theme = Apple Classic
|
|
||||||
## background = #282c34
|
|
||||||
#background = #444445
|
|
||||||
#foreground = #ffffff
|
|
||||||
#minimum-contrast = 1
|
|
||||||
## Black
|
|
||||||
#palette = 0=#000000
|
|
||||||
#palette = 8=#666666
|
|
||||||
## Red
|
|
||||||
#palette = 1=#990000
|
|
||||||
#palette = 9=#e50000
|
|
||||||
## Green
|
|
||||||
#palette = 2=#00a600
|
|
||||||
#palette = 10=#00d900
|
|
||||||
## Yellow
|
|
||||||
#palette = 3=#999900
|
|
||||||
#palette = 11=#e5e500
|
|
||||||
## Blue
|
|
||||||
##palette = 4=#0000b2
|
|
||||||
#palette = 4=#053de6
|
|
||||||
#palette = 12=#0000ff
|
|
||||||
## Purple
|
|
||||||
#palette = 5=#b200b2
|
|
||||||
#palette = 13=#e500e5
|
|
||||||
## Aqua
|
|
||||||
#palette = 6=#00a6b2
|
|
||||||
#palette = 14=#00e5e5
|
|
||||||
## White
|
|
||||||
#palette = 7=#bfbfbf
|
|
||||||
#palette = 15=#e5e5e5
|
|
||||||
cursor-color =
|
|
||||||
cursor-invert-fg-bg = false
|
|
||||||
cursor-opacity = 1
|
|
||||||
cursor-style = block
|
|
||||||
cursor-style-blink =
|
|
||||||
cursor-click-to-move = true
|
|
||||||
mouse-hide-while-typing = false
|
|
||||||
mouse-shift-capture = false
|
|
||||||
background-opacity = 1
|
|
||||||
unfocused-split-opacity = 0.7
|
|
||||||
scrollback-limit = 10000000
|
|
||||||
link-url = true
|
|
||||||
fullscreen = false
|
|
||||||
window-padding-x = 2
|
|
||||||
window-padding-y = 2
|
|
||||||
window-padding-balance = false
|
|
||||||
window-padding-color = background
|
|
||||||
window-vsync = true
|
|
||||||
window-inherit-working-directory = true
|
|
||||||
window-inherit-font-size = true
|
|
||||||
window-decoration = true
|
|
||||||
window-title-font-family =
|
|
||||||
window-theme = auto
|
|
||||||
window-colorspace = srgb
|
|
||||||
window-height = 51
|
|
||||||
window-width = 189
|
|
||||||
window-save-state = default
|
|
||||||
window-step-resize = false
|
|
||||||
window-new-tab-position = current
|
|
||||||
resize-overlay = after-first
|
|
||||||
resize-overlay-position = center
|
|
||||||
resize-overlay-duration = 750ms
|
|
||||||
focus-follows-mouse = false
|
|
||||||
clipboard-read = ask
|
|
||||||
clipboard-write = allow
|
|
||||||
clipboard-trim-trailing-spaces = true
|
|
||||||
clipboard-paste-protection = true
|
|
||||||
clipboard-paste-bracketed-safe = true
|
|
||||||
image-storage-limit = 320000000
|
|
||||||
copy-on-select = false
|
|
||||||
click-repeat-interval = 0
|
|
||||||
initial-window = true
|
|
||||||
shell-integration = detect
|
|
||||||
shell-integration-features = cursor,no-sudo,title
|
|
||||||
macos-non-native-fullscreen = false
|
|
||||||
macos-titlebar-style = transparent
|
|
||||||
macos-titlebar-proxy-icon = visible
|
|
||||||
macos-option-as-alt =
|
|
||||||
macos-window-shadow = true
|
|
||||||
macos-auto-secure-input = true
|
|
||||||
macos-secure-input-indication = true
|
|
||||||
macos-icon = official
|
|
||||||
macos-icon-frame = aluminum
|
|
||||||
macos-icon-ghost-color =
|
|
||||||
macos-icon-screen-color =
|
|
||||||
linux-cgroup = single-instance
|
|
||||||
linux-cgroup-memory-limit =
|
|
||||||
linux-cgroup-processes-limit =
|
|
||||||
linux-cgroup-hard-fail = false
|
|
||||||
gtk-single-instance = desktop
|
|
||||||
#gtk-titlebar = true
|
|
||||||
gtk-titlebar = false
|
|
||||||
gtk-tabs-location = top
|
|
||||||
adw-toolbar-style = raised
|
|
||||||
#adw-toast = clipboard-copy
|
|
||||||
gtk-wide-tabs = true
|
|
||||||
gtk-adwaita = true
|
|
||||||
#gtk-custom-css =
|
|
||||||
desktop-notifications = true
|
|
||||||
bold-is-bright = false
|
|
||||||
term = xterm-ghostty
|
|
||||||
enquiry-response =
|
|
||||||
auto-update = check
|
|
||||||
auto-update-channel =
|
|
|
@ -1,423 +0,0 @@
|
||||||
# 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 "~/Music"
|
|
||||||
#
|
|
||||||
# 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/mpd.db"
|
|
||||||
|
|
||||||
# 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 "~/.config/mpd/log"
|
|
||||||
|
|
||||||
# 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 "~/.config/mpd/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 "~/.local/state/mpd/state"
|
|
||||||
#
|
|
||||||
# The location of the sticker database. This is a database which
|
|
||||||
# manages dynamic information attached to songs.
|
|
||||||
#
|
|
||||||
sticker_file "~/.config/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 "eduardo"
|
|
||||||
#
|
|
||||||
# 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 "~/.config/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
|
|
||||||
## mixer_type "hardware" # 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
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
audio_output {
|
|
||||||
type "pipewire"
|
|
||||||
name "PipeWire Sound Server"
|
|
||||||
}
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# 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"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
13160
|
|
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
*.json
|
|
|
@ -1,2 +0,0 @@
|
||||||
indent_type = "Spaces"
|
|
||||||
indent_width = 4
|
|
|
@ -1,16 +0,0 @@
|
||||||
CIFAR
|
|
||||||
MNIST
|
|
||||||
LeNet
|
|
||||||
MUL
|
|
||||||
BCNN
|
|
||||||
Grangegorman
|
|
||||||
Cueto
|
|
||||||
Mendoza
|
|
||||||
Maynooth
|
|
||||||
Frobenius
|
|
||||||
Neuromorphic
|
|
||||||
neuromorphic
|
|
||||||
NN
|
|
||||||
pytorch
|
|
||||||
Pytorch
|
|
||||||
SOTA
|
|
|
@ -1,5 +0,0 @@
|
||||||
; extends
|
|
||||||
(object
|
|
||||||
(pair
|
|
||||||
key: (_) @property.lhs
|
|
||||||
value: (_) @property.inner @property.rhs) @property.outer)
|
|
|
@ -1,2 +0,0 @@
|
||||||
require("user.core.init")
|
|
||||||
require("user.lazy")
|
|
|
@ -1,2 +0,0 @@
|
||||||
require("user.core.options")
|
|
||||||
require("user.core.keymaps")
|
|
|
@ -1,128 +0,0 @@
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.g.maplocalleader = " "
|
|
||||||
|
|
||||||
local keymap = vim.keymap -- for conciseness
|
|
||||||
|
|
||||||
keymap.set("i", "jk", "<ESC>", { desc = "Exit insert mode with jk" })
|
|
||||||
|
|
||||||
keymap.set("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
|
|
||||||
|
|
||||||
-- increment/decrement numbers
|
|
||||||
keymap.set("n", "<leader>+", "<C-a>", { desc = "Increment number" }) -- increment
|
|
||||||
keymap.set("n", "<leader>-", "<C-x>", { desc = "Decrement number" }) -- decrement
|
|
||||||
|
|
||||||
-- window management
|
|
||||||
keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" }) -- split window vertically
|
|
||||||
keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" }) -- split window horizontally
|
|
||||||
keymap.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" }) -- make split windows equal width & height
|
|
||||||
keymap.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" }) -- close current split window
|
|
||||||
|
|
||||||
keymap.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" }) -- open new tab
|
|
||||||
keymap.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close current tab" }) -- close current tab
|
|
||||||
keymap.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" }) -- go to next tab
|
|
||||||
keymap.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" }) -- go to previous tab
|
|
||||||
keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in new tab" }) -- move current buffer to new tab
|
|
||||||
|
|
||||||
-- Open Ex as buffer
|
|
||||||
-- vim.keymap.set("n", "<leader>pv", vim.cmd.Ex, { desc = "Open Ex" })
|
|
||||||
vim.keymap.set("n", "<leader>pv", ":NvimTreeToggle<CR>", { desc = "Open Ex" })
|
|
||||||
|
|
||||||
-- Exit insert mode without hitting Esc
|
|
||||||
vim.keymap.set("i", "jj", "<Esc>", { desc = "Esc" })
|
|
||||||
|
|
||||||
-- Make Y behave like C or D
|
|
||||||
vim.keymap.set("n", "Y", "y$")
|
|
||||||
|
|
||||||
-- Keep window centered when going up/down
|
|
||||||
vim.keymap.set("n", "J", "mzJ`z")
|
|
||||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
|
||||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
|
||||||
vim.keymap.set("n", "n", "nzzzv")
|
|
||||||
vim.keymap.set("n", "N", "Nzzzv")
|
|
||||||
|
|
||||||
-- Paste without overwriting register
|
|
||||||
vim.keymap.set("v", "p", '"_dP')
|
|
||||||
|
|
||||||
-- Copy text to " register
|
|
||||||
vim.keymap.set("n", "<leader>y", '"+y', { desc = 'Yank into " register' })
|
|
||||||
vim.keymap.set("v", "<leader>y", '"+y', { desc = 'Yank into " register' })
|
|
||||||
vim.keymap.set("n", "<leader>Y", '"+Y', { desc = 'Yank into " register' })
|
|
||||||
|
|
||||||
-- Delete text to " register
|
|
||||||
vim.keymap.set("n", "<leader>d", '"_d', { desc = 'Delete into " register' })
|
|
||||||
vim.keymap.set("v", "<leader>d", '"_d', { desc = 'Delete into " register' })
|
|
||||||
|
|
||||||
-- Get out Q
|
|
||||||
vim.keymap.set("n", "Q", "<nop>")
|
|
||||||
|
|
||||||
-- close buffer
|
|
||||||
vim.keymap.set("n", "<leader>q", "<cmd>bd<CR>", { desc = "Close Buffer" })
|
|
||||||
|
|
||||||
-- Close buffer without closing split
|
|
||||||
vim.keymap.set("n", "<leader>w", "<cmd>bp|bd #<CR>", { desc = "Close Buffer; Retain Split" })
|
|
||||||
|
|
||||||
-- Navigate between quickfix items
|
|
||||||
vim.keymap.set("n", "<leader>h", "<cmd>cnext<CR>zz", { desc = "Forward qfixlist" })
|
|
||||||
vim.keymap.set("n", "<leader>;", "<cmd>cprev<CR>zz", { desc = "Backward qfixlist" })
|
|
||||||
|
|
||||||
-- Navigate between location list items
|
|
||||||
vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz", { desc = "Forward location list" })
|
|
||||||
vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz", { desc = "Backward location list" })
|
|
||||||
|
|
||||||
-- Replace word under cursor across entire buffer
|
|
||||||
vim.keymap.set(
|
|
||||||
"n",
|
|
||||||
"<leader>s",
|
|
||||||
[[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]],
|
|
||||||
{ desc = "Replace word under cursor" }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Make current file executable
|
|
||||||
vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true, desc = "Make current file executable" })
|
|
||||||
|
|
||||||
-- Jump to plugin management file
|
|
||||||
vim.keymap.set("n", "<leader>vpp", "<cmd>e ~/.config/nvim/lua/exosyphon/lazy.lua<CR>", { desc = "Jump to lazy.lua" })
|
|
||||||
|
|
||||||
-- Git revert at current cursor location
|
|
||||||
vim.keymap.set("n", "<leader>U", "<cmd>GitGutterUndoHunk<CR>", { desc = "Revert Git Hunk" })
|
|
||||||
|
|
||||||
-- Copy file paths
|
|
||||||
vim.keymap.set("n", "<leader>cf", '<cmd>let @+ = expand("%")<CR>', { desc = "Copy File Name" })
|
|
||||||
vim.keymap.set("n", "<leader>cp", '<cmd>let @+ = expand("%:p")<CR>', { desc = "Copy File Path" })
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>so", function()
|
|
||||||
vim.cmd("so")
|
|
||||||
end, { desc = "Source current file" })
|
|
||||||
|
|
||||||
-- Resize with arrows
|
|
||||||
vim.keymap.set("n", "<C-S-Down>", ":resize +2<CR>", { desc = "Resize Horizontal Split Down" })
|
|
||||||
vim.keymap.set("n", "<C-S-Up>", ":resize -2<CR>", { desc = "Resize Horizontal Split Up" })
|
|
||||||
vim.keymap.set("n", "<C-Left>", ":vertical resize -2<CR>", { desc = "Resize Vertical Split Down" })
|
|
||||||
vim.keymap.set("n", "<C-Right>", ":vertical resize +2<CR>", { desc = "Resize Vertical Split Up" })
|
|
||||||
|
|
||||||
-- Open compiler
|
|
||||||
vim.api.nvim_set_keymap("n", "<leader><leader>", "<cmd>CompilerOpen<cr>", { noremap = true, silent = true })
|
|
||||||
|
|
||||||
-- Redo last selected option
|
|
||||||
vim.api.nvim_set_keymap(
|
|
||||||
"n",
|
|
||||||
"<leader><leader><leader>",
|
|
||||||
"<cmd>CompilerStop<cr>" -- (Optional, to dispose all tasks before redo)
|
|
||||||
.. "<cmd>CompilerRedo<cr>",
|
|
||||||
{ noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Toggle compiler results
|
|
||||||
vim.api.nvim_set_keymap("n", "<leader><leader>t", "<cmd>CompilerToggleResults<cr>", { noremap = true, silent = true })
|
|
||||||
|
|
||||||
-- Visual --
|
|
||||||
-- Stay in indent mode
|
|
||||||
vim.keymap.set("v", "<", "<gv")
|
|
||||||
vim.keymap.set("v", ">", ">gv")
|
|
||||||
|
|
||||||
-- Move block
|
|
||||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv", { desc = "Move Block Down" })
|
|
||||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv", { desc = "Move Block Up" })
|
|
||||||
|
|
||||||
-- Search for highlighted text in buffer
|
|
||||||
vim.keymap.set("v", "//", 'y/<C-R>"<CR>', { desc = "Search for highlighted text" })
|
|
|
@ -1,87 +0,0 @@
|
||||||
-- NeoVim OPTIONS
|
|
||||||
vim.opt.guicursor = ""
|
|
||||||
|
|
||||||
-- vim.opt.spelllang = 'en_gb'
|
|
||||||
-- vim.opt.spell = true
|
|
||||||
|
|
||||||
vim.opt.nu = true
|
|
||||||
vim.opt.relativenumber = true
|
|
||||||
|
|
||||||
vim.opt.tabstop = 4
|
|
||||||
vim.opt.softtabstop = 4
|
|
||||||
vim.opt.shiftwidth = 4
|
|
||||||
vim.opt.expandtab = true
|
|
||||||
|
|
||||||
vim.opt.smartindent = true
|
|
||||||
|
|
||||||
vim.opt.wrap = true
|
|
||||||
-- Fonts
|
|
||||||
vim.opt.encoding = "utf-8"
|
|
||||||
|
|
||||||
-- Undo
|
|
||||||
vim.opt.swapfile = false
|
|
||||||
vim.opt.backup = false
|
|
||||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
|
||||||
vim.opt.undofile = true
|
|
||||||
|
|
||||||
vim.opt.hlsearch = false
|
|
||||||
vim.opt.incsearch = true
|
|
||||||
|
|
||||||
-- optionally enable 24-bit colour
|
|
||||||
-- vim.opt.termguicolors = true
|
|
||||||
|
|
||||||
-- Folds
|
|
||||||
vim.opt.foldmethod = "marker"
|
|
||||||
--vim.opt.foldmethod = "expr"
|
|
||||||
--vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
|
|
||||||
--vim.opt.foldcolumn = "0"
|
|
||||||
--vim.opt.foldtext = ""
|
|
||||||
--vim.opt.foldlevel = 99
|
|
||||||
--vim.opt.foldlevelstart = 1
|
|
||||||
--vim.opt.foldnestmax = 4
|
|
||||||
|
|
||||||
-- Providers (Not necesary)
|
|
||||||
vim.g.loaded_ruby_provider = 0
|
|
||||||
vim.g.loaded_perl_provider = 0
|
|
||||||
vim.g.loaded_node_provider = 0
|
|
||||||
|
|
||||||
vim.opt.scrolloff = 8
|
|
||||||
vim.opt.signcolumn = "yes"
|
|
||||||
vim.opt.isfname:append("@-@")
|
|
||||||
|
|
||||||
vim.opt.updatetime = 50
|
|
||||||
|
|
||||||
vim.opt.colorcolumn = "110"
|
|
||||||
|
|
||||||
-- LSP options
|
|
||||||
vim.diagnostic.config({
|
|
||||||
virtual_text = false,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Show line diagnostics automatically in hover window
|
|
||||||
vim.o.updatetime = 250
|
|
||||||
vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions"
|
|
||||||
vim.cmd([[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]])
|
|
||||||
|
|
||||||
local f = io.popen("uname -s")
|
|
||||||
if f ~= nil then
|
|
||||||
MY_OS = f:read("*a")
|
|
||||||
MY_OS = string.gsub(MY_OS, "%s+", "")
|
|
||||||
f:close()
|
|
||||||
end
|
|
||||||
|
|
||||||
if MY_OS == "Linux" then
|
|
||||||
-- on Linux
|
|
||||||
-- Python provider
|
|
||||||
vim.g.python3_host_prog = "/usr/share/pyenv/shims/python"
|
|
||||||
elseif (MY_OS == "FreeBSD") or (MY_OS == "OpenBSD") then
|
|
||||||
-- on BSD
|
|
||||||
-- Python provider
|
|
||||||
vim.g.python3_host_prog = "/usr/local/share/pyenv/shims/python"
|
|
||||||
elseif MY_OS == "Darwin" then
|
|
||||||
-- on MacOS
|
|
||||||
-- Python provider
|
|
||||||
vim.g.python3_host_prog = "$HOME/.pyenv/shims/python"
|
|
||||||
else
|
|
||||||
print("Should never be here LSP")
|
|
||||||
end
|
|
|
@ -1,22 +0,0 @@
|
||||||
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)
|
|
||||||
|
|
||||||
require("lazy").setup({ { import = "user.plugins" }, { import = "user.plugins.lsp" } }, {
|
|
||||||
checker = {
|
|
||||||
enabled = true,
|
|
||||||
notify = false,
|
|
||||||
},
|
|
||||||
change_detection = {
|
|
||||||
notify = false,
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -1,46 +0,0 @@
|
||||||
return {
|
|
||||||
"folke/tokyonight.nvim",
|
|
||||||
priority = 1000,
|
|
||||||
config = function()
|
|
||||||
-- local transparent = false -- set to true if you would like to enable transparency
|
|
||||||
local transparent = true -- set to true if you would like to enable transparency
|
|
||||||
|
|
||||||
local bg = "#011628"
|
|
||||||
local bg_dark = "#011423"
|
|
||||||
local bg_highlight = "#143652"
|
|
||||||
local bg_search = "#0A64AC"
|
|
||||||
local bg_visual = "#275378"
|
|
||||||
local fg = "#CBE0F0"
|
|
||||||
local fg_dark = "#B4D0E9"
|
|
||||||
local fg_gutter = "#627E97"
|
|
||||||
local border = "#547998"
|
|
||||||
|
|
||||||
require("tokyonight").setup({
|
|
||||||
style = "night",
|
|
||||||
transparent = transparent,
|
|
||||||
styles = {
|
|
||||||
sidebars = transparent and "transparent" or "dark",
|
|
||||||
floats = transparent and "transparent" or "dark",
|
|
||||||
},
|
|
||||||
on_colors = function(colors)
|
|
||||||
colors.bg = bg
|
|
||||||
colors.bg_dark = transparent and colors.none or bg_dark
|
|
||||||
colors.bg_float = transparent and colors.none or bg_dark
|
|
||||||
colors.bg_highlight = bg_highlight
|
|
||||||
colors.bg_popup = bg_dark
|
|
||||||
colors.bg_search = bg_search
|
|
||||||
colors.bg_sidebar = transparent and colors.none or bg_dark
|
|
||||||
colors.bg_statusline = transparent and colors.none or bg_dark
|
|
||||||
colors.bg_visual = bg_visual
|
|
||||||
colors.border = border
|
|
||||||
colors.fg = fg
|
|
||||||
colors.fg_dark = fg_dark
|
|
||||||
colors.fg_float = fg
|
|
||||||
colors.fg_gutter = fg_gutter
|
|
||||||
colors.fg_sidebar = fg_dark
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.cmd("colorscheme tokyonight")
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
build = ":TSUpdate",
|
|
||||||
dependencies = {
|
|
||||||
"windwp/nvim-ts-autotag",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- import nvim-treesitter plugin
|
|
||||||
local treesitter = require("nvim-treesitter.configs")
|
|
||||||
|
|
||||||
-- configure treesitter
|
|
||||||
treesitter.setup({ -- enable syntax highlighting
|
|
||||||
highlight = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
-- enable indentation
|
|
||||||
indent = { enable = true },
|
|
||||||
-- enable autotagging (w/ nvim-ts-autotag plugin)
|
|
||||||
autotag = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
-- ensure these language parsers are installed
|
|
||||||
ensure_installed = {
|
|
||||||
"bash",
|
|
||||||
"c",
|
|
||||||
"gitignore",
|
|
||||||
"lua",
|
|
||||||
"query",
|
|
||||||
"markdown",
|
|
||||||
"markdown_inline",
|
|
||||||
"vim",
|
|
||||||
"vimdoc",
|
|
||||||
"yaml",
|
|
||||||
"rust",
|
|
||||||
"zig",
|
|
||||||
},
|
|
||||||
incremental_selection = {
|
|
||||||
enable = true,
|
|
||||||
keymaps = {
|
|
||||||
init_selection = "<C-space>",
|
|
||||||
node_incremental = "<C-space>",
|
|
||||||
scope_incremental = false,
|
|
||||||
node_decremental = "<bs>",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,116 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-treesitter/nvim-treesitter-textobjects",
|
|
||||||
lazy = true,
|
|
||||||
config = function()
|
|
||||||
require("nvim-treesitter.configs").setup({
|
|
||||||
textobjects = {
|
|
||||||
select = {
|
|
||||||
enable = true,
|
|
||||||
|
|
||||||
-- Automatically jump forward to textobj, similar to targets.vim
|
|
||||||
lookahead = true,
|
|
||||||
|
|
||||||
keymaps = {
|
|
||||||
-- You can use the capture groups defined in textobjects.scm
|
|
||||||
["a="] = { query = "@assignment.outer", desc = "Select outer part of an assignment" },
|
|
||||||
["i="] = { query = "@assignment.inner", desc = "Select inner part of an assignment" },
|
|
||||||
["l="] = { query = "@assignment.lhs", desc = "Select left hand side of an assignment" },
|
|
||||||
["r="] = { query = "@assignment.rhs", desc = "Select right hand side of an assignment" },
|
|
||||||
|
|
||||||
-- works for javascript/typescript files (custom capture I created in after/queries/ecma/textobjects.scm)
|
|
||||||
["a:"] = { query = "@property.outer", desc = "Select outer part of an object property" },
|
|
||||||
["i:"] = { query = "@property.inner", desc = "Select inner part of an object property" },
|
|
||||||
["l:"] = { query = "@property.lhs", desc = "Select left part of an object property" },
|
|
||||||
["r:"] = { query = "@property.rhs", desc = "Select right part of an object property" },
|
|
||||||
|
|
||||||
["aa"] = { query = "@parameter.outer", desc = "Select outer part of a parameter/argument" },
|
|
||||||
["ia"] = { query = "@parameter.inner", desc = "Select inner part of a parameter/argument" },
|
|
||||||
|
|
||||||
["ai"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
|
|
||||||
["ii"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
|
|
||||||
|
|
||||||
["al"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
|
|
||||||
["il"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
|
|
||||||
|
|
||||||
["af"] = { query = "@call.outer", desc = "Select outer part of a function call" },
|
|
||||||
["if"] = { query = "@call.inner", desc = "Select inner part of a function call" },
|
|
||||||
|
|
||||||
["am"] = {
|
|
||||||
query = "@function.outer",
|
|
||||||
desc = "Select outer part of a method/function definition",
|
|
||||||
},
|
|
||||||
["im"] = {
|
|
||||||
query = "@function.inner",
|
|
||||||
desc = "Select inner part of a method/function definition",
|
|
||||||
},
|
|
||||||
|
|
||||||
["ac"] = { query = "@class.outer", desc = "Select outer part of a class" },
|
|
||||||
["ic"] = { query = "@class.inner", desc = "Select inner part of a class" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
swap = {
|
|
||||||
enable = true,
|
|
||||||
swap_next = {
|
|
||||||
["<leader>na"] = "@parameter.inner", -- swap parameters/argument with next
|
|
||||||
["<leader>n:"] = "@property.outer", -- swap object property with next
|
|
||||||
["<leader>nm"] = "@function.outer", -- swap function with next
|
|
||||||
},
|
|
||||||
swap_previous = {
|
|
||||||
["<leader>pa"] = "@parameter.inner", -- swap parameters/argument with prev
|
|
||||||
["<leader>p:"] = "@property.outer", -- swap object property with prev
|
|
||||||
["<leader>pm"] = "@function.outer", -- swap function with previous
|
|
||||||
},
|
|
||||||
},
|
|
||||||
move = {
|
|
||||||
enable = true,
|
|
||||||
set_jumps = true, -- whether to set jumps in the jumplist
|
|
||||||
goto_next_start = {
|
|
||||||
["]f"] = { query = "@call.outer", desc = "Next function call start" },
|
|
||||||
["]m"] = { query = "@function.outer", desc = "Next method/function def start" },
|
|
||||||
["]c"] = { query = "@class.outer", desc = "Next class start" },
|
|
||||||
["]i"] = { query = "@conditional.outer", desc = "Next conditional start" },
|
|
||||||
["]l"] = { query = "@loop.outer", desc = "Next loop start" },
|
|
||||||
|
|
||||||
-- You can pass a query group to use query from `queries/<lang>/<query_group>.scm file in your runtime path.
|
|
||||||
-- Below example nvim-treesitter's `locals.scm` and `folds.scm`. They also provide highlights.scm and indent.scm.
|
|
||||||
["]s"] = { query = "@scope", query_group = "locals", desc = "Next scope" },
|
|
||||||
["]z"] = { query = "@fold", query_group = "folds", desc = "Next fold" },
|
|
||||||
},
|
|
||||||
goto_next_end = {
|
|
||||||
["]F"] = { query = "@call.outer", desc = "Next function call end" },
|
|
||||||
["]M"] = { query = "@function.outer", desc = "Next method/function def end" },
|
|
||||||
["]C"] = { query = "@class.outer", desc = "Next class end" },
|
|
||||||
["]I"] = { query = "@conditional.outer", desc = "Next conditional end" },
|
|
||||||
["]L"] = { query = "@loop.outer", desc = "Next loop end" },
|
|
||||||
},
|
|
||||||
goto_previous_start = {
|
|
||||||
["[f"] = { query = "@call.outer", desc = "Prev function call start" },
|
|
||||||
["[m"] = { query = "@function.outer", desc = "Prev method/function def start" },
|
|
||||||
["[c"] = { query = "@class.outer", desc = "Prev class start" },
|
|
||||||
["[i"] = { query = "@conditional.outer", desc = "Prev conditional start" },
|
|
||||||
["[l"] = { query = "@loop.outer", desc = "Prev loop start" },
|
|
||||||
},
|
|
||||||
goto_previous_end = {
|
|
||||||
["[F"] = { query = "@call.outer", desc = "Prev function call end" },
|
|
||||||
["[M"] = { query = "@function.outer", desc = "Prev method/function def end" },
|
|
||||||
["[C"] = { query = "@class.outer", desc = "Prev class end" },
|
|
||||||
["[I"] = { query = "@conditional.outer", desc = "Prev conditional end" },
|
|
||||||
["[L"] = { query = "@loop.outer", desc = "Prev loop end" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
local ts_repeat_move = require("nvim-treesitter.textobjects.repeatable_move")
|
|
||||||
|
|
||||||
-- vim way: ; goes to the direction you were moving.
|
|
||||||
vim.keymap.set({ "n", "x", "o" }, ";", ts_repeat_move.repeat_last_move)
|
|
||||||
vim.keymap.set({ "n", "x", "o" }, ",", ts_repeat_move.repeat_last_move_opposite)
|
|
||||||
|
|
||||||
-- Optionally, make builtin f, F, t, T also repeatable with ; and ,
|
|
||||||
vim.keymap.set({ "n", "x", "o" }, "f", ts_repeat_move.builtin_f)
|
|
||||||
vim.keymap.set({ "n", "x", "o" }, "F", ts_repeat_move.builtin_F)
|
|
||||||
vim.keymap.set({ "n", "x", "o" }, "t", ts_repeat_move.builtin_t)
|
|
||||||
vim.keymap.set({ "n", "x", "o" }, "T", ts_repeat_move.builtin_T)
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,125 +0,0 @@
|
||||||
return {
|
|
||||||
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
event = "InsertEnter",
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
|
||||||
"hrsh7th/cmp-cmdline",
|
|
||||||
"hrsh7th/cmp-buffer", -- source for text in buffer
|
|
||||||
"hrsh7th/cmp-path", -- source for file system paths
|
|
||||||
{
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
-- follow latest release.
|
|
||||||
version = "v2.*", -- Replace <CurrentMajor> by the latest released major (first number of latest release)
|
|
||||||
-- install jsregexp (optional!).
|
|
||||||
build = "make install_jsregexp",
|
|
||||||
},
|
|
||||||
"saadparwaiz1/cmp_luasnip", -- for autocompletion
|
|
||||||
"rafamadriz/friendly-snippets", -- useful snippets
|
|
||||||
"onsails/lspkind.nvim", -- vs-code like pictograms
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local cmp = require("cmp")
|
|
||||||
|
|
||||||
local luasnip = require("luasnip")
|
|
||||||
|
|
||||||
local lspkind = require("lspkind")
|
|
||||||
|
|
||||||
-- loads vscode style snippets from installed plugins (e.g. friendly-snippets)
|
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
completion = {
|
|
||||||
completeopt = "menu,menuone,preview,noselect",
|
|
||||||
},
|
|
||||||
snippet = { -- configure how nvim-cmp interacts with snippet engine
|
|
||||||
expand = function(args)
|
|
||||||
luasnip.lsp_expand(args.body)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
mapping = cmp.mapping.preset.insert({
|
|
||||||
["<C-k>"] = cmp.mapping.select_prev_item(), -- previous suggestion
|
|
||||||
["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion
|
|
||||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
|
||||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
|
||||||
-- Allows selection with tab and shift-tab
|
|
||||||
["<S-Tab>"] = cmp.mapping.select_prev_item(select_opts),
|
|
||||||
["<Tab>"] = cmp.mapping.select_next_item(select_opts),
|
|
||||||
["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions
|
|
||||||
["<C-e>"] = cmp.mapping.abort(), -- close completion window
|
|
||||||
["<CR>"] = cmp.mapping.confirm({ select = false }),
|
|
||||||
}),
|
|
||||||
-- sources for autocompletion
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = "nvim_lsp" },
|
|
||||||
{ name = "luasnip" }, -- snippets
|
|
||||||
{ name = "buffer" }, -- text within current buffer
|
|
||||||
{ name = "path" }, -- file system paths
|
|
||||||
}),
|
|
||||||
|
|
||||||
-- configure lspkind for vs-code like pictograms in completion menu
|
|
||||||
formatting = {
|
|
||||||
format = lspkind.cmp_format({
|
|
||||||
maxwidth = 50,
|
|
||||||
ellipsis_char = "...",
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
})
|
|
||||||
-- 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" },
|
|
||||||
}),
|
|
||||||
matching = { disallow_symbol_nonprefix_matching = false },
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Set up lspconfig.
|
|
||||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
||||||
-- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
|
|
||||||
-- BASH
|
|
||||||
require("lspconfig")["bashls"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- CLANG
|
|
||||||
require("lspconfig")["clangd"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- CMAKE
|
|
||||||
require("lspconfig")["cmake"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- LUA
|
|
||||||
require("lspconfig")["lua_ls"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- LaTeX
|
|
||||||
require("lspconfig")["ltex"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- PYTHON
|
|
||||||
require("lspconfig")["pylsp"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- ZIG
|
|
||||||
require("lspconfig")["zls"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
return {
|
|
||||||
"mfussenegger/nvim-lint",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
config = function()
|
|
||||||
local lint = require("lint")
|
|
||||||
|
|
||||||
lint.linters_by_ft = {
|
|
||||||
--python = { "pylint" },
|
|
||||||
}
|
|
||||||
|
|
||||||
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>l", function()
|
|
||||||
lint.try_lint()
|
|
||||||
end, { desc = "Trigger linting for current file" })
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
return {
|
|
||||||
{ -- This plugin
|
|
||||||
"Zeioth/compiler.nvim",
|
|
||||||
cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" },
|
|
||||||
dependencies = { "stevearc/overseer.nvim", "nvim-telescope/telescope.nvim" },
|
|
||||||
opts = {},
|
|
||||||
},
|
|
||||||
{ -- The task runner we use
|
|
||||||
"stevearc/overseer.nvim",
|
|
||||||
commit = "6271cab7ccc4ca840faa93f54440ffae3a3918bd",
|
|
||||||
cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" },
|
|
||||||
opts = {
|
|
||||||
task_list = {
|
|
||||||
direction = "bottom",
|
|
||||||
min_height = 25,
|
|
||||||
max_height = 25,
|
|
||||||
default_detail = 1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- C/C++ debbuging
|
|
||||||
{
|
|
||||||
"sakhnik/nvim-gdb",
|
|
||||||
},
|
|
||||||
-- Rust debug
|
|
||||||
{ "mfussenegger/nvim-dap" },
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
return {
|
|
||||||
"mrcjkb/rustaceanvim",
|
|
||||||
version = "^5", -- Recommended
|
|
||||||
lazy = false, -- This plugin is already lazy
|
|
||||||
config = function()
|
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
|
||||||
vim.keymap.set("n", "<leader>a", function()
|
|
||||||
vim.cmd.RustLsp("codeAction") -- supports rust-analyzer's grouping
|
|
||||||
-- or vim.lsp.buf.codeAction() if you don't want grouping.
|
|
||||||
end, { silent = true, buffer = bufnr })
|
|
||||||
vim.keymap.set(
|
|
||||||
"n",
|
|
||||||
"K", -- Override Neovim's built-in hover keymap with rustaceanvim's hover actions
|
|
||||||
function()
|
|
||||||
vim.cmd.RustLsp({ "hover", "actions" })
|
|
||||||
end,
|
|
||||||
{ silent = true, buffer = bufnr }
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,88 +0,0 @@
|
||||||
return {
|
|
||||||
"lervag/vimtex",
|
|
||||||
lazy = false, -- we don't want to lazy load VimTeX
|
|
||||||
-- tag = "v2.15", -- uncomment to pin to a specific release
|
|
||||||
init = function()
|
|
||||||
local f = io.popen("uname -s")
|
|
||||||
if f ~= nil then
|
|
||||||
MY_OS = f:read("*a")
|
|
||||||
MY_OS = string.gsub(MY_OS, "%s+", "")
|
|
||||||
f:close()
|
|
||||||
end
|
|
||||||
if MY_OS == "Linux" then
|
|
||||||
-- on Linux
|
|
||||||
-- Vimtex options:
|
|
||||||
vim.g.vimtex_view_method = "zathura"
|
|
||||||
vim.g.vimtex_general_viewer = "zathura"
|
|
||||||
vim.g.vimtex_quickfix_mode = 0
|
|
||||||
|
|
||||||
-- Ignore mappings
|
|
||||||
vim.g.vimtex_mappings_enabled = 1
|
|
||||||
|
|
||||||
---- Auto Indent
|
|
||||||
vim.g["vimtex_indent_enabled"] = 1
|
|
||||||
|
|
||||||
---- Syntax highlighting
|
|
||||||
vim.g.vimtex_syntax_enabled = 0
|
|
||||||
|
|
||||||
-- Error suppression:
|
|
||||||
vim.g.vimtex_log_ignore = {
|
|
||||||
"Underfull",
|
|
||||||
"Overfull",
|
|
||||||
"specifier changed to",
|
|
||||||
"Token not allowed in a PDF string",
|
|
||||||
}
|
|
||||||
elseif (MY_OS == "FreeBSD") or (MY_OS == "OpenBSD") then
|
|
||||||
-- on BSD
|
|
||||||
-- Vimtex options:
|
|
||||||
vim.g.vimtex_view_method = "zathura"
|
|
||||||
vim.g.vimtex_general_viewer = "zathura"
|
|
||||||
vim.g.vimtex_quickfix_mode = 0
|
|
||||||
|
|
||||||
-- OBSD options
|
|
||||||
--vim.g.vimtex_compiler_latexmk={ 'cmd': '' }
|
|
||||||
|
|
||||||
-- Ignore mappings
|
|
||||||
vim.g.vimtex_mappings_enabled = 1
|
|
||||||
|
|
||||||
---- Auto Indent
|
|
||||||
vim.g["vimtex_indent_enabled"] = 1
|
|
||||||
|
|
||||||
---- Syntax highlighting
|
|
||||||
vim.g.vimtex_syntax_enabled = 0
|
|
||||||
|
|
||||||
-- Error suppression:
|
|
||||||
vim.g.vimtex_log_ignore = {
|
|
||||||
"Underfull",
|
|
||||||
"Overfull",
|
|
||||||
"specifier changed to",
|
|
||||||
"Token not allowed in a PDF string",
|
|
||||||
}
|
|
||||||
elseif MY_OS == "Darwin" then
|
|
||||||
-- on MacOS
|
|
||||||
-- Vimtex options:
|
|
||||||
vim.g.vimtex_view_method = "sioyek"
|
|
||||||
vim.g.vimtex_view_sioyek_exe = "/Applications/sioyek.app/Contents/MacOS/sioyek"
|
|
||||||
vim.g.vimtex_quickfix_mode = 0
|
|
||||||
|
|
||||||
-- Ignore mappings
|
|
||||||
vim.g.vimtex_mappings_enabled = 1
|
|
||||||
|
|
||||||
---- Auto Indent
|
|
||||||
vim.g.vimtex_indent_enabled = 1
|
|
||||||
|
|
||||||
---- Syntax highlighting
|
|
||||||
vim.g.vimtex_syntax_enabled = 0
|
|
||||||
|
|
||||||
-- Error suppression:
|
|
||||||
vim.g.vimtex_log_ignore = {
|
|
||||||
"Underfull",
|
|
||||||
"Overfull",
|
|
||||||
"specifier changed to",
|
|
||||||
"Token not allowed in a PDF string",
|
|
||||||
}
|
|
||||||
else
|
|
||||||
print("Should never be here")
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
return {
|
|
||||||
"tpope/vim-fugitive",
|
|
||||||
config = function()
|
|
||||||
vim.keymap.set("n", "<leader>gs", vim.cmd.Git, { desc = "Open Fugitive Panel" })
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
return {
|
|
||||||
{ "airblade/vim-gitgutter" },
|
|
||||||
{ "mg979/vim-visual-multi" },
|
|
||||||
{
|
|
||||||
"kevinhwang91/nvim-ufo",
|
|
||||||
dependencies = "kevinhwang91/promise-async",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"folke/which-key.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
init = function()
|
|
||||||
vim.o.timeout = true
|
|
||||||
vim.o.timeoutlen = 500
|
|
||||||
end,
|
|
||||||
opts = {},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
return {
|
|
||||||
"folke/todo-comments.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
|
||||||
config = function()
|
|
||||||
local todo_comments = require("todo-comments")
|
|
||||||
|
|
||||||
-- set keymaps
|
|
||||||
local keymap = vim.keymap -- for conciseness
|
|
||||||
|
|
||||||
keymap.set("n", "]t", function()
|
|
||||||
todo_comments.jump_next()
|
|
||||||
end, { desc = "Next todo comment" })
|
|
||||||
|
|
||||||
keymap.set("n", "[t", function()
|
|
||||||
todo_comments.jump_prev()
|
|
||||||
end, { desc = "Previous todo comment" })
|
|
||||||
|
|
||||||
todo_comments.setup()
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
branch = "0.1.x",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
"folke/trouble.nvim",
|
|
||||||
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
|
|
||||||
"nvim-tree/nvim-web-devicons",
|
|
||||||
"folke/todo-comments.nvim",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local telescope = require("telescope")
|
|
||||||
local actions = require("telescope.actions")
|
|
||||||
local transform_mod = require("telescope.actions.mt").transform_mod
|
|
||||||
|
|
||||||
local trouble = require("trouble")
|
|
||||||
local trouble_telescope = require("trouble.sources.telescope")
|
|
||||||
|
|
||||||
-- or create your custom action
|
|
||||||
local custom_actions = transform_mod({
|
|
||||||
open_trouble_qflist = function(prompt_bufnr)
|
|
||||||
trouble.toggle("quickfix")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
telescope.setup({
|
|
||||||
defaults = {
|
|
||||||
path_display = { "smart" },
|
|
||||||
mappings = {
|
|
||||||
i = {
|
|
||||||
["<C-k>"] = actions.move_selection_previous, -- move to prev result
|
|
||||||
["<C-j>"] = actions.move_selection_next, -- move to next result
|
|
||||||
["<C-q>"] = actions.send_selected_to_qflist + custom_actions.open_trouble_qflist,
|
|
||||||
["<C-t>"] = trouble_telescope.open,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
telescope.load_extension("fzf")
|
|
||||||
|
|
||||||
-- set keymaps
|
|
||||||
local keymap = vim.keymap -- for conciseness
|
|
||||||
|
|
||||||
keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Fuzzy find files in cwd" })
|
|
||||||
keymap.set("n", "<leader>fr", "<cmd>Telescope oldfiles<cr>", { desc = "Fuzzy find recent files" })
|
|
||||||
keymap.set("n", "<leader>fg", "<cmd>Telescope live_grep<cr>", { desc = "Find string in cwd" })
|
|
||||||
keymap.set("n", "<leader>fc", "<cmd>Telescope grep_string<cr>", { desc = "Find string under cursor in cwd" })
|
|
||||||
keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "Find todos" })
|
|
||||||
keymap.set("n", "<leader>fb", "<cmd>Telescope buffers", { desc = "Find Buffers" })
|
|
||||||
keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags", { desc = "Find Help Tags" })
|
|
||||||
keymap.set("n", "<leader>fs", "<cmd>Telescope lsp_document_symbols", { desc = "Find Symbols" })
|
|
||||||
keymap.set("n", "<leader>fi", "<cmd>AdvancedGitSearch<CR>", { desc = "AdvancedGitSearch" })
|
|
||||||
keymap.set("n", "<leader>fo", "<cmd>Telescope oldfiles", { desc = "Find Old Files" })
|
|
||||||
keymap.set("n", "<leader>fw", "<cmd>Telescope grep_string", { desc = "Find Word under Cursor" })
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-neorg/neorg",
|
|
||||||
lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default
|
|
||||||
version = "*", -- Pin Neorg to the latest stable release
|
|
||||||
config = function()
|
|
||||||
require("neorg").setup({
|
|
||||||
load = {
|
|
||||||
["core.defaults"] = {},
|
|
||||||
["core.concealer"] = {},
|
|
||||||
["core.dirman"] = {
|
|
||||||
config = {
|
|
||||||
workspaces = {
|
|
||||||
phd = "~/Work/Organization/2025-1st-Quatrimester/",
|
|
||||||
regular = "~/Documents/Notes",
|
|
||||||
},
|
|
||||||
default_workspace = "phd",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
return {
|
|
||||||
"voldikss/vim-floaterm",
|
|
||||||
config = function()
|
|
||||||
vim.keymap.set(
|
|
||||||
"n",
|
|
||||||
"<leader>TS",
|
|
||||||
"<cmd>:FloatermNew --height=0.3 --width=0.8 --wintype=float --name=floaterm1 --position=center --autoclose=2<CR>",
|
|
||||||
{ desc = "Open FloatTerm" }
|
|
||||||
)
|
|
||||||
vim.keymap.set("n", "<leader>TT", "<cmd>:FloatermToggle<CR>", { desc = "Toggle FloatTerm" })
|
|
||||||
vim.keymap.set("t", "<leader>TT", "<cmd>:FloatermToggle<CR>", { desc = "Toggle FloatTerm" })
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
return {
|
|
||||||
"szw/vim-maximizer",
|
|
||||||
keys = {
|
|
||||||
{ "<leader>sm", "<cmd>MaximizerToggle<CR>", desc = "Maximize/minimize a split" },
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
return {
|
|
||||||
"windwp/nvim-autopairs",
|
|
||||||
event = { "InsertEnter" },
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- import nvim-autopairs
|
|
||||||
local autopairs = require("nvim-autopairs")
|
|
||||||
|
|
||||||
-- configure autopairs
|
|
||||||
autopairs.setup({
|
|
||||||
check_ts = true, -- enable treesitter
|
|
||||||
ts_config = {
|
|
||||||
lua = { "string" }, -- don't add pairs in lua string treesitter nodes
|
|
||||||
javascript = { "template_string" }, -- don't add pairs in javscript template_string treesitter nodes
|
|
||||||
java = false, -- don't check treesitter on java
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- import nvim-autopairs completion functionality
|
|
||||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
|
||||||
|
|
||||||
-- import nvim-cmp plugin (completions plugin)
|
|
||||||
local cmp = require("cmp")
|
|
||||||
|
|
||||||
-- make autopairs and completion work together
|
|
||||||
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
return {
|
|
||||||
"kylechui/nvim-surround",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
version = "*", -- Use for stability; omit to use `main` branch for the latest features
|
|
||||||
config = true,
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
return {
|
|
||||||
"folke/which-key.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
init = function()
|
|
||||||
vim.o.timeout = true
|
|
||||||
vim.o.timeoutlen = 500
|
|
||||||
end,
|
|
||||||
opts = {
|
|
||||||
-- your configuration comes here
|
|
||||||
-- or leave it empty to use the default settings
|
|
||||||
-- refer to the configuration section below
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-tree/nvim-tree.lua",
|
|
||||||
dependencies = "nvim-tree/nvim-web-devicons",
|
|
||||||
config = function()
|
|
||||||
local nvimtree = require("nvim-tree")
|
|
||||||
|
|
||||||
-- recommended settings from nvim-tree documentation
|
|
||||||
vim.g.netrw_liststyle = 3
|
|
||||||
vim.g.loaded_netrw = 1
|
|
||||||
vim.g.loaded_netrwPlugin = 1
|
|
||||||
|
|
||||||
nvimtree.setup({
|
|
||||||
view = {
|
|
||||||
width = 35,
|
|
||||||
relativenumber = true,
|
|
||||||
},
|
|
||||||
-- change folder arrow icons
|
|
||||||
renderer = {
|
|
||||||
indent_markers = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
icons = {
|
|
||||||
glyphs = {
|
|
||||||
folder = {
|
|
||||||
arrow_closed = "", -- arrow when folder is closed
|
|
||||||
arrow_open = "", -- arrow when folder is open
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- disable window_picker for
|
|
||||||
-- explorer to work well with
|
|
||||||
-- window splits
|
|
||||||
actions = {
|
|
||||||
open_file = {
|
|
||||||
window_picker = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
filters = {
|
|
||||||
custom = { ".DS_Store" },
|
|
||||||
dotfiles = true,
|
|
||||||
},
|
|
||||||
git = {
|
|
||||||
ignore = false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- set keymaps
|
|
||||||
local keymap = vim.keymap -- for conciseness
|
|
||||||
|
|
||||||
keymap.set("n", "<leader>ee", "<cmd>NvimTreeToggle<CR>", { desc = "Toggle file explorer" }) -- toggle file explorer
|
|
||||||
keymap.set(
|
|
||||||
"n",
|
|
||||||
"<leader>ef",
|
|
||||||
"<cmd>NvimTreeFindFileToggle<CR>",
|
|
||||||
{ desc = "Toggle file explorer on current file" }
|
|
||||||
) -- toggle file explorer on current file
|
|
||||||
keymap.set("n", "<leader>ec", "<cmd>NvimTreeCollapse<CR>", { desc = "Collapse file explorer" }) -- collapse file explorer
|
|
||||||
keymap.set("n", "<leader>er", "<cmd>NvimTreeRefresh<CR>", { desc = "Refresh file explorer" }) -- refresh file explorer
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
return {
|
|
||||||
"folke/trouble.nvim",
|
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons", "folke/todo-comments.nvim" },
|
|
||||||
opts = {
|
|
||||||
focus = true,
|
|
||||||
},
|
|
||||||
cmd = "Trouble",
|
|
||||||
keys = {
|
|
||||||
{ "<leader>xw", "<cmd>Trouble diagnostics toggle<CR>", desc = "Open trouble workspace diagnostics" },
|
|
||||||
{ "<leader>xd", "<cmd>Trouble diagnostics toggle filter.buf=0<CR>", desc = "Open trouble document diagnostics" },
|
|
||||||
{ "<leader>xq", "<cmd>Trouble quickfix toggle<CR>", desc = "Open trouble quickfix list" },
|
|
||||||
{ "<leader>xl", "<cmd>Trouble loclist toggle<CR>", desc = "Open trouble location list" },
|
|
||||||
{ "<leader>xt", "<cmd>Trouble todo toggle<CR>", desc = "Open todos in trouble" },
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
return {
|
|
||||||
"gbprod/substitute.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
config = function()
|
|
||||||
local substitute = require("substitute")
|
|
||||||
|
|
||||||
substitute.setup()
|
|
||||||
|
|
||||||
-- set keymaps
|
|
||||||
local keymap = vim.keymap -- for conciseness
|
|
||||||
|
|
||||||
keymap.set("n", "s", substitute.operator, { desc = "Substitute with motion" })
|
|
||||||
keymap.set("n", "ss", substitute.line, { desc = "Substitute line" })
|
|
||||||
keymap.set("n", "S", substitute.eol, { desc = "Substitute to end of line" })
|
|
||||||
keymap.set("x", "s", substitute.visual, { desc = "Substitute in visual mode" })
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,71 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
|
||||||
config = function()
|
|
||||||
local lualine = require("lualine")
|
|
||||||
local lazy_status = require("lazy.status") -- to configure lazy pending updates count
|
|
||||||
|
|
||||||
local colors = {
|
|
||||||
blue = "#65D1FF",
|
|
||||||
green = "#3EFFDC",
|
|
||||||
violet = "#FF61EF",
|
|
||||||
yellow = "#FFDA7B",
|
|
||||||
red = "#FF4A4A",
|
|
||||||
fg = "#c3ccdc",
|
|
||||||
bg = "#112638",
|
|
||||||
inactive_bg = "#2c3043",
|
|
||||||
}
|
|
||||||
|
|
||||||
local my_lualine_theme = {
|
|
||||||
normal = {
|
|
||||||
a = { bg = colors.blue, fg = colors.bg, gui = "bold" },
|
|
||||||
b = { bg = colors.bg, fg = colors.fg },
|
|
||||||
c = { bg = colors.bg, fg = colors.fg },
|
|
||||||
},
|
|
||||||
insert = {
|
|
||||||
a = { bg = colors.green, fg = colors.bg, gui = "bold" },
|
|
||||||
b = { bg = colors.bg, fg = colors.fg },
|
|
||||||
c = { bg = colors.bg, fg = colors.fg },
|
|
||||||
},
|
|
||||||
visual = {
|
|
||||||
a = { bg = colors.violet, fg = colors.bg, gui = "bold" },
|
|
||||||
b = { bg = colors.bg, fg = colors.fg },
|
|
||||||
c = { bg = colors.bg, fg = colors.fg },
|
|
||||||
},
|
|
||||||
command = {
|
|
||||||
a = { bg = colors.yellow, fg = colors.bg, gui = "bold" },
|
|
||||||
b = { bg = colors.bg, fg = colors.fg },
|
|
||||||
c = { bg = colors.bg, fg = colors.fg },
|
|
||||||
},
|
|
||||||
replace = {
|
|
||||||
a = { bg = colors.red, fg = colors.bg, gui = "bold" },
|
|
||||||
b = { bg = colors.bg, fg = colors.fg },
|
|
||||||
c = { bg = colors.bg, fg = colors.fg },
|
|
||||||
},
|
|
||||||
inactive = {
|
|
||||||
a = { bg = colors.inactive_bg, fg = colors.semilightgray, gui = "bold" },
|
|
||||||
b = { bg = colors.inactive_bg, fg = colors.semilightgray },
|
|
||||||
c = { bg = colors.inactive_bg, fg = colors.semilightgray },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- configure lualine with modified theme
|
|
||||||
lualine.setup({
|
|
||||||
options = {
|
|
||||||
theme = my_lualine_theme,
|
|
||||||
},
|
|
||||||
sections = {
|
|
||||||
lualine_x = {
|
|
||||||
{
|
|
||||||
lazy_status.updates,
|
|
||||||
cond = lazy_status.has_updates,
|
|
||||||
color = { fg = "#ff9e64" },
|
|
||||||
},
|
|
||||||
{ "encoding" },
|
|
||||||
{ "fileformat" },
|
|
||||||
{ "filetype" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
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" },
|
|
||||||
liquid = { "prettier" },
|
|
||||||
lua = { "stylua" },
|
|
||||||
python = { "isort", "black" },
|
|
||||||
},
|
|
||||||
format_on_save = {
|
|
||||||
lsp_fallback = true,
|
|
||||||
async = false,
|
|
||||||
timeout_ms = 1000,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
|
||||||
conform.format({
|
|
||||||
lsp_fallback = true,
|
|
||||||
async = false,
|
|
||||||
timeout_ms = 1000,
|
|
||||||
})
|
|
||||||
end, { desc = "Format file or range (in visual mode)" })
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
return {
|
|
||||||
"lukas-reineke/indent-blankline.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
main = "ibl",
|
|
||||||
opts = {
|
|
||||||
indent = { char = "┊" },
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
return {
|
|
||||||
"goolord/alpha-nvim",
|
|
||||||
event = "VimEnter",
|
|
||||||
config = function()
|
|
||||||
local alpha = require("alpha")
|
|
||||||
local dashboard = require("alpha.themes.dashboard")
|
|
||||||
|
|
||||||
-- Set header
|
|
||||||
dashboard.section.header.val = {
|
|
||||||
" ",
|
|
||||||
" ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ",
|
|
||||||
" ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ",
|
|
||||||
" ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ",
|
|
||||||
" ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ",
|
|
||||||
" ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ",
|
|
||||||
" ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ",
|
|
||||||
" ",
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Set menu
|
|
||||||
dashboard.section.buttons.val = {
|
|
||||||
dashboard.button("e", " > New File", "<cmd>ene<CR>"),
|
|
||||||
dashboard.button("SPC ee", " > Toggle file explorer", "<cmd>NvimTreeToggle<CR>"),
|
|
||||||
dashboard.button("SPC ff", " > Find File", "<cmd>Telescope find_files<CR>"),
|
|
||||||
dashboard.button("SPC fs", " > Find Word", "<cmd>Telescope live_grep<CR>"),
|
|
||||||
dashboard.button("SPC wr", " > Restore Session For Current Directory", "<cmd>SessionRestore<CR>"),
|
|
||||||
dashboard.button("q", " > Quit NVIM", "<cmd>qa<CR>"),
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Send config to alpha
|
|
||||||
alpha.setup(dashboard.opts)
|
|
||||||
|
|
||||||
-- Disable folding on alpha buffer
|
|
||||||
vim.cmd([[autocmd FileType alpha setlocal nofoldenable]])
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
return {
|
|
||||||
"rmagatti/auto-session",
|
|
||||||
config = function()
|
|
||||||
local auto_session = require("auto-session")
|
|
||||||
|
|
||||||
auto_session.setup({
|
|
||||||
auto_restore_enabled = false,
|
|
||||||
auto_session_suppress_dirs = { "~/", "~/Dev/", "~/Downloads", "~/Documents", "~/Desktop/" },
|
|
||||||
})
|
|
||||||
|
|
||||||
local keymap = vim.keymap
|
|
||||||
|
|
||||||
keymap.set("n", "<leader>wr", "<cmd>SessionRestore<CR>", { desc = "Restore session for cwd" }) -- restore last workspace session for current directory
|
|
||||||
keymap.set("n", "<leader>ws", "<cmd>SessionSave<CR>", { desc = "Save session for auto session root dir" }) -- save workspace session for current working directory
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
return {
|
|
||||||
"stevearc/dressing.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
return {
|
|
||||||
"numToStr/Comment.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
dependencies = {
|
|
||||||
"JoosepAlviste/nvim-ts-context-commentstring",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- import comment plugin safely
|
|
||||||
local comment = require("Comment")
|
|
||||||
|
|
||||||
local ts_context_commentstring = require("ts_context_commentstring.integrations.comment_nvim")
|
|
||||||
|
|
||||||
-- enable comment
|
|
||||||
comment.setup({
|
|
||||||
-- for commenting tsx, jsx, svelte, html files
|
|
||||||
pre_hook = ts_context_commentstring.create_pre_hook(),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
return {
|
|
||||||
"akinsho/bufferline.nvim",
|
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
|
||||||
version = "*",
|
|
||||||
opts = {
|
|
||||||
options = {
|
|
||||||
mode = "tabs",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
return {
|
|
||||||
"christoomey/vim-tmux-navigator",
|
|
||||||
cmd = {
|
|
||||||
"TmuxNavigateLeft",
|
|
||||||
"TmuxNavigateDown",
|
|
||||||
"TmuxNavigateUp",
|
|
||||||
"TmuxNavigateRight",
|
|
||||||
"TmuxNavigatePrevious",
|
|
||||||
"TmuxNavigatorProcessList",
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
|
|
||||||
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
|
|
||||||
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
|
|
||||||
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
|
|
||||||
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-lua/plenary.nvim", -- lua functions that many plugins use
|
|
||||||
--"christoomey/vim-tmux-navigator", -- tmux & split window navigation
|
|
||||||
"bronson/vim-trailing-whitespace",
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
return {
|
|
||||||
"williamboman/mason.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"williamboman/mason-lspconfig.nvim",
|
|
||||||
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- import mason
|
|
||||||
local mason = require("mason")
|
|
||||||
|
|
||||||
-- import mason-lspconfig
|
|
||||||
local mason_lspconfig = require("mason-lspconfig")
|
|
||||||
|
|
||||||
local mason_tool_installer = require("mason-tool-installer")
|
|
||||||
|
|
||||||
-- enable mason and configure icons
|
|
||||||
mason.setup({
|
|
||||||
ui = {
|
|
||||||
icons = {
|
|
||||||
package_installed = "✓",
|
|
||||||
package_pending = "➜",
|
|
||||||
package_uninstalled = "✗",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
mason_lspconfig.setup({
|
|
||||||
-- list of servers for mason to install
|
|
||||||
ensure_installed = {
|
|
||||||
"bashls",
|
|
||||||
--"clangd",
|
|
||||||
"lua_ls",
|
|
||||||
"ltex",
|
|
||||||
"pylsp",
|
|
||||||
"zls",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
mason_tool_installer.setup({
|
|
||||||
ensure_installed = {
|
|
||||||
"prettier", -- prettier formatter
|
|
||||||
"stylua", -- lua formatter
|
|
||||||
"isort", -- python formatter
|
|
||||||
"black", -- python formatter
|
|
||||||
--"pylint",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,285 +0,0 @@
|
||||||
return {
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
|
||||||
{ "antosha417/nvim-lsp-file-operations", config = true },
|
|
||||||
{ "folke/neodev.nvim", opts = {} },
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- Local word dictionary
|
|
||||||
local path = vim.fn.stdpath("config") .. "/after/plugins/dictionary-gb.txt"
|
|
||||||
print(path)
|
|
||||||
local words = {}
|
|
||||||
|
|
||||||
for word in io.open(path, "r"):lines() do
|
|
||||||
table.insert(words, word)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- import lspconfig plugin
|
|
||||||
local lspconfig = require("lspconfig")
|
|
||||||
|
|
||||||
-- import mason_lspconfig plugin
|
|
||||||
local mason_lspconfig = require("mason-lspconfig")
|
|
||||||
|
|
||||||
-- import cmp-nvim-lsp plugin
|
|
||||||
local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
|
||||||
|
|
||||||
local keymap = vim.keymap -- for conciseness
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("LspAttach", {
|
|
||||||
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
|
|
||||||
callback = function(ev)
|
|
||||||
-- Buffer local mappings.
|
|
||||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
|
||||||
local opts = { buffer = ev.buf, silent = true }
|
|
||||||
|
|
||||||
-- set keybinds
|
|
||||||
opts.desc = "Show LSP references"
|
|
||||||
keymap.set("n", "gR", "<cmd>Telescope lsp_references<CR>", opts) -- show definition, references
|
|
||||||
|
|
||||||
opts.desc = "Go to declaration"
|
|
||||||
keymap.set("n", "gD", vim.lsp.buf.declaration, opts) -- go to declaration
|
|
||||||
|
|
||||||
opts.desc = "Show LSP definitions"
|
|
||||||
keymap.set("n", "gd", "<cmd>Telescope lsp_definitions<CR>", opts) -- show lsp definitions
|
|
||||||
|
|
||||||
opts.desc = "Show LSP implementations"
|
|
||||||
keymap.set("n", "gi", "<cmd>Telescope lsp_implementations<CR>", opts) -- show lsp implementations
|
|
||||||
|
|
||||||
opts.desc = "Show LSP type definitions"
|
|
||||||
keymap.set("n", "gt", "<cmd>Telescope lsp_type_definitions<CR>", opts) -- show lsp type definitions
|
|
||||||
|
|
||||||
opts.desc = "See available code actions"
|
|
||||||
keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection
|
|
||||||
|
|
||||||
opts.desc = "Smart rename"
|
|
||||||
keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts) -- smart rename
|
|
||||||
|
|
||||||
opts.desc = "Show buffer diagnostics"
|
|
||||||
keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics bufnr=0<CR>", opts) -- show diagnostics for file
|
|
||||||
|
|
||||||
opts.desc = "Show line diagnostics"
|
|
||||||
keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts) -- show diagnostics for line
|
|
||||||
|
|
||||||
opts.desc = "Go to previous diagnostic"
|
|
||||||
keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) -- jump to previous diagnostic in buffer
|
|
||||||
|
|
||||||
opts.desc = "Go to next diagnostic"
|
|
||||||
keymap.set("n", "]d", vim.diagnostic.goto_next, opts) -- jump to next diagnostic in buffer
|
|
||||||
|
|
||||||
opts.desc = "Show documentation for what is under cursor"
|
|
||||||
keymap.set("n", "K", vim.lsp.buf.hover, opts) -- show documentation for what is under cursor
|
|
||||||
|
|
||||||
opts.desc = "Restart LSP"
|
|
||||||
keymap.set("n", "<leader>rs", ":LspRestart<CR>", opts) -- mapping to restart lsp if necessary
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- used to enable autocompletion (assign to every lsp server config)
|
|
||||||
local capabilities = cmp_nvim_lsp.default_capabilities()
|
|
||||||
|
|
||||||
-- Change the Diagnostic symbols in the sign column (gutter)
|
|
||||||
-- (not in youtube nvim video)
|
|
||||||
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
|
||||||
for type, icon in pairs(signs) do
|
|
||||||
local hl = "DiagnosticSign" .. type
|
|
||||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
|
||||||
end
|
|
||||||
|
|
||||||
mason_lspconfig.setup_handlers({
|
|
||||||
-- default handler for installed servers
|
|
||||||
--function(server_name)
|
|
||||||
-- lspconfig[server_name].setup({
|
|
||||||
-- capabilities = capabilities,
|
|
||||||
-- })
|
|
||||||
--end,
|
|
||||||
["bashls"] = function()
|
|
||||||
lspconfig["bashls"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
["clangd"] = function()
|
|
||||||
lspconfig["clangd"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
["cmake"] = function()
|
|
||||||
lspconfig["cmake"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
--["fish_lsp"] = function()
|
|
||||||
-- lspconfig["fish_lsp"].setup({
|
|
||||||
-- capabilities = capabilities,
|
|
||||||
-- })
|
|
||||||
--end,
|
|
||||||
["ltex"] = function()
|
|
||||||
lspconfig["ltex"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
filetypes = {
|
|
||||||
"bib",
|
|
||||||
"gitcommit",
|
|
||||||
"markdown",
|
|
||||||
"org",
|
|
||||||
"norg",
|
|
||||||
"plaintex",
|
|
||||||
"rst",
|
|
||||||
"rnoweb",
|
|
||||||
"tex",
|
|
||||||
"pandoc",
|
|
||||||
"quarto",
|
|
||||||
"rmd",
|
|
||||||
"context",
|
|
||||||
"html",
|
|
||||||
"xhtml",
|
|
||||||
"mail",
|
|
||||||
"text",
|
|
||||||
},
|
|
||||||
settings = {
|
|
||||||
ltex = {
|
|
||||||
language = "en-GB",
|
|
||||||
dictionary = {
|
|
||||||
["en-GB"] = words,
|
|
||||||
},
|
|
||||||
enabled = {
|
|
||||||
"bibtex",
|
|
||||||
"gitcommit",
|
|
||||||
"markdown",
|
|
||||||
"org",
|
|
||||||
"tex",
|
|
||||||
"restructuredtext",
|
|
||||||
"rsweave",
|
|
||||||
"latex",
|
|
||||||
"quarto",
|
|
||||||
"rmd",
|
|
||||||
"context",
|
|
||||||
"html",
|
|
||||||
"xhtml",
|
|
||||||
"mail",
|
|
||||||
"plaintext",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
--["svelte"] = function()
|
|
||||||
-- -- configure svelte server
|
|
||||||
-- lspconfig["svelte"].setup({
|
|
||||||
-- capabilities = capabilities,
|
|
||||||
-- on_attach = function(client, bufnr)
|
|
||||||
-- vim.api.nvim_create_autocmd("BufWritePost", {
|
|
||||||
-- pattern = { "*.js", "*.ts" },
|
|
||||||
-- callback = function(ctx)
|
|
||||||
-- -- Here use ctx.match instead of ctx.file
|
|
||||||
-- client.notify("$/onDidChangeTsOrJsFile", { uri = ctx.match })
|
|
||||||
-- end,
|
|
||||||
-- })
|
|
||||||
-- end,
|
|
||||||
-- })
|
|
||||||
--end,
|
|
||||||
--["graphql"] = function()
|
|
||||||
-- -- configure graphql language server
|
|
||||||
-- lspconfig["graphql"].setup({
|
|
||||||
-- capabilities = capabilities,
|
|
||||||
-- filetypes = { "graphql", "gql", "svelte", "typescriptreact", "javascriptreact" },
|
|
||||||
-- })
|
|
||||||
--end,
|
|
||||||
--["emmet_ls"] = function()
|
|
||||||
-- -- configure emmet language server
|
|
||||||
-- lspconfig["emmet_ls"].setup({
|
|
||||||
-- capabilities = capabilities,
|
|
||||||
-- filetypes = { "html", "typescriptreact", "javascriptreact", "css", "sass", "scss", "less", "svelte" },
|
|
||||||
-- })
|
|
||||||
--end,
|
|
||||||
["lua_ls"] = function()
|
|
||||||
-- configure lua server (with special settings)
|
|
||||||
lspconfig["lua_ls"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
on_init = function(client)
|
|
||||||
if client.workspace_folders then
|
|
||||||
local path = client.workspace_folders[1].name
|
|
||||||
if
|
|
||||||
vim.loop.fs_stat(path .. "/.luarc.json") or vim.loop.fs_stat(path .. "/.luarc.jsonc")
|
|
||||||
then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, {
|
|
||||||
runtime = {
|
|
||||||
-- Tell the language server which version of Lua you're using
|
|
||||||
-- (most likely LuaJIT in the case of Neovim)
|
|
||||||
version = "LuaJIT",
|
|
||||||
},
|
|
||||||
-- Make the server aware of Neovim runtime files
|
|
||||||
workspace = {
|
|
||||||
checkThirdParty = false,
|
|
||||||
library = {
|
|
||||||
vim.env.VIMRUNTIME,
|
|
||||||
-- Depending on the usage, you might want to add additional paths here.
|
|
||||||
-- "${3rd}/luv/library"
|
|
||||||
-- "${3rd}/busted/library",
|
|
||||||
},
|
|
||||||
-- or pull in all of 'runtimepath'. NOTE: this is a lot slower and will cause issues when working on your own configuration (see https://github.com/neovim/nvim-lspconfig/issues/3189)
|
|
||||||
-- library = vim.api.nvim_get_runtime_file("", true)
|
|
||||||
},
|
|
||||||
diagnostics = {
|
|
||||||
-- Get the language server to recognize the `vim` global
|
|
||||||
globals = { "vim", "require", "select_opts" },
|
|
||||||
},
|
|
||||||
format = {
|
|
||||||
-- Put format options here
|
|
||||||
-- NOTE: the value should be STRING!!
|
|
||||||
defaultConfig = {
|
|
||||||
indent_style = "space",
|
|
||||||
indent_size = "4",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
settings = {
|
|
||||||
Lua = {},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
["pylsp"] = function()
|
|
||||||
-- configure graphql language server
|
|
||||||
lspconfig["pylsp"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
settings = {
|
|
||||||
pylsp = {
|
|
||||||
plugins = {
|
|
||||||
-- formatter options
|
|
||||||
black = { enabled = true },
|
|
||||||
autopep8 = { enabled = false },
|
|
||||||
yapf = { enabled = false },
|
|
||||||
-- linter options
|
|
||||||
pylint = { enabled = true, executable = "pylint" },
|
|
||||||
pyflakes = { enabled = false },
|
|
||||||
pycodestyle = { enabled = false, maxLineLength = 110 },
|
|
||||||
-- type checker
|
|
||||||
pylsp_mypy = { enabled = true },
|
|
||||||
-- auto-completion options
|
|
||||||
jedi_completion = { fuzzy = true },
|
|
||||||
-- import sorting
|
|
||||||
pyls_isort = { enabled = true },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
flags = {
|
|
||||||
debounce_text_changes = 200,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
["zls"] = function()
|
|
||||||
lspconfig["zls"].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
settings = {
|
|
||||||
cmd = { "~/.local/share/nvim/mason/bin/zls" },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
# Default config for sway
|
|
||||||
#
|
|
||||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
|
||||||
#
|
|
||||||
# Read `man 5 sway` for a complete reference.
|
|
||||||
|
|
||||||
# openSUSE theme
|
|
||||||
default_border pixel 2
|
|
||||||
gaps inner 10
|
|
||||||
#client.focused #6da741 #173f4f #73ba25
|
|
||||||
client.focused #00ff00 #00ff00 #00ff00 #00ff00
|
|
||||||
client.unfocused #00a489 #173f4f #35b9ab
|
|
||||||
client.focused_inactive #6da741 #00a489 #173f4f
|
|
||||||
|
|
||||||
#don't show gaps if there's only one window on the desktop
|
|
||||||
smart_gaps on
|
|
||||||
|
|
||||||
### 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
|
|
||||||
|
|
||||||
# Bar position
|
|
||||||
set $bar_position top
|
|
||||||
|
|
||||||
# Your preferred terminal emulator
|
|
||||||
set $term alacritty -e tmux
|
|
||||||
|
|
||||||
# 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 dmenu_path | dmenu | xargs swaymsg exec --
|
|
||||||
# it is set in config.d/50-openSUSE.conf
|
|
||||||
|
|
||||||
# wofi as application launcher
|
|
||||||
set $menu wofi -I -S drun
|
|
||||||
#set $menu rofi -no-lazy-grab -disable-history -modi "drun" -show drun -theme ~/.config/rofi/config.rasi
|
|
||||||
|
|
||||||
# Sway Notification Centre
|
|
||||||
set $toggle_notification "swaync-client -t -sw"
|
|
||||||
|
|
||||||
# Wob
|
|
||||||
set $wob wob --config ~/.config/sway/wob/wob.ini
|
|
||||||
|
|
||||||
# background
|
|
||||||
set $background ~/.config/backgrounds/tokyonight.jpg
|
|
||||||
|
|
||||||
# monitors
|
|
||||||
set $ext_monitor HDMI-A-1
|
|
||||||
set $int_monitor eDP-1
|
|
||||||
|
|
||||||
# screen capture
|
|
||||||
set $screen grimshot copy
|
|
||||||
# screen capture
|
|
||||||
set $screen_area grimshot copy area
|
|
||||||
|
|
||||||
|
|
||||||
include ~/.config/sway/config.d/*.conf
|
|
||||||
include ~/.config/sway/inputs/*.conf
|
|
||||||
include ~/.config/sway/outputs/*.conf
|
|
||||||
include ~/.config/sway/modes/*.conf
|
|
||||||
include ~/.config/sway/config.d/*
|
|
|
@ -1,143 +0,0 @@
|
||||||
### Key bindings
|
|
||||||
#
|
|
||||||
# Basics:
|
|
||||||
#
|
|
||||||
# Start a terminal
|
|
||||||
bindsym $mod+Shift+Return exec $term
|
|
||||||
|
|
||||||
# Kill focused window
|
|
||||||
bindsym $mod+Shift+c kill
|
|
||||||
|
|
||||||
# Start your launcher
|
|
||||||
bindsym $mod+p exec $menu
|
|
||||||
|
|
||||||
# Screen capture
|
|
||||||
bindsym $mod+Print exec $screen
|
|
||||||
|
|
||||||
# Screen capture area
|
|
||||||
bindsym $mod+Shift+Print exec $screen_area
|
|
||||||
|
|
||||||
# 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+q reload
|
|
||||||
|
|
||||||
# Exit sway (logs you out of your Wayland session)
|
|
||||||
bindsym $mod+Shift+q 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:
|
|
||||||
#
|
|
||||||
# Switch to workspace
|
|
||||||
bindsym $mod+1 workspace number 1
|
|
||||||
bindsym $mod+2 workspace number 2
|
|
||||||
bindsym $mod+3 workspace number 3
|
|
||||||
bindsym $mod+4 workspace number 4
|
|
||||||
bindsym $mod+5 workspace number 5
|
|
||||||
bindsym $mod+6 workspace number 6
|
|
||||||
bindsym $mod+7 workspace number 7
|
|
||||||
bindsym $mod+8 workspace number 8
|
|
||||||
bindsym $mod+9 workspace number 9
|
|
||||||
bindsym $mod+0 workspace number 10
|
|
||||||
# Move focused container to workspace
|
|
||||||
bindsym $mod+Shift+1 move container to workspace number 1
|
|
||||||
bindsym $mod+Shift+2 move container to workspace number 2
|
|
||||||
bindsym $mod+Shift+3 move container to workspace number 3
|
|
||||||
bindsym $mod+Shift+4 move container to workspace number 4
|
|
||||||
bindsym $mod+Shift+5 move container to workspace number 5
|
|
||||||
bindsym $mod+Shift+6 move container to workspace number 6
|
|
||||||
bindsym $mod+Shift+7 move container to workspace number 7
|
|
||||||
bindsym $mod+Shift+8 move container to workspace number 8
|
|
||||||
bindsym $mod+Shift+9 move container to workspace number 9
|
|
||||||
bindsym $mod+Shift+0 move container to workspace number 10
|
|
||||||
# Note: workspaces can have any name you want, not just numbers.
|
|
||||||
# We just use 1-10 as the default.
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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+space focus mode_toggle
|
|
||||||
|
|
||||||
# Move focus to the parent container
|
|
||||||
bindsym $mod+a focus parent
|
|
||||||
|
|
||||||
bindsym $mod+r mode "resize"
|
|
||||||
|
|
||||||
# Cycle through workspaces
|
|
||||||
bindsym $mod+tab workspace next_on_output
|
|
||||||
bindsym $mod+Shift+tab workspace prev_on_output
|
|
||||||
|
|
||||||
bindsym --to-code {
|
|
||||||
$mod+b splith
|
|
||||||
$mod+v splitv
|
|
||||||
}
|
|
||||||
|
|
||||||
# Media keys
|
|
||||||
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
|
||||||
|
|
||||||
bindsym XF86MonBrightnessDown exec brightnessctl -q set 5%- && ( echo $((`brightnessctl get` * 100 / `brightnessctl m`)) > $SWAYSOCK.wob )
|
|
||||||
bindsym XF86MonBrightnessUp exec brightnessctl -q set +5% && ( echo $((`brightnessctl get` * 100 / `brightnessctl m`)) > $SWAYSOCK.wob )
|
|
||||||
|
|
||||||
bindsym XF86AudioRaiseVolume exec pamixer --allow-boost -ui 2 && dc -e "[`pamixer --get-volume`]sM 100d `pamixer --get-volume`<Mp" > $SWAYSOCK.wob
|
|
||||||
bindsym XF86AudioLowerVolume exec pamixer --allow-boost -ud 2 && dc -e "[`pamixer --get-volume`]sM 100d `pamixer --get-volume`<Mp" > $SWAYSOCK.wob
|
|
||||||
bindsym XF86AudioMute exec pamixer --toggle-mute && ( pamixer --get-mute && echo 0 > $SWAYSOCK.wob )
|
|
||||||
|
|
||||||
# Media player controls
|
|
||||||
bindsym --no-warn XF86AudioPlay exec playerctl play-pause
|
|
||||||
bindsym --no-warn XF86AudioNext exec playerctl next
|
|
||||||
bindsym --no-warn XF86AudioPrev exec playerctl previous
|
|
||||||
|
|
||||||
# Shutdown
|
|
||||||
# unbindsym $mod+Shift+q
|
|
||||||
# bindsym $mod+Shift+q mode $mode_system
|
|
||||||
|
|
||||||
# Toggle notification bar
|
|
||||||
bindsym $mod+Shift+n exec $toggle_notification
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment
|
|
||||||
# See FS#63021
|
|
||||||
# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal.
|
|
||||||
|
|
||||||
# Upstream refuses to set XDG_CURRENT_DESKTOP so we have to.
|
|
||||||
exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
|
|
||||||
exec systemctl --user import-environment DISPLAY \
|
|
||||||
SWAYSOCK \
|
|
||||||
WAYLAND_DISPLAY \
|
|
||||||
XDG_CURRENT_DESKTOP
|
|
||||||
|
|
||||||
exec hash dbus-update-activation-environment 2>/dev/null && \
|
|
||||||
dbus-update-activation-environment --systemd DISPLAY \
|
|
||||||
SWAYSOCK \
|
|
||||||
XDG_CURRENT_DESKTOP=sway \
|
|
||||||
WAYLAND_DISPLAY
|
|
|
@ -1,9 +0,0 @@
|
||||||
#
|
|
||||||
# Status Bar:
|
|
||||||
#
|
|
||||||
bar {
|
|
||||||
font pango: Terminess Nerd Font 12
|
|
||||||
id default
|
|
||||||
status_command ~/.local/share/bumblebee-status/bumblebee-status
|
|
||||||
position $bar_position
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
# enable numlock
|
|
||||||
input * xkb_numlock enable
|
|
||||||
|
|
||||||
exec {
|
|
||||||
pipewire
|
|
||||||
mpd '~.config/mpd/mpd.conf'
|
|
||||||
#'[ -x "$(command -v blueman-applet)" ] && blueman-applet'
|
|
||||||
#'[ -x "$(command -v ~/.config/waybar/scripts/battery-notification.sh)" ] && ~/.config/waybar/scripts/battery-notification.sh'
|
|
||||||
# Default wallpaper
|
|
||||||
swaybg -o $int_monitor -i $background
|
|
||||||
swaybg -o $ext_monitor -i $background
|
|
||||||
}
|
|
||||||
|
|
||||||
exec_always {
|
|
||||||
#emacs --daemon
|
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
|
|
||||||
gsettings set org.gnome.desktop.interface icon-theme 'Adwaita'
|
|
||||||
gsettings set org.gnome.desktop.interface cursor-theme 'Adwaita'
|
|
||||||
systemctl --user import-environment
|
|
||||||
test -e $SWAYSOCK.wob || mkfifo $SWAYSOCK.wob
|
|
||||||
tail -f $SWAYSOCK.wob | $wob
|
|
||||||
swaync --style ~/.config/sway/swaync/style.css --config ~/.config/sway/swaync/config.json
|
|
||||||
}
|
|
||||||
|
|
||||||
exec /usr/libexec/polkit-gnome-authentication-agent-1
|
|
|
@ -1,17 +0,0 @@
|
||||||
# recomended enviroment variables for sway based desktop
|
|
||||||
# openSUSEway installs/imports this to/from:
|
|
||||||
# /usr/lib/environment.d/50-openSUSE.conf
|
|
||||||
# /etc/profile.d/openSUSEway.sh
|
|
||||||
MOZ_ENABLE_WAYLAND=1
|
|
||||||
QT_QPA_PLATFORM=wayland-egl
|
|
||||||
CLUTTER_BACKEND=wayland
|
|
||||||
ECORE_EVAS_ENGINE=wayland-egl
|
|
||||||
ELM_ENGINE=wayland_egl
|
|
||||||
SDL_VIDEODRIVER=wayland
|
|
||||||
_JAVA_AWT_WM_NONREPARENTING=1
|
|
||||||
NO_AT_BRIDGE=1
|
|
||||||
|
|
||||||
# QT theme for openSUSEway
|
|
||||||
# needs qt5ct and adwaita-qt5 packages
|
|
||||||
# default config is /etc/xdg/qt5ct/qt5ct.conf
|
|
||||||
QT_QPA_PLATFORMTHEME=qt5ct
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue