Compare commits
	
		
			No commits in common. "main" and "update-sudo" have entirely different histories.
		
	
	
		
			main
			...
			update-sud
		
	
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,6 +1,5 @@
 | 
			
		||||
zsh/extraconfig.zsh
 | 
			
		||||
zsh/env.zsh
 | 
			
		||||
bash/extraconfig.bash
 | 
			
		||||
nvim/lua/extraconfig.lua
 | 
			
		||||
.data
 | 
			
		||||
bin-extra
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										649
									
								
								alacritty.toml
									
									
									
									
									
								
							
							
						
						
									
										649
									
								
								alacritty.toml
									
									
									
									
									
								
							@ -1,649 +0,0 @@
 | 
			
		||||
[general]
 | 
			
		||||
live_config_reload = true
 | 
			
		||||
 | 
			
		||||
[bell]
 | 
			
		||||
animation = "EaseOutExpo"
 | 
			
		||||
duration = 0
 | 
			
		||||
 | 
			
		||||
[colors]
 | 
			
		||||
draw_bold_text_with_bright_colors = true
 | 
			
		||||
 | 
			
		||||
[colors.bright]
 | 
			
		||||
black = "0x666666"
 | 
			
		||||
blue = "0x5c5cff"
 | 
			
		||||
cyan = "0x00ffff"
 | 
			
		||||
green = "0x00ff00"
 | 
			
		||||
magenta = "0xff00ff"
 | 
			
		||||
red = "0xff0000"
 | 
			
		||||
white = "0xffffff"
 | 
			
		||||
yellow = "0xffff00"
 | 
			
		||||
 | 
			
		||||
[colors.dim]
 | 
			
		||||
black = "0x333333"
 | 
			
		||||
blue = "0x6699cc"
 | 
			
		||||
cyan = "0x66cccc"
 | 
			
		||||
green = "0x99cc99"
 | 
			
		||||
magenta = "0xcc99cc"
 | 
			
		||||
red = "0xf2777a"
 | 
			
		||||
white = "0xdddddd"
 | 
			
		||||
yellow = "0xffcc66"
 | 
			
		||||
 | 
			
		||||
[colors.normal]
 | 
			
		||||
black = "0x000000"
 | 
			
		||||
blue = "0x7aa6da"
 | 
			
		||||
cyan = "0x3465a4"
 | 
			
		||||
green = "0x00cd00"
 | 
			
		||||
magenta = "0xcd00cd"
 | 
			
		||||
red = "0xcd0000"
 | 
			
		||||
white = "0xe5e5e5"
 | 
			
		||||
yellow = "0xcdcd00"
 | 
			
		||||
 | 
			
		||||
[colors.primary]
 | 
			
		||||
background = "0x000000"
 | 
			
		||||
foreground = "0xeaeaea"
 | 
			
		||||
 | 
			
		||||
[cursor]
 | 
			
		||||
style = "Block"
 | 
			
		||||
unfocused_hollow = true
 | 
			
		||||
 | 
			
		||||
[font]
 | 
			
		||||
size = 11.0
 | 
			
		||||
 | 
			
		||||
[font.glyph_offset]
 | 
			
		||||
x = 0
 | 
			
		||||
y = 0
 | 
			
		||||
 | 
			
		||||
[font.normal]
 | 
			
		||||
family = "Ubuntu Mono Nerd Font"
 | 
			
		||||
 | 
			
		||||
[font.offset]
 | 
			
		||||
x = 0
 | 
			
		||||
y = 0
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
command = "clone-terminal"
 | 
			
		||||
key = "E"
 | 
			
		||||
mods = "Control|Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
action = "Paste"
 | 
			
		||||
key = "V"
 | 
			
		||||
mods = "Control|Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
action = "Copy"
 | 
			
		||||
key = "C"
 | 
			
		||||
mods = "Control|Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
action = "Paste"
 | 
			
		||||
key = "Paste"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
action = "Copy"
 | 
			
		||||
key = "Copy"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
action = "PasteSelection"
 | 
			
		||||
key = "Insert"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
action = "ResetFontSize"
 | 
			
		||||
key = "Key0"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
action = "IncreaseFontSize"
 | 
			
		||||
key = "Equals"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOH"
 | 
			
		||||
key = "Home"
 | 
			
		||||
mode = "AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[H"
 | 
			
		||||
key = "Home"
 | 
			
		||||
mode = "~AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOF"
 | 
			
		||||
key = "End"
 | 
			
		||||
mode = "AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[F"
 | 
			
		||||
key = "End"
 | 
			
		||||
mode = "~AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[5;2~"
 | 
			
		||||
