Compare commits

...

15 Commits

17 changed files with 187 additions and 257 deletions

6
.gitattributes vendored
View File

@@ -219,3 +219,9 @@ git/* text
**/git/* text
**/alias text
ssh/* text
# Git Crypt special files
*-secret filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secrets/** filter=git-crypt diff=git-crypt

1
.gitignore vendored
View File

@@ -8,6 +8,7 @@ config/fzf
config/cheat/cheatsheets/pure-bash-bible/*
config/cheat/cheatsheets/tldr/*
config/git/credentials
config/zsh/.zcompdump
ssh/local.d/*
!ssh/local.d/.gitkeep
!.gitkeep

View File

@@ -18,7 +18,7 @@ include:
- ./**/*.{yml,yaml}
exclude:
- ./dotbot/**
- ./dotbot-*/**
- ./tools/dotbot/**
- ./tools/dotbot-*/**
- ./config/astronvim/**
- ./config/nvim/**

View File

@@ -104,6 +104,8 @@ brew "editorconfig-checker"
brew "eg-examples"
# Run arbitrary commands when files change
brew "entr"
# Perl lib for reading and writing EXIF metadata
brew "exiftool"
# Simple, fast and user-friendly alternative to find
brew "fd"
# Banner-like program prints strings as ASCII art
@@ -122,6 +124,8 @@ brew "gdu"
brew "gh"
# Distributed revision control system
brew "git"
# Enable transparent encryption/decryption of files in a git repo
brew "git-crypt"
# Small git utilities
brew "git-extras"
# See your latest local git branches, formatted real fancy
@@ -142,6 +146,8 @@ brew "gnupg"
brew "go"
# Library access to GnuPG
brew "gpgme"
# Manage your GnuPG keys with ease!
brew "gpg-tui"
# Image manipulation
brew "netpbm"
# C/C++ and Java libraries for Unicode and globalization
@@ -276,6 +282,8 @@ brew "wget"
brew "wtfutil"
# Check your $HOME for unwanted files and directories
brew "xdg-ninja"
# Hackable, minimal, fast TUI file explorer
brew "xplr"
# JavaScript package manager
brew "yarn"
# A vulnerability scanner for container images and filesystems

1
base/zshenv Normal file
View File

@@ -0,0 +1 @@
ZDOTDIR=~/.config/zsh

View File

@@ -3,60 +3,8 @@
# this is my zsh config. there are many like it, but this one is mine.
# shellcheck shell=bash
export ZDOTDIR="$HOME/.local/state/zsh"
export ZDOTDIR="$HOME/.config/zsh/"
mkdir -p "$ZDOTDIR"
autoload -U colors zsh/terminfo
colors
setopt correct
# Add completion scripts to zsh path
FPATH="~/.config/zsh/completion:$FPATH"
autoload -Uz compinit && compinit -i
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
# Defaults
export DOTFILES="$HOME/.dotfiles"
# shellcheck source=shared.sh
source "$DOTFILES/scripts/shared.sh"
# Run x-load-configs in your terminal to reload the files.
function x-load-configs()
{
# Load the shell dotfiles, and then some:
for file in $DOTFILES/config/{exports,alias,functions}; do
[ -f "$file" ] && source "$file"
[ -f "$file-secret" ] && source "$file-secret"
[ -f "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
[ -f "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
done
}
x-load-configs
# Import ssh keys in keychain
ssh-add -A 2>/dev/null;
# Try to load antigen, if present
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
# antigen is present
have antigen && {
antigen use oh-my-zsh
# config/functions
x-default-antigen-bundles
antigen apply
}
# starship is present
have starship && eval "$(starship init zsh)"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh ] \
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh
export LESSHISTFILE="$XDG_CACHE_HOME"/less_history
# Fig post block. Keep at the bottom of this file.
[[ -f "$HOME/.fig/shell/zshrc.post.zsh" ]] && builtin source "$HOME/.fig/shell/zshrc.post.zsh"

View File

@@ -1,3 +1,4 @@
-- luacheck: globals vim
return {
-- Configure AstroNvim updates
updater = {
@@ -78,6 +79,32 @@ return {
-- augroups/autocommands and custom filetypes also this just pure lua so
-- anything that doesn't fit in the normal config locations above can go here
polish = function()
local function yaml_ft(path, bufnr)
-- get content of buffer as string
local content = vim.filetype.getlines(bufnr)
if type(content) == "table" then content = table.concat(content, "\n") end
-- check if file is in roles, tasks, or handlers folder
local path_regex = vim.regex "(tasks\\|roles\\|handlers)/"
if path_regex and path_regex:match_str(path) then return "yaml.ansible" end
-- check for known ansible playbook text and if found, return yaml.ansible
local regex = vim.regex "hosts:\\|tasks:"
if regex and regex:match_str(content) then return "yaml.ansible" end
-- return yaml if nothing else
return "yaml"
end
vim.filetype.add {
extension = {
yml = yaml_ft,
yaml = yaml_ft,
},
}
require("notify").setup({
background_colour = "#000000",
})
-- Set up custom filetypes
-- vim.filetype.add {
-- extension = {

View File

@@ -17,12 +17,33 @@ return {
end,
desc = "Pick to close",
},
-- tables with the `name` key will be registered with which-key if it's installed
-- this is useful for naming menus
-- tables with the `name` key will be registered with which-key
-- if it's installed this is useful for naming menus
["<leader>b"] = { name = "Buffers" },
-- quick save
-- ["<C-s>"] = { ":w!<cr>", desc = "Save File" }, -- change description but the same command
["<leader>P"] = { ":Telescope projects<cr>", desc = "Update Projects listing" },
-- quick save (change description)
["<C-s>"] = { ":w!<cr>", desc = "Save File" },
["<leader>P"] = {
":Telescope projects<cr>",
desc = "Update Projects listing"
},
-- close_buffers
['<leader>bch'] = {
"<CMD>lua require('close_buffers').delete({type = 'hidden'})<CR>",
desc = "Delete hidden buffers"
},
-- comment-box
["<leader>bb"] = {
"<cmd>lua require('comment-box').lbox()<cr>",
desc = "Left aligned fixed size box with left aligned text"
},
["<leader>bc"] = {
"<cmd>lua require('comment-box').ccbox()<cr>",
desc = "Centered adapted box with centered text"
},
["<leader>bl"] = {
"<cmd>lua require('comment-box').cline()<cr>",
desc = "Centered line"
},
},
t = {
-- setting a mapping to false will disable it

View File

@@ -34,13 +34,14 @@ return {
position = "bottom"
}
},
{ import = "astrocommunity.debugging.telescope-dap-nvim" },
{ import = "astrocommunity.editing-support.comment-box-nvim" },
{ import = "astrocommunity.editing-support.refactoring-nvim" },
{ import = "astrocommunity.editing-support.neogen" },
{ import = "astrocommunity.editing-support.nvim-regexplainer" },
{ import = "astrocommunity.editing-support.todo-comments-nvim" },
{ import = "astrocommunity.indent.mini-indentscope" },
{ import = "astrocommunity.markdown-and-latex.glow-nvim" },
{ import = "astrocommunity.lsp.lsp-signature-nvim" },
{ import = "astrocommunity.motion.harpoon" },
{ import = "astrocommunity.pack.ansible" },
{ import = "astrocommunity.pack.bash" },

View File

@@ -1,3 +1,4 @@
-- luacheck: globals vim
return {
-- You can also add new plugins here as well:
-- Add plugins, the lazy syntax
@@ -21,21 +22,41 @@ return {
mode = "cursor", -- cursor, or topline
},
},
{ "kazhala/close-buffers.nvim" },
{
"folke/edgy.nvim",
event = "VeryLazy",
dependencies = {
{
'nvim-neo-tree/neo-tree.nvim',
config = function()
require('neo-tree').setup({
open_files_do_not_replace_types = {
'terminal', 'Trouble', 'qf', 'edgy'
},
})
end,
},
{
'simrat39/symbols-outline.nvim',
config = function()
require('symbols-outline').setup()
end,
},
},
init = function()
vim.opt.laststatus = 3
vim.opt.splitkeep = "screen"
end,
opts = {
bottom = {
-- toggleterm / lazyterm at the bottom with a height of 40% of the screen
-- toggleterm / lazyterm at the bottom with
-- a height of 40% of the screen
{
ft = "toggleterm",
size = { height = 0.4 },
-- exclude floating windows
filter = function(buf, win)
filter = function(_, win)
return vim.api.nvim_win_get_config(win).relative == ""
end,
},
@@ -69,15 +90,6 @@ return {
end,
size = { height = 0.5 },
},
{
title = "Neo-Tree Git",
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "git_status"
end,
pinned = true,
open = "Neotree position=right git_status",
},
{
title = "Neo-Tree Buffers",
ft = "neo-tree",
@@ -87,11 +99,6 @@ return {
pinned = true,
open = "Neotree position=top buffers",
},
-- {
-- ft = "Outline",
-- pinned = true,
-- open = "SymbolsOutlineOpen",
-- },
-- any other neo-tree windows
"neo-tree",
},

View File

@@ -31,10 +31,10 @@ digga()
dig +nocmd "$1" any +multiline +noall +answer
}
# Rector project to php version 8.0 by default.
# Rector project to php version 8.2 by default.
rector()
{
local php="${1:-80}"
local php="${1:-82}"
docker run -v "$(pwd)":/project rector/rector:latest process \
"/project/$1" \
--set "php${php}" \
@@ -100,7 +100,7 @@ x-default-antigen-bundles()
have docker-compose && antigen bundle sroze/docker-compose-zsh-plugin
have jq && antigen bundle reegnz/jq-zsh-plugin
have nvm && antigen bundle nvm
have nvm && antigen bundle $DOTFILES/config/zsh/plugins/nvm-auto-use
have nvm && antigen bundle "$DOTFILES/config/zsh/plugins/nvm-auto-use"
have php && antigen bundle php
have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
have rvm && antigen bundle unixorn/rvm-plugin

View File

@@ -0,0 +1,32 @@
[general]
splash = false
tick_rate = 250
color = "gray"
style = "plain"
file_explorer = "xplr"
detail_level = "minimum"
# key_bindings = [
# { keys = [ "?" ], command = ":help" },
# { keys = [ "o" ], command = ":options" },
# { keys = [ "n" ], command = ":normal" },
# { keys = [ "v" ], command = ":visual" },
# { keys = [ "c" ], command = ":copy" },
# { keys = [ "p", "C-v" ], command = ":paste" },
# { keys = [ "x" ], command = ":export" },
# { keys = [ "s" ], command = ":set prompt :sign" },
# { keys = [ "e" ], command = ":set prompt :edit" },
# { keys = [ "i" ], command = ":set prompt :import"},
# { keys = [ "f" ], command = ":set prompt :receive" },
# { keys = [ "u" ], command = ":set prompt :send" },
# { keys = [ "g" ], command = ":generate" },
# { keys = [ "d", "backspace" ], command = ":delete" },
# { keys = [ "C-r" ], command = ":refresh" },
# ]
[gpg]
armor = false
# homedir = "~/.gnupg"
# outdir = "~/.gnupg/out"
# outfile = "{type}_{query}.{ext}"
# default_key = "0xA1B2C3XY"

52
config/zsh/.zshrc Normal file
View File

@@ -0,0 +1,52 @@
autoload -U colors zsh/terminfo
colors
setopt correct
# Add completion scripts to zsh path
FPATH="~/.config/zsh/completion:$FPATH"
autoload -Uz compinit && compinit -i
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
# Defaults
export DOTFILES="$HOME/.dotfiles"
# shellcheck source=shared.sh
source "$DOTFILES/scripts/shared.sh"
# Run x-load-configs in your terminal to reload the files.
function x-load-configs()
{
# Load the shell dotfiles, and then some:
for file in $DOTFILES/config/{exports,alias,functions}; do
[ -f "$file" ] && source "$file"
[ -f "$file-secret" ] && source "$file-secret"
[ -f "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
[ -f "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
done
}
x-load-configs
# Import ssh keys in keychain
ssh-add -A 2>/dev/null;
# Try to load antigen, if present
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
# antigen is present
have antigen && {
antigen use oh-my-zsh
# config/functions
x-default-antigen-bundles
antigen apply
}
# starship is present
have starship && eval "$(starship init zsh)"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh ] \
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh
export LESSHISTFILE="$XDG_CACHE_HOME"/less_history

View File

@@ -1,174 +0,0 @@
#compdef nb
###############################################################################
# __ _
# \ \ _ __ | |__
# \ \ | '_ \| '_ \
# / / | | | | |_) |
# /_/ |_| |_|_.__/
#
# [nb] Command line and local web note-taking, bookmarking, and archiving with
# plain text data storage, encryption, filtering and search, pinning, #tagging,
# Git-backed versioning and syncing, Pandoc-backed conversion, global and local
# notebooks, customizable color themes, [[wiki-style linking]], plugins, and
# more in a single portable, user-friendly script.
#
# https://github.com/xwmx/nb
###############################################################################
_nb_subcommands() {
# _nb_cache_completions()
#
# Usage:
# _nb_cache_completions <path>
#
# Description:
# Cache completions for `nb`. Generating completions can be slow and
# native shell caching doesn't appear to help.
_nb_cache_completions() {
local _cache_path="${1:-}"
[[ -z "${_cache_path:-}" ]] && return 0
# Remove outdated cache files.
local _base_cache_path="${_cache_path%-*}"
local __suffix=
for __suffix in "zsh" "v1"
do
if [[ -e "${_base_cache_path:?}-${__suffix:?}" ]]
then
rm -f "${_base_cache_path:?}-${__suffix:?}"
fi
done
# Rebuild completion cache.
local _commands=
IFS=$'\n' _commands=($(nb subcommands))
local _notebooks=
IFS=$'\n' _notebooks=($(nb notebooks --names --no-color --unarchived))
local _completions=()
IFS=$'\n' _completions=(${_commands[@]})
local _commands_cached=
local _notebooks_cached=
if [[ -e "${_cache_path}" ]]
then
local _counter=0
local __line=
while IFS= read -r __line
do
_counter=$((_counter+1))
if [[ "${_counter}" == 1 ]]
then
_commands_cached="${__line}"
elif [[ "${_counter}" == 2 ]]
then
_notebooks_cached="${__line}"
else
break
fi
done < "${_cache_path}"
fi
if [[ "${_commands_cached}" != "${_commands[*]:-}" ]] ||
[[ "${_notebooks_cached}" != "${_notebooks[*]:-}" ]]
then
# Construct <notebook>:<subcommand> completions.
local __notebook=
for __notebook in "${_notebooks[@]}"
do
local __command=
for __command in "${_commands[@]}"
do
if [[ -n "${__notebook:-}" ]] &&
[[ -n "${__command:-}" ]]
then
_completions+=("${__notebook}:${__command}")
fi
done
done
local _directory_path=
_directory_path="$(dirname "${_cache_path}")"
mkdir -p "${_directory_path}"
if [[ -f "${_cache_path:?}" ]]
then
rm -f "${_cache_path:?}"
fi
touch "${_cache_path:?}"
{
(IFS=$' '; printf "%s\\n" "${_commands[*]}")
(IFS=$' '; printf "%s\\n" "${_notebooks[*]}")
printf "%s\\n" "${_completions[@]}"
} >> "${_cache_path}"
fi
}
local _nb_dir=
_nb_dir="$(nb env | grep 'NB_DIR' | cut -d = -f 2)"
if [[ -z "${_nb_dir:?}" ]] ||
[[ ! -e "${_nb_dir}" ]]
then
return 0
elif [[ -L "${_nb_dir}" ]]
then
if hash "realpath" 2>/dev/null
then
_nb_dir="$(realpath "${_nb_dir}")"
else
_nb_dir="$(readlink "${_nb_dir}")"
fi
fi
if [[ ! -d "${_nb_dir}" ]]
then
return 0
fi
local _cache_path="${_nb_dir:?}/.cache/nb-completion-cache-v2"
local _completions_cached=()
if [[ ! -e "${_cache_path}" ]]
then
_nb_cache_completions "${_cache_path}"
fi
if [[ -e "${_cache_path}" ]]
then
local _counter=0
local __line=
while IFS= read -r __line
do
_counter=$((_counter+1))
if [[ "${_counter}" -gt 2 ]]
then
_completions_cached+=("${__line}")
fi
done < "${_cache_path}"
(_nb_cache_completions "${_cache_path}" &)
fi
if [[ "${?}" -eq 0 ]]
then
compadd -- "${_completions_cached[@]}"
return 0
else
return 1
fi
}
_nb_subcommands "$@"

View File

@@ -18,7 +18,7 @@ RESET='\033[0m'
# Print time-based personalized message, using figlet & lolcat if availible
function welcome_greeting () {
h=$(date +%H)
if [ "$h" -lt 04 ] || [[ $h -gt 22 ]];
if [ "$h" -lt 04 ] || [ "$h" -gt 22 ];
then greeting="Good Night"
elif [ "$h" -lt 12 ];
then greeting="Good morning"
@@ -41,7 +41,7 @@ function welcome_greeting () {
function welcome_sysinfo () {
if hash neofetch 2>/dev/null; then
neofetch --shell_version off \
--disable kernel distro shell resolution de wm wm_theme theme icons terminal \
--disable kernel distro shell resolution cpu gpu de wm wm_theme theme icons terminal \
--backend off \
--colors 4 8 4 4 8 6 \
--color_blocks off \

BIN
secrets/.gitkeep Normal file

Binary file not shown.