Compare commits

...

24 Commits

Author SHA1 Message Date
622c8f991a chore(alias): wget 2023-11-07 07:20:44 +02:00
88894a33a5 feat(dfm): install latest lts node with nvm-latest 2023-11-07 07:20:02 +02:00
acbfd34e7d chore: paths and tweaks 2023-11-06 14:57:01 +02:00
bac03a0b7b chore(config): path additions 2023-11-06 10:40:45 +02:00
a96bf921a2 chore(scripts): backup scripts tweaks and license 2023-11-02 23:44:27 +02:00
b5df60851f chore(deps): updated yarn packages 2023-11-01 14:46:44 +02:00
2e682c58fa chore(deps): updated brewfile 2023-11-01 14:46:30 +02:00
cb28e274ca feat(config): amethyst 2023-11-01 14:46:14 +02:00
4572c42eea feat: x-path-* as scripts, run other changes 2023-11-01 14:45:03 +02:00
cec1edb269 feat: git-fsck-dirs, validate git repo objects 2023-10-31 13:08:04 +02:00
bfe7e93b60 chore(lint): run prettier to all files 2023-10-30 14:44:46 +02:00
1b80c8b7ed feat: from individual npm configs to meta pkg 2023-10-30 14:26:52 +02:00
c7c3493259 feat: git-update-dirs, update subdir repos 2023-10-30 14:24:08 +02:00
0e797d36ae chore(nvim): added leap & dot from lazyvim extras 2023-10-30 14:22:35 +02:00
renovate[bot]
0beb386f4a chore(deps): update dependency @ivuorinen/prettier-config to ^0.2.0 (#15) 2023-10-29 09:42:36 +02:00
renovate[bot]
cc0e668cd9 chore(deps): update dependency @ivuorinen/markdownlint-config to ^0.2.0 (#14) 2023-10-29 09:40:28 +02:00
renovate[bot]
d6f7aecf6c chore(deps): update dependency @ivuorinen/commitlint-config to ^0.2.0 (#12) 2023-10-29 09:36:42 +02:00
renovate[bot]
5253b69e37 chore(deps): update dependency @ivuorinen/eslint-config to ^0.3.0 (#13) 2023-10-29 09:32:37 +02:00
12080f59e1 feat(repo): delete and ignore nvim lazy-lock.json
this file causes too much noise to the repo, and should be per-machine
managed. starting nvim already generates this, and the state is always
going to change.
2023-10-25 09:42:24 +03:00
614827a877 chore(deps): update nvim dependencies 2023-10-24 08:16:02 +03:00
09343033ec chore(deps): update nvim packages 2023-10-19 16:14:58 +03:00
c24f51adb9 chore(deps): update brew packages 2023-10-19 16:14:58 +03:00
1a74cf78c1 chore(dfm): added messages to each install command 2023-10-19 13:28:59 +03:00
e31948dcc5 feat(shell): oh-my-bash for bash 2023-10-19 13:27:41 +03:00
31 changed files with 3512 additions and 653 deletions

1
.browserslistrc Normal file
View File

@@ -0,0 +1 @@
extends @ivuorinen/browserslist-config

View File

@@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our Examples of behavior that contributes to a positive environment for our
community include: community include:
* Demonstrating empathy and kindness toward other people - Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences - Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback - Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, - Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience and learning from the experience
* Focusing on what is best not just for us as individuals, but for the - Focusing on what is best not just for us as individuals, but for the
overall community overall community
Examples of unacceptable behavior include: Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or - The use of sexualized language or imagery, and sexual attention or
advances of any kind advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks - Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment - Public or private harassment
* Publishing others' private information, such as a physical or email - Publishing others' private information, such as a physical or email
address, without their explicit permission address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a - Other conduct which could reasonably be considered inappropriate in a
professional setting professional setting
## Enforcement Responsibilities ## Enforcement Responsibilities

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
Brewfile.lock.json Brewfile.lock.json
config/nvim/lazy-lock.json
*.log *.log
*-secret *-secret
*cache *cache

View File

@@ -1 +0,0 @@
"@ivuorinen/prettier-config"

3
.releaserc.json Normal file
View File

@@ -0,0 +1,3 @@
{
"extends": ["@ivuorinen/semantic-release-config"]
}

92
base/bashrc Executable file → Normal file
View File

@@ -3,9 +3,6 @@
# Defaults # Defaults
export DOTFILES="$HOME/.dotfiles" export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/.local/bin:$HOME/.dotfiles/local/bin:$HOME/.local/go/bin:$PATH"
# shellcheck source=scripts/shared.sh
source "$DOTFILES/scripts/shared.sh"
# Explicitly set XDG folders # Explicitly set XDG folders
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html # https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
@@ -18,5 +15,94 @@ export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache" export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run" export XDG_RUNTIME_DIR="$HOME/.local/run"
# Paths
export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$HOME/.local/go/bin:$XDG_DATA_HOME/cargo/bin:$PATH"
# shellcheck source=scripts/shared.sh
# source "$DOTFILES/scripts/shared.sh"
source "$DOTFILES/config/exports"
source "$DOTFILES/config/alias"
# shellcheck source=../config/fzf/fzf.bash
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
source "${DOTFILES}/config/fzf/fzf.bash"
# Import ssh keys in keychain # Import ssh keys in keychain
ssh-add -A 2>/dev/null ssh-add -A 2>/dev/null
# Enable the subsequent settings only in interactive sessions
case $- in
*i*) ;;
*) return ;;
esac
# Path to your oh-my-bash installation.
export OSH="$HOME/.local/share/oh-my-bash"
[ -d "$OSH" ] && {
export OSH_THEME="powerline-multiline"
# PowerLine theme config
export POWERLINE_LEFT_PROMPT="cwd scm"
export POWERLINE_RIGHT_PROMPT="python_venv ruby in_vim battery user_info"
# Display red dots whilst waiting for completion.
export COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
export DISABLE_UNTRACKED_FILES_DIRTY="true"
# To disable the uses of "sudo" by oh-my-bash, please set "false" to
# this variable. The default behavior for the empty value is "true".
export OMB_USE_SUDO=true
# To enable/disable display of Python virtualenv and condaenv
export OMB_PROMPT_SHOW_PYTHON_VENV=true # enable
# OMB_PROMPT_SHOW_PYTHON_VENV=false # disable
# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*)
# Custom completions may be added to ~/.oh-my-bash/custom/completions/
# Example format: completions=(ssh git bundler gem pip pip3)
# Add wisely, as too many completions slow down shell startup.
export completions=(
git
composer
ssh
)
# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*)
# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/
# Example format: aliases=(vagrant composer git-avh)
# Add wisely, as too many aliases slow down shell startup.
export aliases=(
general
)
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
export plugins=(
git
bashmarks
)
# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format:
# if [ "$DISPLAY" ] || [ "$SSH" ]; then
# plugins+=(tmux-autoattach)
# fi
source "$OSH/oh-my-bash.sh"
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
}

View File

@@ -16,3 +16,4 @@ export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache" export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run" export XDG_RUNTIME_DIR="$HOME/.local/run"
source "$DOTFILES/config/exports"

View File

@@ -1,6 +1,25 @@
# this is my zsh config. there are many like it, but this one is mine. # this is my zsh config. there are many like it, but this one is mine.
# shellcheck shell=bash # shellcheck shell=bash
export DOTFILES="$HOME/.dotfiles"
# Explicitly set XDG folders
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
# custom variables
export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run"
export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$HOME/.local/go/bin:$XDG_DATA_HOME/cargo/bin:$PATH"
source "$DOTFILES/config/exports"
source "$DOTFILES/config/alias"
source "$DOTFILES/config/functions"
source "$DOTFILES/scripts/shared.sh" source "$DOTFILES/scripts/shared.sh"
export COMPLETION_WAITING_DOTS=true export COMPLETION_WAITING_DOTS=true
@@ -17,11 +36,6 @@ path_prepend "$XDG_BIN_HOME"
path_prepend "$HOME/.local/go/bin" path_prepend "$HOME/.local/go/bin"
path_prepend "$XDG_DATA_HOME/bob/nvim-bin" path_prepend "$XDG_DATA_HOME/bob/nvim-bin"
source "$DOTFILES/config/exports-shell"
source "$DOTFILES/config/exports-apps"
source "$DOTFILES/config/alias"
source "$DOTFILES/config/functions"
export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion" export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion"
x-dc "$ZSH_CUSTOM_COMPLETION_PATH" x-dc "$ZSH_CUSTOM_COMPLETION_PATH"

View File

@@ -6,9 +6,9 @@ DOTFILES="$HOME/.dotfiles"
# Get installed php versions from brew and setup aliases # Get installed php versions from brew and setup aliases
function x-set-php-aliases function x-set-php-aliases
{ {
have brew && { x-have brew && {
local php_versions=() local php_versions=()
while IFS="" read -r line; do php_versions+=("$line"); done < <(brew_installed | grep '^php') while IFS="" read -r line; do php_versions+=("$line"); done < <(bkt -- brew list | grep '^php')
php_error_reporting='-d error_reporting=22527' php_error_reporting='-d error_reporting=22527'
@@ -61,8 +61,8 @@ alias please="sudo "
# Color the grep output # Color the grep output
alias grep='grep --color' alias grep='grep --color'
! have eza && alias ls='ls --color=auto' ! x-have eza && alias ls='ls --color=auto'
have eza && { x-have eza && {
alias ls='eza -h -s=type --git --icons --group-directories-first' alias ls='eza -h -s=type --git --icons --group-directories-first'
} }
@@ -144,7 +144,7 @@ if [[ -f "$HOME/.aliases.local" ]]; then
source "$HOME/.aliases.local" source "$HOME/.aliases.local"
fi fi
alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts" alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts"
alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion" alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion"
# Alacritty preexec hook to update dynamic title # Alacritty preexec hook to update dynamic title

View File

@@ -0,0 +1,320 @@
# Default settings for amethyst
# Repo: `https://github.com/ianyh/Amethyst`
#
# Note due to issue 1419 (https://github.com/ianyh/Amethyst/issues/1419) some
# config values may conflict and not work if they are the same as the default
# values for amathyst. You can see these values on github at
# https://github.com/ianyh/Amethyst/blob/development/Amethyst/default.amethyst
# If you're experiencing conflicts and the settings are the same as the default,
# comment out the commands in this file.
#
# Move this file to: `~/.amethyst.yml`
# In order to register changes restart Amethyst.
# If you experience issues pulling in the changes you can also quit Amethyst and run: `defaults delete com.amethyst.Amethyst.plist`
# This removes the current preferences and causes Amethyst to restart with default preferences and pull configs from this file.
# layouts - Ordered list of layouts to use by layout key (default tall, wide, fullscreen, and column).
layouts:
- bsp
- tall
# - fullscreen
# - tall-right
# - wide
# - two-pane
# - middle-wide
- 3column-left
# - 3column-middle
# - 3column-right
# - 4column-left
# - 4column-right
# - column
# - row
# - floating
- widescreen-tall
# - widescreen-tall-right
# - bsp
# First mod (default option + shift).
mod1:
- option
- shift
# - control
# - command
# Second mod (default option + shift + control).
mod2:
- option
- shift
- control
# - command
# Commands:
# special key values
# space
# enter
# up
# right
# down
# left
# special characters require quotes
# '.'
# ','
# Move to the next layout in the list.
cycle-layout:
mod: mod1
key: space
# Move to the previous layout in the list.
cycle-layout-backward:
mod: mod2
key: space
# Shrink the main pane by a percentage of the screen dimension as defined by window-resize-step. Note that not all layouts respond to this command.
shrink-main:
mod: mod1
key: h
# Expand the main pane by a percentage of the screen dimension as defined by window-resize-step. Note that not all layouts respond to this command.
expand-main:
mod: mod1
key: l
# Increase the number of windows in the main pane. Note that not all layouts respond to this command.
increase-main:
mod: mod1
key: ','
# Decrease the number of windows in the main pane. Note that not all layouts respond to this command.
decrease-main:
mod: mod1
key: '.'
# General purpose command for custom layouts. Functionality is layout-dependent.
# command1:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts. Functionality is layout-dependent.
# command2:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts. Functionality is layout-dependent.
# command3:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts. Functionality is layout-dependent.
# command4:
# mod: <NONE>
# key: <NONE>
# Focus the next window in the list going counter-clockwise.
focus-ccw:
mod: mod1
key: j
# Focus the next window in the list going clockwise.
focus-cw:
mod: mod1
key: k
# Focus the main window in the list.
focus-main:
mod: mod1
key: m
# Focus the next screen in the list going counter-clockwise.
focus-screen-ccw:
mod: mod1
key: p
# Focus the next screen in the list going clockwise.
focus-screen-cw:
mod: mod1
key: n
# Move the currently focused window onto the next screen in the list going counter-clockwise.
swap-screen-ccw:
mod: mod2
key: h
# Move the currently focused window onto the next screen in the list going clockwise.
swap-screen-cw:
mod: mod2
key: l
# Swap the position of the currently focused window with the next window in the list going counter-clockwise.
swap-ccw:
mod: mod2
key: j
# Swap the position of the currently focused window with the next window in the list going clockwise.
swap-cw:
mod: mod2
key: k
# Swap the position of the currently focused window with the main window in the list.
swap-main:
mod: mod1
key: enter
# Move focus to the n-th screen in the list; e.g., focus-screen-3 will move mouse focus to the 3rd screen. Note that the main window in the given screen will be focused.
#focus-screen-n:
# focus-screen-<screen-number>:
# mod: mod1
# key: y
# Move the currently focused window to the n-th screen; e.g., throw-screen-3 will move the window to the 3rd screen.
# throw-screen-n:
# throw-screen-<screen-number>:
# mod: mod1
# key: u
# Move the currently focused window to the n-th space; e.g., throw-space-3 will move the window to the 3rd space.
# throw-space-<screen-number>:
# mod: mod1
# key: i
# Select tall layout
#select-tall-layout:
# mod: mod1
# key: a
# Select wide layout
#select-wide-layout:
# mod: mod1
# key: s
# Select fullscreen layout
select-fullscreen-layout:
mod: mod1
key: d
# Select column layout
select-column-layout:
mod: mod1
key: f
# Move the currently focused window to the space to the left.
throw-space-left:
mod: mod2
key: left
# Move currently the focused window to the space to the right.
throw-space-right:
mod: mod2
key: right
# Toggle the floating state of the currently focused window; i.e., if it was floating make it tiled and if it was tiled make it floating.
toggle-float:
mod: mod1
key: t
# Display the layout HUD with the current layout on each screen.
display-current-layout:
mod: mod1
key: i
# Turn on or off tiling entirely.
toggle-tiling:
mod: mod1
key: t
# Rerun the current layout's algorithm.
reevaluate-windows:
mod: mod1
key: z
# Turn on or off focus-follows-mouse.
toggle-focus-follows-mouse:
mod: mod2
key: x
# Automatically quit and reopen Amethyst.
relaunch-amethyst:
mod: mod2
key: z
# disable screen padding on builtin display
disable-padding-on-builtin-display: false
# Boolean flag for whether or not to add margins betwen windows (default false).
window-margins: false
# Boolean flag for whether or not to set window margins if there is only one window on the screen, assuming window margins are enabled (default false).
smart-window-margins: true
# # Add 10px margin between windows
# window-margins: true
# window-margin-size: 5
# The size of the margins between windows (in px, default 0).
window-margin-size: 0
# The max number of windows that may be visible on a screen at one time before
# additional windows are minimized. A value of 0 disables the feature.
window-max-count: 0
# The smallest height that a window can be sized to regardless of its layout frame (in px, default 0).
window-minimum-height: 0
# The smallest width that a window can be sized to regardless of its layout frame (in px, default 0)
window-minimum-width: 0
# List of bundle identifiers for applications to either be automatically floating or automatically tiled based on floating-is-blacklist (default []).
floating: []
# Boolean flag determining behavior of the floating list.
# true if the applications should be floating and all others tiled. false if the applications should be tiled and all others floating (default true).
floating-is-blacklist: false
# true if screen frames should exclude the status bar. false if the screen frames should include the status bar (default false).
ignore-menu-bar: false
# true if windows smaller than a 500px square should be floating by default (default true)
float-small-windows: true
# true if the mouse should move position to the center of a window when it becomes focused (default false). Note that this is largely incompatible with focus-follows-mouse.
mouse-follows-focus: false
# true if the windows underneath the mouse should become focused as the mouse moves (default false). Note that this is largely incompatible with mouse-follows-focus
focus-follows-mouse: false
# true if dragging and dropping windows on to each other should swap their positions (default false).
mouse-swaps-windows: true
# true if changing the frame of a window with the mouse should update the layout to accommodate the change (default false). Note that not all layouts will be able to respond to the change.
mouse-resizes-windows: true
# true to display the name of the layout when a new layout is selected (default true).
enables-layout-hud: true
# true to display the name of the layout when moving to a new space (default true).
enables-layout-hud-on-space-change: true
# true to get updates to beta versions of the software (default false).
use-canary-build: false
# true to insert new windows into the first position and false to insert new windows into the last position (default false).
new-windows-to-main: false
# true to automatically move to a space when throwing a window to it (default true).
follow-space-thrown-windows: true
# The integer percentage of the screen dimension to increment and decrement main pane ratios by (default 5).
window-resize-step: 5
# Padding to apply between windows and the left edge of the screen (in px, default 0).
screen-padding-left: 0
# Padding to apply between windows and the right edge of the screen (in px, default 0).
screen-padding-right: 0
# Padding to apply between windows and the top edge of the screen (in px, default 0).
screen-padding-top: 0
# Padding to apply between windows and the bottom edge of the screen (in px, default 0).
screen-padding-bottom: 0
# true to maintain layout state across application executions (default true).
restore-layouts-on-launch: true
# true to display some optional debug information in the layout HUD (default false).
debug-layout-info: true

View File

@@ -0,0 +1,35 @@
/**
* Almost Maximize
* Almost maximizes the window to the screen, leaving a small margin.
*
* @author Ville Viklund <https://github.com/ville6000>
*
* @param {Object} windows - All windows in the current space.
* @param {Object} screenFrame - The frame of the current screen.
* @param {Object} state - The state of the current space.
* @param {Object} extendedFrames - The frames of the windows in the current space.
* @return {Object} - The frames for the windows in the current space.
*/
function layout() {
return {
name: 'Almost Maximize',
getFrameAssignments: (windows, screenFrame, state, extendedFrames) => {
const width = screenFrame.width * 0.95
const height = screenFrame.height * 0.95
const x = (screenFrame.width - width) / 2
const y = (screenFrame.height - height) / 2
const windowFrames = {}
windows.forEach(window => {
windowFrames[window.id] = {
Y: screenFrame.y + y,
x: screenFrame.x + x,
width,
height,
}
})
return windowFrames
},
}
}

View File

@@ -2,7 +2,61 @@
# shellcheck shell=bash # shellcheck shell=bash
# vim: filetype=zsh # vim: filetype=zsh
# if cargo directory exists, add it to path
if [[ -d "$HOME/.local/share/cargo/bin" ]]; then
export PATH="$HOME/.local/share/cargo/bin:$PATH"
fi
# Cache commands using bkt if installed
if command -v bkt >&/dev/null; then
bkt()
{
command bkt --cache-dir="$XDG_CACHE_HOME/bkt" "$@"
}
else
# If bkt isn't installed skip its arguments and just execute directly.
# Optionally write a msg to stderr suggesting users install bkt.
bkt()
{
while [[ "$1" == --* ]]; do shift; done
"$@"
}
fi
# shorthand for checking if the system has the bin in path,
# this version does not use caching
# usage: have_command php && php -v
function have_command
{
command -v "$1" >&/dev/null
}
# shorthand for checking if the system has the bin in path,
# this version uses caching
# usage: have php && php -v
function have
{
bkt -- which "$1" >&/dev/null
}
function brew_installed
{
bkt -- brew list
}
# shorthand for checking if brew package is installed
# usage: have_brew php && php -v
function have_brew
{
! have brew && return 125
if bkt -- brew list "$1" &> /dev/null; then
return 0
else
return 1
fi
}
source "$DOTFILES/config/exports-shell" source "$DOTFILES/config/exports-shell"
source "$DOTFILES/config/exports-apps" source "$DOTFILES/config/exports-apps"
have nvim && export EDITOR="nvim"

View File

@@ -21,15 +21,15 @@ x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
export ANDROID_HOME="$XDG_DATA_HOME/android" export ANDROID_HOME="$XDG_DATA_HOME/android"
# bob manages nvim versions # bob manages nvim versions
path_prepend "$XDG_DATA_HOME/bob/nvim-bin" x-path-prepend "$XDG_DATA_HOME/bob/nvim-bin"
have nvim && export EDITOR="nvim" x-have nvim && export EDITOR="nvim"
export HOMEBREW_NO_ENV_HINTS=true export HOMEBREW_NO_ENV_HINTS=true
# composer, https://getcomposer.org/ # composer, https://getcomposer.org/
export COMPOSER_HOME="$XDG_STATE_HOME/composer" export COMPOSER_HOME="$XDG_STATE_HOME/composer"
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin" export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
path_append "$COMPOSER_BIN" x-path-append "$COMPOSER_BIN"
# docker, https://docs.docker.com/engine/reference/commandline/cli/ # docker, https://docs.docker.com/engine/reference/commandline/cli/
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker" export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
@@ -39,7 +39,7 @@ export DOCKER_SCAN_SUGGEST=false
# ffmpeg # ffmpeg
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg" export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
have ffmpeg && x-dc "$FFMPEG_DATADIR" x-have ffmpeg && x-dc "$FFMPEG_DATADIR"
# GnuPG # GnuPG
export GNUPGHOME="$XDG_DATA_HOME/gnupg" export GNUPGHOME="$XDG_DATA_HOME/gnupg"
@@ -53,14 +53,14 @@ export NBRC_PATH="$XDG_CONFIG_HOME/nbrc"
export NB_DIR="$XDG_STATE_HOME/nb" export NB_DIR="$XDG_STATE_HOME/nb"
# NPM: Add npm packages to path # NPM: Add npm packages to path
have node && { x-have node && {
NVM_NODE_BIN_DIR="$(dirname "$(which node)")" NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
path_append "$NVM_NODE_BIN_DIR" x-path-append "$NVM_NODE_BIN_DIR"
} }
# op (1Password cli) is present # op (1Password cli) is present
export OP_CACHE="$XDG_STATE_HOME/1password" export OP_CACHE="$XDG_STATE_HOME/1password"
have op && { x-have op && {
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && { [ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && {
eval "$(op completion zsh)" eval "$(op completion zsh)"
compdef _op op compdef _op op
@@ -72,8 +72,8 @@ have op && {
# pyenv, python environments # pyenv, python environments
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs" export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
export PYENV_ROOT="$XDG_STATE_HOME/pyenv" export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
have pyenv && { x-have pyenv && {
path_append "$PYENV_ROOT/shims" x-path-append "$PYENV_ROOT/shims"
eval "$(pyenv init -)" eval "$(pyenv init -)"
} }
@@ -87,8 +87,8 @@ export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
export RBENV_ROOT="$XDG_STATE_HOME/rbenv" export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
x-dc "$RBENV_ROOT" x-dc "$RBENV_ROOT"
have gem && path_append "${GEM_HOME}/bin" x-have gem && x-path-append "${GEM_HOME}/bin"
have rbenv && { x-have rbenv && {
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && eval "$(rbenv init - zsh)" [ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && eval "$(rbenv init - zsh)"
[ "$DOTFILES_CURRENT_SHELL" = "bash" ] && eval "$(rbenv init - bash)" [ "$DOTFILES_CURRENT_SHELL" = "bash" ] && eval "$(rbenv init - bash)"
} }
@@ -96,7 +96,7 @@ have rbenv && {
# Rust / cargo # Rust / cargo
export RUSTUP_HOME="$XDG_DATA_HOME/rustup" export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
export CARGO_HOME="$XDG_DATA_HOME/cargo" export CARGO_HOME="$XDG_DATA_HOME/cargo"
path_append "$CARGO_HOME/bin" x-path-append "$CARGO_HOME/bin"
# screen # screen
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc" export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"

View File

@@ -54,32 +54,3 @@ export GREP_OPTIONS="--color=auto"
# update the values of LINES and COLUMNS. # update the values of LINES and COLUMNS.
hash shopt 2> /dev/null && shopt -s checkwinsize hash shopt 2> /dev/null && shopt -s checkwinsize
# Set dircolors based on the file, if it exists
have dircolors && eval $(dircolors "$XDG_CONFIG_HOME/dircolors")
# If we are using zsh, color our dir lists and such
if [ "$DOTFILES_CURRENT_SHELL" = "-zsh" ]; then
[[ $ZSH_VERSION != "" ]] && {
autoload -U colors zsh/terminfo compinit
colors
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
x-dc "$XDG_CACHE_HOME/zsh"
x-dc "$XDG_STATE_HOME/zsh"
export HISTFILE="$XDG_STATE_HOME/zsh/history"
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache"
zstyle ':completion:*' list-colors "$LS_COLORS"
# Load iterm2 shell integration
# https://iterm2.com/documentation-shell-integration.html
[[ -f "$XDG_BIN_HOME/iterm2_shell_integration.zsh" ]] \
&& source "$XDG_BIN_HOME/iterm2_shell_integration.zsh"
}
fi
# If we are using bash
if [ "$DOTFILES_CURRENT_SHELL" = "bash" ]; then
# shellcheck source=../config/fzf/fzf.bash
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
source "${DOTFILES}/config/fzf/fzf.bash"
fi

View File

@@ -18,10 +18,12 @@ tap "xwmx/taps"
brew "act" brew "act"
# Mozilla CA certificate store # Mozilla CA certificate store
brew "ca-certificates" brew "ca-certificates"
# Interpreted, interactive, object-oriented programming language
brew "python@3.11"
# YAML Parser # YAML Parser
brew "libyaml" brew "libyaml"
# Cryptography and SSL/TLS Toolkit
brew "openssl@3"
# Interpreted, interactive, object-oriented programming language
brew "python@3.11"
# Automate deployment, configuration, and upgrading # Automate deployment, configuration, and upgrading
brew "ansible" brew "ansible"
# Checks ansible playbooks for practices and behaviour # Checks ansible playbooks for practices and behaviour
@@ -103,13 +105,11 @@ brew "dog"
# Lightning-fast linter for .env files written in Rust # Lightning-fast linter for .env files written in Rust
brew "dotenv-linter" brew "dotenv-linter"
# Tool to verify that your files are in harmony with your .editorconfig # Tool to verify that your files are in harmony with your .editorconfig
brew "editorconfig-checker" brew "editorconfig-checker", link: false
# Useful examples at the command-line # Useful examples at the command-line
brew "eg-examples" brew "eg-examples"
# OpenType text shaping engine # Spellchecker wrapping library
brew "harfbuzz" brew "enchant"
# Development kit for the Java programming language
brew "openjdk"
# Run arbitrary commands when files change # Run arbitrary commands when files change
brew "entr" brew "entr"
# Perl lib for reading and writing EXIF metadata # Perl lib for reading and writing EXIF metadata
@@ -158,6 +158,8 @@ brew "gpgme"
brew "gpg-tui" brew "gpg-tui"
# Image manipulation # Image manipulation
brew "netpbm" brew "netpbm"
# OpenType text shaping engine
brew "harfbuzz"
# Framework for layout and rendering of i18n text # Framework for layout and rendering of i18n text
brew "pango" brew "pango"
# Library to render SVG files using Cairo # Library to render SVG files using Cairo
@@ -180,6 +182,8 @@ brew "hugo"
brew "libheif" brew "libheif"
# Tools and libraries to manipulate images in many formats # Tools and libraries to manipulate images in many formats
brew "imagemagick" brew "imagemagick"
# Modular IRC client
brew "irssi"
# Lightweight and flexible command-line JSON processor # Lightweight and flexible command-line JSON processor
brew "jq" brew "jq"
# Network authentication protocol # Network authentication protocol
@@ -194,12 +198,18 @@ brew "libvoikko"
brew "lolcat" brew "lolcat"
# Package manager for the Lua programming language # Package manager for the Lua programming language
brew "luarocks" brew "luarocks"
# LZMA-based compression program similar to gzip or bzip2
brew "lzip"
# Swiss Army Knife for macOS # Swiss Army Knife for macOS
brew "m-cli" brew "m-cli"
# Mac App Store command-line interface # Mac App Store command-line interface
brew "mas" brew "mas"
# Mongrel of mail user agents (part elm, pine, mush, mh, etc.)
brew "mutt"
# NCurses Disk Usage # NCurses Disk Usage
brew "ncdu" brew "ncdu"
# Ambitious Vim-fork focused on extensibility and agility
brew "neovim"
# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server # HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
brew "nginx" brew "nginx"
# Port scanning utility for large networks # Port scanning utility for large networks
@@ -210,6 +220,8 @@ brew "nvm"
brew "openjdk@11" brew "openjdk@11"
# Generate clients, server & docs from an OpenAPI spec (v2, v3) # Generate clients, server & docs from an OpenAPI spec (v2, v3)
brew "openapi-generator" brew "openapi-generator"
# Development kit for the Java programming language
brew "openjdk"
# Swiss-army knife of markup format conversion # Swiss-army knife of markup format conversion
brew "pandoc" brew "pandoc"
# Highly capable, feature-rich programming language # Highly capable, feature-rich programming language
@@ -318,6 +330,8 @@ brew "teamookla/speedtest/speedtest"
cask "1password-cli" cask "1password-cli"
# GPU-accelerated terminal emulator # GPU-accelerated terminal emulator
cask "alacritty" cask "alacritty"
# Automatic tiling window manager similar to xmonad
cask "amethyst"
# Turn audio CDs and files into audiobooks # Turn audio CDs and files into audiobooks
cask "audiobook-builder" cask "audiobook-builder"
# Text editor # Text editor
@@ -390,6 +404,8 @@ cask "rsyncosx"
cask "rsyncui" cask "rsyncui"
# MySQL/MariaDB database management # MySQL/MariaDB database management
cask "sequel-ace" cask "sequel-ace"
# Plugin for AWS CLI to start and end sessions that connect to managed instances
cask "session-manager-plugin"
# Collection of apps available by subscription # Collection of apps available by subscription
cask "setapp" cask "setapp"
# Team communication and collaboration software # Team communication and collaboration software
@@ -419,6 +435,8 @@ mas "Pages", id: 409201541
mas "Pixelmator Pro", id: 1289583905 mas "Pixelmator Pro", id: 1289583905
mas "Tailscale", id: 1475387142 mas "Tailscale", id: 1475387142
mas "Xcode", id: 497799835 mas "Xcode", id: 497799835
vscode "4ops.terraform"
vscode "adamiBs.terraform-live-graph"
vscode "akamud.vscode-theme-onelight" vscode "akamud.vscode-theme-onelight"
vscode "amiralizadeh9480.laravel-extra-intellisense" vscode "amiralizadeh9480.laravel-extra-intellisense"
vscode "andrewleedham.vscode-css-modules" vscode "andrewleedham.vscode-css-modules"
@@ -440,11 +458,14 @@ vscode "formulahendry.auto-rename-tag"
vscode "formulahendry.code-runner" vscode "formulahendry.code-runner"
vscode "foxundermoon.shell-format" vscode "foxundermoon.shell-format"
vscode "gencer.html-slim-scss-css-class-completion" vscode "gencer.html-slim-scss-css-class-completion"
vscode "GitHub.copilot"
vscode "GitHub.copilot-chat"
vscode "github.vscode-github-actions" vscode "github.vscode-github-actions"
vscode "GitHub.vscode-pull-request-github" vscode "GitHub.vscode-pull-request-github"
vscode "GraphQL.vscode-graphql" vscode "GraphQL.vscode-graphql"
vscode "GraphQL.vscode-graphql-execution" vscode "GraphQL.vscode-graphql-execution"
vscode "GraphQL.vscode-graphql-syntax" vscode "GraphQL.vscode-graphql-syntax"
vscode "hashicorp.terraform"
vscode "heybourn.headwind" vscode "heybourn.headwind"
vscode "JohnnyMorganz.stylua" vscode "JohnnyMorganz.stylua"
vscode "jumpinjackie.vscode-map-preview" vscode "jumpinjackie.vscode-map-preview"
@@ -456,6 +477,7 @@ vscode "mikestead.dotenv"
vscode "MisterJ.vue-volar-extention-pack" vscode "MisterJ.vue-volar-extention-pack"
vscode "MrChetan.phpstorm-parameter-hints-in-vscode" vscode "MrChetan.phpstorm-parameter-hints-in-vscode"
vscode "mrorz.language-gettext" vscode "mrorz.language-gettext"
vscode "ms-azuretools.vscode-azureterraform"
vscode "ms-azuretools.vscode-docker" vscode "ms-azuretools.vscode-docker"
vscode "ms-python.python" vscode "ms-python.python"
vscode "ms-python.vscode-pylance" vscode "ms-python.vscode-pylance"
@@ -465,6 +487,7 @@ vscode "ms-toolsai.vscode-jupyter-cell-tags"
vscode "ms-toolsai.vscode-jupyter-slideshow" vscode "ms-toolsai.vscode-jupyter-slideshow"
vscode "ms-vscode-remote.remote-containers" vscode "ms-vscode-remote.remote-containers"
vscode "ms-vscode-remote.remote-wsl" vscode "ms-vscode-remote.remote-wsl"
vscode "ms-vscode.azure-account"
vscode "ms-vscode.cpptools" vscode "ms-vscode.cpptools"
vscode "msjsdiag.vscode-react-native" vscode "msjsdiag.vscode-react-native"
vscode "mtxr.sqltools" vscode "mtxr.sqltools"

View File

@@ -1,5 +1,3 @@
{ {
"diagnostics.globals": [ "diagnostics.globals": ["vim"]
"vim"
]
} }

View File

@@ -1,78 +0,0 @@
{
"LazyVim": { "branch": "main", "commit": "42ba1af40fd799f3cd04d4703c6f1a5cc0e349c7" },
"LuaSnip": { "branch": "master", "commit": "0df29db3543837f8b41597f2640397c5ec792b7b" },
"SchemaStore.nvim": { "branch": "main", "commit": "f714bc7c4c94972a7d2d05a198e50370f0b5f026" },
"aerial.nvim": { "branch": "master", "commit": "ffdda791c0d739154a73af09e4ed14c9147a354b" },
"animation.nvim": { "branch": "main", "commit": "fb77091ab72ec9971aee0562e7081182527aaa6a" },
"bufdelete.nvim": { "branch": "master", "commit": "07d1f8ba79dec59d42b975a4df1c732b2e4e37b4" },
"bufferline.nvim": { "branch": "main", "commit": "357cc8f8eeb64702e6fcf2995e3b9becee99a5d3" },
"catppuccin": { "branch": "main", "commit": "dcef0a062de380885193fb0f919217d58b979753" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-emoji": { "branch": "main", "commit": "19075c36d5820253d32e2478b6aaf3734aeaafa0" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"comment-box.nvim": { "branch": "main", "commit": "dd1a48f8d06102e9b87ae1e0069bc365c006979b" },
"conform.nvim": { "branch": "master", "commit": "1281e26948fc06994e0e0cdcaafdd9bbd28929e7" },
"copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" },
"copilot.lua": { "branch": "master", "commit": "1a8032ae496916ccc7a7a52ee79194fbef29f462" },
"dashboard-nvim": { "branch": "master", "commit": "fd68b9d05aedc57e5d97a6b66a4e3db877872f64" },
"dressing.nvim": { "branch": "master", "commit": "1f2d1206a03bd3add8aedf6251e4534611de577f" },
"edgy.nvim": { "branch": "main", "commit": "8355be45610afdf79a0bab32b91ee297997455b4" },
"flash.nvim": { "branch": "main", "commit": "dc146886c3c2e0281d9221305ad589ccb43ab535" },
"friendly-snippets": { "branch": "main", "commit": "43727c2ff84240e55d4069ec3e6158d74cb534b6" },
"gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
"glance.nvim": { "branch": "master", "commit": "8ed5cf3b3b1231ea696d88c9efd977027429d869" },
"headlines.nvim": { "branch": "master", "commit": "74a083a3c32a08be24f7dfcc6f448ecf47857f46" },
"indent-blankline.nvim": { "branch": "master", "commit": "9301e434dd41154ffe5c3d5b8a5c9acd075ebeff" },
"lazy.nvim": { "branch": "main", "commit": "f73986546cadecbcc0531c14b73d4e2cd679d672" },
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "e7b64c11035aa924f87385b72145e0ccf68a7e0a" },
"mason.nvim": { "branch": "main", "commit": "cd7835b15f5a4204fc37e0aa739347472121a54c" },
"middleclass": { "branch": "master", "commit": "9fab4d5bca67262614960960ca35c4740eb2be2c" },
"mini.ai": { "branch": "main", "commit": "10ad2ed049fb681a829b44aeb23443c0a9c910ae" },
"mini.animate": { "branch": "main", "commit": "6e6f2ee99fec91985d3817bfc74fbb4a0aff1c44" },
"mini.bufremove": { "branch": "main", "commit": "75be0b153b0cd2499c031e57d44cde8dad4766e4" },
"mini.comment": { "branch": "main", "commit": "2c7a512dad27e34a26d0f7d5d5bc2579f88167dc" },
"mini.indentscope": { "branch": "main", "commit": "cbc07203ca8faae952ca373c1f6cc5881ce97af0" },
"mini.pairs": { "branch": "main", "commit": "6f6bd7ed5757b40bc29c73dac0d743e4e6978124" },
"mini.surround": { "branch": "main", "commit": "68ce058ef9716d7d955b79363845d2dd003d6500" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "6f8c49956c89e9fefae6acdfe1d57c6293b0a03d" },
"neoconf.nvim": { "branch": "main", "commit": "c87c862a14a4c8c0e2bc823d304e4da472fd7180" },
"neodev.nvim": { "branch": "main", "commit": "24b403eabde652904077f84fd55441744e77a109" },
"neogen": { "branch": "main", "commit": "cb1f384df804c1bf729332c4f728253fe17962d4" },
"noice.nvim": { "branch": "main", "commit": "e50fc6de68333633fa9eaaa54cb4cdfe7de5f25a" },
"nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" },
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
"nvim-lint": { "branch": "master", "commit": "6d596b87862909370f4d1e6535cc9fad80c89fe6" },
"nvim-lspconfig": { "branch": "master", "commit": "e49b1e90c1781ce372013de3fa93a91ea29fc34a" },
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
"nvim-regexplainer": { "branch": "main", "commit": "187f8666c2ba0fcba4ddb991e48d7229b0a58d96" },
"nvim-spectre": { "branch": "master", "commit": "696cff781a4a7ecc91549736835e2acbd00fe859" },
"nvim-treesitter": { "branch": "master", "commit": "49e71322db582147ce8f4df1853d9dab08da0826" },
"nvim-treesitter-context": { "branch": "master", "commit": "82c695951612911421e8e21068ba5fc2c2e2c212" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "78c49ca7d2f7ccba2115c11422c037713c978ad1" },
"nvim-ts-autotag": { "branch": "main", "commit": "6be1192965df35f94b8ea6d323354f7dc7a557e4" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "92e688f013c69f90c9bbd596019ec10235bc51de" },
"nvim-ufo": { "branch": "main", "commit": "f7eea53e88456403212df074b9aa3148a3908435" },
"nvim-web-devicons": { "branch": "master", "commit": "3af745113ea537f58c4b1573b64a429fefad9e07" },
"persistence.nvim": { "branch": "main", "commit": "ad538bfd5336f1335cdb6fd4e0b0eebfa6e12f32" },
"plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" },
"promise-async": { "branch": "main", "commit": "e94f35161b8c5d4a4ca3b6ff93dd073eb9214c0e" },
"statuscol.nvim": { "branch": "main", "commit": "98d02fc90ebd7c4674ec935074d1d09443d49318" },
"stickybuf.nvim": { "branch": "master", "commit": "ae746b982f9c3b6880d62f221c56ec4d7bb239f6" },
"symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" },
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
"telescope.nvim": { "branch": "master", "commit": "74ce793a60759e3db0d265174f137fb627430355" },
"todo-comments.nvim": { "branch": "main", "commit": "3094ead8edfa9040de2421deddec55d3762f64d1" },
"tokyonight.nvim": { "branch": "main", "commit": "633039585dff7fd2b9b62fb190bf768702609d95" },
"trouble.nvim": { "branch": "main", "commit": "02219b557d4726a789be58c5d6bd6e139c46a9fe" },
"venv-selector.nvim": { "branch": "main", "commit": "ff3342d4ae8723fab38fed8969b0a1e2c8b6281a" },
"vim-illuminate": { "branch": "master", "commit": "3bd2ab64b5d63b29e05691e624927e5ebbf0fb86" },
"vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" },
"vim-wakatime": { "branch": "master", "commit": "8def67a31eed4b4de3144cb8b2fc96b5e002f883" },
"which-key.nvim": { "branch": "main", "commit": "6962dae3565369363b59dd51fb206051555fcb4d" },
"windows.nvim": { "branch": "main", "commit": "c7492552b23d0ab30325e90b56066ec51242adc8" }
}

View File

@@ -2,6 +2,7 @@
"extras": [ "extras": [
"lazyvim.plugins.extras.coding.copilot", "lazyvim.plugins.extras.coding.copilot",
"lazyvim.plugins.extras.editor.aerial", "lazyvim.plugins.extras.editor.aerial",
"lazyvim.plugins.extras.editor.leap",
"lazyvim.plugins.extras.editor.symbols-outline", "lazyvim.plugins.extras.editor.symbols-outline",
"lazyvim.plugins.extras.formatting.black", "lazyvim.plugins.extras.formatting.black",
"lazyvim.plugins.extras.formatting.prettier", "lazyvim.plugins.extras.formatting.prettier",
@@ -17,6 +18,7 @@
"lazyvim.plugins.extras.linting.eslint", "lazyvim.plugins.extras.linting.eslint",
"lazyvim.plugins.extras.ui.edgy", "lazyvim.plugins.extras.ui.edgy",
"lazyvim.plugins.extras.ui.mini-animate", "lazyvim.plugins.extras.ui.mini-animate",
"lazyvim.plugins.extras.util.dot",
"lazyvim.plugins.extras.vscode" "lazyvim.plugins.extras.vscode"
], ],
"news": { "news": {

View File

@@ -42,8 +42,10 @@ function section_install
"macos:Setup nice macOS defaults" "macos:Setup nice macOS defaults"
"neofetch:Install neofetch" "neofetch:Install neofetch"
"nvm:Install Node Version Manager (nvm)" "nvm:Install Node Version Manager (nvm)"
"nvm-latest:Install latest lts node using nvm"
"npm:Install NPM Packages" "npm:Install NPM Packages"
"ntfy:Install ntfy" "ntfy:Install ntfy"
"ohmybash:Install oh-my-bash"
"pip:Install pip/python packages" "pip:Install pip/python packages"
"z:Install z" "z:Install z"
) )
@@ -56,6 +58,7 @@ function section_install
$0 install fonts $0 install fonts
$0 install antigen $0 install antigen
$0 brew install $0 brew install
$0 install ohmybash
$0 install pip $0 install pip
$0 install cargo $0 install cargo
$0 install composer $0 install composer
@@ -75,80 +78,113 @@ function section_install
msgr yay "All done!" msgr yay "All done!"
;; ;;
antigen) antigen)
msg "Installing antigen..."
curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \ curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \
&& msg_yay "New antigen installed!" && msg_yay "New antigen installed!"
;; ;;
cargo) cargo)
msg "Installing cargo packages..."
bash "$DOTFILES/scripts/install-cargo-packages.sh" \ bash "$DOTFILES/scripts/install-cargo-packages.sh" \
&& msg_yay "cargo packages installed!" && msg_yay "cargo packages installed!"
;; ;;
cheat-databases) cheat-databases)
msg "Installing cheat databases..."
for database in "$DOTFILES"/scripts/install-cheat-*; do for database in "$DOTFILES"/scripts/install-cheat-*; do
bash "$database" \ bash "$database" \
&& msg_yay "Cheat: $database run" && msg_yay "Cheat: $database run"
done done
;; ;;
composer) composer)
msg "Installing composer..."
bash "$DOTFILES/scripts/install-composer.sh" \ bash "$DOTFILES/scripts/install-composer.sh" \
&& msg_yay "composer installed!" && msg_yay "composer installed!"
;; ;;
dotenv) dotenv)
msg "Installing dotenv-linter..."
curl -sSfL \ curl -sSfL \
https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh \ https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh \
| sh -s -- -b "$XDG_BIN_HOME" \ | sh -s -- -b "$XDG_BIN_HOME" \
&& msg_yay "dotenv-linter installed!" && msg_yay "dotenv-linter installed!"
;; ;;
fonts) fonts)
msg "Installing fonts..."
bash "$DOTFILES/scripts/install-fonts.sh" \ bash "$DOTFILES/scripts/install-fonts.sh" \
&& msg_yay "Installed fonts!" && msg_yay "Installed fonts!"
;; ;;
fzf) fzf)
msg "Installing fzf..."
bash "$DOTFILES/scripts/install-fzf.sh" \ bash "$DOTFILES/scripts/install-fzf.sh" \
&& msg_yay "fzf installed!" && msg_yay "fzf installed!"
;; ;;
gh) gh)
msg "Installing GitHub CLI Extensions..."
bash "$DOTFILES/scripts/install-gh-extensions.sh" \ bash "$DOTFILES/scripts/install-gh-extensions.sh" \
&& msg_yay "github cli extensions installed!" && msg_yay "github cli extensions installed!"
;; ;;
go) go)
msg "Installing Go Packages..."
bash "$DOTFILES/scripts/install-go-packages.sh" \ bash "$DOTFILES/scripts/install-go-packages.sh" \
&& msg_yay "go packages installed!" && msg_yay "go packages installed!"
;; ;;
imagick) imagick)
msg "Installing ImageMagick CLI..."
curl -L https://imagemagick.org/archive/binaries/magick > "$XDG_BIN_HOME/magick" \ curl -L https://imagemagick.org/archive/binaries/magick > "$XDG_BIN_HOME/magick" \
&& chmod +x "$XDG_BIN_HOME/magick" \ && chmod +x "$XDG_BIN_HOME/magick" \
&& msg_yay "imagick installed!" && msg_yay "imagick installed!"
;; ;;
starship) starship)
msg "Installing starship.rs..."
curl -sS https://starship.rs/install.sh | sh -s -- \ curl -sS https://starship.rs/install.sh | sh -s -- \
--bin-dir ~/.local/bin \ --bin-dir ~/.local/bin \
--yes \ --yes \
&& msg_yay "starship installed!" && msg_yay "starship installed!"
;; ;;
macos) macos)
msg "Setting up macOS defaults..."
bash "$DOTFILES/scripts/set-macos-defaults.sh" \ bash "$DOTFILES/scripts/set-macos-defaults.sh" \
&& msg_yay "Brewfile defined apps has been installed!" && msg_yay "Brewfile defined apps has been installed!"
;; ;;
neofetch) neofetch)
msg "Installing neofetch..."
bash "$DOTFILES/scripts/install-neofetch.sh" \ bash "$DOTFILES/scripts/install-neofetch.sh" \
&& msg_yay "neofetch installed!" && msg_yay "neofetch installed!"
;; ;;
nvm) nvm)
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash \ msg "Installing nvm..."
&& nvm install --lts --latest-npm --default curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash
git checkout "$DOTFILES/base/zshrc" $0 install nvm-latest
msg_yay "nvm installed!" msg_yay "nvm installed!"
;; ;;
nvm-latest)
msg "Installing latest lts node..."
if [ -n "$NVM_DIR" ]; then
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
fi
nvm install --lts --latest-npm --default
git checkout "$DOTFILES/base/*"
msg_yay "latest lts node installed!"
;;
npm) npm)
msg "NPM Packages install started..."
bash "$DOTFILES/scripts/install-npm-packages.sh" \ bash "$DOTFILES/scripts/install-npm-packages.sh" \
&& msg_yay "NPM Packages have been installed!" && msg_yay "NPM Packages have been installed!"
;; ;;
ntfy) ntfy)
msg "ntfy install started..."
bash "$DOTFILES/scripts/install-ntfy.sh" \ bash "$DOTFILES/scripts/install-ntfy.sh" \
&& msg_yay "ntfy installed!" && msg_yay "ntfy installed!"
;; ;;
pip) bash "$DOTFILES/scripts/install-pip-packages.sh" ;; ohmybash)
msg "oh-my-bash install started..."
bash "$DOTFILES/scripts/install-ohmybash.sh" \
&& msg_yay "oh-my-bash installed!"
;;
pip)
msg "pip install started..."
bash "$DOTFILES/scripts/install-pip-packages.sh"
;;
z) z)
msg "Installing z..."
bash "$DOTFILES/scripts/install-z.sh" \ bash "$DOTFILES/scripts/install-z.sh" \
&& msg_yay "z has been installed!" && msg_yay "z has been installed!"
;; ;;

