Compare commits

...

34 Commits

Author SHA1 Message Date
bce1d7498d
Hide indent signs when toggling decorations in nvim. 2025-02-11 00:51:35 +01:00
e86ab11776
lazyvim.json autoupdate. 2025-02-09 23:44:40 +01:00
65b34c5d10
Delete zed stuff. 2025-02-08 02:34:41 +01:00
9b9a3a8af9
Upgrading brew casks, fix tabstop in nvim. 2025-02-05 13:56:31 +01:00
6848068234
Indent settings in neovim. 2025-01-30 12:53:04 +01:00
37fb1519ea Merge pull request 'Switch to LazyVim.' (#4) from lazyvim into master
Reviewed-on: #4
2025-01-28 17:26:02 +01:00
5acb10f0aa
Switch to LazyVim. 2025-01-28 17:20:49 +01:00
9eeb3ed88e
Formatting. 2025-01-28 14:07:40 +01:00
4c52e1c5b9
Better transparency in nvim. 2025-01-27 00:44:56 +01:00
fae1f29f97
Transparent vim. 2025-01-26 00:27:00 +01:00
c39cb9b7a4
Change keybindings in nvim, delete unused. 2025-01-21 00:54:53 +01:00
0fcc958ad5
Remove FreeBSD ports updating from upgrade() function. 2025-01-21 00:21:17 +01:00
683d5e4789
Fix atuin config. 2025-01-13 10:23:50 +01:00
ebc588b32e
Adding fzf-tab, fixing install.sh with shellcheck. 2025-01-11 01:52:49 +01:00
d8d598f888
p10k should be loaded after. 2025-01-07 18:09:53 +01:00
e94a4c9e7e
Remove lazygit. 2025-01-05 22:43:43 +01:00
c0f48be9e8
Tmux term. 2025-01-03 22:22:05 +01:00
7ed60ad219
Delete ari alias. 2025-01-03 02:10:39 +01:00
1ffd234d99
Better handling of vim aliasesm. 2024-12-30 10:29:42 +01:00
6b0a8048cf
Fix cursor. 2024-12-29 17:15:34 +01:00
b4f183cfdf
Dirty hack for a bar custor after using vim. 2024-12-29 16:46:13 +01:00
3308c8d735
Add Ubuntu to upgrade function. 2024-12-29 00:26:00 +01:00
d9469207c0
Cleaning. 2024-12-29 00:13:07 +01:00
95ca40885a
Fix history settings. 2024-12-27 12:48:13 +01:00
be7958e788
Atuin - another chance. 2024-12-27 01:18:16 +01:00
a82586a89c
Order matters. 2024-12-21 23:53:36 +01:00
bea3e82947
Use curlie when possible. 2024-12-16 13:56:43 +01:00
0f0203dc88
Get rid of .warprc file. 2024-12-12 01:18:18 +01:00
d136009bd3
Add FreeBSD support to upgrade(). 2024-12-12 00:24:26 +01:00
8443e012b6
hushlogin should be a choice 2024-12-11 17:35:42 +01:00
8d85ed9f3b
Translate CLI. 2024-12-01 00:01:40 +01:00
1b94990e34
gitignore 2024-11-29 23:57:51 +01:00
10c9eb0fc7
Gitignore. 2024-11-22 21:39:24 +01:00
2d20de5a4d
Auto clean packages after upgrade. 2024-11-17 00:03:16 +01:00
40 changed files with 1132 additions and 322 deletions

4
.gitignore vendored
View File

@ -1,8 +1,8 @@
**/.DS_Store
**/.netrwhist
**/.zsh_history
**/.zsh_sessions
**/__pycache__
**/lazy-lock.json
**/zed/*
!**/zed/keymap.json
!**/zed/settings.json
**/zsh/functions

View File

@ -0,0 +1,39 @@
vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
vim.g.mapleader = " "
-- bootstrap lazy and all plugins
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
local repo = "https://github.com/folke/lazy.nvim.git"
vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
end
vim.opt.rtp:prepend(lazypath)
local lazy_config = require "configs.lazy"
-- load plugins
require("lazy").setup({
{
"NvChad/NvChad",
lazy = false,
branch = "v2.5",
import = "nvchad.plugins",
config = function()
require "options"
end,
},
{ import = "plugins" },
}, lazy_config)
-- load theme
dofile(vim.g.base46_cache .. "defaults")
dofile(vim.g.base46_cache .. "statusline")
require "nvchad.autocmds"
vim.schedule(function()
require "mappings"
end)

View File

@ -0,0 +1,30 @@
-- This file needs to have same structure as nvconfig.lua
-- https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua
local M = {}
M.base46 = {
hl_override = {
ColorColumn = { bg = "#770000" },
Comment = { italic = true },
DiffChange = { bg = "NONE", fg = "#e7c547" },
DiffText = { bg = "NONE", fg = "#ff8700" },
SpellBad = { bg = "#770000", fg = "#ffffff" },
Visual = { bg = "#0094d8", fg = "#ffffff" },
},
theme = "monekai",
transparency = true,
}
M.ui = {
statusline = {
theme = "vscode_colored",
},
}
M.mason = {
cmd = true,
pkgs = { "lua-language-server", "terraform-ls", "tflint" },
}
return M

View File

@ -0,0 +1,57 @@
require "nvchad.mappings"
-- add yours here
local map = vim.keymap.set
local nomap = vim.keymap.del
nomap("n", "<leader>b")
nomap("n", "<leader>ch")
nomap("n", "<leader>cm")
nomap("n", "<leader>ds")
nomap("n", "<leader>fh")
nomap("n", "<leader>fm")
nomap("n", "<leader>gt")
nomap("n", "<leader>ma")
nomap("n", "<leader>pt")
nomap("n", "<leader>rn")
nomap("n", "<leader>th")
nomap("n", "<leader>v")
nomap("n", "<leader>wK")
nomap("n", "<leader>wk")
nomap("n", "<leader>x")
nomap("n", "<leader>fo")
nomap("n", "<leader>fz")
map("i", "<C-a>", "<esc>I")
map("i", "<C-e>", "<esc>A")
map("n", "<esc><CR>", "<esc><cmd>wq!<CR>", { desc = "save and exit" })
map("n", "<leader>b", "", { desc = "buffer operations" })
map("n", "<leader>bn", "<cmd>enew<CR>", { desc = "new" })
map("n", "<leader>bj", "<cmd>bprevious<CR>", { desc = "previous" })
map("n", "<leader>bk", "<cmd>bnext<CR>", { desc = "next" })
map("n", "<leader>bx", "<cmd>bd<CR>", { desc = "close" })
map("n", "<leader>e", "<cmd>NvimTreeFocus<CR>", { desc = "file tree" })
map("n", "<leader>f", "", { desc = "find operations" })
map("n", "<leader>fa", "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>", { desc = "all files" })
map("n", "<leader>fb", "<cmd>Telescope buffers<CR>", { desc = "buffers" })
map("n", "<leader>ff", "<cmd>Telescope find_files<CR>", { desc = "files" })
map("n", "<leader>fw", "<cmd>Telescope live_grep<CR>", { desc = "grep" })
map("n", "<leader>h", "<cmd>set hlsearch!<CR>", { desc = "Toggle hlsearch" })
map(
"n",
"<leader>m",
'<cmd>execute "set colorcolumn=" . (&colorcolumn == "" ? "80,120" : "")<CR>',
{ desc = "Toggle Column" }
)
map(
"n",
"<leader>n",
'<cmd>set number!<CR><cmd>IBLToggle<CR><cmd>execute "set signcolumn=" . (&signcolumn == "yes" ? "no" : "yes")<CR>',
{ desc = "Toggle Decorations" }
)
map("n", "<leader>t", function()
require("nvchad.themes").open()
end, { desc = "Change Theme" })
map("n", "<tab>", "<C-w>w", { desc = "switch pane" })

View File

@ -0,0 +1,71 @@
return {
{
"nvim-lua/plenary.nvim",
{
"nvchad/ui",
config = function()
require "nvchad"
end
},
{
"nvchad/base46",
lazy = true,
build = function()
require("base46").load_all_highlights()
end,
},
"nvchad/volt",
},
{
"stevearc/conform.nvim",
-- event = 'BufWritePre', -- uncomment for format on save
config = function()
require "configs.conform"
end,
},
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"lua",
"markdown",
"markdown_inline",
"python",
"terraform",
"vim",
},
},
},
{
"neovim/nvim-lspconfig",
config = function()
require "configs.lspconfig"
end,
},
}
-- These are some examples, uncomment them if you want to see them work!
-- Install a plugin
-- {
-- "max397574/better-escape.nvim",
-- event = "InsertEnter",
-- config = function()
-- require("better_escape").setup()
-- end
-- },
-- To make a plugin not be loaded
-- {
-- "NvChad/nvim-colorizer.lua",
-- enabled = false
-- },
-- All NvChad plugins are lazy-loaded by default
-- For a plugin to be loaded, you will need to set either `ft`, `cmd`, `keys`, `event`, or set `lazy = false`
-- If you want a plugin to load on startup, add `lazy = false` to a plugin spec, for example
-- {
-- "mg979/vim-visual-multi",
-- lazy = false,
-- }