key = "PageUp"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[5;5~"
 | 
			
		||||
key = "PageUp"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[5~"
 | 
			
		||||
key = "PageUp"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[6;2~"
 | 
			
		||||
key = "PageDown"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[6;5~"
 | 
			
		||||
key = "PageDown"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[6~"
 | 
			
		||||
key = "PageDown"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[Z"
 | 
			
		||||
key = "Tab"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u007F"
 | 
			
		||||
key = "Back"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B\u007F"
 | 
			
		||||
key = "Back"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[2~"
 | 
			
		||||
key = "Insert"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[3~"
 | 
			
		||||
key = "Delete"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2D"
 | 
			
		||||
key = "Left"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5D"
 | 
			
		||||
key = "Left"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3D"
 | 
			
		||||
key = "Left"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[D"
 | 
			
		||||
key = "Left"
 | 
			
		||||
mode = "~AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOD"
 | 
			
		||||
key = "Left"
 | 
			
		||||
mode = "AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2C"
 | 
			
		||||
key = "Right"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5C"
 | 
			
		||||
key = "Right"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3C"
 | 
			
		||||
key = "Right"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[C"
 | 
			
		||||
key = "Right"
 | 
			
		||||
mode = "~AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOC"
 | 
			
		||||
key = "Right"
 | 
			
		||||
mode = "AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2A"
 | 
			
		||||
key = "Up"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5A"
 | 
			
		||||
key = "Up"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3A"
 | 
			
		||||
key = "Up"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[A"
 | 
			
		||||
key = "Up"
 | 
			
		||||
mode = "~AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOA"
 | 
			
		||||
key = "Up"
 | 
			
		||||
mode = "AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2B"
 | 
			
		||||
key = "Down"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5B"
 | 
			
		||||
key = "Down"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3B"
 | 
			
		||||
key = "Down"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[B"
 | 
			
		||||
key = "Down"
 | 
			
		||||
mode = "~AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOB"
 | 
			
		||||
key = "Down"
 | 
			
		||||
mode = "AppCursor"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOP"
 | 
			
		||||
key = "F1"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOQ"
 | 
			
		||||
key = "F2"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOR"
 | 
			
		||||
key = "F3"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001BOS"
 | 
			
		||||
key = "F4"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[15~"
 | 
			
		||||
key = "F5"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[17~"
 | 
			
		||||
key = "F6"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[18~"
 | 
			
		||||
key = "F7"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[19~"
 | 
			
		||||
key = "F8"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[20~"
 | 
			
		||||
key = "F9"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[21~"
 | 
			
		||||
key = "F10"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[23~"
 | 
			
		||||
key = "F11"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[24~"
 | 
			
		||||
key = "F12"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2P"
 | 
			
		||||
key = "F1"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2Q"
 | 
			
		||||
key = "F2"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2R"
 | 
			
		||||
key = "F3"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;2S"
 | 
			
		||||
key = "F4"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[15;2~"
 | 
			
		||||
key = "F5"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[17;2~"
 | 
			
		||||
key = "F6"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[18;2~"
 | 
			
		||||
key = "F7"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[19;2~"
 | 
			
		||||
key = "F8"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[20;2~"
 | 
			
		||||
key = "F9"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[21;2~"
 | 
			
		||||
key = "F10"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[23;2~"
 | 
			
		||||
key = "F11"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[24;2~"
 | 
			
		||||
key = "F12"
 | 
			
		||||
mods = "Shift"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5P"
 | 
			
		||||
key = "F1"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5Q"
 | 
			
		||||
key = "F2"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5R"
 | 
			
		||||
key = "F3"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;5S"
 | 
			
		||||
key = "F4"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[15;5~"
 | 
			
		||||
key = "F5"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[17;5~"
 | 
			
		||||
key = "F6"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[18;5~"
 | 
			
		||||
key = "F7"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[19;5~"
 | 
			
		||||
key = "F8"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[20;5~"
 | 
			
		||||
key = "F9"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[21;5~"
 | 
			
		||||
key = "F10"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[23;5~"
 | 
			
		||||
key = "F11"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[24;5~"
 | 
			
		||||
key = "F12"
 | 
			
		||||
mods = "Control"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;6P"
 | 
			
		||||
key = "F1"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;6Q"
 | 
			
		||||
key = "F2"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;6R"
 | 
			
		||||
key = "F3"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;6S"
 | 
			
		||||
key = "F4"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[15;6~"
 | 
			
		||||
key = "F5"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[17;6~"
 | 
			
		||||
key = "F6"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[18;6~"
 | 
			
		||||
key = "F7"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[19;6~"
 | 
			
		||||
key = "F8"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[20;6~"
 | 
			
		||||
key = "F9"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[21;6~"
 | 
			
		||||
key = "F10"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[23;6~"
 | 
			
		||||
key = "F11"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[24;6~"
 | 
			
		||||
key = "F12"
 | 
			
		||||
mods = "Alt"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3P"
 | 
			
		||||
key = "F1"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3Q"
 | 
			
		||||
key = "F2"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3R"
 | 
			
		||||
key = "F3"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[1;3S"
 | 
			
		||||
key = "F4"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[15;3~"
 | 
			
		||||
key = "F5"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[17;3~"
 | 
			
		||||
key = "F6"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[18;3~"
 | 
			
		||||
key = "F7"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[19;3~"
 | 
			
		||||
key = "F8"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[20;3~"
 | 
			
		||||
key = "F9"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[21;3~"
 | 
			
		||||
key = "F10"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[23;3~"
 | 
			
		||||
key = "F11"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u001B[24;3~"
 | 
			
		||||
key = "F12"
 | 
			
		||||
mods = "Super"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u000A"
 | 
			
		||||
key = "NumpadEnter"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u002E"
 | 
			
		||||
key = "NumpadDecimal"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u002B"
 | 
			
		||||
key = "NumpadAdd"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u002D"
 | 
			
		||||
key = "NumpadSubtract"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u002A"
 | 
			
		||||
key = "NumpadMultiply"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u002F"
 | 
			
		||||
key = "NumpadDivide"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0030"
 | 
			
		||||
key = "Numpad0"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0031"
 | 
			
		||||
key = "Numpad1"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0032"
 | 
			
		||||
key = "Numpad2"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0033"
 | 
			
		||||
key = "Numpad3"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0034"
 | 
			
		||||
key = "Numpad4"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0035"
 | 
			
		||||
key = "Numpad5"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0036"
 | 
			
		||||
key = "Numpad6"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0037"
 | 
			
		||||
key = "Numpad7"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0038"
 | 
			
		||||
key = "Numpad8"
 | 
			
		||||
 | 
			
		||||
[[keyboard.bindings]]
 | 
			
		||||
chars = "\u0039"
 | 
			
		||||
key = "Numpad9"
 | 
			
		||||
 | 
			
		||||
[mouse]
 | 
			
		||||
hide_when_typing = false
 | 
			
		||||
 | 
			
		||||
[[mouse.bindings]]
 | 
			
		||||
action = "PasteSelection"
 | 
			
		||||
mouse = "Middle"
 | 
			
		||||
 | 
			
		||||
[scrolling]
 | 
			
		||||
history = 10000
 | 
			
		||||
multiplier = 3
 | 
			
		||||
 | 
			
		||||
[selection]
 | 
			
		||||
save_to_clipboard = false
 | 
			
		||||
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
 | 
			
		||||
 | 
			
		||||
[window]
 | 
			
		||||
decorations = "none"
 | 
			
		||||
dynamic_title = false
 | 
			
		||||
opacity = 0.6
 | 
			
		||||
 | 
			
		||||
[window.dimensions]
 | 
			
		||||
columns = 0
 | 
			
		||||
lines = 0
 | 
			
		||||
 | 
			
		||||
[window.padding]
 | 
			
		||||
x = 0
 | 
			
		||||
y = 0
 | 
			
		||||
							
								
								
									
										501
									
								
								alacritty.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										501
									
								
								alacritty.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,501 @@
 | 
			
		||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
 | 
			
		||||
 | 
			
		||||
# Any items in the `env` entry below will be added as
 | 
			
		||||
# environment variables. Some entries may override variables
 | 
			
		||||
# set by alacritty itself.
 | 
			
		||||
#env:
 | 
			
		||||
  # TERM variable
 | 
			
		||||
  #
 | 
			
		||||
  # This value is used to set the `$TERM` environment variable for
 | 
			
		||||
  # each instance of Alacritty. If it is not present, alacritty will
 | 
			
		||||
  # check the local terminfo database and use 'alacritty' if it is
 | 
			
		||||
  # available, otherwise 'xterm-256color' is used.
 | 
			
		||||
  #TERM: xterm-256color
 | 
			
		||||
 | 
			
		||||
window:
 | 
			
		||||
  # Window dimensions (changes require restart)
 | 
			
		||||
  #
 | 
			
		||||
  # Specified in number of columns/lines, not pixels.
 | 
			
		||||
  # If both are `0`, this setting is ignored.
 | 
			
		||||
  dimensions:
 | 
			
		||||
    columns: 0
 | 
			
		||||
    lines: 0
 | 
			
		||||
 | 
			
		||||
  # Window padding (changes require restart)
 | 
			
		||||
  #
 | 
			
		||||
  # Blank space added around the window in pixels. This padding is not scaled
 | 
			
		||||
  # by DPI and the specified value is always added at both opposing sides.
 | 
			
		||||
  padding:
 | 
			
		||||
    x: 0
 | 
			
		||||
    y: 0
 | 
			
		||||
 | 
			
		||||
  # Window decorations
 | 
			
		||||
  #
 | 
			
		||||
  # Values for `decorations`:
 | 
			
		||||
  #     - full: Borders and title bar
 | 
			
		||||
  #     - none: Neither borders nor title bar
 | 
			
		||||
  decorations: none
 | 
			
		||||
 | 
			
		||||
  dynamic_title: false
 | 
			
		||||
  opacity: 0.8
 | 
			
		||||
 | 
			
		||||
scrolling:
 | 
			
		||||
  # Maximum number of lines in the scrollback buffer.
 | 
			
		||||
  # Specifying '0' will disable scrolling.
 | 
			
		||||
  history: 10000
 | 
			
		||||
 | 
			
		||||
  # Number of lines the viewport will move for every line scrolled when
 | 
			
		||||
  # scrollback is enabled (history > 0).
 | 
			
		||||
  multiplier: 3
 | 
			
		||||
 | 
			
		||||
# Font configuration (changes require restart)
 | 
			
		||||
#
 | 
			
		||||
# Important font attributes like antialiasing, subpixel aa, and hinting can be
 | 
			
		||||
# controlled through fontconfig. Specifically, the following attributes should
 | 
			
		||||
# have an effect:
 | 
			
		||||
#   - hintstyle
 | 
			
		||||
#   - antialias
 | 
			
		||||
#   - lcdfilter
 | 
			
		||||
#   - rgba
 | 
			
		||||
#
 | 
			
		||||
# For instance, if you wish to disable subpixel antialiasing, you might set the
 | 
			
		||||
# rgba property to `none`. If you wish to completely disable antialiasing, you
 | 
			
		||||
# can set antialias to `false`.
 | 
			
		||||
#
 | 
			
		||||
# Please see these resources for more information on how to use fontconfig:
 | 
			
		||||
#   - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration
 | 
			
		||||
#   - file:///usr/share/doc/fontconfig/fontconfig-user.html
 | 
			
		||||
font:
 | 
			
		||||
  # Normal (roman) font face
 | 
			
		||||
  normal:
 | 
			
		||||
    # family: Ubuntu Mono Nerd Font
 | 
			
		||||
    family: custom monospace
 | 
			
		||||
    # family: Ubuntu Mono derivative Powerline
 | 
			
		||||
    # family: Inconsolata for Powerline
 | 
			
		||||
    # The `style` can be specified to pick a specific face.
 | 
			
		||||
    #style: Regular
 | 
			
		||||
 | 
			
		||||
  # # Bold font face
 | 
			
		||||
  # bold:
 | 
			
		||||
  #   family: Inconsolata for Powerline
 | 
			
		||||
  #   # The `style` can be specified to pick a specific face.
 | 
			
		||||
  #   #style: Bold
 | 
			
		||||
 | 
			
		||||
  # # Italic font face
 | 
			
		||||
  # italic:
 | 
			
		||||
  #   family: Inconsolata for Powerline
 | 
			
		||||
  #   # The `style` can be specified to pick a specific face.
 | 
			
		||||
  #   #style: Italic
 | 
			
		||||
 | 
			
		||||
  # Point size
 | 
			
		||||
  size: 8.0
 | 
			
		||||
 | 
			
		||||
  # Offset is the extra space around each character. `offset.y` can be thought of
 | 
			
		||||
  # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
 | 
			
		||||
  offset:
 | 
			
		||||
    x: 0
 | 
			
		||||
    y: 0
 | 
			
		||||
 | 
			
		||||
  # Glyph offset determines the locations of the glyphs within their cells with
 | 
			
		||||
  # the default being at the bottom. Increasing `x` moves the glyph to the right,
 | 
			
		||||
  # increasing `y` moves the glyph upwards.
 | 
			
		||||
  glyph_offset:
 | 
			
		||||
    x: 0
 | 
			
		||||
    y: 0
 | 
			
		||||
 | 
			
		||||
# If `true`, bold text is drawn using the bright color variants.
 | 
			
		||||
draw_bold_text_with_bright_colors: true
 | 
			
		||||
 | 
			
		||||
# Colors (Tomorrow Night Bright)
 | 
			
		||||
colors:
 | 
			
		||||
  # Default colors
 | 
			
		||||
  primary:
 | 
			
		||||
    background: '0x000000'
 | 
			
		||||
    foreground: '0xeaeaea'
 | 
			
		||||
 | 
			
		||||
    # Bright and dim foreground colors
 | 
			
		||||
    #
 | 
			
		||||
    # The dimmed foreground color is calculated automatically if it is not present.
 | 
			
		||||
    # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
 | 
			
		||||
    # is `false`, the normal foreground color will be used.
 | 
			
		||||
    #dim_foreground: '0x9a9a9a'
 | 
			
		||||
    #bright_foreground: '0xffffff'
 | 
			
		||||
 | 
			
		||||
  # Cursor colors
 | 
			
		||||
  #
 | 
			
		||||
  # Colors which should be used to draw the terminal cursor. If these are unset,
 | 
			
		||||
  # the cursor color will be the inverse of the cell color.
 | 
			
		||||
  #cursor:
 | 
			
		||||
  #  text: '0x000000'
 | 
			
		||||
  #  cursor: '0xffffff'
 | 
			
		||||
 | 
			
		||||
  # Normal colors
 | 
			
		||||
  normal:
 | 
			
		||||
 | 
			
		||||
    black:   '0x000000'
 | 
			
		||||
    red:     '0xcd0000'
 | 
			
		||||
    green:   '0x00cd00'
 | 
			
		||||
    yellow:  '0xcdcd00'
 | 
			
		||||
    blue:    '0x7aa6da'
 | 
			
		||||
    magenta: '0xcd00cd'
 | 
			
		||||
    cyan:    '0x3465a4'
 | 
			
		||||
    white:   '0xe5e5e5'
 | 
			
		||||
 | 
			
		||||
  # Bright colors
 | 
			
		||||
  bright:
 | 
			
		||||
    black:   '0x666666'
 | 
			
		||||
    red:     '0xff0000'
 | 
			
		||||
    green:   '0x00ff00'
 | 
			
		||||
    yellow:  '0xffff00'
 | 
			
		||||
    blue:    '0x5c5cff'
 | 
			
		||||
    magenta: '0xff00ff'
 | 
			
		||||
    cyan:    '0x00ffff'
 | 
			
		||||
    white:   '0xffffff'
 | 
			
		||||
 | 
			
		||||
  # Dim colors
 | 
			
		||||
  #
 | 
			
		||||
  # If the dim colors are not set, they will be calculated automatically based
 | 
			
		||||
  # on the `normal` colors.
 | 
			
		||||
  dim:
 | 
			
		||||
    black:   '0x333333'
 | 
			
		||||
    red:     '0xf2777a'
 | 
			
		||||
    green:   '0x99cc99'
 | 
			
		||||
    yellow:  '0xffcc66'
 | 
			
		||||
    blue:    '0x6699cc'
 | 
			
		||||
    magenta: '0xcc99cc'
 | 
			
		||||
    cyan:    '0x66cccc'
 | 
			
		||||
    white:   '0xdddddd'
 | 
			
		||||
 | 
			
		||||
# # Colors (Tomorrow Night Bright)
 | 
			
		||||
# colors:
 | 
			
		||||
#   # Default colors
 | 
			
		||||
#   primary:
 | 
			
		||||
#     background: '0xffffff'
 | 
			
		||||
#     foreground: '0x000000'
 | 
			
		||||
#
 | 
			
		||||
#     # Bright and dim foreground colors
 | 
			
		||||
#     #
 | 
			
		||||
#     # The dimmed foreground color is calculated automatically if it is not present.
 | 
			
		||||
#     # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
 | 
			
		||||
#     # is `false`, the normal foreground color will be used.
 | 
			
		||||
#     #dim_foreground: '0x9a9a9a'
 | 
			
		||||
#     #bright_foreground: '0xffffff'
 | 
			
		||||
#
 | 
			
		||||
#   # Cursor colors
 | 
			
		||||
#   #
 | 
			
		||||
#   # Colors which should be used to draw the terminal cursor. If these are unset,
 | 
			
		||||
#   # the cursor color will be the inverse of the cell color.
 | 
			
		||||
#   #cursor:
 | 
			
		||||
#   #  text: '0x000000'
 | 
			
		||||
#   #  cursor: '0xffffff'
 | 
			
		||||
#
 | 
			
		||||
#   # Normal colors
 | 
			
		||||
#   normal:
 | 
			
		||||
#
 | 
			
		||||
#     black:   '0x000000'
 | 
			
		||||
#     red:     '0xcd0000'
 | 
			
		||||
#     green:   '0x00cd00'
 | 
			
		||||
#     yellow:  '0xcdcd00'
 | 
			
		||||
#     blue:    '0x0000cd'
 | 
			
		||||
#     magenta: '0xcd00cd'
 | 
			
		||||
#     cyan:    '0x00cdcd'
 | 
			
		||||
#     white:   '0xfaebd7'
 | 
			
		||||
#
 | 
			
		||||
#   # Bright colors
 | 
			
		||||
#   bright:
 | 
			
		||||
#     black:   '0x000000'
 | 
			
		||||
#     red:     '0xcd0000'
 | 
			
		||||
#     green:   '0x00cd00'
 | 
			
		||||
#     yellow:  '0xcdcd00'
 | 
			
		||||
#     blue:    '0x0000cd'
 | 
			
		||||
#     magenta: '0xcd00cd'
 | 
			
		||||
#     cyan:    '0x00cdcd'
 | 
			
		||||
#     white:   '0xfaebd7'
 | 
			
		||||
#
 | 
			
		||||
#   # Dim colors
 | 
			
		||||
#   #
 | 
			
		||||
#   # If the dim colors are not set, they will be calculated automatically based
 | 
			
		||||
#   # on the `normal` colors.
 | 
			
		||||
#   dim:
 | 
			
		||||
#     black:   '0x333333'
 | 
			
		||||
#     red:     '0xf2777a'
 | 
			
		||||
#     green:   '0x99cc99'
 | 
			
		||||
#     yellow:  '0xffcc66'
 | 
			
		||||
#     blue:    '0x6699cc'
 | 
			
		||||
#     magenta: '0xcc99cc'
 | 
			
		||||
#     cyan:    '0x66cccc'
 | 
			
		||||
#     white:   '0xdddddd'
 | 
			
		||||
#
 | 
			
		||||
# background_opacity: 1.0
 | 
			
		||||
 | 
			
		||||
# Visual Bell
 | 
			
		||||
#
 | 
			
		||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
 | 
			
		||||
# rung, the terminal background will be set to white and transition back to the
 | 
			
		||||
# default background color. You can control the rate of this transition by
 | 
			
		||||
# setting the `duration` property (represented in milliseconds). You can also
 | 
			
		||||
# configure the transition function by setting the `animation` property.
 | 
			
		||||
#
 | 
			
		||||
# Values for `animation`:
 | 
			
		||||
#   - Ease
 | 
			
		||||
#   - EaseOut
 | 
			
		||||
#   - EaseOutSine
 | 
			
		||||
#   - EaseOutQuad
 | 
			
		||||
#   - EaseOutCubic
 | 
			
		||||
#   - EaseOutQuart
 | 
			
		||||
#   - EaseOutQuint
 | 
			
		||||
#   - EaseOutExpo
 | 
			
		||||
#   - EaseOutCirc
 | 
			
		||||
#   - Linear
 | 
			
		||||
#
 | 
			
		||||
# Specifying a `duration` of `0` will disable the visual bell.
 | 
			
		||||
bell:
 | 
			
		||||
  animation: EaseOutExpo
 | 
			
		||||
  duration: 0
 | 
			
		||||
 | 
			
		||||
# Mouse bindings
 | 
			
		||||
#
 | 
			
		||||
# Available fields:
 | 
			
		||||
#   - mouse
 | 
			
		||||
#   - action
 | 
			
		||||
#   - mods (optional)
 | 
			
		||||
#
 | 
			
		||||
# Values for `mouse`:
 | 
			
		||||
#   - Middle
 | 
			
		||||
#   - Left
 | 
			
		||||
#   - Right
 | 
			
		||||
#   - Numeric identifier such as `5`
 | 
			
		||||
#
 | 
			
		||||
# All available `mods` and `action` values are documented in the key binding
 | 
			
		||||
# section.
 | 
			
		||||
mouse_bindings:
 | 
			
		||||
  - { mouse: Middle, action: PasteSelection }
 | 
			
		||||
 | 
			
		||||
mouse:
 | 
			
		||||
  # Click settings
 | 
			
		||||
  #
 | 
			
		||||
  # The `double_click` and `triple_click` settings control the time
 | 
			
		||||
  # alacritty should wait for accepting multiple clicks as one double
 | 
			
		||||
  # or triple click.
 | 
			
		||||
  double_click: { threshold: 300 }
 | 
			
		||||
  triple_click: { threshold: 300 }
 | 
			
		||||
 | 
			
		||||
  # If this is `true`, the cursor is temporarily hidden when typing.
 | 
			
		||||
  hide_when_typing: false
 | 
			
		||||
 | 
			
		||||
selection:
 | 
			
		||||
  semantic_escape_chars: ",│`|:\"' ()[]{}<>"
 | 
			
		||||
 | 
			
		||||
  # When set to `true`, selected text will be copied to both the primary and
 | 
			
		||||
  # the selection clipboard. Otherwise, it will only be copied to the selection
 | 
			
		||||
  # clipboard.
 | 
			
		||||
  save_to_clipboard: false
 | 
			
		||||
 | 
			
		||||
cursor:
 | 
			
		||||
  # Cursor style
 | 
			
		||||
  #
 | 
			
		||||
  # Values for 'style':
 | 
			
		||||
  #   - ▇ Block
 | 
			
		||||
  #   - _ Underline
 | 
			
		||||
  #   - | Beam
 | 
			
		||||
  style: Block
 | 
			
		||||
 | 
			
		||||
  # If this is `true`, the cursor will be rendered as a hollow box when the
 | 
			
		||||
  # window is not focused.
 | 
			
		||||
  unfocused_hollow: true
 | 
			
		||||
 | 
			
		||||
# Live config reload (changes require restart)
 | 
			
		||||
live_config_reload: true
 | 
			
		||||
 | 
			
		||||
# Shell
 | 
			
		||||
#
 | 
			
		||||
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
 | 
			
		||||
# Entries in `shell.args` are passed unmodified as arguments to the shell.
 | 
			
		||||
#shell:
 | 
			
		||||
#  program: /bin/bash
 | 
			
		||||
#  args:
 | 
			
		||||
#    - --login
 | 
			
		||||
 | 
			
		||||
# Key bindings
 | 
			
		||||
#
 | 
			
		||||
# Key bindings are specified as a list of objects. Each binding will specify
 | 
			
		||||
# a key and modifiers required to trigger it, terminal modes where the binding
 | 
			
		||||
# is applicable, and what should be done when the key binding fires. It can
 | 
			
		||||
# either send a byte sequnce to the running application (`chars`), execute
 | 
			
		||||
# a predefined action (`action`) or fork and execute a specified command plus
 | 
			
		||||
# arguments (`command`).
 | 
			
		||||
#
 | 
			
		||||
# Example:
 | 
			
		||||
#   `- { key: V, mods: Command, action: Paste }`
 | 
			
		||||
#
 | 
			
		||||
# Available fields:
 | 
			
		||||
#   - key
 | 
			
		||||
#   - mods (optional)
 | 
			
		||||
#   - chars | action | command (exactly one required)
 | 
			
		||||
#   - mode (optional)
 | 
			
		||||
#
 | 
			
		||||
# Values for `key`:
 | 
			
		||||
#   - `A` -> `Z`
 | 
			
		||||
#   - `F1` -> `F12`
 | 
			
		||||
#   - `Key1` -> `Key0`
 | 
			
		||||
#
 | 
			
		||||
#   A full list with available key codes can be found here:
 | 
			
		||||
#   https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
 | 
			
		||||
#
 | 
			
		||||
#   Instead of using the name of the keys, the `key` field also supports using
 | 
			
		||||
#   the scancode of the desired key. Scancodes have to be specified as a
 | 
			
		||||
#   decimal number.
 | 
			
		||||
#   This command will allow you to display the hex scancodes for certain keys:
 | 
			
		||||
#     `showkey --scancodes`
 | 
			
		||||
#
 | 
			
		||||
# Values for `mods`:
 | 
			
		||||
#   - Command
 | 
			
		||||
#   - Control
 | 
			
		||||
#   - Shift
 | 
			
		||||
#   - Alt
 | 
			
		||||
#
 | 
			
		||||
#   Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
 | 
			
		||||
#   Whitespace and capitalization is relevant and must match the example.
 | 
			
		||||
#
 | 
			
		||||
# Values for `chars`:
 | 
			
		||||
#   The `chars` field writes the specified string to the terminal. This makes
 | 
			
		||||
#   it possible to pass escape sequences.
 | 
			
		||||
#   To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
 | 
			
		||||
#   the command `showkey -a` outside of tmux.
 | 
			
		||||
#   Note that applications use terminfo to map escape sequences back to
 | 
			
		||||
#   keys. It is therefore required to update the terminfo when
 | 
			
		||||
#   changing an escape sequence.
 | 
			
		||||
#
 | 
			
		||||
# Values for `action`:
 | 
			
		||||
#   - Paste
 | 
			
		||||
#   - PasteSelection
 | 
			
		||||
#   - Copy
 | 
			
		||||
#   - IncreaseFontSize
 | 
			
		||||
#   - DecreaseFontSize
 | 
			
		||||
#   - ResetFontSize
 | 
			
		||||
#   - ScrollPageUp
 | 
			
		||||
#   - ScrollPageDown
 | 
			
		||||
#   - ScrollToTop
 | 
			
		||||
#   - ScrollToBottom
 | 
			
		||||
#   - ClearHistory
 | 
			
		||||
#   - Hide
 | 
			
		||||
#   - Quit
 | 
			
		||||
#
 | 
			
		||||
# Values for `command`:
 | 
			
		||||
#   The `command` field must be a map containing a `program` string and
 | 
			
		||||
#   an `args` array of command line parameter strings.
 | 
			
		||||
#
 | 
			
		||||
#   Example:
 | 
			
		||||
#       `command: { program: "alacritty", args: ["-e", "vttest"] }`
 | 
			
		||||
#
 | 
			
		||||
# Values for `mode`:
 | 
			
		||||
#   - ~AppCursor
 | 
			
		||||
#   - AppCursor
 | 
			
		||||
#   - ~AppKeypad
 | 
			
		||||
#   - AppKeypad
 | 
			
		||||
key_bindings:
 | 
			
		||||
    # Custom
 | 
			
		||||
  - { key: E,        mods: Control|Shift,    action: SpawnNewInstance    }
 | 
			
		||||
    # Already present
 | 
			
		||||
  - { key: V,        mods: Control|Shift,    action: Paste               }
 | 
			
		||||
  - { key: C,        mods: Control|Shift,    action: Copy                }
 | 
			
		||||
  - { key: Paste,                   action: Paste                        }
 | 
			
		||||
  - { key: Copy,                    action: Copy                         }
 | 
			
		||||
  - { key: Insert,   mods: Shift,   action: PasteSelection               }
 | 
			
		||||
  - { key: Key0,     mods: Control, action: ResetFontSize                }
 | 
			
		||||
  - { key: Equals,   mods: Control, action: IncreaseFontSize             }
 | 
			
		||||
  - { key: Home,                    chars: "\x1bOH",   mode: AppCursor   }
 | 
			
		||||
  - { key: Home,                    chars: "\x1b[H",   mode: ~AppCursor  }
 | 
			
		||||
  - { key: End,                     chars: "\x1bOF",   mode: AppCursor   }
 | 
			
		||||
  - { key: End,                     chars: "\x1b[F",   mode: ~AppCursor  }
 | 
			
		||||
  - { key: PageUp,   mods: Shift,   chars: "\x1b[5;2~"                   }
 | 
			
		||||
  - { key: PageUp,   mods: Control, chars: "\x1b[5;5~"                   }
 | 
			
		||||
  - { key: PageUp,                  chars: "\x1b[5~"                     }
 | 
			
		||||
  - { key: PageDown, mods: Shift,   chars: "\x1b[6;2~"                   }
 | 
			
		||||
  - { key: PageDown, mods: Control, chars: "\x1b[6;5~"                   }
 | 
			
		||||
  - { key: PageDown,                chars: "\x1b[6~"                     }
 | 
			
		||||
  - { key: Tab,      mods: Shift,   chars: "\x1b[Z"                      }
 | 
			
		||||
  - { key: Back,                    chars: "\x7f"                        }
 | 
			
		||||
  - { key: Back,     mods: Alt,     chars: "\x1b\x7f"                    }
 | 
			
		||||
  - { key: Insert,                  chars: "\x1b[2~"                     }
 | 
			
		||||
  - { key: Delete,                  chars: "\x1b[3~"                     }
 | 
			
		||||
  - { key: Left,     mods: Shift,   chars: "\x1b[1;2D"                   }
 | 
			
		||||
  - { key: Left,     mods: Control, chars: "\x1b[1;5D"                   }
 | 
			
		||||
  - { key: Left,     mods: Alt,     chars: "\x1b[1;3D"                   }
 | 
			
		||||
  - { key: Left,                    chars: "\x1b[D",   mode: ~AppCursor  }
 | 
			
		||||
  - { key: Left,                    chars: "\x1bOD",   mode: AppCursor   }
 | 
			
		||||
  - { key: Right,    mods: Shift,   chars: "\x1b[1;2C"                   }
 | 
			
		||||
  - { key: Right,    mods: Control, chars: "\x1b[1;5C"                   }
 | 
			
		||||
  - { key: Right,    mods: Alt,     chars: "\x1b[1;3C"                   }
 | 
			
		||||
  - { key: Right,                   chars: "\x1b[C",   mode: ~AppCursor  }
 | 
			
		||||
  - { key: Right,                   chars: "\x1bOC",   mode: AppCursor   }
 | 
			
		||||
  - { key: Up,       mods: Shift,   chars: "\x1b[1;2A"                   }
 | 
			
		||||
  - { key: Up,       mods: Control, chars: "\x1b[1;5A"                   }
 | 
			
		||||
  - { key: Up,       mods: Alt,     chars: "\x1b[1;3A"                   }
 | 
			
		||||
  - { key: Up,                      chars: "\x1b[A",   mode: ~AppCursor  }
 | 
			
		||||
  - { key: Up,                      chars: "\x1bOA",   mode: AppCursor   }
 | 
			
		||||
  - { key: Down,     mods: Shift,   chars: "\x1b[1;2B"                   }
 | 
			
		||||
  - { key: Down,     mods: Control, chars: "\x1b[1;5B"                   }
 | 
			
		||||
  - { key: Down,     mods: Alt,     chars: "\x1b[1;3B"                   }
 | 
			
		||||
  - { key: Down,                    chars: "\x1b[B",   mode: ~AppCursor  }
 | 
			
		||||
  - { key: Down,                    chars: "\x1bOB",   mode: AppCursor   }
 | 
			
		||||
  - { key: F1,                      chars: "\x1bOP"                      }
 | 
			
		||||
  - { key: F2,                      chars: "\x1bOQ"                      }
 | 
			
		||||
  - { key: F3,                      chars: "\x1bOR"                      }
 | 
			
		||||
  - { key: F4,                      chars: "\x1bOS"                      }
 | 
			
		||||
  - { key: F5,                      chars: "\x1b[15~"                    }
 | 
			
		||||
  - { key: F6,                      chars: "\x1b[17~"                    }
 | 
			
		||||
  - { key: F7,                      chars: "\x1b[18~"                    }
 | 
			
		||||
  - { key: F8,                      chars: "\x1b[19~"                    }
 | 
			
		||||
  - { key: F9,                      chars: "\x1b[20~"                    }
 | 
			
		||||
  - { key: F10,                     chars: "\x1b[21~"                    }
 | 
			
		||||
  - { key: F11,                     chars: "\x1b[23~"                    }
 | 
			
		||||
  - { key: F12,                     chars: "\x1b[24~"                    }
 | 
			
		||||
  - { key: F1,       mods: Shift,   chars: "\x1b[1;2P"                   }
 | 
			
		||||
  - { key: F2,       mods: Shift,   chars: "\x1b[1;2Q"                   }
 | 
			
		||||
  - { key: F3,       mods: Shift,   chars: "\x1b[1;2R"                   }
 | 
			
		||||
  - { key: F4,       mods: Shift,   chars: "\x1b[1;2S"                   }
 | 
			
		||||
  - { key: F5,       mods: Shift,   chars: "\x1b[15;2~"                  }
 | 
			
		||||
  - { key: F6,       mods: Shift,   chars: "\x1b[17;2~"                  }
 | 
			
		||||
  - { key: F7,       mods: Shift,   chars: "\x1b[18;2~"                  }
 | 
			
		||||
  - { key: F8,       mods: Shift,   chars: "\x1b[19;2~"                  }
 | 
			
		||||
  - { key: F9,       mods: Shift,   chars: "\x1b[20;2~"                  }
 | 
			
		||||
  - { key: F10,      mods: Shift,   chars: "\x1b[21;2~"                  }
 | 
			
		||||
  - { key: F11,      mods: Shift,   chars: "\x1b[23;2~"                  }
 | 
			
		||||
  - { key: F12,      mods: Shift,   chars: "\x1b[24;2~"                  }
 | 
			
		||||
  - { key: F1,       mods: Control, chars: "\x1b[1;5P"                   }
 | 
			
		||||
  - { key: F2,       mods: Control, chars: "\x1b[1;5Q"                   }
 | 
			
		||||
  - { key: F3,       mods: Control, chars: "\x1b[1;5R"                   }
 | 
			
		||||
  - { key: F4,       mods: Control, chars: "\x1b[1;5S"                   }
 | 
			
		||||
  - { key: F5,       mods: Control, chars: "\x1b[15;5~"                  }
 | 
			
		||||
  - { key: F6,       mods: Control, chars: "\x1b[17;5~"                  }
 | 
			
		||||
  - { key: F7,       mods: Control, chars: "\x1b[18;5~"                  }
 | 
			
		||||
  - { key: F8,       mods: Control, chars: "\x1b[19;5~"                  }
 | 
			
		||||
  - { key: F9,       mods: Control, chars: "\x1b[20;5~"                  }
 | 
			
		||||
  - { key: F10,      mods: Control, chars: "\x1b[21;5~"                  }
 | 
			
		||||
  - { key: F11,      mods: Control, chars: "\x1b[23;5~"                  }
 | 
			
		||||
  - { key: F12,      mods: Control, chars: "\x1b[24;5~"                  }
 | 
			
		||||
  - { key: F1,       mods: Alt,     chars: "\x1b[1;6P"                   }
 | 
			
		||||
  - { key: F2,       mods: Alt,     chars: "\x1b[1;6Q"                   }
 | 
			
		||||
  - { key: F3,       mods: Alt,     chars: "\x1b[1;6R"                   }
 | 
			
		||||
  - { key: F4,       mods: Alt,     chars: "\x1b[1;6S"                   }
 | 
			
		||||
  - { key: F5,       mods: Alt,     chars: "\x1b[15;6~"                  }
 | 
			
		||||
  - { key: F6,       mods: Alt,     chars: "\x1b[17;6~"                  }
 | 
			
		||||
  - { key: F7,       mods: Alt,     chars: "\x1b[18;6~"                  }
 | 
			
		||||
  - { key: F8,       mods: Alt,     chars: "\x1b[19;6~"                  }
 | 
			
		||||
  - { key: F9,       mods: Alt,     chars: "\x1b[20;6~"                  }
 | 
			
		||||
  - { key: F10,      mods: Alt,     chars: "\x1b[21;6~"                  }
 | 
			
		||||
  - { key: F11,      mods: Alt,     chars: "\x1b[23;6~"                  }
 | 
			
		||||
  - { key: F12,      mods: Alt,     chars: "\x1b[24;6~"                  }
 | 
			
		||||
  - { key: F1,       mods: Super,   chars: "\x1b[1;3P"                   }
 | 
			
		||||
  - { key: F2,       mods: Super,   chars: "\x1b[1;3Q"                   }
 | 
			
		||||
  - { key: F3,       mods: Super,   chars: "\x1b[1;3R"                   }
 | 
			
		||||
  - { key: F4,       mods: Super,   chars: "\x1b[1;3S"                   }
 | 
			
		||||
  - { key: F5,       mods: Super,   chars: "\x1b[15;3~"                  }
 | 
			
		||||
  - { key: F6,       mods: Super,   chars: "\x1b[17;3~"                  }
 | 
			
		||||
  - { key: F7,       mods: Super,   chars: "\x1b[18;3~"                  }
 | 
			
		||||
  - { key: F8,       mods: Super,   chars: "\x1b[19;3~"                  }
 | 
			
		||||
  - { key: F9,       mods: Super,   chars: "\x1b[20;3~"                  }
 | 
			
		||||
  - { key: F10,      mods: Super,   chars: "\x1b[21;3~"                  }
 | 
			
		||||
  - { key: F11,      mods: Super,   chars: "\x1b[23;3~"                  }
 | 
			
		||||
  - { key: F12,      mods: Super,   chars: "\x1b[24;3~"                  }
 | 
			
		||||
@ -1,19 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Extract parent window uuid
 | 
			
		||||
 | 
			
		||||
# On hyprland
 | 
			
		||||
hyprctl monitors > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
if [ $? -eq 0 ]; then
 | 
			
		||||
    WM_NAME=$(hyprctl activewindow | grep title | cut -d ':' -f 2 | tr -d ' ')
 | 
			
		||||
else
 | 
			
		||||
    WINDOW_ID=$(xdotool getactivewindow)
 | 
			
		||||
    WM_NAME=$(xprop -id $WINDOW_ID WM_NAME | cut -d '"' -f 2)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Generate new uuid for new terminal
 | 
			
		||||
uuid=$(uuidgen)
 | 
			
		||||
 | 
			
		||||
alacritty --title $uuid -e sh -c "TERMINAL_UUID=$uuid PARENT_TERMINAL=$WM_NAME exec $SHELL"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								bin/copy
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								bin/copy
									
									
									
									
									
								
							@ -4,10 +4,5 @@ if [ $# -eq 0 ]; then
 | 
			
		||||
    xclip -selection c
 | 
			
		||||
else
 | 
			
		||||
    file_type=$(file -b --mime-type "$1")
 | 
			
		||||
 | 
			
		||||
    if [ "$file_type" = "image/jpg" ] || [ "$file_type" = "image/jpeg" ];  then
 | 
			
		||||
        convert $1 png:- | xclip -selection c -t image/png
 | 
			
		||||
    else
 | 
			
		||||
        xclip -selection c -t $file_type < $1
 | 
			
		||||
    fi
 | 
			
		||||
    xclip -selection c -t $file_type < $1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@ -1,4 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
UUID=$(uuidgen)
 | 
			
		||||
alacritty --title $UUID -e sh -c "TERMINAL_UUID=$UUID exec $SHELL"
 | 
			
		||||
@ -1,9 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# auto fix issues with my scanner
 | 
			
		||||
input="$3"
 | 
			
		||||
color=$(magick "$input" -format "%[hex:u.p{100,-1}]" info:)
 | 
			
		||||
tmp=$(mktemp --suffix=.png)
 | 
			
		||||
magick "$input" -page +0-100 -background \#$color -flatten -auto-level $tmp
 | 
			
		||||
magick $tmp -quality 100 "${input%.*}.pdf"
 | 
			
		||||
rm -rf $tmp "$input"
 | 
			
		||||
@ -1,3 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
xclip -sel clip -o | sed -e 's/^/> /' | xclip -sel clip
 | 
			
		||||
							
								
								
									
										66
									
								
								bin/update
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								bin/update
									
									
									
									
									
								
							@ -189,31 +189,18 @@ update-system() {
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    command -v snap > /dev/null 2>&1
 | 
			
		||||
    if [ $? -eq 0 ]; then
 | 
			
		||||
        echo $password | sudo -Sp "" snap refresh
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Archlinux based systems
 | 
			
		||||
    command -v paru > /dev/null 2>&1
 | 
			
		||||
    command -v yay > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
    if [ $? -eq 0 ]; then
 | 
			
		||||
        paru -Syu --noconfirm
 | 
			
		||||
        yay -Syu --noconfirm
 | 
			
		||||
        yay -Syua --noconfirm
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
        command -v yay > /dev/null 2>&1
 | 
			
		||||
        command -v pacman > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
        if [ $? -eq 0 ]; then
 | 
			
		||||
            yay -Syu --noconfirm
 | 
			
		||||
            yay -Syua --noconfirm
 | 
			
		||||
        else
 | 
			
		||||
 | 
			
		||||
            command -v pacman > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
            if [ $? -eq 0 ]; then
 | 
			
		||||
                echo $password | sudo -Sp "" pacman -Syu --noconfirm
 | 
			
		||||
            fi
 | 
			
		||||
 | 
			
		||||
            echo $password | sudo -Sp "" pacman -Syu --noconfirm
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
    fi
 | 
			
		||||
@ -244,31 +231,21 @@ update-rust() {
 | 
			
		||||
    echo -e "\033[32;1m=== Updating rust ===\033[0m"
 | 
			
		||||
    rustup update
 | 
			
		||||
 | 
			
		||||
    cargo install-update --help > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
    # Program to update cargo programs is not installed
 | 
			
		||||
    if [ $? -ne 0 ]; then
 | 
			
		||||
 | 
			
		||||
        echo -e "\033[33;1m=== To allow updating rust packages, run \`cargo install cargo-update\`===\033[0m"
 | 
			
		||||
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # If the user has no root, and if he doesn't have openssl, we won't install cargo update.
 | 
			
		||||
    # Before running cargo update, we check again that it is installed.
 | 
			
		||||
    cargo install-update --help > /dev/null 2>&1
 | 
			
		||||
    if [ $? -eq 0 ]; then
 | 
			
		||||
        echo -e "\033[32;1m=== Updating rust packages ===\033[0m"
 | 
			
		||||
 | 
			
		||||
        IFS=$'\n'
 | 
			
		||||
        for line in $(cargo install --list); do
 | 
			
		||||
            if [[ $line == " "* ]] || [[ $line == "\t"* ]]; then
 | 
			
		||||
                continue
 | 
			
		||||
            fi
 | 
			
		||||
 | 
			
		||||
            if [[ $line == *"("* ]]; then
 | 
			
		||||
                crate=$(echo $line | cut -d ' ' -f 1)
 | 
			
		||||
                full_repo=$(echo $line | cut -d '(' -f 2 | cut -d ')' -f 1)
 | 
			
		||||
                repo=$(echo $full_repo | cut -d '#' -f 1)
 | 
			
		||||
                current_commit=$(echo $full_repo | cut -d '#' -f 2)
 | 
			
		||||
                latest_commit=$(git ls-remote $repo | head -n 1 | cut -d $'\t' -f 1)
 | 
			
		||||
 | 
			
		||||
                if [[ $latest_commit == ${current_commit}* ]]; then
 | 
			
		||||
                    echo -e "     \x1b[32;1mIgnored\x1b[0m package \`$crate\` is already installed"
 | 
			
		||||
                else
 | 
			
		||||
                    cargo install --git $repo
 | 
			
		||||
                fi
 | 
			
		||||
            else
 | 
			
		||||
                cargo install $(echo $line | cut -d ' ' -f 1)
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        cargo install-update -ag
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    local seconds=$((`date +%s` - $start))
 | 
			
		||||
@ -378,11 +355,6 @@ update-dotfiles() {
 | 
			
		||||
        cd ~/.config/awesome/ && git pull
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ -d ~/.config/nushell/.git ]; then
 | 
			
		||||
        echo -e "\033[32;1m=== Updating nushell config ===\033[0m"
 | 
			
		||||
        cd ~/.config/nushell/ && git pull
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    cd $current_dir
 | 
			
		||||
 | 
			
		||||
    local seconds=$((`date +%s` - $start))
 | 
			
		||||
@ -512,7 +484,7 @@ main() {
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        local start=`date +%s`
 | 
			
		||||
        echo -e "\033[32;1m=== Starting full update of $(whoami)@$(hostname) ===\033[0m"
 | 
			
		||||
        echo -e "\033[32;1m=== Starting full update ===\033[0m"
 | 
			
		||||
 | 
			
		||||
        # Update the system
 | 
			
		||||
        _check_running
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								coc-settings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								coc-settings.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
{
 | 
			
		||||
    "languageserver": {
 | 
			
		||||
        "rust": {
 | 
			
		||||
            "command": "rustup",
 | 
			
		||||
            "args": ["run", "stable", "rust-analyzer"],
 | 
			
		||||
            "filetypes": ["rust"],
 | 
			
		||||
            "rootPatterns": ["Cargo.toml"]
 | 
			
		||||
        },
 | 
			
		||||
        "elmLS": {
 | 
			
		||||
            "command": "elm-language-server",
 | 
			
		||||
            "filetypes": ["elm"],
 | 
			
		||||
            "rootPatterns": ["elm.json"]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										214
									
								
								init.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								init.vim
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,214 @@
 | 
			
		||||
" Pas de compatibilité a VI !
 | 
			
		||||
set nocompatible
 | 
			
		||||
 | 
			
		||||
" PLUGNIS ###########################################################{{{
 | 
			
		||||
call plug#begin()
 | 
			
		||||
 | 
			
		||||
" Conquer of Completion
 | 
			
		||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
 | 
			
		||||
 | 
			
		||||
" General plugins
 | 
			
		||||
Plug 'vim-airline/vim-airline'
 | 
			
		||||
Plug 'vim-airline/vim-airline-themes'
 | 
			
		||||
Plug 'https://gitea.tforgione.fr/tforgione/peach.git'
 | 
			
		||||
Plug 'scrooloose/nerdtree'
 | 
			
		||||
Plug 'tpope/vim-abolish'
 | 
			
		||||
 | 
			
		||||
" Language specific plugins
 | 
			
		||||
 | 
			
		||||
" Rust
 | 
			
		||||
Plug 'rust-lang/rust.vim'
 | 
			
		||||
 | 
			
		||||
" Elm
 | 
			
		||||
Plug 'ElmCast/elm-vim'
 | 
			
		||||
 | 
			
		||||
" Toml
 | 
			
		||||
Plug 'cespare/vim-toml'
 | 
			
		||||
 | 
			
		||||
" Pug
 | 
			
		||||
Plug 'digitaltoad/vim-pug'
 | 
			
		||||
 | 
			
		||||
" Spandex
 | 
			
		||||
Plug 'rust-spandex/spandex.vim'
 | 
			
		||||
 | 
			
		||||
call plug#end()
 | 
			
		||||
 | 
			
		||||
" Line numbers and syntaxic coloration
 | 
			
		||||
" set nu
 | 
			
		||||
" syntax on
 | 
			
		||||
 | 
			
		||||
" Highlight bad spaces (not working...)
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" INDENTATION #######################################################{{{
 | 
			
		||||
set expandtab
 | 
			
		||||
set tabstop=4
 | 
			
		||||
set shiftwidth=4
 | 
			
		||||
set autoindent
 | 
			
		||||
set tw=120
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" UI CONFIG #########################################################{{{
 | 
			
		||||
set number
 | 
			
		||||
if $NVIM_LINE_NUMBER == 'rnu'
 | 
			
		||||
    set rnu
 | 
			
		||||
endif
 | 
			
		||||
set showcmd
 | 
			
		||||
set wildmenu
 | 
			
		||||
set lazyredraw
 | 
			
		||||
set encoding=utf8
 | 
			
		||||
set clipboard=unnamedplus
 | 
			
		||||
set updatecount=50
 | 
			
		||||
set mouse=a
 | 
			
		||||
set guicursor=
 | 
			
		||||
" set ttymouse=sgr
 | 
			
		||||
" Espaces insécables grrrr
 | 
			
		||||
set list
 | 
			
		||||
set listchars=tab:  ,trail:·,extends:>,precedes:<,nbsp:¬
 | 
			
		||||
" Remove trailing spaces
 | 
			
		||||
autocmd BufWritePre * :%s/\s\+$//e
 | 
			
		||||
 | 
			
		||||
" Compile on F12
 | 
			
		||||
if executable('mars')
 | 
			
		||||
    nnoremap <silent><F12> :wa \| !mars -p %:p<CR>
 | 
			
		||||
    inoremap <silent><F12> <C-O>:wa \|!mars -p %:p<CR>
 | 
			
		||||
    vnoremap <silent><F12> :wa \|!mars -p %:p<CR>
 | 
			
		||||
elseif executable('make')
 | 
			
		||||
    nnoremap <silent><F12> :wa \| !make -p %:p<CR>
 | 
			
		||||
    inoremap <silent><F12> <C-O>:wa \|!make -p %:p<CR>
 | 
			
		||||
    vnoremap <silent><F12> :wa \|!make -p %:p<CR>
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
" Escape on F1
 | 
			
		||||
map <F1> <Esc>
 | 
			
		||||
imap <F1> <Esc>
 | 
			
		||||
" vim airline config
 | 
			
		||||
set laststatus=2
 | 
			
		||||
let g:airline_powerline_fonts = 1
 | 
			
		||||
let g:airline#extensions#branch#format = 1
 | 
			
		||||
let g:airline_theme='dark'
 | 
			
		||||
set t_Co=256
 | 
			
		||||
" Set textwidth for latex
 | 
			
		||||
" autocmd FileType tex set textwidth=79
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" COLOR #############################################################{{{
 | 
			
		||||
set background=dark
 | 
			
		||||
syntax enable
 | 
			
		||||
try
 | 
			
		||||
    colorscheme peach
 | 
			
		||||
catch
 | 
			
		||||
endtry
 | 
			
		||||
highlight BadWhitespace ctermbg=red guibg=red
 | 
			
		||||
match BadWhitespace / \| \+\t/
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" SEARCHING #########################################################{{{
 | 
			
		||||
set title
 | 
			
		||||
set showmatch
 | 
			
		||||
set hlsearch
 | 
			
		||||
set noincsearch
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" NERDTREE ##########################################################{{{
 | 
			
		||||
let NERDTreeIgnore = ['\.pyc$','__pycache__']
 | 
			
		||||
set shell=zsh
 | 
			
		||||
let g:NERDTreeIndicatorMapCustom = {
 | 
			
		||||
    \ "Modified"  : "✹",
 | 
			
		||||
    \ "Staged"    : "✚",
 | 
			
		||||
    \ "Untracked" : "✭",
 | 
			
		||||
    \ "Renamed"   : "➜",
 | 
			
		||||
    \ "Unmerged"  : "═",
 | 
			
		||||
    \ "Deleted"   : "✖",
 | 
			
		||||
    \ "Dirty"     : "✗",
 | 
			
		||||
    \ "Clean"     : "✔︎",
 | 
			
		||||
    \ "Unknown"   : "?"
 | 
			
		||||
    \ }
 | 
			
		||||
let g:WebDevIconsNerdTreeGitPluginForceVAlign = 1
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" BACKUPS ###########################################################{{{
 | 
			
		||||
set dir=$HOME/.nvim/swp//
 | 
			
		||||
autocmd BufWritePost * :silent execute ':w! ' ."$HOME/.nvim/backups/" . substitute(escape(substitute(expand('%:p'), "/", "%", "g"), "%"), ' ', '\\ ', 'g')
 | 
			
		||||
 | 
			
		||||
if exists('+undofile')
 | 
			
		||||
    set undofile
 | 
			
		||||
    set undolevels=1000
 | 
			
		||||
    set undoreload=10000
 | 
			
		||||
    if exists('+undodir')
 | 
			
		||||
        set undodir=$HOME/.nvim/undo
 | 
			
		||||
    endif
 | 
			
		||||
endif
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
" MARKDOWN PREVIEW ##################################################{{{
 | 
			
		||||
let g:markdown_composer_browser = 'firefox'
 | 
			
		||||
let g:instant_markdown_autostart = 0
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" COC CONFIG ########################################################{{{
 | 
			
		||||
 | 
			
		||||
" Use `[g` and `]g` to navigate diagnostics
 | 
			
		||||
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
 | 
			
		||||
nmap <silent> gp <Plug>(coc-diagnostic-prev)
 | 
			
		||||
nmap <silent> gn <Plug>(coc-diagnostic-next)
 | 
			
		||||
 | 
			
		||||
" GoTo code navigation.
 | 
			
		||||
nmap <silent> gd <Plug>(coc-definition)
 | 
			
		||||
nmap <silent> gy <Plug>(coc-type-definition)
 | 
			
		||||
nmap <silent> gi <Plug>(coc-implementation)
 | 
			
		||||
nmap <silent> gr <Plug>(coc-references)
 | 
			
		||||
 | 
			
		||||
" Add `:Format` command to format current buffer.
 | 
			
		||||
command! -nargs=0 Format :call CocAction('format')
 | 
			
		||||
 | 
			
		||||
" Use K to show documentation in preview window.
 | 
			
		||||
nnoremap <silent> K :call <SID>show_documentation()<CR>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function! s:show_documentation()
 | 
			
		||||
  if (index(['vim','help'], &filetype) >= 0)
 | 
			
		||||
    execute 'h '.expand('<cword>')
 | 
			
		||||
  elseif (coc#rpc#ready())
 | 
			
		||||
    call CocActionAsync('doHover')
 | 
			
		||||
  else
 | 
			
		||||
    execute '!' . &keywordprg . " " . expand('<cword>')
 | 
			
		||||
  endif
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
 | 
			
		||||
" delays and poor user experience.
 | 
			
		||||
set updatetime=300
 | 
			
		||||
 | 
			
		||||
" Highlight the symbol and its references when holding the cursor.
 | 
			
		||||
autocmd CursorHold * silent call CocActionAsync('highlight')
 | 
			
		||||
 | 
			
		||||
" Symbol renaming.
 | 
			
		||||
nmap <leader>rn <Plug>(coc-rename)
 | 
			
		||||
 | 
			
		||||
" Formatting selected code.
 | 
			
		||||
xmap <leader>f  <Plug>(coc-format-selected)
 | 
			
		||||
nmap <leader>f  <Plug>(coc-format-selected)
 | 
			
		||||
 | 
			
		||||
" Autoclose preview
 | 
			
		||||
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
 | 
			
		||||
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
 | 
			
		||||
 | 
			
		||||
" Complete on tab
 | 
			
		||||
" inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
 | 
			
		||||
function! s:check_back_space() abort
 | 
			
		||||
  let col = col('.') - 1
 | 
			
		||||
  return !col || getline('.')[col - 1]  =~ '\s'
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
" Insert <tab> when previous text is space, refresh completion if not.
 | 
			
		||||
inoremap <silent><expr> <TAB>
 | 
			
		||||
  \ coc#pum#visible() ? coc#pum#next(1):
 | 
			
		||||
  \ <SID>check_back_space() ? "\<Tab>" :
 | 
			
		||||
  \ coc#refresh()
 | 
			
		||||
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
 | 
			
		||||
" }}}
 | 
			
		||||
 | 
			
		||||
" CUSTOM THINGS DEPENDING ON ENV ####################################{{{
 | 
			
		||||
let g:rustfmt_autosave = 1
 | 
			
		||||
							
								
								
									
										234
									
								
								nvim/init.lua
									
									
									
									
									
								
							
							
						
						
									
										234
									
								
								nvim/init.lua
									
									
									
									
									
								
							@ -1,234 +0,0 @@
 | 
			
		||||
local Plug = vim.fn['plug#']
 | 
			
		||||
 | 
			
		||||
-- PLUGINS
 | 
			
		||||
vim.call('plug#begin')
 | 
			
		||||
 | 
			
		||||
-- General plugins
 | 
			
		||||
Plug('vim-airline/vim-airline')
 | 
			
		||||
Plug('vim-airline/vim-airline-themes')
 | 
			
		||||
Plug('tpope/vim-abolish')
 | 
			
		||||
Plug('lambdalisue/suda.vim')
 | 
			
		||||
Plug('https://gitea.tforgione.fr/tforgione/peach.git')
 | 
			
		||||
 | 
			
		||||
-- Language specific plugins
 | 
			
		||||
Plug('rust-lang/rust.vim')
 | 
			
		||||
Plug('ElmCast/elm-vim')
 | 
			
		||||
Plug('cespare/vim-toml')
 | 
			
		||||
Plug('kaarmu/typst.vim')
 | 
			
		||||
 | 
			
		||||
vim.call('plug#end')
 | 
			
		||||
 | 
			
		||||
-- INDENTATION
 | 
			
		||||
vim.opt.expandtab = true
 | 
			
		||||
vim.opt.tabstop = 4
 | 
			
		||||
vim.opt.shiftwidth = 4
 | 
			
		||||
vim.opt.autoindent = true
 | 
			
		||||
vim.opt.textwidth = 120
 | 
			
		||||
 | 
			
		||||
-- UI
 | 
			
		||||
vim.opt.number = true
 | 
			
		||||
vim.opt.showcmd = true
 | 
			
		||||
vim.opt.wildmenu = true
 | 
			
		||||
vim.opt.lazyredraw = true
 | 
			
		||||
vim.opt.encoding = 'utf8'
 | 
			
		||||
vim.opt.clipboard = 'unnamedplus'
 | 
			
		||||
vim.opt.updatecount = 50
 | 
			
		||||
vim.opt.mouse = 'a'
 | 
			
		||||
vim.opt.guicursor = nil
 | 
			
		||||
vim.opt.updatetime = 300
 | 
			
		||||
 | 
			
		||||
vim.opt.list = true
 | 
			
		||||
vim.opt.listchars = { trail = '·', tab = '  ', nbsp = '¬' }
 | 
			
		||||
 | 
			
		||||
-- Auto remove trailing spaces
 | 
			
		||||
vim.api.nvim_create_autocmd({'BufWritePre'}, {
 | 
			
		||||
  pattern = {'*'},
 | 
			
		||||
  callback = function(ev)
 | 
			
		||||
      vim.cmd('%s/\\s\\+$//e')
 | 
			
		||||
  end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- COLOR --
 | 
			
		||||
pcall(vim.cmd.colorscheme, 'peach')
 | 
			
		||||
vim.cmd.highlight({'BadWhitespace', 'ctermbg=red', 'guibg=red'})
 | 
			
		||||
vim.g.airline_powerline_fonts = 1
 | 
			
		||||
vim.g.airline_theme = 'dark'
 | 
			
		||||
 | 
			
		||||
-- SEARCHING
 | 
			
		||||
vim.opt.title = true
 | 
			
		||||
vim.opt.showmatch = true
 | 
			
		||||
vim.opt.hlsearch = true
 | 
			
		||||
vim.opt.incsearch = true
 | 
			
		||||
 | 
			
		||||
-- BACKUPS
 | 
			
		||||
vim.opt.undofile = true
 | 
			
		||||
vim.opt.undolevels = 1000
 | 
			
		||||
vim.opt.undoreload = 10000
 | 
			
		||||
vim.opt.undodir = os.getenv('HOME') .. '/.nvim/undo'
 | 
			
		||||
 | 
			
		||||
vim.g.backup_dir = os.getenv('HOME') .. '/.nvim/backups'
 | 
			
		||||
 | 
			
		||||
vim.api.nvim_create_autocmd({'BufWritePost'}, {
 | 
			
		||||
    pattern = {'*'},
 | 
			
		||||
    callback = function(ev)
 | 
			
		||||
        local backup_path = vim.g.backup_dir .. '/' .. vim.api.nvim_buf_get_name(0):gsub('/', '\\%%')
 | 
			
		||||
        vim.cmd('silent w! ' .. backup_path)
 | 
			
		||||
    end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- LSPs
 | 
			
		||||
-- Config
 | 
			
		||||
vim.opt.completeopt = { 'menuone', 'noselect' }
 | 
			
		||||
vim.opt.signcolumn = 'yes'
 | 
			
		||||
 | 
			
		||||
vim.diagnostic.config {
 | 
			
		||||
    signs = {
 | 
			
		||||
        text = {
 | 
			
		||||
            [vim.diagnostic.severity.ERROR] = '',
 | 
			
		||||
            [vim.diagnostic.severity.WARN] = '',
 | 
			
		||||
            [vim.diagnostic.severity.HINT] = '',
 | 
			
		||||
            [vim.diagnostic.severity.INFO] = '',
 | 
			
		||||
        },
 | 
			
		||||
        color = {},
 | 
			
		||||
    },
 | 
			
		||||
    float = {
 | 
			
		||||
      header = false,
 | 
			
		||||
      border = 'rounded',
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Show diagnostics on hover
 | 
			
		||||
vim.api.nvim_create_autocmd({'CursorHold'}, {
 | 
			
		||||
    pattern = {'*'},
 | 
			
		||||
    callback = function(ev)
 | 
			
		||||
        vim.diagnostic.open_float()
 | 
			
		||||
    end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Shortcuts for mapping shortcuts
 | 
			
		||||
local map = function(type, key, value)
 | 
			
		||||
    vim.api.nvim_buf_set_keymap(0, type, key, value, { noremap = true, silent = true });
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Compile on F12
 | 
			
		||||
vim.keymap.set('n', '<F12>', function(e)
 | 
			
		||||
    vim.cmd('wa')
 | 
			
		||||
    vim.cmd('!mars -p %:p')
 | 
			
		||||
end, { silent = true, expr = true })
 | 
			
		||||
 | 
			
		||||
vim.keymap.set('i', '<F12>', function(e)
 | 
			
		||||
    vim.cmd('wa')
 | 
			
		||||
    vim.cmd('!mars -p %:p')
 | 
			
		||||
end, { silent = true, expr = true })
 | 
			
		||||
 | 
			
		||||
vim.keymap.set('i', '<F12>', function(e)
 | 
			
		||||
    vim.cmd('wa')
 | 
			
		||||
    vim.cmd('!mars -p %:p')
 | 
			
		||||
end, { silent = true, expr = true })
 | 
			
		||||
 | 
			
		||||
-- Autocomplete with tab
 | 
			
		||||
vim.keymap.set('v', '<Tab>', function()
 | 
			
		||||
    if vim.fn.pumvisible() == 1 then
 | 
			
		||||
        return '<C-n>'
 | 
			
		||||
    else
 | 
			
		||||
        return '<Tab>'
 | 
			
		||||
    end
 | 
			
		||||
end, { silent = true, expr = true })
 | 
			
		||||
 | 
			
		||||
-- Disable focus on infos
 | 
			
		||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
 | 
			
		||||
  vim.lsp.handlers.hover, { focusable = false }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
vim.api.nvim_create_autocmd("LspAttach", {
 | 
			
		||||
    callback = function(args)
 | 
			
		||||
        local client = vim.lsp.get_client_by_id(args.data.client_id)
 | 
			
		||||
 | 
			
		||||
        -- Enable auto-completion. Note: Use CTRL-Y to select an item.
 | 
			
		||||
        if client:supports_method('textDocument/completion') then
 | 
			
		||||
 | 
			
		||||
            -- Trigger autocompletion on EVERY keypress. May be slow!
 | 
			
		||||
            local chars = {}; for i = 32, 126 do table.insert(chars, string.char(i)) end
 | 
			
		||||
            client.server_capabilities.completionProvider.triggerCharacters = chars
 | 
			
		||||
 | 
			
		||||
            vim.lsp.completion.enable(true, client.id, args.buf, {
 | 
			
		||||
                autotrigger = true,
 | 
			
		||||
                convert = function(item)
 | 
			
		||||
                    return { abbr = item.label:gsub('%b()', '') }
 | 
			
		||||
                end,
 | 
			
		||||
            })
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        -- Auto-format on save.
 | 
			
		||||
        if not client:supports_method('textDocument/willSaveWaitUntil') and client:supports_method('textDocument/formatting') then
 | 
			
		||||
            vim.api.nvim_create_autocmd('BufWritePre', {
 | 
			
		||||
                group = vim.api.nvim_create_augroup('my.lsp', {clear=false}),
 | 
			
		||||
                buffer = args.buf,
 | 
			
		||||
                callback = function()
 | 
			
		||||
                    vim.lsp.buf.format({ bufnr = args.buf, id = client.id, timeout_ms = 1000 })
 | 
			
		||||
                end,
 | 
			
		||||
            })
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        -- Don't use lsp to manage colorscheme
 | 
			
		||||
        client.server_capabilities.semanticTokensProvider = nil
 | 
			
		||||
 | 
			
		||||
        -- Some nice shortcuts
 | 
			
		||||
        map('n','gD','<cmd>lua vim.lsp.buf.declaration()<CR>')
 | 
			
		||||
        map('n','gd','<cmd>lua vim.lsp.buf.definition()<CR>')
 | 
			
		||||
        map('n','K','<cmd>lua vim.lsp.buf.hover()<CR>')
 | 
			
		||||
        map('n','gr','<cmd>lua vim.lsp.buf.references()<CR>')
 | 
			
		||||
        map('n','gs','<cmd>lua vim.lsp.buf.signature_help()<CR>')
 | 
			
		||||
        map('n','gi','<cmd>lua vim.lsp.buf.implementation()<CR>')
 | 
			
		||||
        map('n','gt','<cmd>lua vim.lsp.buf.type_definition()<CR>')
 | 
			
		||||
        map('n','<leader>gw','<cmd>lua vim.lsp.buf.document_symbol()<CR>')
 | 
			
		||||
        map('n','<leader>gW','<cmd>lua vim.lsp.buf.workspace_symbol()<CR>')
 | 
			
		||||
        map('n','<leader>ah','<cmd>lua vim.lsp.buf.hover()<CR>')
 | 
			
		||||
        map('n','<leader>af','<cmd>lua vim.lsp.buf.code_action()<CR>')
 | 
			
		||||
        map('n','<leader>ee','<cmd>lua vim.lsp.util.show_line_diagnostics()<CR>')
 | 
			
		||||
        map('n','<leader>rn','<cmd>lua vim.lsp.buf.rename()<CR>')
 | 
			
		||||
        map('n','<leader>=', '<cmd>lua vim.lsp.buf.formatting()<CR>')
 | 
			
		||||
        map('n','<leader>ai','<cmd>lua vim.lsp.buf.incoming_calls()<CR>')
 | 
			
		||||
        map('n','<leader>ao','<cmd>lua vim.lsp.buf.outgoing_calls()<CR>')
 | 
			
		||||
    end,
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
-- Rust
 | 
			
		||||
vim.lsp.config['rust'] = {
 | 
			
		||||
    cmd = { 'rustup', 'run', 'stable', 'rust-analyzer' },
 | 
			
		||||
    filetypes = { 'rust' },
 | 
			
		||||
    root_markers = { 'Cargo.toml' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
vim.lsp.enable('rust')
 | 
			
		||||
 | 
			
		||||
-- Elm
 | 
			
		||||
vim.lsp.config['elm'] = {
 | 
			
		||||
    cmd = { 'elm-language-server' },
 | 
			
		||||
    filetypes = { 'elm' },
 | 
			
		||||
    root_markers = { 'elm.json' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
vim.lsp.enable('elm')
 | 
			
		||||
 | 
			
		||||
-- Python
 | 
			
		||||
vim.lsp.config['python'] = {
 | 
			
		||||
    cmd = { 'pylsp' },
 | 
			
		||||
    filetypes = { 'python' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
vim.lsp.enable('python')
 | 
			
		||||
 | 
			
		||||
-- Java
 | 
			
		||||
vim.lsp.config['java'] = {
 | 
			
		||||
    cmd = { 'jdtls', '--jvm-arg=-javaagent:/usr/share/java/lombok/lombok.jar' },
 | 
			
		||||
    filetypes = { 'java' },
 | 
			
		||||
    root_markers = { 'Makefile' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
vim.lsp.enable('java')
 | 
			
		||||
 | 
			
		||||
-- Import custom config
 | 
			
		||||
require("extraconfig")
 | 
			
		||||
@ -1,2 +0,0 @@
 | 
			
		||||
[pycodestyle]
 | 
			
		||||
max-line-length = 160
 | 
			
		||||
@ -2,7 +2,6 @@
 | 
			
		||||
 | 
			
		||||
# v is shorter
 | 
			
		||||
alias v="$EDITOR"
 | 
			
		||||
alias vdc="$EDITOR docker-compose.yml"
 | 
			
		||||
 | 
			
		||||
# htop is better
 | 
			
		||||
alias top="htop"
 | 
			
		||||
@ -27,9 +26,6 @@ alias cd..="cd .."
 | 
			
		||||
alias cd...="cd ../.."
 | 
			
		||||
alias cd....="cd ../../.."
 | 
			
		||||
 | 
			
		||||
# Colored ip
 | 
			
		||||
alias ip="ip -c"
 | 
			
		||||
 | 
			
		||||
# Alias for ls
 | 
			
		||||
command -v exa > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
@ -72,9 +68,6 @@ cdw() {
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Numbat shortcut
 | 
			
		||||
alias nb=numbat
 | 
			
		||||
 | 
			
		||||
# Initialize thefuck
 | 
			
		||||
command -v thefuck > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
@ -110,37 +103,23 @@ fi
 | 
			
		||||
command -v docker-compose > /dev/null 2>&1
 | 
			
		||||
if [ $? -eq 0 ]; then
 | 
			
		||||
    alias dc="docker-compose"
 | 
			
		||||
    alias dcb="docker-compose build"
 | 
			
		||||
    alias dcp="docker-compose build && docker-compose push"
 | 
			
		||||
    alias dcu="docker-compose up -d --remove-orphans"
 | 
			
		||||
    alias dcub="docker-compose up -d --build --remove-orphans"
 | 
			
		||||
    alias dcu="docker-compose up -d --build --remove-orphans"
 | 
			
		||||
    alias dcd="docker-compose down"
 | 
			
		||||
    alias dcr="docker-compose down && docker-compose up -d --remove-orphans"
 | 
			
		||||
    alias dcrb="docker-compose down && docker-compose up -d --build --remove-orphans"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
command -v kubectl > /dev/null 2>&1
 | 
			
		||||
if [ $? -eq 0 ]; then
 | 
			
		||||
 | 
			
		||||
    if [ -d $HOME/.config/polymny ]; then
 | 
			
		||||
        export PATH=$HOME/.config/polymny/bin:$PATH
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ -f $HOME/.kubes/current-cube ]; then
 | 
			
		||||
        export KUBECONFIG=$(cat $HOME/.kubes/current-cube)
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Sets the kube config
 | 
			
		||||
    kube() {
 | 
			
		||||
        local kube_config=$HOME/.kubes/$1/config
 | 
			
		||||
        if [ $# -ne 1 ]; then
 | 
			
		||||
            rm ~/.kubes/current-cube
 | 
			
		||||
            export KUBECONFIG=""
 | 
			
		||||
            echo >&2 error: kube expects a single argument
 | 
			
		||||
            return 1
 | 
			
		||||
        elif [ ! -f $kube_config ]; then
 | 
			
		||||
            echo >&2 error: no such kube config: $kube_config
 | 
			
		||||
            return 1
 | 
			
		||||
        else
 | 
			
		||||
            echo $kube_config > ~/.kubes/current-cube
 | 
			
		||||
            export KUBECONFIG=$kube_config
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ DISABLE_AUTO_TITLE="true"
 | 
			
		||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/me
 | 
			
		||||
# Example format: plugins=(rails git textmate ruby lighthouse)
 | 
			
		||||
plugins=(git myjump pass $ZSH_EXTRA_PLUGINS)
 | 
			
		||||
zstyle ':omz:alpha:lib:git' async-prompt no
 | 
			
		||||
 | 
			
		||||
source $ZSH/oh-my-zsh.sh
 | 
			
		||||
 | 
			
		||||
# Source gulp completion
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ else
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Parallel conpilation with make
 | 
			
		||||
export MAKEFLAGS="-j`nproc`"
 | 
			
		||||
export MAKEFLAGS="+j`nproc`"
 | 
			
		||||
 | 
			
		||||
# I want clang as default compiler if it exists
 | 
			
		||||
command -v clang > /dev/null 2>&1
 | 
			
		||||
@ -26,14 +26,5 @@ export WINEDEBUG=-all
 | 
			
		||||
# for rust
 | 
			
		||||
export RUST_BACKTRACE=full
 | 
			
		||||
 | 
			
		||||
# for python
 | 
			
		||||
if [ -d $HOME/.venv ]; then
 | 
			
		||||
    export PATH=$HOME/.venv/bin:$PATH
 | 
			
		||||
    export VIRTUAL_ENV=$HOME/.venv
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Use port 8000 by default for flask, cause why would we use anything different?
 | 
			
		||||
export FLASK_RUN_PORT=8000
 | 
			
		||||
 | 
			
		||||
export TERM=xterm-256color
 | 
			
		||||
export REPORTTIME=5
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ if [[ $UID -ge 1000 ]]; then # normal user
 | 
			
		||||
        local PR_ARROW_DOWN='$PR_MAGENTA└${PR_NO_COLOR}'
 | 
			
		||||
    fi
 | 
			
		||||
elif [[ $UID -eq 0 ]]; then # root
 | 
			
		||||
    eval PR_USER='${PR_RED}%n${PR_YELLOW}@${PR_GREEN}%M${PR_NO_COLOR}'
 | 
			
		||||
    eval PR_USER='${PR_RED}%n${PR_NO_COLOR}'
 | 
			
		||||
    eval PR_USER_OP='${PR_RED}%#${PR_NO_COLOR}'
 | 
			
		||||
    local PR_ARROW_UP='${PR_RED}┌── ${PR_NO_COLOR}'
 | 
			
		||||
    local PR_ARROW_DOWN='${PR_RED}└${PR_NO_COLOR}'
 | 
			
		||||
@ -76,25 +76,8 @@ else
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
git_prompt_info_no_space() {
 | 
			
		||||
    current="$PWD"
 | 
			
		||||
    while [ "$PWD" != "/" ] && [ ! -d "$PWD/.git" ]; do
 | 
			
		||||
        builtin cd ..
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    if [ -f "$PWD/.gitskipprompt" ]; then
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    builtin cd "$current"
 | 
			
		||||
    local info=$(git_prompt_info)
 | 
			
		||||
    if [ ! -z $info ]; then
 | 
			
		||||
        echo " $info"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local return_code=""
 | 
			
		||||
local git_branch='$(git_prompt_info_no_space)'
 | 
			
		||||
local git_branch=' $(git_prompt_info)'
 | 
			
		||||
 | 
			
		||||
local PR_DATE='${PR_BOLD}${PR_MAGENTA}[%D{%H:%M}]${PR_NO_COLOR}'
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										103
									
								
								zsh/ohmyzsh/themes/laptop.zsh-theme
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								zsh/ohmyzsh/themes/laptop.zsh-theme
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,103 @@
 | 
			
		||||
# ZSH Theme - Preview: http://dl.dropbox.com/u/4109351/pics/gnzh-zsh-theme.png
 | 
			
		||||
# Based on bira theme
 | 
			
		||||
 | 
			
		||||
# load some modules
 | 
			
		||||
autoload -U colors zsh/terminfo # Used in the colour alias below
 | 
			
		||||
colors
 | 
			
		||||
setopt prompt_subst
 | 
			
		||||
 | 
			
		||||
# make some aliases for the colours: (coud use normal escap.seq's too)
 | 
			
		||||
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
 | 
			
		||||
    eval PR_$color='%{$fg[${(L)color}]%}'
 | 
			
		||||
done
 | 
			
		||||
eval PR_NO_COLOR="%{$terminfo[sgr0]%}"
 | 
			
		||||
eval PR_BOLD="%{$terminfo[bold]%}"
 | 
			
		||||
 | 
			
		||||
# Check the UID
 | 
			
		||||
if [[ $UID -ge 1000 ]]; then # normal user
 | 
			
		||||
    # If ssh
 | 
			
		||||
    if [[ -n "$SSH_CLIENT"  ||  -n "$SSH2_CLIENT" ]]; then
 | 
			
		||||
        eval PR_USER='${PR_GREEN}%n${PR_NO_COLOR}'
 | 
			
		||||
        eval PR_USER_OP='${PR_GREEN}%#${PR_NO_COLOR}'
 | 
			
		||||
        local PR_ARROW_UP='${PR_GREEN}┌── ${PR_NO_COLOR}'
 | 
			
		||||
        local PR_ARROW_DOWN='${PR_GREEN}└${PR_NO_COLOR}'
 | 
			
		||||
        local PR_PROMPT='$PR_GREEN▷$PR_NO_COLOR'
 | 
			
		||||
    else
 | 
			
		||||
        eval PR_USER='${PR_MAGENTA}%n${PR_NO_COLOR}'
 | 
			
		||||
        eval PR_USER_OP='${PR_BLUE}%#${PR_NO_COLOR}'
 | 
			
		||||
        local PR_PROMPT='$PR_MAGENTA▷$PR_NO_COLOR'
 | 
			
		||||
        local PR_ARROW_UP='$PR_MAGENTA┌── ${PR_NO_COLOR}'
 | 
			
		||||
        local PR_ARROW_DOWN='$PR_MAGENTA└${PR_NO_COLOR}'
 | 
			
		||||
    fi
 | 
			
		||||
elif [[ $UID -eq 0 ]]; then # root
 | 
			
		||||
    eval PR_USER='${PR_RED}%n${PR_NO_COLOR}'
 | 
			
		||||
    eval PR_USER_OP='${PR_RED}%#${PR_NO_COLOR}'
 | 
			
		||||
    local PR_ARROW_UP='${PR_RED}┌── ${PR_NO_COLOR}'
 | 
			
		||||
    local PR_ARROW_DOWN='${PR_RED}└${PR_NO_COLOR}'
 | 
			
		||||
    local PR_PROMPT='$PR_RED▷$PR_NO_COLOR'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Check if we are on SSH or not
 | 
			
		||||
if [[ -n "$SSH_CLIENT"  ||  -n "$SSH2_CLIENT" ]]; then
 | 
			
		||||
    eval PR_HOST='${PR_GREEN}%M${PR_NO_COLOR}' #SSH
 | 
			
		||||
else
 | 
			
		||||
    eval PR_HOST='${PR_BLUE}%M${PR_NO_COLOR}' # no SSH
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# local return_code="%(?..%{$PR_RED%}%? ↵%{$PR_NO_COLOR%})"
 | 
			
		||||
truncated_pwd() {
 | 
			
		||||
    local max_allowed_size=$(( `tput cols` - 30 ))
 | 
			
		||||
    local path_name=$(print -rD $PWD)
 | 
			
		||||
    local new_path_name=""
 | 
			
		||||
    local truncated=0
 | 
			
		||||
    while [ ${#path_name} -gt $max_allowed_size ]; do
 | 
			
		||||
        truncated=1
 | 
			
		||||
        new_path_name=`echo $path_name | cut -d '/' -f 2-`
 | 
			
		||||
        if [[ "$new_path_name" == "$path_name" ]]; then
 | 
			
		||||
            break
 | 
			
		||||
        fi
 | 
			
		||||
        path_name=$new_path_name
 | 
			
		||||
    done
 | 
			
		||||
    if [ $truncated -eq 1 ]; then
 | 
			
		||||
        echo "~/.../"$path_name
 | 
			
		||||
    else
 | 
			
		||||
        echo $path_name
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local user_host='$PR_BOLD${PR_USER}$PR_BOLD'
 | 
			
		||||
local current_dir='$PR_BOLD%{$PR_BLUE%}$(truncated_pwd)$PR_NO_COLOR%}'
 | 
			
		||||
local rvm_ruby=''
 | 
			
		||||
if which rvm-prompt &> /dev/null; then
 | 
			
		||||
    rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}'
 | 
			
		||||
else
 | 
			
		||||
    if which rbenv &> /dev/null; then
 | 
			
		||||
        rvm_ruby='%{$PR_RED%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$PR_NO_COLOR%}'
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
local return_code=""
 | 
			
		||||
local git_branch='$(git_prompt_info)'
 | 
			
		||||
 | 
			
		||||
local PR_DATE='${PR_BOLD}${PR_MAGENTA}[%D{%H:%M}]${PR_NO_COLOR}'
 | 
			
		||||
 | 
			
		||||
#PROMPT="${user_host} ${current_dir} ${rvm_ruby}${git_branch}$PR_PROMPT  "
 | 
			
		||||
separator='${PR_YELLOW}::${PR_NO_COLOR}'
 | 
			
		||||
tty | read tty_value
 | 
			
		||||
if [[ $tty_value == *pts* ]]; then # if in a tty
 | 
			
		||||
    PROMPT="$PR_ARROW_UP${PR_DATE} ${user_host}${separator}${PR_NO_COLOR}${current_dir} ${rvm_ruby}${git_branch}
 | 
			
		||||
$PR_ARROW_DOWN$PR_PROMPT  ${PR_NO_COLOR}"
 | 
			
		||||
    return_code="%(?.%{$PR_GREEN%}%? ↵%{$PR_NO_COLOR%}.%{$PR_RED%}%? ↵%{$PR_NO_COLOR%})"
 | 
			
		||||
else
 | 
			
		||||
    eval PR_NO_COLOR="$PR_WHITE"
 | 
			
		||||
    PROMPT="${user_host} ${current_dir} ${rvm_ruby} ${git_branch}> ${PR_NO_COLOR}"
 | 
			
		||||
    return_code="%(?.%{$PR_GREEN%}%? <%{$PR_NO_COLOR%}.%{$PR_RED%}%? <%{$PR_NO_COLOR%})"
 | 
			
		||||
fi
 | 
			
		||||
RPS1="  ${return_code}"
 | 
			
		||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$PR_YELLOW%}‹"
 | 
			
		||||
ZSH_THEME_GIT_PROMPT_SUFFIX="›%{$PR_NO_COLOR%}"
 | 
			
		||||
 | 
			
		||||
TMOUT=30
 | 
			
		||||
TRAPALRM() {
 | 
			
		||||
    zle reset-prompt
 | 
			
		||||
}
 | 
			
		||||
@ -1,84 +0,0 @@
 | 
			
		||||
if [ "$PRESERVE_SSH_CWD" = "true" ]; then
 | 
			
		||||
 | 
			
		||||
    # Ensure the directory where we store terminal cwds and ssh exists
 | 
			
		||||
    mkdir -p $HOME/.config/terminalscwd/
 | 
			
		||||
 | 
			
		||||
    # Alias for cd: when we change directory, we write the new cwd in the file corresponding to the terminal uuid
 | 
			
		||||
    cd() {
 | 
			
		||||
        if [ -z "$1" ]; then
 | 
			
		||||
            directory=$HOME
 | 
			
		||||
        elif [[ "$1" == "-P" ]] && [ -z $2 ]; then
 | 
			
		||||
            directory="$HOME"
 | 
			
		||||
            option="$1"
 | 
			
		||||
        elif [[ "$1" == "-P" ]]; then
 | 
			
		||||
            directory="$2"
 | 
			
		||||
            option="$1"
 | 
			
		||||
        else
 | 
			
		||||
            directory="$1"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        if [ -z "$option" ]; then
 | 
			
		||||
            builtin cd "$directory"
 | 
			
		||||
        else
 | 
			
		||||
            builtin cd "$option" "$directory"
 | 
			
		||||
        fi
 | 
			
		||||
        pwd > $HOME/.config/terminalscwd/$TERMINAL_UUID.cwd
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Alias for ssh: when we ssh somewhere, we write it so that we know we should ssh when cloning terminal
 | 
			
		||||
    ssh() {
 | 
			
		||||
        echo $1 > $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh
 | 
			
		||||
        /usr/bin/ssh $@
 | 
			
		||||
        rm $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh
 | 
			
		||||
        pwd > $HOME/.config/terminalscwd/$TERMINAL_UUID.cwd
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # If terminal uuid does not exit
 | 
			
		||||
    if [ -z $TERMINAL_UUID ]; then
 | 
			
		||||
 | 
			
		||||
        # Generate one
 | 
			
		||||
        export TERMINAL_UUID=$(uuidgen)
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Copy state for new terminal
 | 
			
		||||
    if [ ! -z $PARENT_TERMINAL ]; then
 | 
			
		||||
        if [ -f $HOME/.config/terminalscwd/$PARENT_TERMINAL.cwd ]; then
 | 
			
		||||
            cp $HOME/.config/terminalscwd/$PARENT_TERMINAL.cwd $HOME/.config/terminalscwd/$TERMINAL_UUID.cwd
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        if [ -f $HOME/.config/terminalscwd/$PARENT_TERMINAL.ssh ]; then
 | 
			
		||||
            cp $HOME/.config/terminalscwd/$PARENT_TERMINAL.ssh $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # When we're done, delete the uuid files
 | 
			
		||||
    preserve_ssh_cleanup() {
 | 
			
		||||
        rm -rf $HOME/.config/terminalscwd/$TERMINAL_UUID.cwd
 | 
			
		||||
        rm -rf $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    trap preserve_ssh_cleanup EXIT
 | 
			
		||||
 | 
			
		||||
    # If there already is a file corresponding to the current uuid
 | 
			
		||||
    if [ -f  $HOME/.config/terminalscwd/$TERMINAL_UUID.cwd ]; then
 | 
			
		||||
 | 
			
		||||
        # Go the the right directory
 | 
			
		||||
        cd "$(cat $HOME/.config/terminalscwd/$TERMINAL_UUID.cwd)"
 | 
			
		||||
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
        # Use our custom alias to go to home, and set the file cwd
 | 
			
		||||
        cd
 | 
			
		||||
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # If we're running in an ssh session
 | 
			
		||||
    if [ -f $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh ]; then
 | 
			
		||||
 | 
			
		||||
        # Run the ssh command, and exec shell in the end so the terminal doesn't exit at end of ssh
 | 
			
		||||
        ssh $(cat $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh)
 | 
			
		||||
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										3
									
								
								zshrc
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								zshrc
									
									
									
									
									
								
							@ -21,7 +21,7 @@ DISABLE_AUTO_UPDATE="true"
 | 
			
		||||
ZSH=$HOME/.config/ohmyzsh
 | 
			
		||||
ZSH_CUSTOM=$HOME/.config/dotfiles/zsh/ohmyzsh
 | 
			
		||||
 | 
			
		||||
ZSH_THEME="tforgione"
 | 
			
		||||
ZSH_THEME="laptop"
 | 
			
		||||
 | 
			
		||||
if [ -f $DOTFILES/zsh/env.zsh ]; then
 | 
			
		||||
    source $DOTFILES/zsh/env.zsh
 | 
			
		||||
@ -31,7 +31,6 @@ source $DOTFILES/zsh/config.zsh
 | 
			
		||||
source $DOTFILES/zsh/path.zsh
 | 
			
		||||
source $DOTFILES/zsh/exports.zsh
 | 
			
		||||
source $DOTFILES/zsh/aliases.zsh
 | 
			
		||||
source $DOTFILES/zsh/preserve-cwd-ssh.zsh
 | 
			
		||||
 | 
			
		||||
if [ -f $DOTFILES/zsh/extraconfig.zsh ]; then
 | 
			
		||||
    source $DOTFILES/zsh/extraconfig.zsh
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user