23
local/bin/git-fsck-dirs Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# FSCK subfolders git projects.
#
# Actions taken: git fsck --no-dangling --full
#
# Copyright 2023 Ismo Vuorinen. All Rights Reserved.
# License: MIT <https://opensource.org/license/mit/>
STARTING_PATH=${1:-$(pwd)}
DIRS=$(find "$STARTING_PATH" -mindepth 1 -maxdepth 1 -type d)
for DIR in $DIRS; do
echo "-> Processing dir: $DIR"
cd "$DIR" || exit 1
if [ -d "$DIR/.git" ]; then
git fsck --no-dangling --full --no-progress
echo ""
fi
done
echo ""
echo "Done."

14
local/bin/git-update-dirs Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
#
# Updates subfolders git projects.
#
# Actions taken: pull with rebase, autostashes own changes
# and prunes branches no longer in the remote.
#
# Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved.
# License: MIT <https://opensource.org/license/mit/>
for f in */; do (cd "$f" && echo "-> $f" && git pull --rebase --autostash --prune); done
echo "Done."
echo ""

View File

@@ -1,4 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#
# Backup a folder with a timestamp
# Usage: x-backup-folder folder_to_backup [filename]
# If filename is not provided, folder_to_backup will be used
# Example: x-backup-folder ~/Documents/MyFolder
#
# Copyright (c) 2022 Ismo Vuorinen. All Rights Reserved.
# Licensed under the MIT license.
DIRECTORY=$1 DIRECTORY=$1
FILENAME=$2 FILENAME=$2

View File

@@ -2,7 +2,7 @@
# #
# Backup local MySQL Database tables with certain prefix. # Backup local MySQL Database tables with certain prefix.
# Ismo Vuorinen <https://github.com/ivuorinen> 2018 # Ismo Vuorinen <https://github.com/ivuorinen> 2018
# # License: MIT
SCRIPT=$(basename "$0") SCRIPT=$(basename "$0")
PREFIX=$1 PREFIX=$1

View File

@@ -3,7 +3,7 @@
which "$1" >&/dev/null which "$1" >&/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo 0 exit 0
else else
echo 1 exit 1
fi fi

8
local/bin/x-path-append Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#
# Add a directory to the beginning of the PATH if it's not already there.
# Usage: x-path-append <dir>
x-path-remove "$1"
export PATH="${PATH:+"$PATH:"}$1"

7
local/bin/x-path-prepend Executable file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#
# Add a directory to the front of the PATH if it exists and is not already there
# Usage: x-path-prepend <dir>
export PATH="$1${PATH:+":$PATH"}"

7
local/bin/x-path-remove Executable file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#
# Remove a directory from the PATH
# Usage: x-path-remove <dir>
export PATH=$(echo -n "$PATH" | awk -v RS=: -v ORS=: "\$0 != \"$1\"" | sed 's/:$//')