87
config/atuin/config.toml Normal file
View 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/atuin/default.toml Normal file
View 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

View File

@ -1,6 +1,3 @@
[include]
path = ~/.local/config/git
[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]
@ -26,3 +23,6 @@
default = current
[status]
short = true
[include]
path = ~/.local/config/git

View File

@ -1,23 +0,0 @@
gui:
language: 'auto' # one of 'auto' | 'en' | 'zh-CN' | 'zh-TW' | 'pl' | 'nl' | 'ja' | 'ko' | 'ru'
timeFormat: '2006-01-02' # https://pkg.go.dev/time#Time.Format
shortTimeFormat: '3:04PM'
theme:
selectedLineBgColor:
- reverse
commitLength:
show: true
mouseEvents: false
showFileTree: false # for rendering changes files in a tree format
showListFooter: true # for seeing the '5 of 20' message in list panels
showRandomTip: false
showCommandLog: false
nerdFontsVersion: "3" # nerd fonts version to use ("2" or "3"); empty means don't show nerd font icons
git:
commit:
signOff: true
mainBranches: [master]
autoFetch: false
autoRefresh: false
disableStartupPopups: true
notARepository: 'skip' # one of: 'prompt' | 'create' | 'skip' | 'quit'

8
config/nvim/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data

15
config/nvim/.neoconf.json Normal file
View File

