Massive change to the structure of the tree.
This commit is contained in:
parent
2fc5f7a514
commit
c71934ed3b
137 changed files with 51 additions and 266 deletions
87
config/common/atuin/config.toml
Normal file
87
config/common/atuin/config.toml
Normal file
|
@ -0,0 +1,87 @@
|
|||
## which filter mode to use
|
||||
## possible values: global, host, session, directory
|
||||
filter_mode = "host"
|
||||
|
||||
## which style to use
|
||||
## possible values: auto, full, compact
|
||||
style = "compact"
|
||||
|
||||
## the maximum number of lines the interface should take up
|
||||
## set it to 0 to always go full screen
|
||||
inline_height = 30
|
||||
|
||||
## Invert the UI - put the search bar at the top , Default to `false`
|
||||
invert = true
|
||||
|
||||
## Configure whether or not to show the help row, which includes the current Atuin
|
||||
## version (and whether an update is available), a keymap hint, and the total
|
||||
## amount of commands in your history.
|
||||
show_help = true
|
||||
|
||||
## Configure whether or not to show tabs for search and inspect
|
||||
show_tabs = false
|
||||
|
||||
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
|
||||
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||
enter_accept = false
|
||||
|
||||
[stats]
|
||||
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||
common_subcommands = [
|
||||
# "apt",
|
||||
# "cargo",
|
||||
# "composer",
|
||||
# "dnf",
|
||||
"docker",
|
||||
"git",
|
||||
# "go",
|
||||
# "ip",
|
||||
"kubectl",
|
||||
# "nix",
|
||||
# "nmcli",
|
||||
# "npm",
|
||||
# "pecl",
|
||||
# "pnpm",
|
||||
# "podman",
|
||||
# "port",
|
||||
# "systemctl",
|
||||
"terraform",
|
||||
"tmux",
|
||||
# "yarn",
|
||||
]
|
||||
|
||||
## Set commands that should be totally stripped and ignored from stats
|
||||
common_prefix = ["sudo", "doas"]
|
||||
|
||||
## Set commands that will be completely ignored from stats
|
||||
ignored_commands = [
|
||||
"cd",
|
||||
"ls",
|
||||
"vim"
|
||||
]
|
||||
|
||||
[sync]
|
||||
# Enable sync v2 by default
|
||||
# This ensures that sync v2 is enabled for new installs only
|
||||
# In a later release it will become the default across the board
|
||||
records = true
|
||||
|
||||
[daemon]
|
||||
## Enables using the daemon to sync. Requires the daemon to be running in the background. Start it with `atuin daemon`
|
||||
# enabled = false
|
||||
|
||||
## How often the daemon should sync in seconds
|
||||
# sync_frequency = 300
|
||||
|
||||
## The path to the unix socket used by the daemon (on unix systems)
|
||||
## linux/mac: ~/.local/share/atuin/atuin.sock
|
||||
## windows: Not Supported
|
||||
# socket_path = "~/.local/share/atuin/atuin.sock"
|
||||
|
||||
## Use systemd socket activation rather than opening the given path (the path must still be correct for the client)
|
||||
## linux: false
|
||||
## mac/windows: Not Supported
|
||||
# systemd_socket = false
|
||||
|
||||
## The port that should be used for TCP on non unix systems
|
||||
# tcp_port = 8889
|
232
config/common/atuin/default.toml
Normal file
232
config/common/atuin/default.toml
Normal file
|
@ -0,0 +1,232 @@
|
|||
## where to store your database, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/history.db
|
||||
## windows: %USERPROFILE%/.local/share/atuin/history.db
|
||||
# db_path = "~/.history.db"
|
||||
|
||||
## where to store your encryption key, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/key
|
||||
## windows: %USERPROFILE%/.local/share/atuin/key
|
||||
# key_path = "~/.key"
|
||||
|
||||
## where to store your auth session token, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/session
|
||||
## windows: %USERPROFILE%/.local/share/atuin/session
|
||||
# session_path = "~/.session"
|
||||
|
||||
## date format used, either "us" or "uk"
|
||||
# dialect = "us"
|
||||
|
||||
## default timezone to use when displaying time
|
||||
## either "l", "local" to use the system's current local timezone, or an offset
|
||||
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
|
||||
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
|
||||
# timezone = "local"
|
||||
|
||||
## enable or disable automatic sync
|
||||
# auto_sync = true
|
||||
|
||||
## enable or disable automatic update checks
|
||||
# update_check = true
|
||||
|
||||
## address of the sync server
|
||||
# sync_address = "https://api.atuin.sh"
|
||||
|
||||
## how often to sync history. note that this is only triggered when a command
|
||||
## is ran, so sync intervals may well be longer
|
||||
## set it to 0 to sync after every command
|
||||
# sync_frequency = "10m"
|
||||
|
||||
## which search mode to use
|
||||
## possible values: prefix, fulltext, fuzzy, skim
|
||||
# search_mode = "fuzzy"
|
||||
|
||||
## which filter mode to use
|
||||
## possible values: global, host, session, directory
|
||||
filter_mode = "host"
|
||||
|
||||
## With workspace filtering enabled, Atuin will filter for commands executed
|
||||
## in any directory within a git repository tree (default: false)
|
||||
# workspaces = false
|
||||
|
||||
## which filter mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "filter_mode"
|
||||
## leave unspecified to use same mode set in "filter_mode"
|
||||
# filter_mode_shell_up_key_binding = "global"
|
||||
|
||||
## which search mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "search_mode"
|
||||
## leave unspecified to use same mode set in "search_mode"
|
||||
# search_mode_shell_up_key_binding = "fuzzy"
|
||||
|
||||
## which style to use
|
||||
## possible values: auto, full, compact
|
||||
# style = "auto"
|
||||
|
||||
## the maximum number of lines the interface should take up
|
||||
## set it to 0 to always go full screen
|
||||
# inline_height = 0
|
||||
|
||||
## Invert the UI - put the search bar at the top , Default to `false`
|
||||
invert = true
|
||||
|
||||
## enable or disable showing a preview of the selected command
|
||||
## useful when the command is longer than the terminal width and is cut off
|
||||
# show_preview = true
|
||||
|
||||
## what to do when the escape key is pressed when searching
|
||||
## possible values: return-original, return-query
|
||||
# exit_mode = "return-original"
|
||||
|
||||
## possible values: emacs, subl
|
||||
# word_jump_mode = "emacs"
|
||||
|
||||
## characters that count as a part of a word
|
||||
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
|
||||
## number of context lines to show when scrolling by pages
|
||||
# scroll_context_lines = 1
|
||||
|
||||
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
|
||||
## alt-0 .. alt-9
|
||||
# ctrl_n_shortcuts = false
|
||||
|
||||
## default history list format - can also be specified with the --format arg
|
||||
# history_format = "{time}\t{command}\t{duration}"
|
||||
|
||||
## prevent commands matching any of these regexes from being written to history.
|
||||
## Note that these regular expressions are unanchored, i.e. if they don't start
|
||||
## with ^ or end with $, they'll match anywhere in the command.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# history_filter = [
|
||||
# "^secret-cmd",
|
||||
# "^innocuous-cmd .*--secret=.+",
|
||||
# ]
|
||||
|
||||
## prevent commands run with cwd matching any of these regexes from being written
|
||||
## to history. Note that these regular expressions are unanchored, i.e. if they don't
|
||||
## start with ^ or end with $, they'll match anywhere in CWD.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# cwd_filter = [
|
||||
# "^/very/secret/area",
|
||||
# ]
|
||||
|
||||
## Configure the maximum height of the preview to show.
|
||||
## Useful when you have long scripts in your history that you want to distinguish
|
||||
## by more than the first few lines.
|
||||
# max_preview_height = 4
|
||||
|
||||
## Configure whether or not to show the help row, which includes the current Atuin
|
||||
## version (and whether an update is available), a keymap hint, and the total
|
||||
## amount of commands in your history.
|
||||
# show_help = true
|
||||
|
||||
## Configure whether or not to show tabs for search and inspect
|
||||
# show_tabs = true
|
||||
|
||||
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
|
||||
## 1. AWS key id
|
||||
## 2. Github pat (old and new)
|
||||
## 3. Slack oauth tokens (bot, user)
|
||||
## 4. Slack webhooks
|
||||
## 5. Stripe live/test keys
|
||||
# secrets_filter = true
|
||||
|
||||
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
|
||||
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||
enter_accept = true
|
||||
|
||||
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
|
||||
## search`. If this is set to "auto", the startup keymap mode in the Atuin
|
||||
## search is automatically selected based on the shell's keymap where the
|
||||
## keybinding is defined. If this is set to "emacs", "vim-insert", or
|
||||
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
|
||||
## the specified one.
|
||||
# keymap_mode = "auto"
|
||||
|
||||
## Cursor style in each keymap mode. If specified, the cursor style is changed
|
||||
## in entering the cursor shape. Available values are "default" and
|
||||
## "{blink,steady}-{block,underline,bar}".
|
||||
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
|
||||
|
||||
# network_connect_timeout = 5
|
||||
# network_timeout = 5
|
||||
|
||||
## Timeout (in seconds) for acquiring a local database connection (sqlite)
|
||||
# local_timeout = 5
|
||||
|
||||
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
|
||||
## Alternatively, set env NO_MOTION=true
|
||||
# prefers_reduced_motion = false
|
||||
|
||||
[stats]
|
||||
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||
# common_subcommands = [
|
||||
# "apt",
|
||||
# "cargo",
|
||||
# "composer",
|
||||
# "dnf",
|
||||
# "docker",
|
||||
# "git",
|
||||
# "go",
|
||||
# "ip",
|
||||
# "kubectl",
|
||||
# "nix",
|
||||
# "nmcli",
|
||||
# "npm",
|
||||
# "pecl",
|
||||
# "pnpm",
|
||||
# "podman",
|
||||
# "port",
|
||||
# "systemctl",
|
||||
# "tmux",
|
||||
# "yarn",
|
||||
# ]
|
||||
|
||||
## Set commands that should be totally stripped and ignored from stats
|
||||
# common_prefix = ["sudo"]
|
||||
|
||||
## Set commands that will be completely ignored from stats
|
||||
# ignored_commands = [
|
||||
# "cd",
|
||||
# "ls",
|
||||
# "vi"
|
||||
# ]
|
||||
|
||||
[keys]
|
||||
# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
|
||||
# scroll_exits = false
|
||||
|
||||
[sync]
|
||||
# Enable sync v2 by default
|
||||
# This ensures that sync v2 is enabled for new installs only
|
||||
# In a later release it will become the default across the board
|
||||
records = true
|
||||
|
||||
[preview]
|
||||
## which preview strategy to use to calculate the preview height (respects max_preview_height).
|
||||
## possible values: auto, static
|
||||
## auto: length of the selected command.
|
||||
## static: length of the longest command stored in the history.
|
||||
# strategy = "auto"
|
||||
|
||||
[daemon]
|
||||
## Enables using the daemon to sync. Requires the daemon to be running in the background. Start it with `atuin daemon`
|
||||
# enabled = false
|
||||
|
||||
## How often the daemon should sync in seconds
|
||||
# sync_frequency = 300
|
||||
|
||||
## The path to the unix socket used by the daemon (on unix systems)
|
||||
## linux/mac: ~/.local/share/atuin/atuin.sock
|
||||
## windows: Not Supported
|
||||
# socket_path = "~/.local/share/atuin/atuin.sock"
|
||||
|
||||
## Use systemd socket activation rather than opening the given path (the path must still be correct for the client)
|
||||
## linux: false
|
||||
## mac/windows: Not Supported
|
||||
# systemd_socket = false
|
||||
|
||||
## The port that should be used for TCP on non unix systems
|
||||
# tcp_port = 8889
|
16
config/common/fd/ignore
Normal file
16
config/common/fd/ignore
Normal file
|
@ -0,0 +1,16 @@
|
|||
.*history*
|
||||
.cache
|
||||
.cups
|
||||
.git
|
||||
.hushlogin
|
||||
.known_hosts
|
||||
.local/git
|
||||
.netrwhist
|
||||
.zcomp*
|
||||
.zsh_sessions
|
||||
*.swp
|
||||
**/.ssh/keys
|
||||
**/share
|
||||
**/state
|
||||
*~
|
||||
zsh_modules
|
28
config/common/git/config
Normal file
28
config/common/git/config
Normal file
|
@ -0,0 +1,28 @@
|
|||
[alias]
|
||||
l = "!git log --graph --abbrev-commit --date=short --pretty=format:'%Cred%h%Creset %Cgreen%cr%Creset: %s : %C(bold blue)%an%Creset %C(yellow)%d%Creset'"
|
||||
[color]
|
||||
diff = auto
|
||||
status = auto
|
||||
branch = auto
|
||||
interactive = auto
|
||||
ui = auto
|
||||
[commit]
|
||||
gpgsign = true
|
||||
[core]
|
||||
autocrlf = false
|
||||
pager = less -FRX
|
||||
[gpg]
|
||||
format = ssh
|
||||
[http]
|
||||
sslVerify = false
|
||||
[init]
|
||||
defaultBranch = master
|
||||
[pull]
|
||||
rebase = true
|
||||
[push]
|
||||
default = current
|
||||
[status]
|
||||
short = true
|
||||
|
||||
[include]
|
||||
path = ~/.local/config/git
|
4
config/common/git/ignore
Normal file
4
config/common/git/ignore
Normal file
|
@ -0,0 +1,4 @@
|
|||
*~
|
||||
*.swp
|
||||
.DS_Store
|
||||
/nvim/.netrwhist
|
10
config/common/glow/glow.yml
Normal file
10
config/common/glow/glow.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
# style name or JSON path (default "auto")
|
||||
style: "auto"
|
||||
# mouse support (TUI-mode only)
|
||||
mouse: false
|
||||
# use pager to display markdown
|
||||
pager: true
|
||||
# word-wrap at width
|
||||
width: 80
|
||||
# show all files, including hidden and ignored.
|
||||
all: false
|
8
config/common/nvim/.gitignore
vendored
Normal file
8
config/common/nvim/.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
15
config/common/nvim/.neoconf.json
Normal file
15
config/common/nvim/.neoconf.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
201
config/common/nvim/LICENSE
Normal file
201
config/common/nvim/LICENSE
Normal file
|
@ -0,0 +1,201 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
4
config/common/nvim/README.md
Normal file
4
config/common/nvim/README.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
# 💤 LazyVim
|
||||
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
2
config/common/nvim/init.lua
Normal file
2
config/common/nvim/init.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
25
config/common/nvim/lua/config/autocmds.lua
Normal file
25
config/common/nvim/lua/config/autocmds.lua
Normal file
|
@ -0,0 +1,25 @@
|
|||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
--
|
||||
-- Add any additional autocmds here
|
||||
-- with `vim.api.nvim_create_autocmd`
|
||||
--
|
||||
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
|
||||
pattern = { "*.gotmpl" },
|
||||
callback = function()
|
||||
vim.cmd("set filetype=yaml")
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufReadPre" }, {
|
||||
callback = function()
|
||||
vim.api.nvim_set_hl(0, "ColorColumn", { bg = "#770000" })
|
||||
vim.api.nvim_set_hl(0, "DiffChange", { bg = "NONE", fg = "#e7c547" })
|
||||
vim.api.nvim_set_hl(0, "DiffText", { bg = "NONE", fg = "#ff8700" })
|
||||
vim.api.nvim_set_hl(0, "SpellBad", { bg = "#770000", fg = "#ffffff" })
|
||||
vim.api.nvim_set_hl(0, "Visual", { bg = "#0094d8", fg = "#ffffff" })
|
||||
end,
|
||||
})
|
69
config/common/nvim/lua/config/keymaps.lua
Normal file
69
config/common/nvim/lua/config/keymaps.lua
Normal file
|
@ -0,0 +1,69 @@
|
|||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
|
||||
local map = vim.keymap.set
|
||||
local nomap = vim.keymap.del
|
||||
|
||||
map("i", "<C-a>", "<esc>I")
|
||||
map("i", "<C-e>", "<esc>A")
|
||||
|
||||
map("n", "<esc><cr>", "<esc><cmd>wq!<cr>", { desc = "save and exit", remap = true })
|
||||
map("n", "<tab>", "<C-w>w", { desc = "switch pane", remap = true })
|
||||
map("n", "<leader>-", "<C-W>s", { desc = "split horizontally", remap = true })
|
||||
map("n", "<leader>|", "<C-W>v", { desc = "split vertically", remap = true })
|
||||
map("n", "<leader>/", "gcc", { desc = "toggle comments", remap = true })
|
||||
|
||||
map("n", "<leader>ff", LazyVim.pick("files", { root = false }), { desc = "find files (cwd)", remap = true })
|
||||
map("n", "<leader>fF", LazyVim.pick("files"), { desc = "find files (root)", remap = true })
|
||||
map("n", "<leader>h", "<cmd>set hlsearch!<cr>", { desc = "toggle hlsearch", remap = true })
|
||||
map(
|
||||
"n",
|
||||
"<leader>m",
|
||||
'<cmd>execute "set colorcolumn=" . (&colorcolumn == "" ? "80,120" : "")<cr>',
|
||||
{ desc = "toggle column", remap = true }
|
||||
)
|
||||
-- <leader>n (toggle decorations) moved to configuration of snacks.nvim in plugins/init.lua
|
||||
map("v", "<leader>/", "gc", { desc = "toggle comments", remap = true })
|
||||
|
||||
nomap("n", "<leader><space>")
|
||||
nomap("n", "<leader>,")
|
||||
nomap("n", "<leader>.")
|
||||
nomap("n", "<leader>:")
|
||||
nomap("n", "<leader>?")
|
||||
nomap("n", "<leader>K")
|
||||
nomap("n", "<leader>l")
|
||||
nomap("n", "<leader>L")
|
||||
nomap("n", "<leader>S")
|
||||
nomap("n", "<leader>`")
|
||||
|
||||
nomap("n", "<leader>bD")
|
||||
nomap("n", "<leader>bP")
|
||||
nomap("n", "<leader>bb")
|
||||
nomap("n", "<leader>bd")
|
||||
nomap("n", "<leader>bl")
|
||||
nomap("n", "<leader>bo")
|
||||
nomap("n", "<leader>bp")
|
||||
nomap("n", "<leader>br")
|
||||
|
||||
nomap("n", "<leader>fb")
|
||||
nomap("n", "<leader>fc")
|
||||
nomap("n", "<leader>fe")
|
||||
nomap("n", "<leader>fE")
|
||||
nomap("n", "<leader>fg")
|
||||
nomap("n", "<leader>fn")
|
||||
nomap("n", "<leader>fr")
|
||||
nomap("n", "<leader>fR")
|
||||
nomap("n", "<leader>ft")
|
||||
nomap("n", "<leader>fT")
|
||||
|
||||
nomap("n", "<leader>gb")
|
||||
nomap("n", "<leader>gB")
|
||||
nomap("n", "<leader>gc")
|
||||
nomap("n", "<leader>gs")
|
||||
nomap("n", "<leader>gY")
|
||||
|
||||
nomap("n", "<leader>qq")
|
||||
|
||||
nomap("n", "<leader>xl")
|
||||
nomap("n", "<leader>xq")
|
52
config/common/nvim/lua/config/lazy.lua
Normal file
52
config/common/nvim/lua/config/lazy.lua
Normal file
|
@ -0,0 +1,52 @@
|
|||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
checker = {
|
||||
enabled = true, -- check for plugin updates periodically
|
||||
notify = false, -- notify on update
|
||||
}, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
20
config/common/nvim/lua/config/options.lua
Normal file
20
config/common/nvim/lua/config/options.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
local o = vim.o
|
||||
o.expandtab = true
|
||||
o.gdefault = true
|
||||
o.hlsearch = false
|
||||
o.inccommand = "split"
|
||||
o.relativenumber = false
|
||||
o.shiftround = true
|
||||
o.termguicolors = true
|
||||
o.wrap = true
|
||||
o.writebackup = false
|
||||
|
||||
o.clipboard = ""
|
||||
o.foldcolumn = "0"
|
||||
o.mouse = ""
|
||||
o.shiftwidth = 2
|
||||
o.softtabstop = 2
|
||||
o.statuscolumn = ""
|
||||
o.tabstop = 2
|
||||
o.whichwrap = ""
|
149
config/common/nvim/lua/plugins/init.lua
Normal file
149
config/common/nvim/lua/plugins/init.lua
Normal file
|
@ -0,0 +1,149 @@
|
|||
return {
|
||||
{ "MagickDuck/grug-far.nvim", enabled = false },
|
||||
{ "catppuccin/nvim", enabled = false },
|
||||
{ "folke/persistence.nvim", enabled = false },
|
||||
{ "folke/todo-comments.nvim", enabled = false },
|
||||
{ "folke/tokyonight.nvim", enabled = false },
|
||||
{ "folke/trouble.nvim", enabled = false },
|
||||
{ "windwp/nvim-ts-autotag", enabled = false },
|
||||
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
opts = {
|
||||
dashboard = { enabled = false },
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>n",
|
||||
function()
|
||||
vim.cmd("set number!")
|
||||
vim.cmd('execute "set signcolumn=" . (&signcolumn == "yes" ? "no" : "yes")')
|
||||
if Snacks.indent.enabled then
|
||||
Snacks.indent.disable()
|
||||
else
|
||||
Snacks.indent.enable()
|
||||
end
|
||||
end,
|
||||
desc = "toggle decorations",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
build = "cd app && yarn install",
|
||||
init = function()
|
||||
vim.g.mkdp_filetypes = { "markdown" }
|
||||
end,
|
||||
ft = { "markdown" },
|
||||
},
|
||||
|
||||
{
|
||||
"loctvl842/monokai-pro.nvim",
|
||||
opts = {
|
||||
filter = "classic",
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "monokai-pro",
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
opts = {
|
||||
options = {
|
||||
theme = "powerline",
|
||||
section_separators = "",
|
||||
component_separators = "",
|
||||
},
|
||||
sections = {
|
||||
lualine_c = {
|
||||
{
|
||||
"diagnostics",
|
||||
symbols = {
|
||||
error = LazyVim.config.icons.diagnostics.Error,
|
||||
warn = LazyVim.config.icons.diagnostics.Warn,
|
||||
info = LazyVim.config.icons.diagnostics.Info,
|
||||
hint = LazyVim.config.icons.diagnostics.Hint,
|
||||
},
|
||||
},
|
||||
{ "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },
|
||||
{ "filename", file_status = true, path = 1 },
|
||||
},
|
||||
lualine_x = {
|
||||
{
|
||||
"diff",
|
||||
symbols = {
|
||||
added = LazyVim.config.icons.git.added,
|
||||
modified = LazyVim.config.icons.git.modified,
|
||||
removed = LazyVim.config.icons.git.removed,
|
||||
},
|
||||
},
|
||||
},
|
||||
lualine_z = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<leader>e",
|
||||
function()
|
||||
require("neo-tree.command").execute({ toggle = true, dir = vim.uv.cwd() })
|
||||
end,
|
||||
desc = "explorer (cwd)",
|
||||
remap = true,
|
||||
},
|
||||
{
|
||||
"<leader>E",
|
||||
function()
|
||||
require("neo-tree.command").execute({ toggle = true, dir = LazyVim.root() })
|
||||
end,
|
||||
desc = "explorer (root)",
|
||||
remap = true,
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
opts.ensure_installed = {
|
||||
"bash",
|
||||
"diff",
|
||||
"json",
|
||||
"lua",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"python",
|
||||
"terraform",
|
||||
"vim",
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"lua-language-server",
|
||||
"terraform-ls",
|
||||
"tflint",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
3
config/common/nvim/stylua.toml
Normal file
3
config/common/nvim/stylua.toml
Normal file
|
@ -0,0 +1,3 @@
|
|||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
32
config/common/tmux/tmux.conf
Normal file
32
config/common/tmux/tmux.conf
Normal file
|
@ -0,0 +1,32 @@
|
|||
set -g set-titles on
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ga terminal-overrides ",*:Tc:Se=\E[2 q"
|
||||
set -g renumber-windows on
|
||||
setw -g aggressive-resize on
|
||||
setw -g automatic-rename on
|
||||
|
||||
# binds
|
||||
unbind-key S
|
||||
set -g prefix C-a
|
||||
bind a send-prefix
|
||||
bind c new-window
|
||||
bind d detach
|
||||
bind ^C new-window
|
||||
bind ^D detach
|
||||
bind : command-prompt
|
||||
bind " " next-window
|
||||
bind | split-window -h
|
||||
bind - split-window -v
|
||||
bind _ split-window -v
|
||||
|
||||
# status line
|
||||
set -g status "on"
|
||||
set -g status-position top
|
||||
set -g status-style "bg=default"
|
||||
set -g message-style "fg=default,bg=default"
|
||||
set -g message-command-style "fg=default,bg=default"
|
||||
set -g status-left ""
|
||||
set -g status-right "#{?client_prefix,#[reverse]#[fg=color2] prefix #[noreverse],}#[fg=color6] #h "
|
||||
setw -g window-status-separator ""
|
||||
setw -g window-status-format "#[fg=color242,bg=default] #W "
|
||||
setw -g window-status-current-format "#[fg=color0,bg=color6] #W "
|
1
config/common/zsh/.zlogout
Normal file
1
config/common/zsh/.zlogout
Normal file
|
@ -0,0 +1 @@
|
|||
clear
|
18
config/common/zsh/.zshenv
Normal file
18
config/common/zsh/.zshenv
Normal file
|
@ -0,0 +1,18 @@
|
|||
#shellcheck disable=SC2034
|
||||
|
||||
skip_global_compinit=1
|
||||
export XDG_CACHE_HOME="/tmp/${USER}-cache"
|
||||
export XDG_CONFIG_HOME="${HOME}/.config"
|
||||
export XDG_DATA_HOME="${HOME}/.local/share"
|
||||
export XDG_STATE_HOME="${HOME}/.local/state"
|
||||
export ZDOTDIR="${XDG_CONFIG_HOME}/zsh"
|
||||
|
||||
# clean home - needs to be here for Docker Desktop
|
||||
export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"
|
||||
export GNUPGHOME="${XDG_DATA_HOME}/gnupg"
|
||||
export LESSHISTFILE='/dev/null'
|
||||
|
||||
# linux only
|
||||
# if test -z "$XDG_RUNTIME_DIR"; then
|
||||
# export XDG_RUNTIME_DIR=$(mktemp -d /tmp/$(id -u)-runtime-dir.XXX)
|
||||
# fi
|
88
config/common/zsh/.zshrc
Normal file
88
config/common/zsh/.zshrc
Normal file
|
@ -0,0 +1,88 @@
|
|||
# shellcheck disable=SC1091,SC1094,SC2206,SC2148
|
||||
|
||||
# macOS specific
|
||||
if [[ $(uname -s) = "Darwin" ]]; then
|
||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||
fi
|
||||
|
||||
# prepare directories
|
||||
mkdir -p "${XDG_CACHE_HOME}/zsh"
|
||||
mkdir -p "${XDG_DATA_HOME}/zsh"
|
||||
|
||||
# history settings
|
||||
export HISTFILE="${XDG_DATA_HOME}/zsh/history"
|
||||
export HISTSIZE=10000
|
||||
export SAVEHIST=$HISTSIZE
|
||||
setopt EXTENDED_HISTORY
|
||||
setopt HIST_EXPIRE_DUPS_FIRST
|
||||
setopt HIST_FIND_NO_DUPS
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt HIST_REDUCE_BLANKS
|
||||
setopt HIST_SAVE_NO_DUPS
|
||||
setopt INC_APPEND_HISTORY
|
||||
setopt SHARE_HISTORY
|
||||
rm -rf "${ZDOTDIR}/.zsh_history" && ln -sf "${XDG_DATA_HOME}/zsh/history" "${ZDOTDIR}/.zsh_history"
|
||||
|
||||
# set path
|
||||
path=(~/.local/bin "${path[@]}")
|
||||
|
||||
# source configuration
|
||||
source "${ZDOTDIR}/aliases.zsh"
|
||||
source "${ZDOTDIR}/keys.zsh"
|
||||
source "${ZDOTDIR}/fzf.zsh"
|
||||
## it has to be last
|
||||
source "${ZDOTDIR}/atuin.zsh"
|
||||
|
||||
# set fpath
|
||||
fpath=(~/.local/git/zsh_modules/wd $fpath)
|
||||
|
||||
# theme and colors
|
||||
if [[ $(command -v vivid) ]]; then
|
||||
LS_COLORS=$(vivid generate molokai)
|
||||
export LS_COLORS
|
||||
else
|
||||
unset LS_COLORS
|
||||
fi
|
||||
source ~/.local/git/zsh_modules/powerlevel10k/powerlevel10k.zsh-theme
|
||||
source "${ZDOTDIR}/p10k.zsh"
|
||||
if [[ -r "${XDG_CACHE_HOME}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
|
||||
# completion
|
||||
autoload -Uz compinit
|
||||
if [ ! -e "${XDG_DATA_HOME}/zsh/zcompdump.zwc" ]; then
|
||||
autoload -Uz zrecompile
|
||||
zrecompile -p -R "${XDG_DATA_HOME}/zsh/zcompdump"
|
||||
fi
|
||||
compinit -C -d "${XDG_DATA_HOME}/zsh/zcompdump"
|
||||
|
||||
zstyle ':completion:*' menu no
|
||||
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
||||
zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup
|
||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
|
||||
zstyle ':fzf-tab:complete:cd:*' popup-pad 60 0
|
||||
zstyle ':fzf-tab:complete:diff:*' popup-min-size 80 12
|
||||
|
||||
# source modules
|
||||
source "${HOME}/.local/git/zsh_modules/fzf-tab/fzf-tab.plugin.zsh"
|
||||
source "${HOME}/.local/git/zsh_modules/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh"
|
||||
source "${HOME}/.local/git/zsh_modules/wd/wd.plugin.zsh"
|
||||
export WD_CONFIG="${XDG_CONFIG_HOME}/wd_list"
|
||||
|
||||
# quick note functionality
|
||||
if [[ -f "${HOME}/.note" ]]; then
|
||||
echo
|
||||
cat "${HOME}/.note"
|
||||
echo
|
||||
fi
|
||||
|
||||
# cleaning
|
||||
rm -rf "${HOME}/.warprc"
|
||||
|
||||
# local settings
|
||||
if [[ -f "${HOME}/.local/config/zsh" ]]; then
|
||||
source "${HOME}/.local/config/zsh"
|
||||
fi
|
90
config/common/zsh/aliases.zsh
Normal file
90
config/common/zsh/aliases.zsh
Normal file
|
@ -0,0 +1,90 @@
|
|||
LOCAL_GIT_DIR=${HOME}/.local/git
|
||||
|
||||
alias ga='git add .; git commit --no-edit --amend; git push --force-with-lease'
|
||||
alias gae='git add .; git commit --amend; git push --force-with-lease'
|
||||
gd() {
|
||||
curr_branch=$(git symbolic-ref --short -q HEAD)
|
||||
if [ $curr_branch = "master" ]; then
|
||||
echo "On master, aborting."
|
||||
return
|
||||
fi
|
||||
git checkout master
|
||||
git branch -D ${curr_branch}
|
||||
git pull
|
||||
}
|
||||
alias gl="git log --graph --abbrev-commit --date=short --pretty=format:'%Cred%h%Creset %Cgreen%cr%Creset: %s : %C(bold blue)%an%Creset %C(yellow)%d%Creset'"
|
||||
alias less='less -R'
|
||||
|
||||
if [[ $(command -v bat) ]]; then
|
||||
alias cat='bat -pp --color=always --tabs=2 --theme=Monokai\ Extended\ Bright'
|
||||
fi
|
||||
|
||||
if [[ $(command -v curlie) ]]; then
|
||||
alias curl=curlie
|
||||
fi
|
||||
|
||||
if [[ $(command -v eza) ]]; then
|
||||
alias ls='eza --git --octal-permissions --no-permissions --group-directories-first'
|
||||
alias ll='eza --git --octal-permissions --no-permissions --group-directories-first -l'
|
||||
else
|
||||
case $(uname -s) in;
|
||||
Darwin) alias ls='ls -G';;
|
||||
Linux) alias ls='ls --color';;
|
||||
esac
|
||||
alias ll='ls -l'
|
||||
fi
|
||||
|
||||
if [[ $(command -v fd) ]]; then
|
||||
if [[ -f ~/.local/config/fd ]]; then
|
||||
alias fd='fd -H -L --ignore-file ~/.local/config/fd'
|
||||
else
|
||||
alias fd='fd -H -L'
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $(command -v nvim) ]; then
|
||||
vim() {
|
||||
nvim $*; printf "\e[6 q"
|
||||
}
|
||||
vimdiff() {
|
||||
nvim -d $*; printf "\e[6 q"
|
||||
}
|
||||
export EDITOR=nvim
|
||||
export MANPAGER="nvim +Man!"
|
||||
elif [ $(command -v vim) ] ; then
|
||||
export EDITOR=vim
|
||||
else
|
||||
export EDITOR=vi
|
||||
fi
|
||||
|
||||
if [[ $(command -v rg) ]]; then
|
||||
alias grep='rg -i'
|
||||
else
|
||||
alias grep='grep --color'
|
||||
fi
|
||||
|
||||
function ud() {
|
||||
for i in ${LOCAL_GIT_DIR}/dotfiles ${LOCAL_GIT_DIR}/zsh_modules/*; do git -C ${i} pull; done
|
||||
. "${LOCAL_GIT_DIR}/dotfiles/_scripts/scripts/post-update.sh"
|
||||
}
|
||||
|
||||
function upgrade() {
|
||||
if [ $(uname -s) = "Darwin" ]; then
|
||||
brew update && brew upgrade && brew upgrade --cask --greedy -f && brew autoremove && brew cleanup
|
||||
rm -rf ~/Library/Caches/Homebrew/*
|
||||
elif [ $(uname -s) = "FreeBSD" ]; then
|
||||
pkg update -f
|
||||
pkg upgrade
|
||||
pkg autoremove
|
||||
freebsd-update fetch
|
||||
freebsd-update install
|
||||
rm -rf /var/cache/pkg/*
|
||||
pkg audit -F
|
||||
else
|
||||
case $(lsb_release -si 2>/dev/null) in
|
||||
Gentoo) eix-sync && eix-update && emerge -avuNDU @world ;;
|
||||
Ubuntu) apt update && apt upgrade ;;
|
||||
VoidLinux) xbps-install -Su && xbps-remove -RoO && xlocate -S && du -sh /var/cache/xbps && rm -rf /var/cache/xbps/* ;;
|
||||
esac
|
||||
fi
|
||||
}
|
3
config/common/zsh/atuin.zsh
Normal file
3
config/common/zsh/atuin.zsh
Normal file
|
@ -0,0 +1,3 @@
|
|||
if [[ $(command -v atuin) ]]; then
|
||||
eval "$(atuin init zsh --disable-up-arrow)"
|
||||
fi
|
20
config/common/zsh/fzf.zsh
Normal file
20
config/common/zsh/fzf.zsh
Normal file
|
@ -0,0 +1,20 @@
|
|||
if [[ $(command -v fzf) ]]; then
|
||||
source <(fzf --zsh)
|
||||
export FZF_DEFAULT_COMMAND='fd -H -L --ignore-file ~/.local/config/fd'
|
||||
export FZF_CTRL_T_COMMAND='fd -H -L --ignore-file ~/.local/config/fd'
|
||||
FZF_COLORS='
|
||||
--color=fg:#f8f8f2,bg:#272822
|
||||
--color=hl:#fd4285,hl+:#fd4285
|
||||
--color=info:#e5da72,gutter:#272822,pointer:#fd4285,marker:#fd4285
|
||||
--border=none --preview=sharp --layout=reverse
|
||||
--prompt="> " --marker=">" --separator="" --scrollbar="│"
|
||||
'
|
||||
export FZF_DEFAULT_OPTS=${FZF_COLORS}" --multi -e --ansi --preview='bat --color=always --tabs=2 --style=plain --theme=Monokai\ Extended\ Bright {}'"
|
||||
export FZF_CTRL_R_OPTS=${FZF_COLORS}" -e --ansi --preview=''"
|
||||
_fzf_compgen_path() {
|
||||
fd -H -L --ignore-file "${HOME}/.local/config/fd" . "$1"
|
||||
}
|
||||
_fzf_compgen_dir() {
|
||||
fd -H -L --ignore-file "${HOME}/.local/config/fd" --type d . "$1"
|
||||
}
|
||||
fi
|
22
config/common/zsh/keys.zsh
Normal file
22
config/common/zsh/keys.zsh
Normal file
|
@ -0,0 +1,22 @@
|
|||
# key mode
|
||||
bindkey -e
|
||||
|
||||
# proudly stolen from oh-my-zsh
|
||||
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
|
||||
function zle-line-init() {
|
||||
echoti smkx
|
||||
}
|
||||
function zle-line-finish() {
|
||||
echoti rmkx
|
||||
}
|
||||
zle -N zle-line-init
|
||||
zle -N zle-line-finish
|
||||
fi
|
||||
if [[ -n "${terminfo[kcuu1]}" ]]; then
|
||||
autoload -U up-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
|
||||
bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search
|
||||
bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search
|
||||
bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search
|
||||
fi
|
166
config/common/zsh/p10k.zsh
Normal file
166
config/common/zsh/p10k.zsh
Normal file
|
@ -0,0 +1,166 @@
|
|||
'builtin' 'local' '-a' 'p10k_config_opts'
|
||||
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
|
||||
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
|
||||
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
|
||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||
|
||||
() {
|
||||
emulate -L zsh -o extended_glob
|
||||
|
||||
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
|
||||
autoload -Uz is-at-least && is-at-least 5.1 || return
|
||||
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||
# aws
|
||||
# terraform
|
||||
# kubecontext
|
||||
# newline
|
||||
virtualenv
|
||||
context
|
||||
dir
|
||||
vcs
|
||||
background_jobs
|
||||
prompt_char
|
||||
)
|
||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
|
||||
command_execution_time
|
||||
vi_mode
|
||||
)
|
||||
|
||||
typeset -g POWERLEVEL9K_MODE=nerdfont-complete
|
||||
typeset -g POWERLEVEL9K_ICON_PADDING=none
|
||||
typeset -g POWERLEVEL9K_BACKGROUND=
|
||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE=
|
||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' '
|
||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR=
|
||||
typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true
|
||||
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX=
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX=
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
|
||||
typeset -g POWERLEVEL9K_SHOW_RULER=false
|
||||
typeset -g POWERLEVEL9K_RULER_CHAR='─'
|
||||
typeset -g POWERLEVEL9K_RULER_FOREGROUND=240
|
||||
|
||||
# prompt symbol
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❯'
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='❯'
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='❯'
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
|
||||
|
||||
# working directory
|
||||
typeset -g POWERLEVEL9K_DIR_FOREGROUND=37
|
||||
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
|
||||
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
|
||||
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103
|
||||
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=37
|
||||
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=false
|
||||
local anchor_files=(
|
||||
.git
|
||||
)
|
||||
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
|
||||
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=last
|
||||
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
||||
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
|
||||
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
|
||||
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v2
|
||||
typeset -g POWERLEVEL9K_DIR_CLASSES=()
|
||||
|
||||
# vcs
|
||||
typeset -g POWERLEVEL9K_VCS_FOREGROUND=246
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_FOREGROUND=240
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_TEXT=
|
||||
typeset -g POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS=0
|
||||
typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=
|
||||
typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind git-stash)
|
||||
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=''
|
||||
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
|
||||
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=
|
||||
typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
|
||||
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=':⇣'
|
||||
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=':⇡'
|
||||
typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1
|
||||
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${${${P9K_CONTENT/⇣* :⇡/⇣⇡}// }//:/ }'
|
||||
typeset -g POWERLEVEL9K_VCS_STASH_ICON='≡'
|
||||
typeset -g POWERLEVEL9K_VCS_GIT_ICON='\uF126'
|
||||
typeset -g POWERLEVEL9K_VCS_GIT_GITHUB_ICON='\uF126'
|
||||
typeset -g POWERLEVEL9K_VCS_GIT_GITLAB_ICON='\uF126'
|
||||
typeset -g POWERLEVEL9K_VCS_GIT_BITBUCKET_ICON='\uF126'
|
||||
|
||||
# command_execution_time
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=2
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=220
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=''
|
||||
|
||||
# background_jobs
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⇶'
|
||||
|
||||
# context (username/hostname)
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=196
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=
|
||||
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'
|
||||
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
|
||||
|
||||
# virtualenv
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=15
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||
|
||||
# kubecontext
|
||||
#typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile'
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION="☸"
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
||||
# '*prod*' PROD # These values are examples that are unlikely
|
||||
'*' DEFAULT)
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=38
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
|
||||
|
||||
# terraform
|
||||
typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false
|
||||
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
|
||||
# '*prod*' PROD # These values are examples that are unlikely
|
||||
'*' DEFAULT)
|
||||
typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_FOREGROUND=38
|
||||
|
||||
# aws
|
||||
#typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|terraform|aws-mfa'
|
||||
typeset -g POWERLEVEL9K_AWS_CLASSES=(
|
||||
# '*prod*' PROD # These values are examples that are unlikely
|
||||
'*' DEFAULT)
|
||||
typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=208
|
||||
|
||||
# vi_mode
|
||||
typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=
|
||||
typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING='CMD '
|
||||
typeset -g POWERLEVEL9K_VI_MODE_NORMAL_FOREGROUND=15
|
||||
typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=1
|
||||
|
||||
# other settings
|
||||
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=same-dir
|
||||
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose
|
||||
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
|
||||
(( ! $+functions[p10k] )) || p10k reload
|
||||
}
|
||||
|
||||
typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}
|
||||
|
||||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||||
'builtin' 'unset' 'p10k_config_opts'
|
6
config/common/zsh/ssh.zsh
Normal file
6
config/common/zsh/ssh.zsh
Normal file
|
@ -0,0 +1,6 @@
|
|||
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
|
||||
ssh-agent > "$XDG_CACHE_HOME/ssh-agent.env"
|
||||
fi
|
||||
if [[ ! "$SSH_AUTH_SOCK" ]]; then
|
||||
source "$XDG_CACHE_HOME/ssh-agent.env" >/dev/null
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue