mirror of
https://github.com/kristoferssolo/solorice.git
synced 2025-10-21 20:10:34 +00:00
Reformated files
This commit is contained in:
parent
da5f9ad0f1
commit
897fbd4666
@ -29,12 +29,15 @@
|
|||||||
"terminal.integrated.fontFamily": "JetBrainsMono NF",
|
"terminal.integrated.fontFamily": "JetBrainsMono NF",
|
||||||
"terminal.integrated.defaultProfile.linux": "zsh",
|
"terminal.integrated.defaultProfile.linux": "zsh",
|
||||||
"cSpell.userWords": [
|
"cSpell.userWords": [
|
||||||
|
"alacritty",
|
||||||
"blit",
|
"blit",
|
||||||
"Cagulis",
|
"Cagulis",
|
||||||
"Cena",
|
"Cena",
|
||||||
"cenu",
|
"cenu",
|
||||||
|
"cirala",
|
||||||
"dirnx",
|
"dirnx",
|
||||||
"dirny",
|
"dirny",
|
||||||
|
"dotfiles",
|
||||||
"grafiki",
|
"grafiki",
|
||||||
"Istabu",
|
"Istabu",
|
||||||
"Izvietošanas",
|
"Izvietošanas",
|
||||||
@ -42,10 +45,14 @@
|
|||||||
"Kristiāns",
|
"Kristiāns",
|
||||||
"Kristofers",
|
"Kristofers",
|
||||||
"Kvadratūra",
|
"Kvadratūra",
|
||||||
|
"lfimg",
|
||||||
|
"nsxiv",
|
||||||
|
"nvim",
|
||||||
"pathlib",
|
"pathlib",
|
||||||
"pygame",
|
"pygame",
|
||||||
"roboto",
|
"roboto",
|
||||||
"Sērija",
|
"Sērija",
|
||||||
|
"Solorice",
|
||||||
"Stāvs",
|
"Stāvs",
|
||||||
"xlabel",
|
"xlabel",
|
||||||
"xticks",
|
"xticks",
|
||||||
@ -56,7 +63,10 @@
|
|||||||
"suppressLineUncommittedWarning": true
|
"suppressLineUncommittedWarning": true
|
||||||
},
|
},
|
||||||
"vsicons.dontShowNewVersionMessage": true,
|
"vsicons.dontShowNewVersionMessage": true,
|
||||||
"indentRainbow.excludedLanguages": ["plaintext", "django-txt"],
|
"indentRainbow.excludedLanguages": [
|
||||||
|
"plaintext",
|
||||||
|
"django-txt"
|
||||||
|
],
|
||||||
"[markdown]": {
|
"[markdown]": {
|
||||||
"editor.defaultFormatter": "yzhang.markdown-all-in-one"
|
"editor.defaultFormatter": "yzhang.markdown-all-in-one"
|
||||||
},
|
},
|
||||||
@ -109,5 +119,6 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"workbench.colorTheme": "Dracula Soft",
|
"workbench.colorTheme": "Dracula Soft",
|
||||||
"workbench.iconTheme": "material-icon-theme"
|
"workbench.iconTheme": "material-icon-theme",
|
||||||
|
"Lua.telemetry.enable": true
|
||||||
}
|
}
|
||||||
@ -39,8 +39,6 @@ window:
|
|||||||
columns: 0
|
columns: 0
|
||||||
lines: 0
|
lines: 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
opacity: 0.9
|
opacity: 0.9
|
||||||
# Window position (changes require restart)
|
# Window position (changes require restart)
|
||||||
#
|
#
|
||||||
@ -72,9 +70,6 @@ window:
|
|||||||
# - buttonless: Title bar, transparent background and no title bar buttons
|
# - buttonless: Title bar, transparent background and no title bar buttons
|
||||||
decorations: none
|
decorations: none
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Startup Mode (changes require restart)
|
# Startup Mode (changes require restart)
|
||||||
#
|
#
|
||||||
# Values for `startup_mode`:
|
# Values for `startup_mode`:
|
||||||
@ -94,10 +89,10 @@ window:
|
|||||||
|
|
||||||
# Window class (Linux/BSD only):
|
# Window class (Linux/BSD only):
|
||||||
# class:
|
# class:
|
||||||
# Application instance name
|
# Application instance name
|
||||||
# instance: Alacritty
|
# instance: Alacritty
|
||||||
# General application class
|
# General application class
|
||||||
# general: Alacritty
|
# general: Alacritty
|
||||||
|
|
||||||
# GTK theme variant (Linux/BSD only)
|
# GTK theme variant (Linux/BSD only)
|
||||||
#
|
#
|
||||||
@ -191,8 +186,8 @@ draw_bold_text_with_bright_colors: true
|
|||||||
colors:
|
colors:
|
||||||
# Default colors
|
# Default colors
|
||||||
primary:
|
primary:
|
||||||
background: '#1d1f21'
|
background: "#1d1f21"
|
||||||
foreground: '#c5c8c6'
|
foreground: "#c5c8c6"
|
||||||
|
|
||||||
# Bright and dim foreground colors
|
# Bright and dim foreground colors
|
||||||
#
|
#
|
||||||
@ -200,8 +195,8 @@ colors:
|
|||||||
# present. If the bright foreground color is not set, or
|
# present. If the bright foreground color is not set, or
|
||||||
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
|
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
|
||||||
# color will be used.
|
# color will be used.
|
||||||
dim_foreground: '#828482'
|
dim_foreground: "#828482"
|
||||||
bright_foreground: '#eaeaea'
|
bright_foreground: "#eaeaea"
|
||||||
|
|
||||||
# Cursor colors
|
# Cursor colors
|
||||||
#
|
#
|
||||||
@ -237,8 +232,8 @@ colors:
|
|||||||
# background: '#000000'
|
# background: '#000000'
|
||||||
|
|
||||||
bar:
|
bar:
|
||||||
background: '#282828'
|
background: "#282828"
|
||||||
foreground: '#EBEBE9'
|
foreground: "#EBEBE9"
|
||||||
|
|
||||||
# Keyboard regex hints
|
# Keyboard regex hints
|
||||||
hints:
|
hints:
|
||||||
@ -247,16 +242,16 @@ colors:
|
|||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
start:
|
start:
|
||||||
foreground: '#1d1f21'
|
foreground: "#1d1f21"
|
||||||
background: '#e9ff5e'
|
background: "#e9ff5e"
|
||||||
|
|
||||||
# All characters after the first one in the hint label
|
# All characters after the first one in the hint label
|
||||||
#
|
#
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
end:
|
end:
|
||||||
foreground: '#e9ff5e'
|
foreground: "#e9ff5e"
|
||||||
background: '#1d1f21'
|
background: "#1d1f21"
|
||||||
|
|
||||||
# Line indicator
|
# Line indicator
|
||||||
#
|
#
|
||||||
@ -280,39 +275,39 @@ colors:
|
|||||||
|
|
||||||
# Normal colors
|
# Normal colors
|
||||||
normal:
|
normal:
|
||||||
black: '#313539'
|
black: "#313539"
|
||||||
red: '#b02626'
|
red: "#b02626"
|
||||||
green: '#40a62f'
|
green: "#40a62f"
|
||||||
yellow: '#f1e635'
|
yellow: "#f1e635"
|
||||||
blue: '#314ad0'
|
blue: "#314ad0"
|
||||||
magenta: '#b30ad0'
|
magenta: "#b30ad0"
|
||||||
cyan: '#32d0fc'
|
cyan: "#32d0fc"
|
||||||
white: '#acadb1'
|
white: "#acadb1"
|
||||||
|
|
||||||
# Bright colors
|
# Bright colors
|
||||||
bright:
|
bright:
|
||||||
black: '#717174'
|
black: "#717174"
|
||||||
red: '#b02626'
|
red: "#b02626"
|
||||||
green: '#40a62f'
|
green: "#40a62f"
|
||||||
yellow: '#f1e635'
|
yellow: "#f1e635"
|
||||||
blue: '#314ad0'
|
blue: "#314ad0"
|
||||||
magenta: '#b30ad0'
|
magenta: "#b30ad0"
|
||||||
cyan: '#32d0fc'
|
cyan: "#32d0fc"
|
||||||
white: '#acadb1'
|
white: "#acadb1"
|
||||||
|
|
||||||
# Dim colors
|
# Dim colors
|
||||||
#
|
#
|
||||||
# If the dim colors are not set, they will be calculated automatically based
|
# If the dim colors are not set, they will be calculated automatically based
|
||||||
# on the `normal` colors.
|
# on the `normal` colors.
|
||||||
dim:
|
dim:
|
||||||
black: '#676f78'
|
black: "#676f78"
|
||||||
red: '#b55454'
|
red: "#b55454"
|
||||||
green: '#78a670'
|
green: "#78a670"
|
||||||
yellow: '#faf380'
|
yellow: "#faf380"
|
||||||
blue: '#707fd0'
|
blue: "#707fd0"
|
||||||
magenta: '#c583d0'
|
magenta: "#c583d0"
|
||||||
cyan: '#8adaf1'
|
cyan: "#8adaf1"
|
||||||
white: '#e0e3e7'
|
white: "#e0e3e7"
|
||||||
|
|
||||||
# Indexed Colors
|
# Indexed Colors
|
||||||
#
|
#
|
||||||
@ -335,44 +330,42 @@ colors:
|
|||||||
#
|
#
|
||||||
# The bell is rung every time the BEL control character is received.
|
# The bell is rung every time the BEL control character is received.
|
||||||
#bell:
|
#bell:
|
||||||
# Visual Bell Animation
|
# Visual Bell Animation
|
||||||
#
|
#
|
||||||
# Animation effect for flashing the screen when the visual bell is rung.
|
# Animation effect for flashing the screen when the visual bell is rung.
|
||||||
#
|
#
|
||||||
# Values for `animation`:
|
# Values for `animation`:
|
||||||
# - Ease
|
# - Ease
|
||||||
# - EaseOut
|
# - EaseOut
|
||||||
# - EaseOutSine
|
# - EaseOutSine
|
||||||
# - EaseOutQuad
|
# - EaseOutQuad
|
||||||
# - EaseOutCubic
|
# - EaseOutCubic
|
||||||
# - EaseOutQuart
|
# - EaseOutQuart
|
||||||
# - EaseOutQuint
|
# - EaseOutQuint
|
||||||
# - EaseOutExpo
|
# - EaseOutExpo
|
||||||
# - EaseOutCirc
|
# - EaseOutCirc
|
||||||
# - Linear
|
# - Linear
|
||||||
#animation: EaseOutExpo
|
#animation: EaseOutExpo
|
||||||
|
|
||||||
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
||||||
# disable the visual bell animation.
|
# disable the visual bell animation.
|
||||||
#duration: 0
|
#duration: 0
|
||||||
|
|
||||||
# Visual bell animation color.
|
# Visual bell animation color.
|
||||||
#color: '#ffffff'
|
#color: '#ffffff'
|
||||||
|
|
||||||
|
# Bell Command
|
||||||
|
#
|
||||||
# Bell Command
|
# This program is executed whenever the bell is rung.
|
||||||
#
|
#
|
||||||
# This program is executed whenever the bell is rung.
|
# When set to `command: None`, no command will be executed.
|
||||||
#
|
#
|
||||||
# When set to `command: None`, no command will be executed.
|
# Example:
|
||||||
#
|
# command:
|
||||||
# Example:
|
# program: notify-send
|
||||||
# command:
|
# args: ["Hello, World!"]
|
||||||
# program: notify-send
|
#
|
||||||
# args: ["Hello, World!"]
|
#command: None
|
||||||
#
|
|
||||||
#command: None
|
|
||||||
|
|
||||||
selection:
|
selection:
|
||||||
# This string contains all characters that are used as separators for
|
# This string contains all characters that are used as separators for
|
||||||
@ -435,7 +428,7 @@ cursor:
|
|||||||
# - (Linux/BSD) user login shell
|
# - (Linux/BSD) user login shell
|
||||||
# - (Windows) powershell
|
# - (Windows) powershell
|
||||||
shell:
|
shell:
|
||||||
program: /bin/zsh
|
program: /bin/zsh
|
||||||
# args:
|
# args:
|
||||||
# - --login
|
# - --login
|
||||||
|
|
||||||
@ -452,60 +445,60 @@ shell:
|
|||||||
#ipc_socket: true
|
#ipc_socket: true
|
||||||
|
|
||||||
#mouse:
|
#mouse:
|
||||||
# Click settings
|
# Click settings
|
||||||
#
|
#
|
||||||
# The `double_click` and `triple_click` settings control the time
|
# The `double_click` and `triple_click` settings control the time
|
||||||
# alacritty should wait for accepting multiple clicks as one double
|
# alacritty should wait for accepting multiple clicks as one double
|
||||||
# or triple click.
|
# or triple click.
|
||||||
#double_click: { threshold: 300 }
|
#double_click: { threshold: 300 }
|
||||||
#triple_click: { threshold: 300 }
|
#triple_click: { threshold: 300 }
|
||||||
|
|
||||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||||
#hide_when_typing: false
|
#hide_when_typing: false
|
||||||
|
|
||||||
# Regex hints
|
# Regex hints
|
||||||
#
|
#
|
||||||
# Terminal hints can be used to find text in the visible part of the terminal
|
# Terminal hints can be used to find text in the visible part of the terminal
|
||||||
# and pipe it to other applications.
|
# and pipe it to other applications.
|
||||||
#hints:
|
#hints:
|
||||||
# Keys used for the hint labels.
|
# Keys used for the hint labels.
|
||||||
#alphabet: "jfkdls;ahgurieowpq"
|
#alphabet: "jfkdls;ahgurieowpq"
|
||||||
|
|
||||||
# List with all available hints
|
# List with all available hints
|
||||||
#
|
#
|
||||||
# Each hint must have a `regex` and either an `action` or a `command` field.
|
# Each hint must have a `regex` and either an `action` or a `command` field.
|
||||||
# The fields `mouse`, `binding` and `post_processing` are optional.
|
# The fields `mouse`, `binding` and `post_processing` are optional.
|
||||||
#
|
#
|
||||||
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
|
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
|
||||||
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
|
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
|
||||||
#
|
#
|
||||||
# The `mouse.enabled` field controls if the hint should be underlined while
|
# The `mouse.enabled` field controls if the hint should be underlined while
|
||||||
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
|
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
|
||||||
#
|
#
|
||||||
# If the `post_processing` field is set to `true`, heuristics will be used to
|
# If the `post_processing` field is set to `true`, heuristics will be used to
|
||||||
# shorten the match if there are characters likely not to be part of the hint
|
# shorten the match if there are characters likely not to be part of the hint
|
||||||
# (e.g. a trailing `.`). This is most useful for URIs.
|
# (e.g. a trailing `.`). This is most useful for URIs.
|
||||||
#
|
#
|
||||||
# Values for `action`:
|
# Values for `action`:
|
||||||
# - Copy
|
# - Copy
|
||||||
# Copy the hint's text to the clipboard.
|
# Copy the hint's text to the clipboard.
|
||||||
# - Paste
|
# - Paste
|
||||||
# Paste the hint's text to the terminal or search.
|
# Paste the hint's text to the terminal or search.
|
||||||
# - Select
|
# - Select
|
||||||
# Select the hint's text.
|
# Select the hint's text.
|
||||||
# - MoveViModeCursor
|
# - MoveViModeCursor
|
||||||
# Move the vi mode cursor to the beginning of the hint.
|
# Move the vi mode cursor to the beginning of the hint.
|
||||||
#enabled:
|
#enabled:
|
||||||
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
|
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
|
||||||
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
|
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
|
||||||
# command: xdg-open
|
# command: xdg-open
|
||||||
# post_processing: true
|
# post_processing: true
|
||||||
# mouse:
|
# mouse:
|
||||||
# enabled: true
|
# enabled: true
|
||||||
# mods: None
|
# mods: None
|
||||||
# binding:
|
# binding:
|
||||||
# key: U
|
# key: U
|
||||||
# mods: Control|Shift
|
# mods: Control|Shift
|
||||||
|
|
||||||
# Mouse bindings
|
# Mouse bindings
|
||||||
#
|
#
|
||||||
@ -536,8 +529,8 @@ shell:
|
|||||||
#
|
#
|
||||||
# - `mods` (see key bindings)
|
# - `mods` (see key bindings)
|
||||||
mouse_bindings:
|
mouse_bindings:
|
||||||
# - { mouse: Right, action: ExpandSelection }
|
# - { mouse: Right, action: ExpandSelection }
|
||||||
- { mouse: Middle, mode: ~Vi, action: PasteSelection }
|
- { mouse: Middle, mode: ~Vi, action: PasteSelection }
|
||||||
|
|
||||||
# Key bindings
|
# Key bindings
|
||||||
#
|
#
|
||||||
@ -750,17 +743,17 @@ key_bindings:
|
|||||||
#- { key: Copy, action: Copy }
|
#- { key: Copy, action: Copy }
|
||||||
# - { key: L, mods: Control, action: clear }
|
# - { key: L, mods: Control, action: clear }
|
||||||
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
||||||
- { key: Up, mods: Shift, mode: ~Alt, action: ScrollPageUp }
|
- { key: Up, mods: Shift, mode: ~Alt, action: ScrollPageUp }
|
||||||
- { key: Down, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
- { key: Down, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
||||||
- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop }
|
- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop }
|
||||||
- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
||||||
# - { key: Delete, actions: Del }
|
# - { key: Delete, actions: Del }
|
||||||
# - { key: Key9, mods: Control|Shift, action: CreateNewWindow, }
|
# - { key: Key9, mods: Control|Shift, action: CreateNewWindow, }
|
||||||
|
|
||||||
# Vi Mode
|
# Vi Mode
|
||||||
# - { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
# - { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
||||||
# - { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
# - { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
||||||
# - { key: Escape, mode: ~Search, action: ToggleViMode }
|
# - { key: Escape, mode: ~Search, action: ToggleViMode }
|
||||||
# - { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
# - { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
||||||
# - { key: I, mode: Vi|~Search, action: ToggleViMode }
|
# - { key: I, mode: Vi|~Search, action: ToggleViMode }
|
||||||
# - { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
# - { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
||||||
@ -821,21 +814,21 @@ key_bindings:
|
|||||||
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
||||||
|
|
||||||
# (Windows, Linux, and BSD only)
|
# (Windows, Linux, and BSD only)
|
||||||
- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
||||||
- { key: C, mods: Control|Shift, action: Copy }
|
- { key: C, mods: Control|Shift, action: Copy }
|
||||||
- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
||||||
- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
||||||
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
||||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||||
- { key: Key0, mods: Control, action: ResetFontSize }
|
- { key: Key0, mods: Control, action: ResetFontSize }
|
||||||
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||||
# - { key: Plus, mods: Control, action: IncreaseFontSize }
|
# - { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||||
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||||
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||||
- { key: Q, mods: Control|Shift, action: Quit }
|
- { key: Q, mods: Control|Shift, action: Quit }
|
||||||
# (Windows only)
|
# (Windows only)
|
||||||
- { key: F11, action: ToggleFullscreen }
|
- { key: F11, action: ToggleFullscreen }
|
||||||
|
|
||||||
# (macOS only)
|
# (macOS only)
|
||||||
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
||||||
@ -858,24 +851,23 @@ key_bindings:
|
|||||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||||
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
||||||
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
||||||
|
|
||||||
#debug:
|
#debug:
|
||||||
# Display the time it takes to redraw each frame.
|
# Display the time it takes to redraw each frame.
|
||||||
#render_timer: false
|
#render_timer: false
|
||||||
|
|
||||||
# Keep the log file after quitting Alacritty.
|
# Keep the log file after quitting Alacritty.
|
||||||
#persistent_logging: false
|
#persistent_logging: false
|
||||||
|
|
||||||
# Log level
|
# Log level
|
||||||
#
|
#
|
||||||
# Values for `log_level`:
|
# Values for `log_level`:
|
||||||
# - Off
|
# - Off
|
||||||
# - Error
|
# - Error
|
||||||
# - Warn
|
# - Warn
|
||||||
# - Info
|
# - Info
|
||||||
# - Debug
|
# - Debug
|
||||||
# - Trace
|
# - Trace
|
||||||
#log_level: Warn
|
#log_level: Warn
|
||||||
|
|
||||||
# Print all received window events.
|
# Print all received window events.
|
||||||
#print_events: false
|
#print_events: false
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -31,111 +31,105 @@ local json = { _version = "0.1.2" }
|
|||||||
local encode
|
local encode
|
||||||
|
|
||||||
local escape_char_map = {
|
local escape_char_map = {
|
||||||
[ "\\" ] = "\\",
|
["\\"] = "\\",
|
||||||
[ "\"" ] = "\"",
|
["\""] = "\"",
|
||||||
[ "\b" ] = "b",
|
["\b"] = "b",
|
||||||
[ "\f" ] = "f",
|
["\f"] = "f",
|
||||||
[ "\n" ] = "n",
|
["\n"] = "n",
|
||||||
[ "\r" ] = "r",
|
["\r"] = "r",
|
||||||
[ "\t" ] = "t",
|
["\t"] = "t",
|
||||||
}
|
}
|
||||||
|
|
||||||
local escape_char_map_inv = { [ "/" ] = "/" }
|
local escape_char_map_inv = { ["/"] = "/" }
|
||||||
for k, v in pairs(escape_char_map) do
|
for k, v in pairs(escape_char_map) do
|
||||||
escape_char_map_inv[v] = k
|
escape_char_map_inv[v] = k
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function escape_char(c)
|
local function escape_char(c)
|
||||||
return "\\" .. (escape_char_map[c] or string.format("u%04x", c:byte()))
|
return "\\" .. (escape_char_map[c] or string.format("u%04x", c:byte()))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function encode_nil(val)
|
local function encode_nil(val)
|
||||||
return "null"
|
return "null"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function encode_table(val, stack)
|
local function encode_table(val, stack)
|
||||||
local res = {}
|
local res = {}
|
||||||
stack = stack or {}
|
stack = stack or {}
|
||||||
|
|
||||||
-- Circular reference?
|
-- Circular reference?
|
||||||
if stack[val] then error("circular reference") end
|
if stack[val] then error("circular reference") end
|
||||||
|
|
||||||
stack[val] = true
|
stack[val] = true
|
||||||
|
|
||||||
if rawget(val, 1) ~= nil or next(val) == nil then
|
if rawget(val, 1) ~= nil or next(val) == nil then
|
||||||
-- Treat as array -- check keys are valid and it is not sparse
|
-- Treat as array -- check keys are valid and it is not sparse
|
||||||
local n = 0
|
local n = 0
|
||||||
for k in pairs(val) do
|
for k in pairs(val) do
|
||||||
if type(k) ~= "number" then
|
if type(k) ~= "number" then
|
||||||
error("invalid table: mixed or invalid key types")
|
error("invalid table: mixed or invalid key types")
|
||||||
end
|
end
|
||||||
n = n + 1
|
n = n + 1
|
||||||
end
|
end
|
||||||
if n ~= #val then
|
if n ~= #val then
|
||||||
error("invalid table: sparse array")
|
error("invalid table: sparse array")
|
||||||
end
|
end
|
||||||
-- Encode
|
-- Encode
|
||||||
for i, v in ipairs(val) do
|
for i, v in ipairs(val) do
|
||||||
table.insert(res, encode(v, stack))
|
table.insert(res, encode(v, stack))
|
||||||
end
|
end
|
||||||
stack[val] = nil
|
stack[val] = nil
|
||||||
return "[" .. table.concat(res, ",") .. "]"
|
return "[" .. table.concat(res, ",") .. "]"
|
||||||
|
|
||||||
else
|
else
|
||||||
-- Treat as an object
|
-- Treat as an object
|
||||||
for k, v in pairs(val) do
|
for k, v in pairs(val) do
|
||||||
if type(k) ~= "string" then
|
if type(k) ~= "string" then
|
||||||
error("invalid table: mixed or invalid key types")
|
error("invalid table: mixed or invalid key types")
|
||||||
end
|
end
|
||||||
table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
|
table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
|
||||||
end
|
end
|
||||||
stack[val] = nil
|
stack[val] = nil
|
||||||
return "{" .. table.concat(res, ",") .. "}"
|
return "{" .. table.concat(res, ",") .. "}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function encode_string(val)
|
local function encode_string(val)
|
||||||
return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
|
return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function encode_number(val)
|
local function encode_number(val)
|
||||||
-- Check for NaN, -inf and inf
|
-- Check for NaN, -inf and inf
|
||||||
if val ~= val or val <= -math.huge or val >= math.huge then
|
if val ~= val or val <= -math.huge or val >= math.huge then
|
||||||
error("unexpected number value '" .. tostring(val) .. "'")
|
error("unexpected number value '" .. tostring(val) .. "'")
|
||||||
end
|
end
|
||||||
return string.format("%.14g", val)
|
return string.format("%.14g", val)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local type_func_map = {
|
local type_func_map = {
|
||||||
[ "nil" ] = encode_nil,
|
["nil"] = encode_nil,
|
||||||
[ "table" ] = encode_table,
|
["table"] = encode_table,
|
||||||
[ "string" ] = encode_string,
|
["string"] = encode_string,
|
||||||
[ "number" ] = encode_number,
|
["number"] = encode_number,
|
||||||
[ "boolean" ] = tostring,
|
["boolean"] = tostring,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
encode = function(val, stack)
|
encode = function(val, stack)
|
||||||
local t = type(val)
|
local t = type(val)
|
||||||
local f = type_func_map[t]
|
local f = type_func_map[t]
|
||||||
if f then
|
if f then
|
||||||
return f(val, stack)
|
return f(val, stack)
|
||||||
end
|
end
|
||||||
error("unexpected type '" .. t .. "'")
|
error("unexpected type '" .. t .. "'")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function json.encode(val)
|
function json.encode(val)
|
||||||
return ( encode(val) )
|
return (encode(val))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
-- Decode
|
-- Decode
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
@ -143,246 +137,236 @@ end
|
|||||||
local parse
|
local parse
|
||||||
|
|
||||||
local function create_set(...)
|
local function create_set(...)
|
||||||
local res = {}
|
local res = {}
|
||||||
for i = 1, select("#", ...) do
|
for i = 1, select("#", ...) do
|
||||||
res[ select(i, ...) ] = true
|
res[select(i, ...)] = true
|
||||||
end
|
end
|
||||||
return res
|
return res
|
||||||
end
|
end
|
||||||
|
|
||||||
local space_chars = create_set(" ", "\t", "\r", "\n")
|
local space_chars = create_set(" ", "\t", "\r", "\n")
|
||||||
local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
|
local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
|
||||||
local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
|
local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
|
||||||
local literals = create_set("true", "false", "null")
|
local literals = create_set("true", "false", "null")
|
||||||
|
|
||||||
local literal_map = {
|
local literal_map = {
|
||||||
[ "true" ] = true,
|
["true"] = true,
|
||||||
[ "false" ] = false,
|
["false"] = false,
|
||||||
[ "null" ] = nil,
|
["null"] = nil,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
local function next_char(str, idx, set, negate)
|
local function next_char(str, idx, set, negate)
|
||||||
for i = idx, #str do
|
for i = idx, #str do
|
||||||
if set[str:sub(i, i)] ~= negate then
|
if set[str:sub(i, i)] ~= negate then
|
||||||
return i
|
return i
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return #str + 1
|
return #str + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function decode_error(str, idx, msg)
|
local function decode_error(str, idx, msg)
|
||||||
local line_count = 1
|
local line_count = 1
|
||||||
local col_count = 1
|
local col_count = 1
|
||||||
for i = 1, idx - 1 do
|
for i = 1, idx - 1 do
|
||||||
col_count = col_count + 1
|
col_count = col_count + 1
|
||||||
if str:sub(i, i) == "\n" then
|
if str:sub(i, i) == "\n" then
|
||||||
line_count = line_count + 1
|
line_count = line_count + 1
|
||||||
col_count = 1
|
col_count = 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
error( string.format("%s at line %d col %d", msg, line_count, col_count) )
|
error(string.format("%s at line %d col %d", msg, line_count, col_count))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function codepoint_to_utf8(n)
|
local function codepoint_to_utf8(n)
|
||||||
-- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
|
-- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
|
||||||
local f = math.floor
|
local f = math.floor
|
||||||
if n <= 0x7f then
|
if n <= 0x7f then
|
||||||
return string.char(n)
|
return string.char(n)
|
||||||
elseif n <= 0x7ff then
|
elseif n <= 0x7ff then
|
||||||
return string.char(f(n / 64) + 192, n % 64 + 128)
|
return string.char(f(n / 64) + 192, n % 64 + 128)
|
||||||
elseif n <= 0xffff then
|
elseif n <= 0xffff then
|
||||||
return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
|
return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
|
||||||
elseif n <= 0x10ffff then
|
elseif n <= 0x10ffff then
|
||||||
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
|
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
|
||||||
f(n % 4096 / 64) + 128, n % 64 + 128)
|
f(n % 4096 / 64) + 128, n % 64 + 128)
|
||||||
end
|
end
|
||||||
error( string.format("invalid unicode codepoint '%x'", n) )
|
error(string.format("invalid unicode codepoint '%x'", n))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function parse_unicode_escape(s)
|
local function parse_unicode_escape(s)
|
||||||
local n1 = tonumber( s:sub(1, 4), 16 )
|
local n1 = tonumber(s:sub(1, 4), 16)
|
||||||
local n2 = tonumber( s:sub(7, 10), 16 )
|
local n2 = tonumber(s:sub(7, 10), 16)
|
||||||
-- Surrogate pair?
|
-- Surrogate pair?
|
||||||
if n2 then
|
if n2 then
|
||||||
return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
|
return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
|
||||||
else
|
else
|
||||||
return codepoint_to_utf8(n1)
|
return codepoint_to_utf8(n1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function parse_string(str, i)
|
local function parse_string(str, i)
|
||||||
local res = ""
|
local res = ""
|
||||||
local j = i + 1
|
local j = i + 1
|
||||||
local k = j
|
local k = j
|
||||||
|
|
||||||
while j <= #str do
|
while j <= #str do
|
||||||
local x = str:byte(j)
|
local x = str:byte(j)
|
||||||
|
|
||||||
if x < 32 then
|
if x < 32 then
|
||||||
decode_error(str, j, "control character in string")
|
decode_error(str, j, "control character in string")
|
||||||
|
|
||||||
elseif x == 92 then -- `\`: Escape
|
elseif x == 92 then -- `\`: Escape
|
||||||
res = res .. str:sub(k, j - 1)
|
res = res .. str:sub(k, j - 1)
|
||||||
j = j + 1
|
j = j + 1
|
||||||
local c = str:sub(j, j)
|
local c = str:sub(j, j)
|
||||||
if c == "u" then
|
if c == "u" then
|
||||||
local hex = str:match("^[dD][89aAbB]%x%x\\u%x%x%x%x", j + 1)
|
local hex = str:match("^[dD][89aAbB]%x%x\\u%x%x%x%x", j + 1)
|
||||||
or str:match("^%x%x%x%x", j + 1)
|
or str:match("^%x%x%x%x", j + 1)
|
||||||
or decode_error(str, j - 1, "invalid unicode escape in string")
|
or decode_error(str, j - 1, "invalid unicode escape in string")
|
||||||
res = res .. parse_unicode_escape(hex)
|
res = res .. parse_unicode_escape(hex)
|
||||||
j = j + #hex
|
j = j + #hex
|
||||||
else
|
else
|
||||||
if not escape_chars[c] then
|
if not escape_chars[c] then
|
||||||
decode_error(str, j - 1, "invalid escape char '" .. c .. "' in string")
|
decode_error(str, j - 1, "invalid escape char '" .. c .. "' in string")
|
||||||
end
|
end
|
||||||
res = res .. escape_char_map_inv[c]
|
res = res .. escape_char_map_inv[c]
|
||||||
end
|
end
|
||||||
k = j + 1
|
k = j + 1
|
||||||
|
|
||||||
elseif x == 34 then -- `"`: End of string
|
elseif x == 34 then -- `"`: End of string
|
||||||
res = res .. str:sub(k, j - 1)
|
res = res .. str:sub(k, j - 1)
|
||||||
return res, j + 1
|
return res, j + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
j = j + 1
|
j = j + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
decode_error(str, i, "expected closing quote for string")
|
decode_error(str, i, "expected closing quote for string")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function parse_number(str, i)
|
local function parse_number(str, i)
|
||||||
local x = next_char(str, i, delim_chars)
|
local x = next_char(str, i, delim_chars)
|
||||||
local s = str:sub(i, x - 1)
|
local s = str:sub(i, x - 1)
|
||||||
local n = tonumber(s)
|
local n = tonumber(s)
|
||||||
if not n then
|
if not n then
|
||||||
decode_error(str, i, "invalid number '" .. s .. "'")
|
decode_error(str, i, "invalid number '" .. s .. "'")
|
||||||
end
|
end
|
||||||
return n, x
|
return n, x
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function parse_literal(str, i)
|
local function parse_literal(str, i)
|
||||||
local x = next_char(str, i, delim_chars)
|
local x = next_char(str, i, delim_chars)
|
||||||
local word = str:sub(i, x - 1)
|
local word = str:sub(i, x - 1)
|
||||||
if not literals[word] then
|
if not literals[word] then
|
||||||
decode_error(str, i, "invalid literal '" .. word .. "'")
|
decode_error(str, i, "invalid literal '" .. word .. "'")
|
||||||
end
|
end
|
||||||
return literal_map[word], x
|
return literal_map[word], x
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function parse_array(str, i)
|
local function parse_array(str, i)
|
||||||
local res = {}
|
local res = {}
|
||||||
local n = 1
|
local n = 1
|
||||||
i = i + 1
|
i = i + 1
|
||||||
while 1 do
|
while 1 do
|
||||||
local x
|
local x
|
||||||
i = next_char(str, i, space_chars, true)
|
i = next_char(str, i, space_chars, true)
|
||||||
-- Empty / end of array?
|
-- Empty / end of array?
|
||||||
if str:sub(i, i) == "]" then
|
if str:sub(i, i) == "]" then
|
||||||
i = i + 1
|
i = i + 1
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
-- Read token
|
-- Read token
|
||||||
x, i = parse(str, i)
|
x, i = parse(str, i)
|
||||||
res[n] = x
|
res[n] = x
|
||||||
n = n + 1
|
n = n + 1
|
||||||
-- Next token
|
-- Next token
|
||||||
i = next_char(str, i, space_chars, true)
|
i = next_char(str, i, space_chars, true)
|
||||||
local chr = str:sub(i, i)
|
local chr = str:sub(i, i)
|
||||||
i = i + 1
|
i = i + 1
|
||||||
if chr == "]" then break end
|
if chr == "]" then break end
|
||||||
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
|
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
|
||||||
end
|
end
|
||||||
return res, i
|
return res, i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function parse_object(str, i)
|
local function parse_object(str, i)
|
||||||
local res = {}
|
local res = {}
|
||||||
i = i + 1
|
i = i + 1
|
||||||
while 1 do
|
while 1 do
|
||||||
local key, val
|
local key, val
|
||||||
i = next_char(str, i, space_chars, true)
|
i = next_char(str, i, space_chars, true)
|
||||||
-- Empty / end of object?
|
-- Empty / end of object?
|
||||||
if str:sub(i, i) == "}" then
|
if str:sub(i, i) == "}" then
|
||||||
i = i + 1
|
i = i + 1
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
-- Read key
|
-- Read key
|
||||||
if str:sub(i, i) ~= '"' then
|
if str:sub(i, i) ~= '"' then
|
||||||
decode_error(str, i, "expected string for key")
|
decode_error(str, i, "expected string for key")
|
||||||
end
|
end
|
||||||
key, i = parse(str, i)
|
key, i = parse(str, i)
|
||||||
-- Read ':' delimiter
|
-- Read ':' delimiter
|
||||||
i = next_char(str, i, space_chars, true)
|
i = next_char(str, i, space_chars, true)
|
||||||
if str:sub(i, i) ~= ":" then
|
if str:sub(i, i) ~= ":" then
|
||||||
decode_error(str, i, "expected ':' after key")
|
decode_error(str, i, "expected ':' after key")
|
||||||
end
|
end
|
||||||
i = next_char(str, i + 1, space_chars, true)
|
i = next_char(str, i + 1, space_chars, true)
|
||||||
-- Read value
|
-- Read value
|
||||||
val, i = parse(str, i)
|
val, i = parse(str, i)
|
||||||
-- Set
|
-- Set
|
||||||
res[key] = val
|
res[key] = val
|
||||||
-- Next token
|
-- Next token
|
||||||
i = next_char(str, i, space_chars, true)
|
i = next_char(str, i, space_chars, true)
|
||||||
local chr = str:sub(i, i)
|
local chr = str:sub(i, i)
|
||||||
i = i + 1
|
i = i + 1
|
||||||
if chr == "}" then break end
|
if chr == "}" then break end
|
||||||
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
|
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
|
||||||
end
|
end
|
||||||
return res, i
|
return res, i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local char_func_map = {
|
local char_func_map = {
|
||||||
[ '"' ] = parse_string,
|
['"'] = parse_string,
|
||||||
[ "0" ] = parse_number,
|
["0"] = parse_number,
|
||||||
[ "1" ] = parse_number,
|
["1"] = parse_number,
|
||||||
[ "2" ] = parse_number,
|
["2"] = parse_number,
|
||||||
[ "3" ] = parse_number,
|
["3"] = parse_number,
|
||||||
[ "4" ] = parse_number,
|
["4"] = parse_number,
|
||||||
[ "5" ] = parse_number,
|
["5"] = parse_number,
|
||||||
[ "6" ] = parse_number,
|
["6"] = parse_number,
|
||||||
[ "7" ] = parse_number,
|
["7"] = parse_number,
|
||||||
[ "8" ] = parse_number,
|
["8"] = parse_number,
|
||||||
[ "9" ] = parse_number,
|
["9"] = parse_number,
|
||||||
[ "-" ] = parse_number,
|
["-"] = parse_number,
|
||||||
[ "t" ] = parse_literal,
|
["t"] = parse_literal,
|
||||||
[ "f" ] = parse_literal,
|
["f"] = parse_literal,
|
||||||
[ "n" ] = parse_literal,
|
["n"] = parse_literal,
|
||||||
[ "[" ] = parse_array,
|
["["] = parse_array,
|
||||||
[ "{" ] = parse_object,
|
["{"] = parse_object,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
parse = function(str, idx)
|
parse = function(str, idx)
|
||||||
local chr = str:sub(idx, idx)
|
local chr = str:sub(idx, idx)
|
||||||
local f = char_func_map[chr]
|
local f = char_func_map[chr]
|
||||||
if f then
|
if f then
|
||||||
return f(str, idx)
|
return f(str, idx)
|
||||||
end
|
end
|
||||||
decode_error(str, idx, "unexpected character '" .. chr .. "'")
|
decode_error(str, idx, "unexpected character '" .. chr .. "'")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function json.decode(str)
|
function json.decode(str)
|
||||||
if type(str) ~= "string" then
|
if type(str) ~= "string" then
|
||||||
error("expected argument of type string, got " .. type(str))
|
error("expected argument of type string, got " .. type(str))
|
||||||
end
|
end
|
||||||
local res, idx = parse(str, next_char(str, 1, space_chars, true))
|
local res, idx = parse(str, next_char(str, 1, space_chars, true))
|
||||||
idx = next_char(str, idx, space_chars, true)
|
idx = next_char(str, idx, space_chars, true)
|
||||||
if idx <= #str then
|
if idx <= #str then
|
||||||
decode_error(str, idx, "trailing garbage")
|
decode_error(str, idx, "trailing garbage")
|
||||||
end
|
end
|
||||||
return res
|
return res
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
return json
|
return json
|
||||||
|
|||||||
@ -11,18 +11,18 @@ local themes_path = gfs.get_themes_dir()
|
|||||||
|
|
||||||
local theme = {}
|
local theme = {}
|
||||||
|
|
||||||
theme.font = "JetBrainsMono NF 8"
|
theme.font = "JetBrainsMono NF 8"
|
||||||
|
|
||||||
theme.bg_normal = "#222222"
|
theme.bg_normal = "#222222"
|
||||||
theme.bg_focus = "#333333"
|
theme.bg_focus = "#333333"
|
||||||
theme.bg_urgent = "#ff0000"
|
theme.bg_urgent = "#ff0000"
|
||||||
theme.bg_minimize = "#444444"
|
theme.bg_minimize = "#444444"
|
||||||
theme.bg_systray = theme.bg_normal
|
theme.bg_systray = theme.bg_normal
|
||||||
|
|
||||||
theme.fg_normal = "#aaaaaa"
|
theme.fg_normal = "#aaaaaa"
|
||||||
theme.fg_focus = "#ffffff"
|
theme.fg_focus = "#ffffff"
|
||||||
theme.fg_urgent = "#ffffff"
|
theme.fg_urgent = "#ffffff"
|
||||||
theme.fg_minimize = "#ffffff"
|
theme.fg_minimize = "#ffffff"
|
||||||
|
|
||||||
theme.useless_gap = dpi(4)
|
theme.useless_gap = dpi(4)
|
||||||
theme.border_width = dpi(2)
|
theme.border_width = dpi(2)
|
||||||
@ -47,10 +47,10 @@ theme.border_marked = "#91231c"
|
|||||||
-- Generate taglist squares:
|
-- Generate taglist squares:
|
||||||
local taglist_square_size = dpi(4)
|
local taglist_square_size = dpi(4)
|
||||||
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
|
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
|
||||||
taglist_square_size, theme.fg_normal
|
taglist_square_size, theme.fg_normal
|
||||||
)
|
)
|
||||||
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
|
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
|
||||||
taglist_square_size, theme.fg_normal
|
taglist_square_size, theme.fg_normal
|
||||||
)
|
)
|
||||||
|
|
||||||
-- Variables set for theming notifications:
|
-- Variables set for theming notifications:
|
||||||
@ -62,9 +62,9 @@ theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
|
|||||||
-- Variables set for theming the menu:
|
-- Variables set for theming the menu:
|
||||||
-- menu_[bg|fg]_[normal|focus]
|
-- menu_[bg|fg]_[normal|focus]
|
||||||
-- menu_[border_color|border_width]
|
-- menu_[border_color|border_width]
|
||||||
theme.menu_submenu_icon = themes_path.."default/submenu.png"
|
theme.menu_submenu_icon = themes_path .. "default/submenu.png"
|
||||||
theme.menu_height = dpi(16)
|
theme.menu_height = dpi(16)
|
||||||
theme.menu_width = dpi(100)
|
theme.menu_width = dpi(100)
|
||||||
|
|
||||||
-- You can add as many variables as
|
-- You can add as many variables as
|
||||||
-- you wish and access them by using
|
-- you wish and access them by using
|
||||||
@ -72,55 +72,55 @@ theme.menu_width = dpi(100)
|
|||||||
--theme.bg_widget = "#cc0000"
|
--theme.bg_widget = "#cc0000"
|
||||||
|
|
||||||
-- Define the image to load
|
-- Define the image to load
|
||||||
theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png"
|
theme.titlebar_close_button_normal = themes_path .. "default/titlebar/close_normal.png"
|
||||||
theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png"
|
theme.titlebar_close_button_focus = themes_path .. "default/titlebar/close_focus.png"
|
||||||
|
|
||||||
theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png"
|
theme.titlebar_minimize_button_normal = themes_path .. "default/titlebar/minimize_normal.png"
|
||||||
theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png"
|
theme.titlebar_minimize_button_focus = themes_path .. "default/titlebar/minimize_focus.png"
|
||||||
|
|
||||||
theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png"
|
theme.titlebar_ontop_button_normal_inactive = themes_path .. "default/titlebar/ontop_normal_inactive.png"
|
||||||
theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png"
|
theme.titlebar_ontop_button_focus_inactive = themes_path .. "default/titlebar/ontop_focus_inactive.png"
|
||||||
theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png"
|
theme.titlebar_ontop_button_normal_active = themes_path .. "default/titlebar/ontop_normal_active.png"
|
||||||
theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png"
|
theme.titlebar_ontop_button_focus_active = themes_path .. "default/titlebar/ontop_focus_active.png"
|
||||||
|
|
||||||
theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png"
|
theme.titlebar_sticky_button_normal_inactive = themes_path .. "default/titlebar/sticky_normal_inactive.png"
|
||||||
theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png"
|
theme.titlebar_sticky_button_focus_inactive = themes_path .. "default/titlebar/sticky_focus_inactive.png"
|
||||||
theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png"
|
theme.titlebar_sticky_button_normal_active = themes_path .. "default/titlebar/sticky_normal_active.png"
|
||||||
theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png"
|
theme.titlebar_sticky_button_focus_active = themes_path .. "default/titlebar/sticky_focus_active.png"
|
||||||
|
|
||||||
theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png"
|
theme.titlebar_floating_button_normal_inactive = themes_path .. "default/titlebar/floating_normal_inactive.png"
|
||||||
theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png"
|
theme.titlebar_floating_button_focus_inactive = themes_path .. "default/titlebar/floating_focus_inactive.png"
|
||||||
theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png"
|
theme.titlebar_floating_button_normal_active = themes_path .. "default/titlebar/floating_normal_active.png"
|
||||||
theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png"
|
theme.titlebar_floating_button_focus_active = themes_path .. "default/titlebar/floating_focus_active.png"
|
||||||
|
|
||||||
theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png"
|
theme.titlebar_maximized_button_normal_inactive = themes_path .. "default/titlebar/maximized_normal_inactive.png"
|
||||||
theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png"
|
theme.titlebar_maximized_button_focus_inactive = themes_path .. "default/titlebar/maximized_focus_inactive.png"
|
||||||
theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png"
|
theme.titlebar_maximized_button_normal_active = themes_path .. "default/titlebar/maximized_normal_active.png"
|
||||||
theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png"
|
theme.titlebar_maximized_button_focus_active = themes_path .. "default/titlebar/maximized_focus_active.png"
|
||||||
|
|
||||||
theme.wallpaper = "~/.local/share/wallpaper.png"
|
theme.wallpaper = "~/.local/share/wallpaper.png"
|
||||||
|
|
||||||
-- You can use your own layout icons like this:
|
-- You can use your own layout icons like this:
|
||||||
theme.layout_fairh = themes_path.."default/layouts/fairhw.png"
|
theme.layout_fairh = themes_path .. "default/layouts/fairhw.png"
|
||||||
theme.layout_fairv = themes_path.."default/layouts/fairvw.png"
|
theme.layout_fairv = themes_path .. "default/layouts/fairvw.png"
|
||||||
theme.layout_floating = themes_path.."default/layouts/floatingw.png"
|
theme.layout_floating = themes_path .. "default/layouts/floatingw.png"
|
||||||
theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png"
|
theme.layout_magnifier = themes_path .. "default/layouts/magnifierw.png"
|
||||||
theme.layout_max = themes_path.."default/layouts/maxw.png"
|
theme.layout_max = themes_path .. "default/layouts/maxw.png"
|
||||||
theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png"
|
theme.layout_fullscreen = themes_path .. "default/layouts/fullscreenw.png"
|
||||||
theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png"
|
theme.layout_tilebottom = themes_path .. "default/layouts/tilebottomw.png"
|
||||||
theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png"
|
theme.layout_tileleft = themes_path .. "default/layouts/tileleftw.png"
|
||||||
theme.layout_tile = themes_path.."default/layouts/tilew.png"
|
theme.layout_tile = themes_path .. "default/layouts/tilew.png"
|
||||||
theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png"
|
theme.layout_tiletop = themes_path .. "default/layouts/tiletopw.png"
|
||||||
theme.layout_spiral = themes_path.."default/layouts/spiralw.png"
|
theme.layout_spiral = themes_path .. "default/layouts/spiralw.png"
|
||||||
theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png"
|
theme.layout_dwindle = themes_path .. "default/layouts/dwindlew.png"
|
||||||
theme.layout_cornernw = themes_path.."default/layouts/cornernww.png"
|
theme.layout_cornernw = themes_path .. "default/layouts/cornernww.png"
|
||||||
theme.layout_cornerne = themes_path.."default/layouts/cornernew.png"
|
theme.layout_cornerne = themes_path .. "default/layouts/cornernew.png"
|
||||||
theme.layout_cornersw = themes_path.."default/layouts/cornersww.png"
|
theme.layout_cornersw = themes_path .. "default/layouts/cornersww.png"
|
||||||
theme.layout_cornerse = themes_path.."default/layouts/cornersew.png"
|
theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png"
|
||||||
|
|
||||||
-- Generate Awesome icon:
|
-- Generate Awesome icon:
|
||||||
theme.awesome_icon = theme_assets.awesome_icon(
|
theme.awesome_icon = theme_assets.awesome_icon(
|
||||||
theme.menu_height, theme.bg_focus, theme.fg_focus
|
theme.menu_height, theme.bg_focus, theme.fg_focus
|
||||||
)
|
)
|
||||||
|
|
||||||
-- Define the icon theme for application icons. If not set then the icons
|
-- Define the icon theme for application icons. If not set then the icons
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
if [ -n "$FIFO_UEBERZUG" ]; then
|
if [ -n "$FIFO_UEBERZUG" ]; then
|
||||||
printf '{"action": "remove", "identifier": "PREVIEW"}\n' > "$FIFO_UEBERZUG"
|
printf '{"action": "remove", "identifier": "PREVIEW"}\n' >"$FIFO_UEBERZUG"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -17,13 +17,13 @@ cmd setwallpaper ${{
|
|||||||
|
|
||||||
# Archive bindings
|
# Archive bindings
|
||||||
cmd unarchive ${{
|
cmd unarchive ${{
|
||||||
case "$f" in
|
case "$f" in
|
||||||
*.zip) unzip "$f" ;;
|
*.zip) unzip "$f" ;;
|
||||||
*.tar.gz) tar -xzvf "$f" ;;
|
*.tar.gz) tar -xzvf "$f" ;;
|
||||||
*.tar.bz2) tar -xjvf "$f" ;;
|
*.tar.bz2) tar -xjvf "$f" ;;
|
||||||
*.tar) tar -xvf "$f" ;;
|
*.tar) tar -xvf "$f" ;;
|
||||||
*) echo "Unsupported format" ;;
|
*) echo "Unsupported format" ;;
|
||||||
esac
|
esac
|
||||||
}}
|
}}
|
||||||
|
|
||||||
# cmds/functions
|
# cmds/functions
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
image() {
|
image() {
|
||||||
if [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ]; then
|
if [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ]; then
|
||||||
printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$5" "$(($2-1))" "$(($3-1))" "$1" > "$FIFO_UEBERZUG"
|
printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$5" "$(($2 - 1))" "$(($3 - 1))" "$1" >"$FIFO_UEBERZUG"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
chafa "$1" -s "$4x"
|
chafa "$1" -s "$4x"
|
||||||
@ -12,8 +12,7 @@ image() {
|
|||||||
batorcat() {
|
batorcat() {
|
||||||
file="$1"
|
file="$1"
|
||||||
shift
|
shift
|
||||||
if command -v bat > /dev/null 2>&1
|
if command -v bat >/dev/null 2>&1; then
|
||||||
then
|
|
||||||
bat --color=always --style=plain --pager=never "$file" "$@"
|
bat --color=always --style=plain --pager=never "$file" "$@"
|
||||||
else
|
else
|
||||||
cat "$file"
|
cat "$file"
|
||||||
@ -23,61 +22,61 @@ batorcat() {
|
|||||||
CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))"
|
CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))"
|
||||||
|
|
||||||
case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in
|
case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in
|
||||||
*.tgz|*.tar.gz) tar tzf "$1" ;;
|
*.tgz | *.tar.gz) tar tzf "$1" ;;
|
||||||
*.tar.bz2|*.tbz2) tar tjf "$1" ;;
|
*.tar.bz2 | *.tbz2) tar tjf "$1" ;;
|
||||||
*.tar.txz|*.txz) xz --list "$1" ;;
|
*.tar.txz | *.txz) xz --list "$1" ;;
|
||||||
*.tar) tar tf "$1" ;;
|
*.tar) tar tf "$1" ;;
|
||||||
*.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;;
|
*.zip | *.jar | *.war | *.ear | *.oxt) unzip -l "$1" ;;
|
||||||
*.rar) unrar l "$1" ;;
|
*.rar) unrar l "$1" ;;
|
||||||
*.md) glow -s dark "$1" ;;
|
*.md) glow -s dark "$1" ;;
|
||||||
*.7z) 7z l "$1" ;;
|
*.7z) 7z l "$1" ;;
|
||||||
*.[1-8]) man "$1" | col -b ;;
|
*.[1-8]) man "$1" | col -b ;;
|
||||||
*.o) nm "$1";;
|
*.o) nm "$1" ;;
|
||||||
*.torrent) transmission-show "$1" ;;
|
*.torrent) transmission-show "$1" ;;
|
||||||
*.iso) iso-info --no-header -l "$1" ;;
|
*.iso) iso-info --no-header -l "$1" ;;
|
||||||
*.odt|*.ods|*.odp|*.sxw) odt2txt "$1" ;;
|
*.odt | *.ods | *.odp | *.sxw) odt2txt "$1" ;;
|
||||||
*.doc) catdoc "$1" ;;
|
*.doc) catdoc "$1" ;;
|
||||||
*.docx) docx2txt "$1" - ;;
|
*.docx) docx2txt "$1" - ;;
|
||||||
*.xml|*.html) w3m -dump "$1";;
|
*.xml | *.html) w3m -dump "$1" ;;
|
||||||
*.xls|*.xlsx)
|
*.xls | *.xlsx)
|
||||||
ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batorcat --language=csv
|
ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batorcat --language=csv
|
||||||
;;
|
;;
|
||||||
*.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.mka)
|
*.wav | *.mp3 | *.flac | *.m4a | *.wma | *.ape | *.ac3 | *.og[agx] | *.spx | *.opus | *.as[fx] | *.mka)
|
||||||
exiftool "$1"
|
exiftool "$1"
|
||||||
;;
|
;;
|
||||||
*.pdf)
|
*.pdf)
|
||||||
[ ! -f "${CACHE}.jpg" ] && \
|
[ ! -f "${CACHE}.jpg" ] &&
|
||||||
pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
|
pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
|
||||||
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
||||||
;;
|
;;
|
||||||
*.epub)
|
*.epub)
|
||||||
[ ! -f "$CACHE" ] && \
|
[ ! -f "$CACHE" ] &&
|
||||||
epub-thumbnailer "$1" "$CACHE" 1024
|
epub-thumbnailer "$1" "$CACHE" 1024
|
||||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||||
;;
|
;;
|
||||||
*.cbz|*.cbr|*.cbt)
|
*.cbz | *.cbr | *.cbt)
|
||||||
[ ! -f "$CACHE" ] && \
|
[ ! -f "$CACHE" ] &&
|
||||||
comicthumb "$1" "$CACHE" 1024
|
comicthumb "$1" "$CACHE" 1024
|
||||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||||
;;
|
;;
|
||||||
*.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx)
|
*.avi | *.mp4 | *.wmv | *.dat | *.3gp | *.ogv | *.mkv | *.mpg | *.mpeg | *.vob | *.fl[icv] | *.m2v | *.mov | *.webm | *.ts | *.mts | *.m4v | *.r[am] | *.qt | *.divx)
|
||||||
[ ! -f "${CACHE}.jpg" ] && \
|
[ ! -f "${CACHE}.jpg" ] &&
|
||||||
ffmpegthumbnailer -i "$1" -o "${CACHE}.jpg" -s 0 -q 5
|
ffmpegthumbnailer -i "$1" -o "${CACHE}.jpg" -s 0 -q 5
|
||||||
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
||||||
;;
|
;;
|
||||||
*.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.gif|*.jfif)
|
*.bmp | *.jpg | *.jpeg | *.png | *.xpm | *.webp | *.gif | *.jfif)
|
||||||
image "$1" "$2" "$3" "$4" "$5"
|
image "$1" "$2" "$3" "$4" "$5"
|
||||||
;;
|
;;
|
||||||
*.svg)
|
*.svg)
|
||||||
[ ! -f "${CACHE}.jpg" ] && \
|
[ ! -f "${CACHE}.jpg" ] &&
|
||||||
convert "$1" "${CACHE}.jpg"
|
convert "$1" "${CACHE}.jpg"
|
||||||
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
||||||
;;
|
;;
|
||||||
*.ino)
|
*.ino)
|
||||||
batorcat --language=cpp "$1"
|
batorcat --language=cpp "$1"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
batorcat "$1"
|
batorcat "$1"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@ -93,19 +93,19 @@ nnoremap S :%s//gI<Left><Left><Left>
|
|||||||
|
|
||||||
" Use tab for trigger completion with characters ahead and navigate.
|
" Use tab for trigger completion with characters ahead and navigate.
|
||||||
inoremap <silent><expr> <TAB>
|
inoremap <silent><expr> <TAB>
|
||||||
\ pumvisible() ? "\<C-n>" :
|
\ pumvisible() ? "\<C-n>" :
|
||||||
\ <SID>check_back_space() ? "\<TAB>" :
|
\ <SID>check_back_space() ? "\<TAB>" :
|
||||||
\ coc#refresh()
|
\ coc#refresh()
|
||||||
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
|
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
|
||||||
function! s:check_back_space() abort
|
function! s:check_back_space() abort
|
||||||
let col = col('.') - 1
|
let col = col('.') - 1
|
||||||
return !col || getline('.')[col - 1] =~# '\s'
|
return !col || getline('.')[col - 1] =~# '\s'
|
||||||
endfunction
|
endfunction
|
||||||
" Use <c-space> to trigger completion.
|
" Use <c-space> to trigger completion.
|
||||||
if has('nvim')
|
if has('nvim')
|
||||||
inoremap <silent><expr> <c-space> coc#refresh()
|
inoremap <silent><expr> <c-space> coc#refresh()
|
||||||
else
|
else
|
||||||
inoremap <silent><expr> <c-@> coc#refresh()
|
inoremap <silent><expr> <c-@> coc#refresh()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@ -113,32 +113,32 @@ endif
|
|||||||
lua << END
|
lua << END
|
||||||
require('Comment').setup()
|
require('Comment').setup()
|
||||||
require('lualine').setup {
|
require('lualine').setup {
|
||||||
options = {
|
options = {
|
||||||
icons_enabled = true,
|
icons_enabled = true,
|
||||||
theme = 'dracula',
|
theme = 'dracula',
|
||||||
component_separators = { left = '', right = ''},
|
component_separators = { left = '', right = ''},
|
||||||
section_separators = { left = '', right = ''},
|
section_separators = { left = '', right = ''},
|
||||||
disabled_filetypes = {},
|
disabled_filetypes = {},
|
||||||
always_divide_middle = true,
|
always_divide_middle = true,
|
||||||
globalstatus = false,
|
globalstatus = false,
|
||||||
},
|
},
|
||||||
sections = {
|
sections = {
|
||||||
lualine_a = {'mode'},
|
lualine_a = {'mode'},
|
||||||
lualine_b = {'branch', 'diff', 'diagnostics'},
|
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||||
lualine_c = {'filename'},
|
lualine_c = {'filename'},
|
||||||
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||||
lualine_y = {'progress'},
|
lualine_y = {'progress'},
|
||||||
lualine_z = {'location'}
|
lualine_z = {'location'}
|
||||||
},
|
},
|
||||||
inactive_sections = {
|
inactive_sections = {
|
||||||
lualine_a = {},
|
lualine_a = {},
|
||||||
lualine_b = {},
|
lualine_b = {},
|
||||||
lualine_c = {'filename'},
|
lualine_c = {'filename'},
|
||||||
lualine_x = {'location'},
|
lualine_x = {'location'},
|
||||||
lualine_y = {},
|
lualine_y = {},
|
||||||
lualine_z = {}
|
lualine_z = {}
|
||||||
},
|
},
|
||||||
tabline = {},
|
tabline = {},
|
||||||
extensions = {}
|
extensions = {}
|
||||||
}
|
}
|
||||||
END
|
END
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#! /usr/bin/env lua
|
#!/usr/bin/env lua
|
||||||
--=====================================================================
|
--=====================================================================
|
||||||
--
|
--
|
||||||
-- z.lua - a cd command that learns, by skywind 2018-2022
|
-- z.lua - a cd command that learns, by skywind 2018-2022
|
||||||
@ -90,8 +90,8 @@
|
|||||||
local modname = 'z'
|
local modname = 'z'
|
||||||
local MM = {}
|
local MM = {}
|
||||||
_G[modname] = MM
|
_G[modname] = MM
|
||||||
package.loaded[modname] = MM --return modname
|
package.loaded[modname] = MM --return modname
|
||||||
setmetatable(MM, {__index = _G})
|
setmetatable(MM, { __index = _G })
|
||||||
|
|
||||||
if _ENV ~= nil then
|
if _ENV ~= nil then
|
||||||
_ENV[modname] = MM
|
_ENV[modname] = MM
|
||||||
@ -166,7 +166,7 @@ function string:startswith(text)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function string:endswith(text)
|
function string:endswith(text)
|
||||||
return text == "" or self:sub(-#text) == text
|
return text == "" or self:sub(- #text) == text
|
||||||
end
|
end
|
||||||
|
|
||||||
function string:lstrip()
|
function string:lstrip()
|
||||||
@ -215,7 +215,6 @@ function string:join(parts)
|
|||||||
return text
|
return text
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- table size
|
-- table size
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -226,16 +225,15 @@ function table.length(T)
|
|||||||
return count
|
return count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- print table
|
-- print table
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
function dump(o)
|
function dump(o)
|
||||||
if type(o) == 'table' then
|
if type(o) == 'table' then
|
||||||
local s = '{ '
|
local s = '{ '
|
||||||
for k,v in pairs(o) do
|
for k, v in pairs(o) do
|
||||||
if type(k) ~= 'number' then k = '"'..k..'"' end
|
if type(k) ~= 'number' then k = '"' .. k .. '"' end
|
||||||
s = s .. '['..k..'] = ' .. dump(v) .. ','
|
s = s .. '[' .. k .. '] = ' .. dump(v) .. ','
|
||||||
end
|
end
|
||||||
return s .. '} '
|
return s .. '} '
|
||||||
else
|
else
|
||||||
@ -243,7 +241,6 @@ function dump(o)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- print table
|
-- print table
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -254,10 +251,10 @@ function printT(table, level)
|
|||||||
level = level or 1
|
level = level or 1
|
||||||
local indent = ""
|
local indent = ""
|
||||||
for i = 1, level do
|
for i = 1, level do
|
||||||
indent = indent.." "
|
indent = indent .. " "
|
||||||
end
|
end
|
||||||
if key ~= "" then
|
if key ~= "" then
|
||||||
print(indent..key.." ".."=".." ".."{")
|
print(indent .. key .. " " .. "=" .. " " .. "{")
|
||||||
else
|
else
|
||||||
print(indent .. "{")
|
print(indent .. "{")
|
||||||
end
|
end
|
||||||
@ -268,7 +265,7 @@ function printT(table, level)
|
|||||||
key = k
|
key = k
|
||||||
func(v, level + 1)
|
func(v, level + 1)
|
||||||
else
|
else
|
||||||
local content = string.format("%s%s = %s", indent .. " ",tostring(k), tostring(v))
|
local content = string.format("%s%s = %s", indent .. " ", tostring(k), tostring(v))
|
||||||
print(content)
|
print(content)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -277,7 +274,6 @@ function printT(table, level)
|
|||||||
func(table, level)
|
func(table, level)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- invoke command and retrive output
|
-- invoke command and retrive output
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -291,7 +287,6 @@ function os.call(command)
|
|||||||
return line
|
return line
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- write log
|
-- write log
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -308,16 +303,15 @@ function os.log(text)
|
|||||||
fp:close()
|
fp:close()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- ffi optimize (luajit has builtin ffi module)
|
-- ffi optimize (luajit has builtin ffi module)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
os.native = {}
|
os.native = {}
|
||||||
os.native.status, os.native.ffi = pcall(require, "ffi")
|
os.native.status, os.native.ffi = pcall(require, "ffi")
|
||||||
if os.native.status then
|
if os.native.status then
|
||||||
local ffi = os.native.ffi
|
local ffi = os.native.ffi
|
||||||
if windows then
|
if windows then
|
||||||
ffi.cdef[[
|
ffi.cdef [[
|
||||||
int GetFullPathNameA(const char *name, uint32_t size, char *out, char **name);
|
int GetFullPathNameA(const char *name, uint32_t size, char *out, char **name);
|
||||||
int ReplaceFileA(const char *dstname, const char *srcname, void *, uint32_t, void *, void *);
|
int ReplaceFileA(const char *dstname, const char *srcname, void *, uint32_t, void *, void *);
|
||||||
uint32_t GetTickCount(void);
|
uint32_t GetTickCount(void);
|
||||||
@ -335,24 +329,30 @@ if os.native.status then
|
|||||||
local hr = kernel32.GetFullPathNameA(name, 4096, buffer, nil)
|
local hr = kernel32.GetFullPathNameA(name, 4096, buffer, nil)
|
||||||
return (hr > 0) and ffi.string(buffer, hr) or nil
|
return (hr > 0) and ffi.string(buffer, hr) or nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.ReplaceFile(replaced, replacement)
|
function os.native.ReplaceFile(replaced, replacement)
|
||||||
local hr = kernel32.ReplaceFileA(replaced, replacement, nil, 2, nil, nil)
|
local hr = kernel32.ReplaceFileA(replaced, replacement, nil, 2, nil, nil)
|
||||||
return (hr ~= 0) and true or false
|
return (hr ~= 0) and true or false
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.GetTickCount()
|
function os.native.GetTickCount()
|
||||||
return kernel32.GetTickCount()
|
return kernel32.GetTickCount()
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.GetFileAttributes(name)
|
function os.native.GetFileAttributes(name)
|
||||||
return kernel32.GetFileAttributesA(name)
|
return kernel32.GetFileAttributesA(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.GetLongPathName(name)
|
function os.native.GetLongPathName(name)
|
||||||
local hr = kernel32.GetLongPathNameA(name, buffer, 4096)
|
local hr = kernel32.GetLongPathNameA(name, buffer, 4096)
|
||||||
return (hr ~= 0) and ffi.string(buffer, hr) or nil
|
return (hr ~= 0) and ffi.string(buffer, hr) or nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.GetShortPathName(name)
|
function os.native.GetShortPathName(name)
|
||||||
local hr = kernel32.GetShortPathNameA(name, buffer, 4096)
|
local hr = kernel32.GetShortPathNameA(name, buffer, 4096)
|
||||||
return (hr ~= 0) and ffi.string(buffer, hr) or nil
|
return (hr ~= 0) and ffi.string(buffer, hr) or nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.GetRealPathName(name)
|
function os.native.GetRealPathName(name)
|
||||||
local short = os.native.GetShortPathName(name)
|
local short = os.native.GetShortPathName(name)
|
||||||
if short then
|
if short then
|
||||||
@ -360,10 +360,12 @@ if os.native.status then
|
|||||||
end
|
end
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.exists(name)
|
function os.native.exists(name)
|
||||||
local attr = os.native.GetFileAttributes(name)
|
local attr = os.native.GetFileAttributes(name)
|
||||||
return attr ~= INVALID_FILE_ATTRIBUTES
|
return attr ~= INVALID_FILE_ATTRIBUTES
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.isdir(name)
|
function os.native.isdir(name)
|
||||||
local attr = os.native.GetFileAttributes(name)
|
local attr = os.native.GetFileAttributes(name)
|
||||||
local isdir = FILE_ATTRIBUTE_DIRECTORY
|
local isdir = FILE_ATTRIBUTE_DIRECTORY
|
||||||
@ -372,13 +374,14 @@ if os.native.status then
|
|||||||
end
|
end
|
||||||
return (attr % (2 * isdir)) >= isdir
|
return (attr % (2 * isdir)) >= isdir
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.getcwd()
|
function os.native.getcwd()
|
||||||
local hr = kernel32.GetCurrentDirectoryA(4096, buffer)
|
local hr = kernel32.GetCurrentDirectoryA(4096, buffer)
|
||||||
if hr <= 0 then return nil end
|
if hr <= 0 then return nil end
|
||||||
return ffi.string(buffer, hr)
|
return ffi.string(buffer, hr)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
ffi.cdef[[
|
ffi.cdef [[
|
||||||
typedef struct { long tv_sec; long tv_usec; } timeval;
|
typedef struct { long tv_sec; long tv_usec; } timeval;
|
||||||
int gettimeofday(timeval *tv, void *tz);
|
int gettimeofday(timeval *tv, void *tz);
|
||||||
int access(const char *name, int mode);
|
int access(const char *name, int mode);
|
||||||
@ -393,13 +396,16 @@ if os.native.status then
|
|||||||
local usec = tonumber(timeval[0].tv_usec)
|
local usec = tonumber(timeval[0].tv_usec)
|
||||||
return sec + (usec * 0.000001)
|
return sec + (usec * 0.000001)
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.access(name, mode)
|
function os.native.access(name, mode)
|
||||||
return ffi.C.access(name, mode)
|
return ffi.C.access(name, mode)
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.realpath(name)
|
function os.native.realpath(name)
|
||||||
local path = ffi.C.realpath(name, buffer)
|
local path = ffi.C.realpath(name, buffer)
|
||||||
return (path ~= nil) and ffi.string(buffer) or nil
|
return (path ~= nil) and ffi.string(buffer) or nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function os.native.getcwd()
|
function os.native.getcwd()
|
||||||
local hr = ffi.C.getcwd(buffer, 4099)
|
local hr = ffi.C.getcwd(buffer, 4099)
|
||||||
return hr ~= nil and ffi.string(buffer) or nil
|
return hr ~= nil and ffi.string(buffer) or nil
|
||||||
@ -412,6 +418,7 @@ if os.native.status then
|
|||||||
return math.floor(os.native.gettimeofday() * 1000)
|
return math.floor(os.native.gettimeofday() * 1000)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
os.native.init = true
|
os.native.init = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -446,7 +453,6 @@ function os.pwd()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- which executable
|
-- which executable
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -464,7 +470,7 @@ function os.path.which(exename)
|
|||||||
return name
|
return name
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
for _, ext in pairs({'.exe', '.cmd', '.bat'}) do
|
for _, ext in pairs({ '.exe', '.cmd', '.bat' }) do
|
||||||
local name = path .. '\\' .. exename .. ext
|
local name = path .. '\\' .. exename .. ext
|
||||||
if path == '.' then
|
if path == '.' then
|
||||||
name = exename .. ext
|
name = exename .. ext
|
||||||
@ -478,7 +484,6 @@ function os.path.which(exename)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- absolute path (simulated)
|
-- absolute path (simulated)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -487,7 +492,6 @@ function os.path.absolute(path)
|
|||||||
return os.path.normpath(os.path.join(pwd, path))
|
return os.path.normpath(os.path.join(pwd, path))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- absolute path (system call, can fall back to os.path.absolute)
|
-- absolute path (system call, can fall back to os.path.absolute)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -527,7 +531,7 @@ function os.path.abspath(path)
|
|||||||
return test
|
return test
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for _, python in pairs({'python3', 'python2', 'python'}) do
|
for _, python in pairs({ 'python3', 'python2', 'python' }) do
|
||||||
local s = 'sys.stdout.write(os.path.abspath(sys.argv[1]))'
|
local s = 'sys.stdout.write(os.path.abspath(sys.argv[1]))'
|
||||||
local s = '-c "import os, sys;' .. s .. '" \'' .. path .. '\''
|
local s = '-c "import os, sys;' .. s .. '" \'' .. path .. '\''
|
||||||
local s = python .. ' ' .. s
|
local s = python .. ' ' .. s
|
||||||
@ -543,7 +547,6 @@ function os.path.abspath(path)
|
|||||||
return os.path.absolute(path)
|
return os.path.absolute(path)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- dir exists
|
-- dir exists
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -570,7 +573,6 @@ function os.path.isdir(pathname)
|
|||||||
return os.path.exists(name)
|
return os.path.exists(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- file or path exists
|
-- file or path exists
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -586,7 +588,7 @@ function os.path.exists(name)
|
|||||||
if code == 13 or code == 17 then
|
if code == 13 or code == 17 then
|
||||||
return true
|
return true
|
||||||
elseif code == 30 then
|
elseif code == 30 then
|
||||||
local f = io.open(name,"r")
|
local f = io.open(name, "r")
|
||||||
if f ~= nil then
|
if f ~= nil then
|
||||||
io.close(f)
|
io.close(f)
|
||||||
return true
|
return true
|
||||||
@ -603,7 +605,6 @@ function os.path.exists(name)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- is absolute path
|
-- is absolute path
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -624,7 +625,6 @@ function os.path.isabs(path)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- normalize path
|
-- normalize path
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -638,7 +638,6 @@ function os.path.norm(pathname)
|
|||||||
return pathname
|
return pathname
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- normalize . and ..
|
-- normalize . and ..
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -683,7 +682,6 @@ function os.path.normpath(path)
|
|||||||
return path == '' and '.' or path
|
return path == '' and '.' or path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- join two path
|
-- join two path
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -744,7 +742,6 @@ function os.path.join(path1, path2)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- split
|
-- split
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -797,7 +794,6 @@ function os.path.split(path)
|
|||||||
return head, tail
|
return head, tail
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- check subdir
|
-- check subdir
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -818,7 +814,6 @@ function os.path.subdir(basename, subname)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- check single name element
|
-- check single name element
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -834,7 +829,6 @@ function os.path.single(path)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- expand user home
|
-- expand user home
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -862,14 +856,12 @@ function os.path.expand(pathname)
|
|||||||
return pathname
|
return pathname
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- search executable
|
-- search executable
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
function os.path.search(name)
|
function os.path.search(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- get lua executable
|
-- get lua executable
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -892,7 +884,6 @@ function os.interpreter()
|
|||||||
return os.path.abspath(lua)
|
return os.path.abspath(lua)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- get script name
|
-- get script name
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -908,7 +899,6 @@ function os.scriptname()
|
|||||||
return os.path.abspath(script)
|
return os.path.abspath(script)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- get environ
|
-- get environ
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -943,7 +933,6 @@ function os.environ(name, default)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- parse option
|
-- parse option
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -985,7 +974,6 @@ function os.getopt(argv)
|
|||||||
return options, args
|
return options, args
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- generate random seed
|
-- generate random seed
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1022,7 +1010,6 @@ function math.random_init()
|
|||||||
math.randomseed(number)
|
math.randomseed(number)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- math random string
|
-- math random string
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1042,7 +1029,6 @@ function math.random_string(N)
|
|||||||
return text
|
return text
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- returns true for path is insensitive
|
-- returns true for path is insensitive
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1059,7 +1045,6 @@ function path_case_insensitive()
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- load and split data
|
-- load and split data
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1094,7 +1079,6 @@ function data_load(filename)
|
|||||||
return M
|
return M
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- save data
|
-- save data
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1151,7 +1135,6 @@ function data_save(filename, M)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- filter out bad dirname
|
-- filter out bad dirname
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1168,7 +1151,6 @@ function data_filter(M)
|
|||||||
return N
|
return N
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- insert item
|
-- insert item
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1224,7 +1206,6 @@ function data_insert(M, filename)
|
|||||||
return M
|
return M
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- change database
|
-- change database
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1232,7 +1213,6 @@ function data_file_set(name)
|
|||||||
DATA_FILE = name
|
DATA_FILE = name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- change pattern
|
-- change pattern
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1251,7 +1231,6 @@ function case_insensitive_pattern(pattern)
|
|||||||
return p
|
return p
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- pathmatch
|
-- pathmatch
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1286,7 +1265,6 @@ function path_match(pathname, patterns, matchlast)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- select matched pathnames
|
-- select matched pathnames
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1310,7 +1288,6 @@ function data_select(M, patterns, matchlast)
|
|||||||
return N
|
return N
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- update frecent
|
-- update frecent
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1333,7 +1310,6 @@ function data_update_frecent(M)
|
|||||||
return M
|
return M
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- add path
|
-- add path
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1403,7 +1379,6 @@ function z_add(path)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- remove path
|
-- remove path
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1447,7 +1422,6 @@ function z_remove(path)
|
|||||||
data_save(DATA_FILE, X)
|
data_save(DATA_FILE, X)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- match method: frecent, rank, time
|
-- match method: frecent, rank, time
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1480,7 +1454,7 @@ function z_match(patterns, method, subdir)
|
|||||||
item.score = item.frecent
|
item.score = item.frecent
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
table.sort(M, function (a, b) return a.score > b.score end)
|
table.sort(M, function(a, b) return a.score > b.score end)
|
||||||
local pwd = (PWD == nil or PWD == '') and os.getenv('PWD') or PWD
|
local pwd = (PWD == nil or PWD == '') and os.getenv('PWD') or PWD
|
||||||
if pwd == nil or pwd == '' then
|
if pwd == nil or pwd == '' then
|
||||||
pwd = os.pwd()
|
pwd = os.pwd()
|
||||||
@ -1511,7 +1485,6 @@ function z_match(patterns, method, subdir)
|
|||||||
return M
|
return M
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- pretty print
|
-- pretty print
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1574,7 +1547,6 @@ function z_print(M, weight, number)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- calculate jump dir
|
-- calculate jump dir
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1611,7 +1583,7 @@ function z_cd(patterns)
|
|||||||
return M[1].name
|
return M[1].name
|
||||||
end
|
end
|
||||||
if os.environ('_ZL_INT_SORT', false) then
|
if os.environ('_ZL_INT_SORT', false) then
|
||||||
table.sort(M, function (a, b) return a.name < b.name end)
|
table.sort(M, function(a, b) return a.name < b.name end)
|
||||||
end
|
end
|
||||||
local retval = nil
|
local retval = nil
|
||||||
if Z_INTERACTIVE == 1 then
|
if Z_INTERACTIVE == 1 then
|
||||||
@ -1637,7 +1609,7 @@ function z_cd(patterns)
|
|||||||
local cmd = '--nth 2.. --reverse --inline-info --tac '
|
local cmd = '--nth 2.. --reverse --inline-info --tac '
|
||||||
local flag = os.environ('_ZL_FZF_FLAG', '')
|
local flag = os.environ('_ZL_FZF_FLAG', '')
|
||||||
flag = (flag == '' or flag == nil) and '+s -e' or flag
|
flag = (flag == '' or flag == nil) and '+s -e' or flag
|
||||||
cmd = ((fzf == '') and 'fzf' or fzf) .. ' ' .. cmd .. ' ' .. flag
|
cmd = ((fzf == '') and 'fzf' or fzf) .. ' ' .. cmd .. ' ' .. flag
|
||||||
if not windows then
|
if not windows then
|
||||||
tmpname = os.tmpname()
|
tmpname = os.tmpname()
|
||||||
local height = os.environ('_ZL_FZF_HEIGHT', '35%')
|
local height = os.environ('_ZL_FZF_HEIGHT', '35%')
|
||||||
@ -1667,7 +1639,6 @@ function z_cd(patterns)
|
|||||||
return (retval ~= '' and retval or nil)
|
return (retval ~= '' and retval or nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- purge invalid paths
|
-- purge invalid paths
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1683,7 +1654,6 @@ function z_purge()
|
|||||||
return x, y
|
return x, y
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- find_vcs_root
|
-- find_vcs_root
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1706,7 +1676,6 @@ function find_vcs_root(path)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- cd to parent directories which contains keyword
|
-- cd to parent directories which contains keyword
|
||||||
-- #args == 0 -> returns to vcs root
|
-- #args == 0 -> returns to vcs root
|
||||||
@ -1775,7 +1744,6 @@ function cd_backward(args, options, pwd)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- cd minus: "z -", "z --", "z -2"
|
-- cd minus: "z -", "z --", "z -2"
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1801,7 +1769,6 @@ function cd_minus(args, options)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- cd breadcrumbs: z -b -i, z -b -I
|
-- cd breadcrumbs: z -b -i, z -b -I
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1814,11 +1781,11 @@ function cd_breadcrumbs(pwd, interactive)
|
|||||||
local fullname = os.environ('_ZL_FULL_PATH', false)
|
local fullname = os.environ('_ZL_FULL_PATH', false)
|
||||||
while true do
|
while true do
|
||||||
local head, name = os.path.split(path)
|
local head, name = os.path.split(path)
|
||||||
if head == path then -- reached root
|
if head == path then -- reached root
|
||||||
table.insert(elements, {head, head})
|
table.insert(elements, { head, head })
|
||||||
break
|
break
|
||||||
elseif name ~= '' then
|
elseif name ~= '' then
|
||||||
table.insert(elements, {name, path})
|
table.insert(elements, { name, path })
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@ -1886,7 +1853,6 @@ function cd_breadcrumbs(pwd, interactive)
|
|||||||
return elements[index][2]
|
return elements[index][2]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- main entry
|
-- main entry
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -1963,7 +1929,7 @@ function main(argv)
|
|||||||
elseif opts.fish then
|
elseif opts.fish then
|
||||||
z_fish_init(opts)
|
z_fish_init(opts)
|
||||||
elseif opts.powershell then
|
elseif opts.powershell then
|
||||||
z_windows_init(opts)
|
z_windows_init(opts)
|
||||||
else
|
else
|
||||||
z_shell_init(opts)
|
z_shell_init(opts)
|
||||||
end
|
end
|
||||||
@ -1976,8 +1942,8 @@ function main(argv)
|
|||||||
end
|
end
|
||||||
elseif options['--complete'] then
|
elseif options['--complete'] then
|
||||||
local line = args[1] and args[1] or ''
|
local line = args[1] and args[1] or ''
|
||||||
local head = line:sub(Z_CMD:len()+1):gsub('^%s+', '')
|
local head = line:sub(Z_CMD:len() + 1):gsub('^%s+', '')
|
||||||
local M = z_match({head}, Z_METHOD, Z_SUBDIR)
|
local M = z_match({ head }, Z_METHOD, Z_SUBDIR)
|
||||||
for _, item in pairs(M) do
|
for _, item in pairs(M) do
|
||||||
print(item.name)
|
print(item.name)
|
||||||
end
|
end
|
||||||
@ -1987,7 +1953,6 @@ function main(argv)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- initialize from environment variable
|
-- initialize from environment variable
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -2060,7 +2025,6 @@ function z_init()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- initialize clink hooks
|
-- initialize clink hooks
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -2078,14 +2042,16 @@ function z_clink_init()
|
|||||||
end
|
end
|
||||||
z_add(clink.get_cwd())
|
z_add(clink.get_cwd())
|
||||||
end
|
end
|
||||||
|
|
||||||
clink.prompt.register_filter(z_add_to_database, _zl_clink_prompt_priority)
|
clink.prompt.register_filter(z_add_to_database, _zl_clink_prompt_priority)
|
||||||
function z_match_completion(word)
|
function z_match_completion(word)
|
||||||
local M = z_match({word}, Z_METHOD, Z_SUBDIR)
|
local M = z_match({ word }, Z_METHOD, Z_SUBDIR)
|
||||||
for _, item in pairs(M) do
|
for _, item in pairs(M) do
|
||||||
clink.add_match(item.name)
|
clink.add_match(item.name)
|
||||||
end
|
end
|
||||||
return {}
|
return {}
|
||||||
end
|
end
|
||||||
|
|
||||||
local z_parser = clink.arg.new_parser()
|
local z_parser = clink.arg.new_parser()
|
||||||
z_parser:set_arguments({ z_match_completion })
|
z_parser:set_arguments({ z_match_completion })
|
||||||
z_parser:set_flags("-c", "-r", "-i", "--cd", "-e", "-b", "--add", "-x", "--purge",
|
z_parser:set_flags("-c", "-r", "-i", "--cd", "-e", "-b", "--add", "-x", "--purge",
|
||||||
@ -2093,7 +2059,6 @@ function z_clink_init()
|
|||||||
clink.arg.register_parser("z", z_parser)
|
clink.arg.register_parser("z", z_parser)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- shell scripts
|
-- shell scripts
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -2168,9 +2133,9 @@ esac
|
|||||||
|
|
||||||
local script_init_bash_once = [[
|
local script_init_bash_once = [[
|
||||||
_zlua_precmd() {
|
_zlua_precmd() {
|
||||||
[ "$_ZL_PREVIOUS_PWD" = "$PWD" ] && return
|
[ "$_ZL_PREVIOUS_PWD" = "$PWD" ] && return
|
||||||
_ZL_PREVIOUS_PWD="$PWD"
|
_ZL_PREVIOUS_PWD="$PWD"
|
||||||
(_zlua --add "$PWD" 2> /dev/null &)
|
(_zlua --add "$PWD" 2> /dev/null &)
|
||||||
}
|
}
|
||||||
case "$PROMPT_COMMAND" in
|
case "$PROMPT_COMMAND" in
|
||||||
*_zlua_precmd*) ;;
|
*_zlua_precmd*) ;;
|
||||||
@ -2187,9 +2152,9 @@ esac
|
|||||||
|
|
||||||
local script_init_posix_once = [[
|
local script_init_posix_once = [[
|
||||||
_zlua_precmd() {
|
_zlua_precmd() {
|
||||||
[ "$_ZL_PREVIOUS_PWD" = "$PWD" ] && return
|
[ "$_ZL_PREVIOUS_PWD" = "$PWD" ] && return
|
||||||
_ZL_PREVIOUS_PWD="$PWD"
|
_ZL_PREVIOUS_PWD="$PWD"
|
||||||
(_zlua --add "$PWD" 2> /dev/null &)
|
(_zlua --add "$PWD" 2> /dev/null &)
|
||||||
}
|
}
|
||||||
case "$PS1" in
|
case "$PS1" in
|
||||||
*_zlua_precmd*) ;;
|
*_zlua_precmd*) ;;
|
||||||
@ -2343,7 +2308,6 @@ function z_shell_init(opts)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- Fish shell init
|
-- Fish shell init
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -2468,7 +2432,6 @@ function z_fish_init(opts)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- windows .cmd script
|
-- windows .cmd script
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -2694,7 +2657,6 @@ function z_windows_init(opts)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- help
|
-- help
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -2713,7 +2675,6 @@ function z_help()
|
|||||||
print(cmd .. '-b foo # cd to the parent directory starting with foo')
|
print(cmd .. '-b foo # cd to the parent directory starting with foo')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- LFS optimize
|
-- LFS optimize
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -2726,10 +2687,10 @@ if os.lfs.enable ~= nil then
|
|||||||
os.lfs.status, os.lfs.pkg = pcall(require, 'lfs')
|
os.lfs.status, os.lfs.pkg = pcall(require, 'lfs')
|
||||||
if os.lfs.status then
|
if os.lfs.status then
|
||||||
local lfs = os.lfs.pkg
|
local lfs = os.lfs.pkg
|
||||||
os.path.exists = function (name)
|
os.path.exists = function(name)
|
||||||
return lfs.attributes(name) and true or false
|
return lfs.attributes(name) and true or false
|
||||||
end
|
end
|
||||||
os.path.isdir = function (name)
|
os.path.isdir = function(name)
|
||||||
local mode = lfs.attributes(name)
|
local mode = lfs.attributes(name)
|
||||||
if not mode then
|
if not mode then
|
||||||
return false
|
return false
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
#!/bin/zsh
|
#!/bin/zsh
|
||||||
|
|
||||||
if [[ "$(tty)" = "/dev/tty1" ]]; then
|
if [[ '$(tty)' = '/dev/tty1' ]]; then
|
||||||
pgrep awesome || sx
|
pgrep awesome || sx
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -1,21 +1,18 @@
|
|||||||
# clear
|
|
||||||
# cd ~
|
|
||||||
|
|
||||||
# Flex on ubuntu users
|
# Flex on ubuntu users
|
||||||
fastfetch
|
fastfetch
|
||||||
# pfetch
|
# pfetch
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
# setopt correct # Auto correct mistakes
|
# setopt correct # Auto correct mistakes
|
||||||
setopt extendedglob # Extended globaling. Allows using regular expressions with *
|
setopt extendedglob # Extended globaling. Allows using regular expressions with *
|
||||||
setopt nocaseglob # Case insensative globbing
|
setopt nocaseglob # Case insensative globbing
|
||||||
setopt numericglobsort # Sort filenames numeracally when it makse sense
|
setopt numericglobsort # Sort filenames numeracally when it makse sense
|
||||||
setopt nobeep # No beep
|
setopt nobeep # No beep
|
||||||
setopt appendhistory # Immediately append history instead of overwriting
|
setopt appendhistory # Immediately append history instead of overwriting
|
||||||
setopt histignorealldups # If a new command is a duplicate, remove older one
|
setopt histignorealldups # If a new command is a duplicate, remove older one
|
||||||
setopt autocd # If only directory path is entered, cd there
|
setopt autocd # If only directory path is entered, cd there
|
||||||
setopt inc_append_history # Save commands are addded to the history immediately
|
setopt inc_append_history # Save commands are addded to the history immediately
|
||||||
setopt histignorespace # Don't save commands that start with space
|
setopt histignorespace # Don't save commands that start with space
|
||||||
|
|
||||||
autoload -U select-word-style
|
autoload -U select-word-style
|
||||||
|
|
||||||
@ -24,7 +21,7 @@ autoload -U colors && colors
|
|||||||
|
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case sensetive TAB completions
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case sensetive TAB completions
|
||||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors fr dirs/files/etc)
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors fr dirs/files/etc)
|
||||||
zstyle ':completion:*' rehash true # Automaticly find new executables in path
|
zstyle ':completion:*' rehash true # Automaticly find new executables in path
|
||||||
# Speed up completions
|
# Speed up completions
|
||||||
zstyle ':completion:*' accept-exact '*(N)'
|
zstyle ':completion:*' accept-exact '*(N)'
|
||||||
zstyle ':completion:*' use-cache on
|
zstyle ':completion:*' use-cache on
|
||||||
@ -33,13 +30,12 @@ zstyle ':completion:*' menu select
|
|||||||
autoload -U compinit
|
autoload -U compinit
|
||||||
zmodload zsh/complist
|
zmodload zsh/complist
|
||||||
compinit
|
compinit
|
||||||
_comp_options+=(globdots) # Include hidden files
|
_comp_options+=(globdots) # Include hidden files
|
||||||
|
|
||||||
HISTFILE=~/.config/zsh/.zshistory
|
HISTFILE=~/.config/zsh/.zshistory
|
||||||
HISTSIZE=10000
|
HISTSIZE=10000
|
||||||
SAVEHIST=10000
|
SAVEHIST=10000
|
||||||
WORDCHARS=${WORDCHARS//\/[&.;]} # Don't consider certain part of the word
|
WORDCHARS=${WORDCHARS//\/[&.;]/} # Don't consider certain part of the word
|
||||||
|
|
||||||
|
|
||||||
# theme/plugins
|
# theme/plugins
|
||||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null
|
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null
|
||||||
@ -53,52 +49,50 @@ bindkey -e
|
|||||||
bindkey -v
|
bindkey -v
|
||||||
export KEYTIMEOUT=1
|
export KEYTIMEOUT=1
|
||||||
|
|
||||||
|
|
||||||
# Change cursor shape for different vi modes.
|
# Change cursor shape for different vi modes.
|
||||||
function zle-keymap-select {
|
function zle-keymap-select {
|
||||||
case $KEYMAP in
|
case $KEYMAP in
|
||||||
vicmd) echo -ne "\e[1 q";; # block
|
vicmd) echo -ne '\e[1 q' ;; # block
|
||||||
viins|main) echo -ne "\e[5 q";; # beam
|
viins | main) echo -ne '\e[5 q' ;; # beam
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
zle -N zle-keymap-select
|
zle -N zle-keymap-select
|
||||||
zle-line-init() {
|
zle-line-init() {
|
||||||
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
||||||
echo -ne "\e[5 q"
|
echo -ne '\e[5 q'
|
||||||
}
|
}
|
||||||
zle -N zle-line-init
|
zle -N zle-line-init
|
||||||
echo -ne "\e[5 q" # Use beam shape cursor on startup.
|
echo -ne '\e[5 q' # Use beam shape cursor on startup.
|
||||||
preexec() { echo -ne "\e[5 q" ;} # Use beam shape cursor for each new prompt.
|
preexec() { echo -ne '\e[5 q'; } # Use beam shape cursor for each new prompt.
|
||||||
|
|
||||||
|
|
||||||
|
# Run exa on directory change
|
||||||
function cd() {
|
function cd() {
|
||||||
new_directory="$*";
|
new_directory="$*"
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
new_directory=${HOME};
|
new_directory=${HOME}
|
||||||
fi;
|
fi
|
||||||
builtin cd "${new_directory}" && exa -a --icons --group-directories-first
|
builtin cd "${new_directory}" && exa -a --icons --group-directories-first
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use lf to switch directories and bind it to ctrl-o
|
# Use lf to switch directories and bind it to ctrl-o
|
||||||
lfcd () {
|
function lfcd() {
|
||||||
tmp="$(mktemp)"
|
tmp="$(mktemp)"
|
||||||
lfrun -last-dir-path="$tmp" "$@"
|
lfrun -last-dir-path="$tmp" "$@"
|
||||||
if [ -f "$tmp" ]; then
|
if [ -f "$tmp" ]; then
|
||||||
dir="$(cat "$tmp")"
|
dir="$(bat "$tmp")"
|
||||||
rm -f "$tmp" >/dev/null
|
rm -f "$tmp" >/dev/null
|
||||||
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
|
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Navigate words with CTRL+ARROW keys
|
# Navigate words with CTRL+ARROW keys
|
||||||
bindkey '^[Oc' forward-word
|
bindkey '^[Oc' forward-word
|
||||||
bindkey '^[Od' backward-word
|
bindkey '^[Od' backward-word
|
||||||
bindkey '^[[1;5C' forward-word
|
bindkey '^[[1;5C' forward-word
|
||||||
bindkey '^[[1;5D' backward-word
|
bindkey '^[[1;5D' backward-word
|
||||||
bindkey '^H' backward-kill-word # delete previous word with CTRL+BACKSPACE
|
bindkey '^H' backward-kill-word # delete previous word with CTRL+BACKSPACE
|
||||||
bindkey '^[[Z' undo # SHIFT+TAB undo last action
|
bindkey '^[[Z' undo # SHIFT+TAB undo last action
|
||||||
bindkey "^[[3~" delete-char
|
bindkey '^[[3~' delete-char
|
||||||
|
|
||||||
bindkey '^[[A' history-substring-search-up
|
bindkey '^[[A' history-substring-search-up
|
||||||
bindkey '^[[B' history-substring-search-down
|
bindkey '^[[B' history-substring-search-down
|
||||||
@ -110,24 +104,25 @@ bindkey -M menuselect 'l' vi-forward-char
|
|||||||
bindkey -M menuselect 'j' vi-down-line-or-history
|
bindkey -M menuselect 'j' vi-down-line-or-history
|
||||||
bindkey -v '^?' backward-delete-char
|
bindkey -v '^?' backward-delete-char
|
||||||
|
|
||||||
bindkey -s "^o" "^ulfcd\n"
|
bindkey -s '^o' '^ulfcd\n'
|
||||||
bindkey -s "^a" "ubc -lq\n"
|
# bindkey -s '^a' 'ubc -lq\n'
|
||||||
bindkey "^[[P" delete-char
|
bindkey '^[[P' delete-char
|
||||||
|
|
||||||
# Edit line in vim with ctrl-e
|
# Edit line in vim with ctrl-e
|
||||||
autoload edit-command-line; zle -N edit-command-line
|
autoload edit-command-line
|
||||||
bindkey "^e" edit-command-line
|
zle -N edit-command-line
|
||||||
bindkey -M vicmd "^[[P" vi-delete-char
|
bindkey '^e' edit-command-line
|
||||||
bindkey -M vicmd "^e" edit-command-line
|
bindkey -M vicmd '^[[P' vi-delete-char
|
||||||
bindkey -M visual "^[[P" vi-delete
|
bindkey -M vicmd '^e' edit-command-line
|
||||||
|
bindkey -M visual '^[[P' vi-delete
|
||||||
|
|
||||||
# Aliases
|
# Aliases
|
||||||
alias cp='cp -iv' # Confirm before overwriting something
|
alias cp='cp -iv' # Confirm before overwriting something
|
||||||
alias mv="mv -iv"
|
alias mv='mv -iv'
|
||||||
alias rm="rm -vI"
|
alias rm='rm -vI'
|
||||||
alias mkdir="mkdir -pv"
|
alias mkdir='mkdir -pv'
|
||||||
alias df='df -h' # Human-readable sizes
|
alias df='df -h' # Human-readable sizes
|
||||||
alias free='free -m' # Show sizes in MB
|
alias free='free -m' # Show sizes in MB
|
||||||
alias gitu='git add . && git commit && git push'
|
alias gitu='git add . && git commit && git push'
|
||||||
alias ls='exa -a --icons --group-directories-first'
|
alias ls='exa -a --icons --group-directories-first'
|
||||||
alias lf='lfrun'
|
alias lf='lfrun'
|
||||||
@ -138,18 +133,18 @@ alias pman='doas pacman'
|
|||||||
alias battery='acpi'
|
alias battery='acpi'
|
||||||
alias airpods='bluetoothctl connect C8:B1:CD:E0:14:4F'
|
alias airpods='bluetoothctl connect C8:B1:CD:E0:14:4F'
|
||||||
alias weather='curl wttr.in/'
|
alias weather='curl wttr.in/'
|
||||||
alias ww="nvim ~/vimwiki/index.wiki"
|
alias ww='nvim ~/vimwiki/index.wiki'
|
||||||
alias py="python"
|
alias py='python'
|
||||||
alias grep="grep --color=auto"
|
alias grep='grep --color=auto'
|
||||||
alias diff="diff --color=auto"
|
alias diff='diff --color=auto'
|
||||||
alias ip="ip -color=auto"
|
alias ip='ip -color=auto'
|
||||||
alias grep="rg"
|
alias grep='rg'
|
||||||
alias code="vscodium"
|
alias code='vscodium'
|
||||||
|
|
||||||
|
|
||||||
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null
|
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null
|
||||||
|
|
||||||
autoload -U promptinit; promptinit
|
autoload -U promptinit
|
||||||
|
promptinit
|
||||||
prompt spaceship
|
prompt spaceship
|
||||||
|
|
||||||
# PROMPT
|
# PROMPT
|
||||||
@ -225,4 +220,3 @@ SPACESHIP_VENV_SHOW=true
|
|||||||
SPACESHIP_CONDA_SHOW=false
|
SPACESHIP_CONDA_SHOW=false
|
||||||
SPACESHIP_PYENV_SHOW=true
|
SPACESHIP_PYENV_SHOW=true
|
||||||
SPACESHIP_VI_MODE_SHOW=false
|
SPACESHIP_VI_MODE_SHOW=false
|
||||||
|
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
vscodium/extensions
|
|
||||||
|
|||||||
16
README.md
16
README.md
@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
- Very useful scripts are in `~/.local/bin/`
|
- Very useful scripts are in `~/.local/bin/`
|
||||||
- Settings for:
|
- Settings for:
|
||||||
- vim/nvim (text editor)
|
- vim/nvim (text editor)
|
||||||
- zsh (shell)
|
- zsh (shell)
|
||||||
- lf (file manager)
|
- lf (file manager)
|
||||||
- nsxiv (image/gif viewer)
|
- nsxiv (image/gif viewer)
|
||||||
- mpv (video player)
|
- mpv (video player)
|
||||||
- I try to minimize what's directly in `~` so:
|
- I try to minimize what's directly in `~` so:
|
||||||
- All configs that can be in `~/.config/` are.
|
- All configs that can be in `~/.config/` are.
|
||||||
- Some environmental variables have been set in `~/.zprofile` to move configs into `~/.config/`
|
- Some environmental variables have been set in `~/.zprofile` to move configs into `~/.config/`
|
||||||
|
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
- [lfimg by cirala](https://github.com/cirala/lfimg)
|
- [lfimg by cirala](https://github.com/cirala/lfimg)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user