@ -0,0 +1,15 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}

201
config/nvim/LICENSE Normal file
View 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/nvim/README.md Normal file
View 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.

View File

@ -1,39 +1,2 @@
vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
vim.g.mapleader = " "
-- bootstrap lazy and all plugins
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
local repo = "https://github.com/folke/lazy.nvim.git"
vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
end
vim.opt.rtp:prepend(lazypath)
local lazy_config = require "configs.lazy"
-- load plugins
require("lazy").setup({
{
"NvChad/NvChad",
lazy = false,
branch = "v2.5",
import = "nvchad.plugins",
config = function()
require "options"
end,
},
{ import = "plugins" },
}, lazy_config)
-- load theme
dofile(vim.g.base46_cache .. "defaults")
dofile(vim.g.base46_cache .. "statusline")
require "nvchad.autocmds"
vim.schedule(function()
require "mappings"
end)
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")

10
config/nvim/lazyvim.json Normal file
View File

@ -0,0 +1,10 @@
{
"extras": [
],
"install_version": 7,
"news": {
"NEWS.md": "10960"
},
"version": 8
}

View File

@ -1,31 +0,0 @@
-- This file needs to have same structure as nvconfig.lua
-- https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua
---@type ChadrcConfig
local M = {}
M.base46 = {
hl_override = {
ColorColumn = { bg = "#770000" },
Comment = { italic = true, },
DiffChange = { bg = "NONE", fg = "#e7c547" },
DiffText = { bg = "NONE", fg = "#ff8700" },
SpellBad = { bg = "#770000", fg = "#ffffff" },
Visual = { bg = "#0094d8", fg = "#ffffff" },
},
theme = "monekai",
transparency = false
}
M.ui = {
statusline = {
theme = "vscode_colored",
}
}
M.mason = {
cmd = true,
pkgs = { "lua-language-server", "terraform-ls", "tflint" }
}
return M

View 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,
})

View File

@ -0,0 +1,71 @@
-- 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>be")
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>ge")
nomap("n", "<leader>gs")
nomap("n", "<leader>gY")
nomap("n", "<leader>qq")
nomap("n", "<leader>xl")
nomap("n", "<leader>xq")

View 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",
},
},
},
})

View 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 = ""

View File