View File

@@ -22,15 +22,12 @@
"ivuorinen" "ivuorinen"
], ],
"author": "Ismo Vuorinen", "author": "Ismo Vuorinen",
"license": "ISC", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/ivuorinen/dotfiles/issues" "url": "https://github.com/ivuorinen/dotfiles/issues"
}, },
"homepage": "https://github.com/ivuorinen/dotfiles#readme", "homepage": "https://github.com/ivuorinen/dotfiles#readme",
"devDependencies": { "devDependencies": {
"@ivuorinen/commitlint-config": "^0.1.10", "@ivuorinen/base-configs": "^1.1.0"
"@ivuorinen/eslint-config": "^0.2.13",
"@ivuorinen/markdownlint-config": "^0.1.6",
"@ivuorinen/prettier-config": "^0.1.1"
} }
} }

16
scripts/install-ohmybash.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
#
# Install oh-my-bash
#
# shellcheck source=shared.sh
source "$HOME/.dotfiles/scripts/shared.sh"
export OSH="$HOME/.local/share/oh-my-bash"
if [ ! -d "$OSH" ]; then
[ -f "$HOME/.bashrc" ] && mv "$HOME/.bashrc" "$HOME/.bashrc.temp"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)" --unattended
[ -f "$HOME/.bashrc.temp" ] && mv "$HOME/.bashrc.temp" "$HOME/.bashrc"
else
msg_done "oh-my-bash ($OSH) already installed"
fi