@ -1,20 +0,0 @@
require "nvchad.mappings"
-- add yours here
local map = vim.keymap.set
map("i", "jk", "<ESC>")
map("i", "<C-a>", "<esc>I" )
map("i", "<C-e>", "<esc>A" )
map("n", ";", ":", { desc = "CMD enter command mode" })
map("n", "<esc><cr>", "<esc><cmd>wq!<cr>", { desc = "Save and Exit" })
map("n", "<leader>m", '<cmd>execute "set colorcolumn=" . (&colorcolumn == "" ? "80,120" : "")<cr>', { desc = "Toggle Column" })
map("n", "<leader>h", "<cmd>set hlsearch!<cr>", { desc = "Toggle hlsearch" })
map("n", "<leader>j", "<cmd>bprevious<cr>", { desc = "Buffer Previous" })
map("n", "<leader>k", "<cmd>bnext<cr>", { desc = "Buffer Next" })
map("n", "<leader>n", '<cmd>set number!<cr><cmd>IBLToggle<cr><cmd>execute "set signcolumn=" . (&signcolumn == "yes" ? "no" : "yes")<cr>', { desc = "Toggle Decorations" })
map("n", "<leader>w", "<cmd>lua require('whitespace-nvim').trim()<cr>", { desc = "Trim Trailing Whitespaces" })
map("n", "<leader>x", "<cmd>bd<cr>", { desc = "Buffer Close" })
map("n", "<tab>", "<C-w>w", { desc = "Switch buffer" })

View File

@ -1,71 +1,139 @@
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 },
{
"nvim-lua/plenary.nvim",
{
"nvchad/ui",
config = function()
require "nvchad"
end
"folke/snacks.nvim",
opts = {
dashboard = { enabled = false },
},
{
"nvchad/base46",
lazy = true,
build = function()
require("base46").load_all_highlights()
end,
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",
},
},
"nvchad/volt",
},
{
"stevearc/conform.nvim",
-- event = 'BufWritePre', -- uncomment for format on save
config = function()
require "configs.conform"
end,
"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 = {
ensure_installed = {
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",
},
},
},
{
"neovim/nvim-lspconfig",
config = function()
require "configs.lspconfig"
end,
},
}
-- These are some examples, uncomment them if you want to see them work!
-- Install a plugin
-- {
-- "max397574/better-escape.nvim",
-- event = "InsertEnter",
-- config = function()
-- require("better_escape").setup()
-- end
-- },
-- To make a plugin not be loaded
-- {
-- "NvChad/nvim-colorizer.lua",
-- enabled = false
-- },
-- All NvChad plugins are lazy-loaded by default
-- For a plugin to be loaded, you will need to set either `ft`, `cmd`, `keys`, `event`, or set `lazy = false`
-- If you want a plugin to load on startup, add `lazy = false` to a plugin spec, for example
-- {
-- "mg979/vim-visual-multi",
-- lazy = false,
-- }

3
config/nvim/stylua.toml Normal file
View File

@ -0,0 +1,3 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120

View File

@ -1,6 +1,6 @@
set -g set-titles on
set -g default-terminal "xterm-256color"
set -g terminal-overrides ",xterm-256color:Tc"
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

View File

@ -1,15 +0,0 @@
// Zed keymap
//
// For information on binding keys, see the Zed
// documentation: https://zed.dev/docs/key-bindings
//
// To see the default key bindings run `zed: open default keymap`
// from the command palette.
[
{
"context": "vim_mode == normal",
"bindings": {
"escape enter": ["pane::CloseActiveItem", { "saveIntent": "saveAll" }]
}
}
]

View File

@ -1,80 +0,0 @@
{
"assistant": {
"default_model": {
"provider": "copilot_chat",
"model": "gpt-4o"
},
"enabled": false,
"button": false,
"version": "2"
},
"buffer_font_family": "RobotoMono Nerd Font",
"buffer_font_size": 14,
"buffer_font_weight": 500,
"chat_panel": {
"button": false
},
"collaboration_panel": {
"button": false
},
"cursor_blink": false,
"ensure_final_newline_on_save": true,
"features": {
"inline_completion_provider": "none"
},
"file_types": {
"YAML": ["gotmpl"]
},
"format_on_save": "off",
"git": {
"inline_blame": {
"enabled": true
}
},
"notification_panel": {
"button": false
},
"outline_panel": {
"button": false
},
"projects_online_by_default": false,
"remove_trailing_whitespace_on_save": true,
"show_call_status-icon": false,
"soft_wrap": "editor_width",
"tabs": {
"file_icons": true,
"git_status": true
},
"tab_bar": {
"show_nav_history_buttons": false
},
"telemetry": {
"diagnostics": false,
"metrics": false
},
"terminal": {
"blinking": "off",
"button": false,
"copy_on_select": true,
"font_family": "RobotoMono Nerd Font",
"font_size": 14,
"toolbar": {
"title": false
},
"working_directory": "first_project_directory"
},
"theme": {
"dark": "Ayu Dark",
"light": "Ayu Light",
"mode": "system"
},
"toolbar": {
"breadcrumbs": false,
"quick_actions": false
},
"vim_mode": true,
"vim":{
"use_system_clipboard": "never"
},
"ui_font_size": 16,
}

View File

@ -6,11 +6,7 @@ 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"
export HISTFILE="${XDG_DATA_HOME}/zsh/history"
export HISTSIZE=10000
export SAVEHIST=$HISTSIZE
rm -rf "${ZDOTDIR}/.zsh_history" && ln -sf "${XDG_DATA_HOME}/zsh/history" "${ZDOTDIR}/.zsh_history"
# clean home - needs to be here for Docker Desktop
export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"
export GNUPGHOME="${XDG_DATA_HOME}/gnupg"

View File

@ -6,16 +6,24 @@ if [[ $(uname -s) = "Darwin" ]]; then
fi
# prepare directories
touch "${HOME}/.hushlogin"
mkdir -p "${XDG_CACHE_HOME}/zsh"
mkdir -p "${XDG_DATA_HOME}/zsh"
# global exports and options
# 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_SAVE_NO_DUPS
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_REDUCE_BLANKS
setopt SHARE_HISTORY
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[@]}")
@ -23,13 +31,9 @@ path=(~/.local/bin "${path[@]}")
# source configuration
source "${ZDOTDIR}/aliases.zsh"
source "${ZDOTDIR}/keys.zsh"
## it has to be last
source "${ZDOTDIR}/fzf.zsh"
# source modules
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"
## it has to be last
source "${ZDOTDIR}/atuin.zsh"
# set fpath
fpath=(~/.local/git/zsh_modules/wd $fpath)
@ -41,16 +45,13 @@ if [[ $(command -v vivid) ]]; then
else
unset LS_COLORS
fi
source "${ZDOTDIR}/p10k.zsh"
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
zstyle ':completion:*' menu select
zstyle ':completion:*' list-colors ''
autoload -Uz compinit
if [ ! -e "${XDG_DATA_HOME}/zsh/zcompdump.zwc" ]; then
autoload -Uz zrecompile
@ -58,6 +59,19 @@ if [ ! -e "${XDG_DATA_HOME}/zsh/zcompdump.zwc" ]; then
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
@ -65,6 +79,9 @@ if [[ -f "${HOME}/.note" ]]; then
echo
fi
# cleaning
rm -rf "${HOME}/.warprc"
# local settings
if [[ -f "${HOME}/.local/config/zsh" ]]; then
source "${HOME}/.local/config/zsh"

View File