View File

@@ -31,23 +31,23 @@ export XDG_RUNTIME_DIR="$HOME/.local/run"
# usage: path_remove ~/.local/bin # usage: path_remove ~/.local/bin
function path_remove function path_remove
{ {
PATH=$(echo -n "$PATH" | awk -v RS=: -v ORS=: "\$0 != \"$1\"" | sed 's/:$//') x-path-remove "$1"
} }
# Append directory to the PATH # Append directory to the PATH
# usage: path_append ~/.local/bin # usage: path_append ~/.local/bin
function path_append function path_append
{ {
path_remove "$1" x-path-remove "$1"
PATH="${PATH:+"$PATH:"}$1" x-path-prepend "$1"
} }
# Prepend directory to the PATH # Prepend directory to the PATH
# usage: path_prepend ~/.local/bin # usage: path_prepend ~/.local/bin
function path_prepend function path_prepend
{ {
path_remove "$1" x-path-remove "$1"
PATH="$1${PATH:+":$PATH"}" x-path-prepend "$1"
} }
# Create directory if it doesn't exist already # Create directory if it doesn't exist already
@@ -84,56 +84,6 @@ nonascii()
LC_ALL=C grep -n '[^[:print:][:space:]]' "${@}" LC_ALL=C grep -n '[^[:print:][:space:]]' "${@}"
} }
# Cache commands using bkt if installed
if command -v bkt >&/dev/null; then
bkt()
{
command bkt --cache-dir="$XDG_CACHE_HOME/bkt" "$@"
}
else
# If bkt isn't installed skip its arguments and just execute directly.
# Optionally write a msg to stderr suggesting users install bkt.
bkt()
{
while [[ "$1" == --* ]]; do shift; done
"$@"
}
fi
# shorthand for checking if the system has the bin in path,
# this version does not use caching
# usage: have_command php && php -v
function have_command
{
command -v "$1" >&/dev/null
}
# shorthand for checking if the system has the bin in path,
# this version uses caching
# usage: have php && php -v
function have
{
bkt -- which "$1" >&/dev/null
}
function brew_installed
{
bkt -- brew list
}
# shorthand for checking if brew package is installed
# usage: have_brew php && php -v
function have_brew
{
! have brew && return 125
if bkt -- brew list "$1" &> /dev/null; then
return 0
else
return 1
fi
}
CONFIG_PATH="$DOTFILES/config" CONFIG_PATH="$DOTFILES/config"
# Load the shell dotfiles, and then some: # Load the shell dotfiles, and then some:

3221
yarn.lock

File diff suppressed because it is too large Load Diff