@ -13,13 +13,16 @@ gd() {
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 lg=lazygit
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'
@ -40,10 +43,14 @@ if [[ $(command -v fd) ]]; then
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!"
alias vim=nvim
alias vimdiff="nvim -d"
elif [ $(command -v vim) ] ; then
export EDITOR=vim
else
@ -62,13 +69,21 @@ function ud() {
}
function upgrade() {
if [ $(uname -s) != "Darwin" ]; then
case $(lsb_release -si) in
Gentoo) eix-sync && eix-update && emerge -avuNDU @world ;;
VoidLinux) xbps-install -Su && xbps-remove -RoO && xlocate -S ;;
esac
else
brew update && brew upgrade && brew cleanup
if [ $(uname -s) = "Darwin" ]; then
brew update && brew upgrade && brew upgrade --cask --greedy && brew cleanup
rm -rf ~/Library/Caches/Homebrew/*
elif [ $(uname -s) = "FreeBSD" ]; then
pkg update -f
pkg upgrade
freebsd-update fetch
freebsd-update install
rm -rf /var/cache/pkg/* /usr/ports/distfiles/*
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/zsh/atuin.zsh Normal file
View File

@ -0,0 +1,3 @@
if [[ $(command -v atuin) ]]; then
eval "$(atuin init zsh --disable-up-arrow)"
fi

View File

@ -1,37 +1,38 @@
#!/bin/sh
# shellcheck disable=SC1091
# variables
LOCAL_GIT_DIR=${HOME}/.local/git
XDG_CACHE_HOME=/tmp/${USER}-cache
XDG_CONFIG_HOME=${HOME}/.config
XDG_DATA_HOME=${HOME}/.local/share
XDG_STATE_HOME=${HOME}/.local/state
LOCAL_GIT_DIR="${HOME}/.local/git"
XDG_CACHE_HOME="/tmp/${USER}-cache"
XDG_CONFIG_HOME="${HOME}/.config"
XDG_DATA_HOME="${HOME}/.local/share"
XDG_STATE_HOME="${HOME}/.local/state"
# clean + prepare local dirs
rm -rf ~/.cache ~/.config/_cache ~/.fdignore ~/.fzf.bash ~/.fzf.zsh ~/.gitconfig ~/.gitignore ~/.history ~/.hushlogin ~/.tmux.conf ~/.vim* ~/.zcomp* ~/.zsh*
rm -rf ${XDG_CACHE_HOME} ${XDG_DATA_HOME}/nvim ${XDG_STATE_HOME}/nvim
mkdir -p ${XDG_CACHE_HOME} ${XDG_CONFIG_HOME} ${XDG_DATA_HOME}
chmod 700 ${XDG_CACHE_HOME}
rm -rf "${XDG_CACHE_HOME}" "${XDG_DATA_HOME}/nvim" "${XDG_STATE_HOME}/nvim"
mkdir -p "${XDG_CACHE_HOME}" "${XDG_CONFIG_HOME}" "${XDG_DATA_HOME}"
chmod 700 "${XDG_CACHE_HOME}"
# prepare repository
mkdir -p ${LOCAL_GIT_DIR}
rm -rf ${LOCAL_GIT_DIR}/dotfiles
git clone https://git.insomniac.pl/ftpd/dotfiles $LOCAL_GIT_DIR/dotfiles
mkdir -p "${LOCAL_GIT_DIR}"
rm -rf "${LOCAL_GIT_DIR}/dotfiles"
git clone https://git.insomniac.pl/ftpd/dotfiles "${LOCAL_GIT_DIR}/dotfiles"
# zsh modules
mkdir -p ${LOCAL_GIT_DIR}/zsh_modules
rm -rf ${LOCAL_GIT_DIR}/zsh_modules/*
for module in mfaerevaag/wd romkatv/powerlevel10k zdharma-continuum/fast-syntax-highlighting; do
git clone https://github.com/${module} $LOCAL_GIT_DIR/zsh_modules/${module#*/}
mkdir -p "${LOCAL_GIT_DIR}/zsh_modules"
for module in Aloxaf/fzf-tab mfaerevaag/wd romkatv/powerlevel10k zdharma-continuum/fast-syntax-highlighting; do
rm -rf "${LOCAL_GIT_DIR}/zsh_modules/${module#*/}"
git clone https://github.com/${module} "${LOCAL_GIT_DIR}/zsh_modules/${module#*/}"
done
# configs
for i in ${LOCAL_GIT_DIR}/dotfiles/config/*; do
rm -rf ${XDG_CONFIG_HOME}/$(basename $i)
ln -sf ${LOCAL_GIT_DIR}/dotfiles/config/$(basename $i) ${XDG_CONFIG_HOME}/
for i in "${LOCAL_GIT_DIR}"/dotfiles/config/*; do
rm -rf "${XDG_CONFIG_HOME:?}/$(basename "${i}")"
ln -sf "${LOCAL_GIT_DIR}/dotfiles/config/$(basename "${i}")" "${XDG_CONFIG_HOME}/"
done
# execute post-install script
printf "Running post-install script... "
. ${LOCAL_GIT_DIR}/dotfiles/scripts/post-install.sh
. "${LOCAL_GIT_DIR}/dotfiles/scripts/post-install.sh"
echo "done."

View File

@ -1,13 +1,4 @@
#!/bin/sh
# basic git configuration
if [ ! -d "${XDG_CONFIG_HOME}/git" ]; then
mkdir -p "${XDG_CONFIG_HOME}/git"
cat << EOF > "${XDG_CONFIG_HOME}/git/config"
[pull]
rebase = true
EOF
fi
# nvim setup
nvim -c "lua require('lazy').sync({wait = true})" -c "MasonInstallAll"