mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 22:45:27 +00:00
Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a5895abfa0 | |||
| fae34d10ef | |||
| c0448b5e7f | |||
| 4d7cc568af | |||
| 01a2815a68 | |||
| 39e896f331 | |||
| 622c8f991a | |||
| 88894a33a5 | |||
| acbfd34e7d | |||
| bac03a0b7b | |||
| a96bf921a2 | |||
| b5df60851f | |||
| 2e682c58fa | |||
| cb28e274ca | |||
| 4572c42eea | |||
| cec1edb269 | |||
| bfe7e93b60 | |||
| 1b80c8b7ed | |||
| c7c3493259 | |||
| 0e797d36ae | |||
|
|
0beb386f4a | ||
|
|
cc0e668cd9 | ||
|
|
d6f7aecf6c | ||
|
|
5253b69e37 | ||
| 12080f59e1 | |||
| 614827a877 | |||
| 09343033ec | |||
| c24f51adb9 | |||
| 1a74cf78c1 | |||
| e31948dcc5 | |||
| 25acc678d8 | |||
| 8c3796b433 | |||
| 048c9ac64f | |||
| 4ef3369c0e | |||
| b9c343dc27 | |||
| cfb41b8a03 | |||
| e42edc2dcf | |||
| 5a95484c58 | |||
| 988cb9cd18 | |||
|
|
681396383a | ||
|
|
f1aaf65e93 | ||
| 83bdfbf6a2 | |||
| 08c2be6f97 | |||
|
|
acf0bbe659 | ||
| e4bae620fa | |||
| b81c8f05b5 | |||
| 56427a08a8 | |||
| f2e7864583 | |||
| 9f96d553f0 |
1
.browserslistrc
Normal file
1
.browserslistrc
Normal file
@@ -0,0 +1 @@
|
||||
extends @ivuorinen/browserslist-config
|
||||
128
.github/CODE_OF_CONDUCT.md
vendored
Normal file
128
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
- Demonstrating empathy and kindness toward other people
|
||||
- Being respectful of differing opinions, viewpoints, and experiences
|
||||
- Giving and gracefully accepting constructive feedback
|
||||
- Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
- Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
- The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
- Public or private harassment
|
||||
- Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
- Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
ismo@ivuorinen.net.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
||||
12
.github/SECURITY.md
vendored
Normal file
12
.github/SECURITY.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
Usually only the latest daily tag is supported at all,
|
||||
because that's the current I'm using.
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please send me email directly to the email in my profile.
|
||||
I'd appreciate link to the release the vulnerability was
|
||||
found in, and what is the vulnerable code/dependency.
|
||||
2
.github/workflows/changelog.yml
vendored
2
.github/workflows/changelog.yml
vendored
@@ -3,7 +3,7 @@ on:
|
||||
workflow_dispatch: # Trigger manually
|
||||
jobs:
|
||||
debug-changelog:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create changelog text
|
||||
|
||||
2
.github/workflows/linters.yml
vendored
2
.github/workflows/linters.yml
vendored
@@ -3,7 +3,7 @@ on: [push]
|
||||
jobs:
|
||||
linters:
|
||||
name: Linters
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: GitHub Actions
|
||||
|
||||
2
.github/workflows/new-release.yml
vendored
2
.github/workflows/new-release.yml
vendored
@@ -7,7 +7,7 @@ permissions:
|
||||
contents: write
|
||||
jobs:
|
||||
new-daily-release:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: self-hosted
|
||||
outputs:
|
||||
created: ${{ steps.daily-version.outputs.created }}
|
||||
version: ${{ steps.daily-version.outputs.version }}
|
||||
|
||||
2
.github/workflows/update-submodules.yml
vendored
2
.github/workflows/update-submodules.yml
vendored
@@ -8,7 +8,7 @@ permissions:
|
||||
pull-requests: write
|
||||
jobs:
|
||||
update-submodules:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
Brewfile.lock.json
|
||||
config/nvim/lazy-lock.json
|
||||
*.log
|
||||
*-secret
|
||||
*cache
|
||||
@@ -15,4 +16,9 @@ ssh/local.d/*
|
||||
.env
|
||||
local/share/fonts/*
|
||||
node_modules
|
||||
.nfs*
|
||||
*.socket
|
||||
iTermServer-*
|
||||
lock
|
||||
config/iterm2/AppSupport
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.11
|
||||
3.12
|
||||
|
||||
3
.releaserc.json
Normal file
3
.releaserc.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": ["@ivuorinen/semantic-release-config"]
|
||||
}
|
||||
@@ -32,6 +32,7 @@ git submodule add --name tmux/tmux-window-name \
|
||||
git submodule add --name tmux/tmux-yank \
|
||||
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/tmux-yank
|
||||
|
||||
# Takes submodules and sets them to ignore all changes
|
||||
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do
|
||||
git config "submodule.${MODULE}.ignore" all
|
||||
done
|
||||
|
||||
92
base/bashrc
Executable file → Normal file
92
base/bashrc
Executable file → Normal file
@@ -3,9 +3,6 @@
|
||||
|
||||
# Defaults
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
export PATH="$HOME/.local/bin:$HOME/.dotfiles/local/bin:$PATH"
|
||||
# shellcheck source=scripts/shared.sh
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
|
||||
# Explicitly set XDG folders
|
||||
# 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_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
|
||||
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
|
||||
}
|
||||
|
||||
19
base/zshenv
Normal file
19
base/zshenv
Normal file
@@ -0,0 +1,19 @@
|
||||
# shellcheck shell=bash
|
||||
# vim: filetype=zsh
|
||||
|
||||
export PATH="$HOME/.local/bin:$HOME/.dotfiles/local/bin:$HOME/.local/go/bin:$PATH"
|
||||
|
||||
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"
|
||||
|
||||
source "$DOTFILES/config/exports"
|
||||
18
base/zshrc
18
base/zshrc
@@ -1,11 +1,7 @@
|
||||
# this is my zsh config. there are many like it, but this one is mine.
|
||||
# shellcheck shell=bash
|
||||
|
||||
# Defaults
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
# shellcheck source=scripts/shared.sh
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
export PATH="$HOME/.local/bin:$HOME/.dotfiles/local/bin:$PATH"
|
||||
|
||||
# Explicitly set XDG folders
|
||||
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||
@@ -18,6 +14,14 @@ 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"
|
||||
|
||||
export COMPLETION_WAITING_DOTS=true
|
||||
|
||||
path_append "/opt/homebrew/bin"
|
||||
@@ -32,11 +36,6 @@ path_prepend "$XDG_BIN_HOME"
|
||||
path_prepend "$HOME/.local/go/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"
|
||||
x-dc "$ZSH_CUSTOM_COMPLETION_PATH"
|
||||
|
||||
@@ -70,7 +69,6 @@ antigen bundle colored-man-pages
|
||||
antigen bundle command-not-found
|
||||
antigen bundle ssh-agent
|
||||
antigen bundle jreese/zsh-titles
|
||||
antigen bundle unixorn/autoupdate-antigen.zshplugin
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
|
||||
# these should be available if there's need
|
||||
|
||||
10
config/alias
10
config/alias
@@ -6,9 +6,9 @@ DOTFILES="$HOME/.dotfiles"
|
||||
# Get installed php versions from brew and setup aliases
|
||||
function x-set-php-aliases
|
||||
{
|
||||
have brew && {
|
||||
x-have brew && {
|
||||
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'
|
||||
|
||||
@@ -61,8 +61,8 @@ alias please="sudo "
|
||||
# Color the grep output
|
||||
alias grep='grep --color'
|
||||
|
||||
! have eza && alias ls='ls --color=auto'
|
||||
have eza && {
|
||||
! x-have eza && alias ls='ls --color=auto'
|
||||
x-have eza && {
|
||||
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"
|
||||
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"
|
||||
|
||||
# Alacritty preexec hook to update dynamic title
|
||||
|
||||
320
config/amethyst/amethyst.yml
Normal file
320
config/amethyst/amethyst.yml
Normal 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
|
||||
35
config/amethyst/layouts/almost-maximize.js
Normal file
35
config/amethyst/layouts/almost-maximize.js
Normal 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
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -2,20 +2,61 @@
|
||||
# shellcheck shell=bash
|
||||
# vim: filetype=zsh
|
||||
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
# 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
|
||||
|
||||
# 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"
|
||||
# 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
|
||||
|
||||
# custom variables
|
||||
export XDG_BIN_HOME="$HOME/.local/bin"
|
||||
export XDG_CACHE_HOME="$HOME/.cache"
|
||||
export XDG_RUNTIME_DIR="$HOME/.local/run"
|
||||
# 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-apps"
|
||||
|
||||
have nvim && export EDITOR="nvim"
|
||||
|
||||
@@ -21,15 +21,15 @@ x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
||||
export ANDROID_HOME="$XDG_DATA_HOME/android"
|
||||
|
||||
# bob manages nvim versions
|
||||
path_prepend "$XDG_DATA_HOME/bob/nvim-bin"
|
||||
have nvim && export EDITOR="nvim"
|
||||
x-path-prepend "$XDG_DATA_HOME/bob/nvim-bin"
|
||||
x-have nvim && export EDITOR="nvim"
|
||||
|
||||
export HOMEBREW_NO_ENV_HINTS=true
|
||||
|
||||
# composer, https://getcomposer.org/
|
||||
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
|
||||
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/
|
||||
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
|
||||
@@ -39,7 +39,7 @@ export DOCKER_SCAN_SUGGEST=false
|
||||
|
||||
# ffmpeg
|
||||
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
|
||||
have ffmpeg && x-dc "$FFMPEG_DATADIR"
|
||||
x-have ffmpeg && x-dc "$FFMPEG_DATADIR"
|
||||
|
||||
# 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"
|
||||
|
||||
# NPM: Add npm packages to path
|
||||
have node && {
|
||||
x-have 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
|
||||
export OP_CACHE="$XDG_STATE_HOME/1password"
|
||||
have op && {
|
||||
x-have op && {
|
||||
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && {
|
||||
eval "$(op completion zsh)"
|
||||
compdef _op op
|
||||
@@ -72,8 +72,8 @@ have op && {
|
||||
# pyenv, python environments
|
||||
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
|
||||
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
|
||||
have pyenv && {
|
||||
path_append "$PYENV_ROOT/shims"
|
||||
x-have pyenv && {
|
||||
x-path-append "$PYENV_ROOT/shims"
|
||||
eval "$(pyenv init -)"
|
||||
}
|
||||
|
||||
@@ -87,8 +87,8 @@ export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
|
||||
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
|
||||
export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
|
||||
x-dc "$RBENV_ROOT"
|
||||
have gem && path_append "${GEM_HOME}/bin"
|
||||
have rbenv && {
|
||||
x-have gem && x-path-append "${GEM_HOME}/bin"
|
||||
x-have rbenv && {
|
||||
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && eval "$(rbenv init - zsh)"
|
||||
[ "$DOTFILES_CURRENT_SHELL" = "bash" ] && eval "$(rbenv init - bash)"
|
||||
}
|
||||
@@ -96,7 +96,7 @@ have rbenv && {
|
||||
# Rust / cargo
|
||||
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
|
||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||
path_append "$CARGO_HOME/bin"
|
||||
x-path-append "$CARGO_HOME/bin"
|
||||
|
||||
# screen
|
||||
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
|
||||
@@ -104,6 +104,13 @@ export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
|
||||
# sonarlint
|
||||
export SONARLINT_USER_HOME="$XDG_DATA_HOME/sonarlint"
|
||||
|
||||
# terraform
|
||||
# https://www.terraform.io/docs/cli/config/config-file.html
|
||||
# https://www.terraform.io/docs/cli/config/environment-variables.html
|
||||
export TF_DATA_DIR="$XDG_STATE_HOME/terraform"
|
||||
export TF_CLI_CONFIG_FILE="$XDG_CONFIG_HOME/terraform/terraformrc"
|
||||
export TF_PLUGIN_CACHE_DIR="$XDG_CACHE_HOME/terraform/plugin-cache"
|
||||
|
||||
# tldr / tealdeer
|
||||
export TEALDEER_CONFIG_DIR="$XDG_CONFIG_HOME/tealdeer/"
|
||||
|
||||
@@ -118,3 +125,4 @@ x-dc "$WAKATIME_HOME"
|
||||
export BAT_THEME="ansi"
|
||||
export CHEAT_USE_FZF=true
|
||||
export SQLITE_HISTORY="$XDG_CACHE_HOME"/sqlite_history
|
||||
|
||||
|
||||
@@ -54,32 +54,3 @@ export GREP_OPTIONS="--color=auto"
|
||||
# update the values of LINES and COLUMNS.
|
||||
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
|
||||
|
||||
@@ -18,10 +18,10 @@ tap "xwmx/taps"
|
||||
brew "act"
|
||||
# Mozilla CA certificate store
|
||||
brew "ca-certificates"
|
||||
# Interpreted, interactive, object-oriented programming language
|
||||
brew "python@3.11"
|
||||
# YAML Parser
|
||||
brew "libyaml"
|
||||
# Cryptography and SSL/TLS Toolkit
|
||||
brew "openssl@3"
|
||||
# Automate deployment, configuration, and upgrading
|
||||
brew "ansible"
|
||||
# Checks ansible playbooks for practices and behaviour
|
||||
@@ -60,6 +60,8 @@ brew "coreutils"
|
||||
brew "asdf"
|
||||
# Spell checker with better logic than ispell
|
||||
brew "aspell"
|
||||
# Interpreted, interactive, object-oriented programming language
|
||||
brew "python@3.11"
|
||||
# Official Amazon AWS command-line interface
|
||||
brew "awscli"
|
||||
# Bourne-Again SHell, a UNIX command interpreter
|
||||
@@ -103,13 +105,11 @@ brew "dog"
|
||||
# Lightning-fast linter for .env files written in Rust
|
||||
brew "dotenv-linter"
|
||||
# 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
|
||||
brew "eg-examples"
|
||||
# OpenType text shaping engine
|
||||
brew "harfbuzz"
|
||||
# Development kit for the Java programming language
|
||||
brew "openjdk"
|
||||
# Spellchecker wrapping library
|
||||
brew "enchant"
|
||||
# Run arbitrary commands when files change
|
||||
brew "entr"
|
||||
# Perl lib for reading and writing EXIF metadata
|
||||
@@ -158,6 +158,8 @@ brew "gpgme"
|
||||
brew "gpg-tui"
|
||||
# Image manipulation
|
||||
brew "netpbm"
|
||||
# OpenType text shaping engine
|
||||
brew "harfbuzz"
|
||||
# Framework for layout and rendering of i18n text
|
||||
brew "pango"
|
||||
# Library to render SVG files using Cairo
|
||||
@@ -180,6 +182,8 @@ brew "hugo"
|
||||
brew "libheif"
|
||||
# Tools and libraries to manipulate images in many formats
|
||||
brew "imagemagick"
|
||||
# Modular IRC client
|
||||
brew "irssi"
|
||||
# Lightweight and flexible command-line JSON processor
|
||||
brew "jq"
|
||||
# Network authentication protocol
|
||||
@@ -194,12 +198,18 @@ brew "libvoikko"
|
||||
brew "lolcat"
|
||||
# Package manager for the Lua programming language
|
||||
brew "luarocks"
|
||||
# LZMA-based compression program similar to gzip or bzip2
|
||||
brew "lzip"
|
||||
# Swiss Army Knife for macOS
|
||||
brew "m-cli"
|
||||
# Mac App Store command-line interface
|
||||
brew "mas"
|
||||
# Mongrel of mail user agents (part elm, pine, mush, mh, etc.)
|
||||
brew "mutt"
|
||||
# NCurses Disk Usage
|
||||
brew "ncdu"
|
||||
# Ambitious Vim-fork focused on extensibility and agility
|
||||
brew "neovim"
|
||||
# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
|
||||
brew "nginx"
|
||||
# Port scanning utility for large networks
|
||||
@@ -210,6 +220,8 @@ brew "nvm"
|
||||
brew "openjdk@11"
|
||||
# Generate clients, server & docs from an OpenAPI spec (v2, v3)
|
||||
brew "openapi-generator"
|
||||
# Development kit for the Java programming language
|
||||
brew "openjdk"
|
||||
# Swiss-army knife of markup format conversion
|
||||
brew "pandoc"
|
||||
# Highly capable, feature-rich programming language
|
||||
@@ -258,6 +270,8 @@ brew "terragrunt"
|
||||
brew "testssl"
|
||||
# Terraform version manager inspired by rbenv
|
||||
brew "tfenv"
|
||||
# Linter for Terraform files
|
||||
brew "tflint"
|
||||
# Static analysis security scanner for your terraform code
|
||||
brew "tfsec"
|
||||
# Programmatically correct mistyped console commands
|
||||
@@ -318,6 +332,8 @@ brew "teamookla/speedtest/speedtest"
|
||||
cask "1password-cli"
|
||||
# GPU-accelerated terminal emulator
|
||||
cask "alacritty"
|
||||
# Automatic tiling window manager similar to xmonad
|
||||
cask "amethyst"
|
||||
# Turn audio CDs and files into audiobooks
|
||||
cask "audiobook-builder"
|
||||
# Text editor
|
||||
@@ -390,6 +406,8 @@ cask "rsyncosx"
|
||||
cask "rsyncui"
|
||||
# MySQL/MariaDB database management
|
||||
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
|
||||
cask "setapp"
|
||||
# Team communication and collaboration software
|
||||
@@ -419,6 +437,8 @@ mas "Pages", id: 409201541
|
||||
mas "Pixelmator Pro", id: 1289583905
|
||||
mas "Tailscale", id: 1475387142
|
||||
mas "Xcode", id: 497799835
|
||||
vscode "4ops.terraform"
|
||||
vscode "adamiBs.terraform-live-graph"
|
||||
vscode "akamud.vscode-theme-onelight"
|
||||
vscode "amiralizadeh9480.laravel-extra-intellisense"
|
||||
vscode "andrewleedham.vscode-css-modules"
|
||||
@@ -440,11 +460,14 @@ vscode "formulahendry.auto-rename-tag"
|
||||
vscode "formulahendry.code-runner"
|
||||
vscode "foxundermoon.shell-format"
|
||||
vscode "gencer.html-slim-scss-css-class-completion"
|
||||
vscode "GitHub.copilot"
|
||||
vscode "GitHub.copilot-chat"
|
||||
vscode "github.vscode-github-actions"
|
||||
vscode "GitHub.vscode-pull-request-github"
|
||||
vscode "GraphQL.vscode-graphql"
|
||||
vscode "GraphQL.vscode-graphql-execution"
|
||||
vscode "GraphQL.vscode-graphql-syntax"
|
||||
vscode "hashicorp.terraform"
|
||||
vscode "heybourn.headwind"
|
||||
vscode "JohnnyMorganz.stylua"
|
||||
vscode "jumpinjackie.vscode-map-preview"
|
||||
@@ -456,6 +479,7 @@ vscode "mikestead.dotenv"
|
||||
vscode "MisterJ.vue-volar-extention-pack"
|
||||
vscode "MrChetan.phpstorm-parameter-hints-in-vscode"
|
||||
vscode "mrorz.language-gettext"
|
||||
vscode "ms-azuretools.vscode-azureterraform"
|
||||
vscode "ms-azuretools.vscode-docker"
|
||||
vscode "ms-python.python"
|
||||
vscode "ms-python.vscode-pylance"
|
||||
@@ -465,6 +489,7 @@ vscode "ms-toolsai.vscode-jupyter-cell-tags"
|
||||
vscode "ms-toolsai.vscode-jupyter-slideshow"
|
||||
vscode "ms-vscode-remote.remote-containers"
|
||||
vscode "ms-vscode-remote.remote-wsl"
|
||||
vscode "ms-vscode.azure-account"
|
||||
vscode "ms-vscode.cpptools"
|
||||
vscode "msjsdiag.vscode-react-native"
|
||||
vscode "mtxr.sqltools"
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
# vim:noext ft=conf;
|
||||
servers = (
|
||||
{
|
||||
address = "irc.cc.tut.fi";
|
||||
chatnet = "IRCNet";
|
||||
port = "6667";
|
||||
own_host = "kapsi.fi";
|
||||
family = "inet";
|
||||
autoconnect = "no";
|
||||
},
|
||||
{ address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
|
||||
{
|
||||
address = "ssl.efnet.org";
|
||||
@@ -315,4 +324,5 @@ settings = {
|
||||
nick = "ivuorinen";
|
||||
};
|
||||
"fe-common/core" = { theme = "lyynx"; };
|
||||
"fe-text" = { actlist_sort = "refnum"; };
|
||||
};
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
{
|
||||
"diagnostics.globals": [
|
||||
"vim"
|
||||
]
|
||||
}
|
||||
"diagnostics.globals": ["vim"]
|
||||
}
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
{
|
||||
"LazyVim": { "branch": "main", "commit": "ecac59c9823c86ac4c916a4cc1aa761f43e040ec" },
|
||||
"LuaSnip": { "branch": "master", "commit": "480b032f6708573334f4437d3f83307d143f1a72" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "08ab25507a92e22cec433f6750bb4a56a8cec22d" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" },
|
||||
"animation.nvim": { "branch": "main", "commit": "fb77091ab72ec9971aee0562e7081182527aaa6a" },
|
||||
"bufdelete.nvim": { "branch": "master", "commit": "07d1f8ba79dec59d42b975a4df1c732b2e4e37b4" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "357cc8f8eeb64702e6fcf2995e3b9becee99a5d3" },
|
||||
"catppuccin": { "branch": "main", "commit": "7a4bcdadafc59a5bedbd866c643fa486d8cca4a1" },
|
||||
"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": "18095520391186d634a0045dacaa346291096566" },
|
||||
"comment-box.nvim": { "branch": "main", "commit": "dd1a48f8d06102e9b87ae1e0069bc365c006979b" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "8f4d62b7817455896a3c73cab642002072c114bc" },
|
||||
"edgy.nvim": { "branch": "main", "commit": "70e334c9cd7915aedde3255ade01ceeebe735b53" },
|
||||
"flash.nvim": { "branch": "main", "commit": "79e79ae45c3512ff1edc5da55f38ca8ee8d857b9" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "43727c2ff84240e55d4069ec3e6158d74cb534b6" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "b14b9fba7d085ed8c11392aa51e575de84822bb1" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "ce2e8e410bc8b46a6938bfa3520bc6b85ca8a743" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "59335c5b9d116f5d3948f833288a89e2a829a005" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" },
|
||||
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
||||
"middleclass": { "branch": "master", "commit": "9fab4d5bca67262614960960ca35c4740eb2be2c" },
|
||||
"mini.ai": { "branch": "main", "commit": "7ae226f331885e6f30e9a8229e113debc59308ae" },
|
||||
"mini.animate": { "branch": "main", "commit": "989ac014933ab5cd14ab83f2fce4b9a08ca6d81e" },
|
||||
"mini.bufremove": { "branch": "main", "commit": "7821606e35c1ac931b56d8e3155f45ffe76ee7e5" },
|
||||
"mini.comment": { "branch": "main", "commit": "877acea5b2a32ff55f808fc0ebe9aa898648318c" },
|
||||
"mini.indentscope": { "branch": "main", "commit": "f60e9b51a6214c73a170ffc5445ce91560981031" },
|
||||
"mini.pairs": { "branch": "main", "commit": "dfa9f6e2576bb8853be277d96b735af59d9be7c2" },
|
||||
"mini.surround": { "branch": "main", "commit": "9d1956b576d7051da3a483b251dfc778121c60db" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "71f1841ba6c652908678cece623f52c1fea8a6cd" },
|
||||
"neoconf.nvim": { "branch": "main", "commit": "466ba6f645f63f91ac84d3dd986acede5d107f39" },
|
||||
"neodev.nvim": { "branch": "main", "commit": "5147640bc8435ca3557a105ebd1143bc20420b60" },
|
||||
"neogen": { "branch": "main", "commit": "cb1f384df804c1bf729332c4f728253fe17962d4" },
|
||||
"noice.nvim": { "branch": "main", "commit": "396f9146529130904e07c45e90ecdbfa607534f3" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "f39f627bbdfb33cc4ae4a95b4708e7dba7b9aafc" },
|
||||
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "ac478757efcde1ac346f7044ab774e7cbb482533" },
|
||||
"nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" },
|
||||
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
||||
"nvim-regexplainer": { "branch": "main", "commit": "4250c8f3c1307876384e70eeedde5149249e154f" },
|
||||
"nvim-spectre": { "branch": "master", "commit": "97cfd1b0f5a6ab35979ce1bee6c17f54745fd1e5" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "d96c216c54cc2d48d3c66ba7f0fc3c7c5b71b3b1" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bd103502252027434ec42f628d2dbf54821d4ce6" },
|
||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "0c136439fb93fd94db9106250ff6f6858101422b" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "6f2ccdf2da390d62f8f9e15fc5ddbcbd312e1e66" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "4b8051c01f696d8849a5cb8afa9767be8db16e40" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
||||
"promise-async": { "branch": "main", "commit": "e94f35161b8c5d4a4ca3b6ff93dd073eb9214c0e" },
|
||||
"stickybuf.nvim": { "branch": "master", "commit": "e3db41f2c1bb2df3ee6ff964ee74fe991f6f9566" },
|
||||
"symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" },
|
||||
"tabnine": { "branch": "master", "commit": "2c06b4865415701dc638549032824664e114ee23" },
|
||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "7d51950854a3f8853c5c0d570757095e9a5af313" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "3094ead8edfa9040de2421deddec55d3762f64d1" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "e89caa3ad6d8da9d0dd981ec74a82c55adc61ffd" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "3f85d8ed30e97ceeddbbcf80224245d347053711" },
|
||||
"venv-selector.nvim": { "branch": "main", "commit": "14d6e866070f759e9014a8053954f835294f56f9" },
|
||||
"vim-illuminate": { "branch": "master", "commit": "1b5d70332a51a1de05f281069851865a2bb1e6d7" },
|
||||
"vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" },
|
||||
"vim-wakatime": { "branch": "master", "commit": "0d2efa2daff34b27b0d227d4c3b136811c93db93" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" },
|
||||
"windows.nvim": { "branch": "main", "commit": "c7492552b23d0ab30325e90b56066ec51242adc8" }
|
||||
}
|
||||
28
config/nvim/lazyvim.json
Normal file
28
config/nvim/lazyvim.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.coding.copilot",
|
||||
"lazyvim.plugins.extras.editor.aerial",
|
||||
"lazyvim.plugins.extras.editor.leap",
|
||||
"lazyvim.plugins.extras.editor.symbols-outline",
|
||||
"lazyvim.plugins.extras.formatting.black",
|
||||
"lazyvim.plugins.extras.formatting.prettier",
|
||||
"lazyvim.plugins.extras.lang.docker",
|
||||
"lazyvim.plugins.extras.lang.go",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.python",
|
||||
"lazyvim.plugins.extras.lang.tailwind",
|
||||
"lazyvim.plugins.extras.lang.terraform",
|
||||
"lazyvim.plugins.extras.lang.typescript",
|
||||
"lazyvim.plugins.extras.lang.yaml",
|
||||
"lazyvim.plugins.extras.linting.eslint",
|
||||
"lazyvim.plugins.extras.ui.edgy",
|
||||
"lazyvim.plugins.extras.ui.mini-animate",
|
||||
"lazyvim.plugins.extras.util.dot",
|
||||
"lazyvim.plugins.extras.vscode"
|
||||
],
|
||||
"news": {
|
||||
"NEWS.md": "2123"
|
||||
},
|
||||
"version": 2
|
||||
}
|
||||
@@ -25,20 +25,6 @@ require("lazy").setup({
|
||||
},
|
||||
},
|
||||
},
|
||||
-- import any extras modules here
|
||||
{ import = "lazyvim.plugins.extras.formatting.prettier" },
|
||||
{ import = "lazyvim.plugins.extras.lang.docker" },
|
||||
{ import = "lazyvim.plugins.extras.lang.go" },
|
||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||
{ import = "lazyvim.plugins.extras.lang.python" },
|
||||
{ import = "lazyvim.plugins.extras.lang.tailwind" },
|
||||
{ import = "lazyvim.plugins.extras.lang.terraform" },
|
||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
||||
{ import = "lazyvim.plugins.extras.linting.eslint" },
|
||||
{ import = "lazyvim.plugins.extras.ui.edgy" },
|
||||
{ import = "lazyvim.plugins.extras.ui.mini-animate" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
|
||||
@@ -7,6 +7,7 @@ local opt = vim.opt
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
opt.modeline = true
|
||||
vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
|
||||
@@ -99,20 +99,6 @@ return {
|
||||
},
|
||||
},
|
||||
},
|
||||
-- Tabnine Client for Neovim
|
||||
-- https://github.com/codota/tabnine-nvim
|
||||
{
|
||||
"codota/tabnine-nvim",
|
||||
name = "tabnine",
|
||||
-- enabled = false,
|
||||
build = vim.loop.os_uname().sysname == "Windows_NT" and "pwsh.exe -file .\\dl_binaries.ps1" or "./dl_binaries.sh",
|
||||
cmd = { "TabnineStatus", "TabnineDisable", "TabnineEnable", "TabnineToggle" },
|
||||
event = "User",
|
||||
opts = {
|
||||
accept_keymap = "<C-e>",
|
||||
dismiss_keymap = "<C-Esc>",
|
||||
},
|
||||
},
|
||||
-- Vim plugin for automatic time tracking and metrics generated from your programming activity.
|
||||
-- https://github.com/wakatime/vim-wakatime
|
||||
{ "wakatime/vim-wakatime", lazy = false, enabled = true },
|
||||
|
||||
@@ -103,7 +103,7 @@ return {
|
||||
dependencies = {
|
||||
"jose-elias-alvarez/typescript.nvim",
|
||||
init = function()
|
||||
require("lazyvim.util").on_attach(function(_, buffer)
|
||||
require("lazyvim.util.lsp").on_attach(function(_, buffer)
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
||||
|
||||
@@ -7,7 +7,7 @@ return {
|
||||
},
|
||||
setup = {
|
||||
eslint = function()
|
||||
require("lazyvim.util").on_attach(function(client)
|
||||
require("lazyvim.util.lsp").on_attach(function(client)
|
||||
if client.name == "eslint" then
|
||||
client.server_capabilities.documentFormattingProvider = true
|
||||
elseif client.name == "tsserver" then
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
opts = function(_, opts)
|
||||
vim.list_extend(opts.ensure_installed, {
|
||||
"bash",
|
||||
"html",
|
||||
"javascript",
|
||||
@@ -17,7 +17,7 @@ return {
|
||||
"typescript",
|
||||
"vim",
|
||||
"yaml",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -9,6 +9,20 @@ return {
|
||||
dependencies = {
|
||||
"kevinhwang91/promise-async",
|
||||
{ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" },
|
||||
{
|
||||
"luukvbaal/statuscol.nvim",
|
||||
config = function()
|
||||
local builtin = require("statuscol.builtin")
|
||||
require("statuscol").setup({
|
||||
relculright = true,
|
||||
segments = {
|
||||
{ text = { builtin.foldfunc }, click = "v:lua.ScFa" },
|
||||
{ text = { "%s" }, click = "v:lua.ScSa" },
|
||||
{ text = { builtin.lnumfunc, " " }, click = "v:lua.ScLa" },
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
|
||||
@@ -65,12 +79,6 @@ return {
|
||||
end,
|
||||
},
|
||||
},
|
||||
{
|
||||
"simrat39/symbols-outline.nvim",
|
||||
cmd = "SymbolsOutline",
|
||||
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
|
||||
config = true,
|
||||
},
|
||||
-- Indent guides for Neovim
|
||||
-- https://github.com/lukas-reineke/indent-blankline.nvim
|
||||
{ "lukas-reineke/indent-blankline.nvim" },
|
||||
@@ -83,6 +91,9 @@ return {
|
||||
-- Neovim plugin for locking a buffer to a window
|
||||
-- https://github.com/stevearc/stickybuf.nvim
|
||||
{ "stevearc/stickybuf.nvim", opts = {} },
|
||||
-- A pretty window for previewing, navigating and editing your LSP locations
|
||||
-- https://github.com/DNLHC/glance.nvim
|
||||
{ "dnlhc/glance.nvim" },
|
||||
-- Automatically expand width of the current window.
|
||||
-- Maximizes and restore it. And all this with nice animations!
|
||||
-- https://github.com/anuvyklack/windows.nvim
|
||||
|
||||
2
config/terraform/terraformrc
Normal file
2
config/terraform/terraformrc
Normal file
@@ -0,0 +1,2 @@
|
||||
plugin_cache_dir = "$HOME/.cache/terraform/plugin-cache"
|
||||
|
||||
@@ -88,19 +88,6 @@ set-window-option -g mode-keys vi
|
||||
# Set theme to tokyonight
|
||||
source-file ~/.dotfiles/config/tmux/tokyonight_storm.tmux
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Plugins │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-sensible/sensible.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-sessionist/sessionist.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-window-name/tmux_window_name.tmux
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Plugins related configurations │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
@@ -116,13 +103,30 @@ set -g @suspend_key 'F12'
|
||||
set -g @tmux_window_name_max_name_len "30"
|
||||
### Replace $HOME with ~ in window names
|
||||
set -g @tmux_window_name_use_tilde "True"
|
||||
set -g @tmux_window_name_shells "['bash', 'fish', 'sh', 'zsh']"
|
||||
set -g @tmux_window_dir_programs "['nvim', 'vim', 'vi', 'git']"
|
||||
set -g @tmux_window_name_ignored_programs "['sqlite3']" # Default is []
|
||||
|
||||
## https://github.com/tmux-plugins/tmux-continuum
|
||||
set -g @continuum-restore 'on'
|
||||
set -g @continuum-boot 'on'
|
||||
set -g @continuum-boot-options 'alacritty'
|
||||
|
||||
## https://github.com/tmux-plugins/tmux-resurrect
|
||||
set -g @resurrect-strategy-nvim 'session'
|
||||
set -g @resurrect-dir '$HOME/.local/state/tmux/tmux-resurrect'
|
||||
|
||||
# Modified from tokyonight_storm to include tmux_mode_indicator
|
||||
set -g status-right "#[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#1f2335] #{prefix_highlight} #[fg=#3b4261,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#3b4261] %Y-%m-%d %H:%M #[fg=#7aa2f7,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#1d202f,bg=#7aa2f7,bold] #h #{tmux_mode_indicator}"
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Plugins │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-sensible/sensible.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-window-name/tmux_window_name.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-sessionist/sessionist.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux
|
||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux
|
||||
|
||||
|
||||
@@ -42,8 +42,10 @@ function section_install
|
||||
"macos:Setup nice macOS defaults"
|
||||
"neofetch:Install neofetch"
|
||||
"nvm:Install Node Version Manager (nvm)"
|
||||
"nvm-latest:Install latest lts node using nvm"
|
||||
"npm:Install NPM Packages"
|
||||
"ntfy:Install ntfy"
|
||||
"ohmybash:Install oh-my-bash"
|
||||
"pip:Install pip/python packages"
|
||||
"z:Install z"
|
||||
)
|
||||
@@ -56,6 +58,7 @@ function section_install
|
||||
$0 install fonts
|
||||
$0 install antigen
|
||||
$0 brew install
|
||||
$0 install ohmybash
|
||||
$0 install pip
|
||||
$0 install cargo
|
||||
$0 install composer
|
||||
@@ -75,80 +78,113 @@ function section_install
|
||||
msgr yay "All done!"
|
||||
;;
|
||||
antigen)
|
||||
msg "Installing antigen..."
|
||||
curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \
|
||||
&& msg_yay "New antigen installed!"
|
||||
;;
|
||||
cargo)
|
||||
msg "Installing cargo packages..."
|
||||
bash "$DOTFILES/scripts/install-cargo-packages.sh" \
|
||||
&& msg_yay "cargo packages installed!"
|
||||
;;
|
||||
cheat-databases)
|
||||
msg "Installing cheat databases..."
|
||||
for database in "$DOTFILES"/scripts/install-cheat-*; do
|
||||
bash "$database" \
|
||||
&& msg_yay "Cheat: $database run"
|
||||
done
|
||||
;;
|
||||
composer)
|
||||
msg "Installing composer..."
|
||||
bash "$DOTFILES/scripts/install-composer.sh" \
|
||||
&& msg_yay "composer installed!"
|
||||
;;
|
||||
dotenv)
|
||||
msg "Installing dotenv-linter..."
|
||||
curl -sSfL \
|
||||
https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh \
|
||||
| sh -s -- -b "$XDG_BIN_HOME" \
|
||||
&& msg_yay "dotenv-linter installed!"
|
||||
;;
|
||||
fonts)
|
||||
msg "Installing fonts..."
|
||||
bash "$DOTFILES/scripts/install-fonts.sh" \
|
||||
&& msg_yay "Installed fonts!"
|
||||
;;
|
||||
fzf)
|
||||
msg "Installing fzf..."
|
||||
bash "$DOTFILES/scripts/install-fzf.sh" \
|
||||
&& msg_yay "fzf installed!"
|
||||
;;
|
||||
gh)
|
||||
msg "Installing GitHub CLI Extensions..."
|
||||
bash "$DOTFILES/scripts/install-gh-extensions.sh" \
|
||||
&& msg_yay "github cli extensions installed!"
|
||||
;;
|
||||
go)
|
||||
msg "Installing Go Packages..."
|
||||
bash "$DOTFILES/scripts/install-go-packages.sh" \
|
||||
&& msg_yay "go packages installed!"
|
||||
;;
|
||||
imagick)
|
||||
msg "Installing ImageMagick CLI..."
|
||||
curl -L https://imagemagick.org/archive/binaries/magick > "$XDG_BIN_HOME/magick" \
|
||||
&& chmod +x "$XDG_BIN_HOME/magick" \
|
||||
&& msg_yay "imagick installed!"
|
||||
;;
|
||||
starship)
|
||||
msg "Installing starship.rs..."
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- \
|
||||
--bin-dir ~/.local/bin \
|
||||
--yes \
|
||||
&& msg_yay "starship installed!"
|
||||
;;
|
||||
macos)
|
||||
msg "Setting up macOS defaults..."
|
||||
bash "$DOTFILES/scripts/set-macos-defaults.sh" \
|
||||
&& msg_yay "Brewfile defined apps has been installed!"
|
||||
;;
|
||||
neofetch)
|
||||
msg "Installing neofetch..."
|
||||
bash "$DOTFILES/scripts/install-neofetch.sh" \
|
||||
&& msg_yay "neofetch installed!"
|
||||
;;
|
||||
nvm)
|
||||
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash \
|
||||
&& nvm install --lts --latest-npm --default
|
||||
git checkout "$DOTFILES/base/zshrc"
|
||||
msg "Installing nvm..."
|
||||
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash
|
||||
$0 install nvm-latest
|
||||
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)
|
||||
msg "NPM Packages install started..."
|
||||
bash "$DOTFILES/scripts/install-npm-packages.sh" \
|
||||
&& msg_yay "NPM Packages have been installed!"
|
||||
;;
|
||||
ntfy)
|
||||
msg "ntfy install started..."
|
||||
bash "$DOTFILES/scripts/install-ntfy.sh" \
|
||||
&& 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)
|
||||
msg "Installing z..."
|
||||
bash "$DOTFILES/scripts/install-z.sh" \
|
||||
&& msg_yay "z has been installed!"
|
||||
;;
|
||||
|
||||
23
local/bin/git-fsck-dirs
Executable file
23
local/bin/git-fsck-dirs
Executable 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
14
local/bin/git-update-dirs
Executable 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 ""
|
||||
@@ -1,4 +1,12 @@
|
||||
#!/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
|
||||
FILENAME=$2
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Backup local MySQL Database tables with certain prefix.
|
||||
# Ismo Vuorinen <https://github.com/ivuorinen> 2018
|
||||
#
|
||||
# License: MIT
|
||||
|
||||
SCRIPT=$(basename "$0")
|
||||
PREFIX=$1
|
||||
@@ -3,7 +3,7 @@
|
||||
which "$1" >&/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo 0
|
||||
exit 0
|
||||
else
|
||||
echo 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
8
local/bin/x-path-append
Executable file
8
local/bin/x-path-append
Executable 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
7
local/bin/x-path-prepend
Executable 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
7
local/bin/x-path-remove
Executable 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/:$//')
|
||||
|
||||
@@ -22,15 +22,12 @@
|
||||
"ivuorinen"
|
||||
],
|
||||
"author": "Ismo Vuorinen",
|
||||
"license": "ISC",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/ivuorinen/dotfiles/issues"
|
||||
},
|
||||
"homepage": "https://github.com/ivuorinen/dotfiles#readme",
|
||||
"devDependencies": {
|
||||
"@ivuorinen/commitlint-config": "^0.1.10",
|
||||
"@ivuorinen/eslint-config": "^0.2.13",
|
||||
"@ivuorinen/markdownlint-config": "^0.1.6",
|
||||
"@ivuorinen/prettier-config": "^0.1.1"
|
||||
"@ivuorinen/base-configs": "^1.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ packages=(
|
||||
"bkt"
|
||||
# a structural diff that understands syntax
|
||||
"difftastic"
|
||||
# a modern replacement for ‘ls’.
|
||||
# a modern replacement for ls.
|
||||
"eza"
|
||||
# A simple, fast and user-friendly alternative to 'find'
|
||||
"fd-find"
|
||||
|
||||
@@ -14,13 +14,19 @@ PBB_SYNTAX="syntax: bash"
|
||||
PBB_TAGS="tags: [bash]"
|
||||
|
||||
PBB_TEMP_PREFIX=$(basename "$0")
|
||||
PBB_TEMP_DIR="/tmp/pbb-$(rnd)"
|
||||
PBB_TEMP_DIR="$XDG_CACHE_HOME/cheat/pbb"
|
||||
|
||||
# If there's no .git, clone the folder
|
||||
if [ ! -d "$PBB_TEMP_DIR/.git" ]; then
|
||||
msg_run "Starting to clone $PBB_GIT"
|
||||
git clone --depth 1 --single-branch -q "$PBB_GIT" "$PBB_TEMP_DIR" \
|
||||
&& msg_yay "Cloned $PBB_GIT"
|
||||
else
|
||||
# Update the repo
|
||||
msg_run "Starting to update $PBB_GIT"
|
||||
git -C "$PBB_TEMP_DIR" reset --hard origin/master
|
||||
git -C "$PBB_TEMP_DIR" pull -q \
|
||||
&& msg_yay "Updated $PBB_GIT"
|
||||
fi
|
||||
|
||||
PBB_CHAPTERS=$(ls -1v "$PBB_TEMP_DIR"/manuscript/chapter*)
|
||||
@@ -50,8 +56,3 @@ for f in ${PBB_CHAPTERS[@]}; do
|
||||
echo -e "---\n$T---\n$(cat "$CHEAT_FILE")" > "$CHEAT_FILE"
|
||||
fi
|
||||
done
|
||||
|
||||
# Cleanup
|
||||
if [ -d "$PBB_TEMP_DIR" ]; then
|
||||
rm -rf "$PBB_TEMP_DIR"
|
||||
fi
|
||||
|
||||
@@ -13,13 +13,19 @@ TLDR_SOURCE="source: $TLDR_GIT"
|
||||
TLDR_SYNTAX="syntax: markdown"
|
||||
|
||||
TLDR_TEMP_PREFIX=$(basename "$0")
|
||||
TLDR_TEMP_DIR="/tmp/cheat-tldr-$(rnd)"
|
||||
TLDR_TEMP_DIR="$XDG_CACHE_HOME/cheat/tldr"
|
||||
|
||||
# If there's no .git, clone the folder
|
||||
if [ ! -d "$TLDR_TEMP_DIR/.git" ]; then
|
||||
msg_run "Starting to clone $TLDR_GIT"
|
||||
git clone --depth 1 --single-branch -q "$TLDR_GIT" "$TLDR_TEMP_DIR" \
|
||||
&& msg_done "Cloned $TLDR_GIT"
|
||||
else
|
||||
# Update the repo
|
||||
msg_run "Starting to update $TLDR_GIT"
|
||||
git -C "$TLDR_TEMP_DIR" reset --hard origin/main
|
||||
git -C "$TLDR_TEMP_DIR" pull -q \
|
||||
&& msg_done "Updated $TLDR_GIT"
|
||||
fi
|
||||
|
||||
# Fetch the destination directory from cheat defined directories.
|
||||
@@ -67,8 +73,3 @@ for d in "$TLDR_TEMP_DIR"/pages/*; do
|
||||
|
||||
done
|
||||
done
|
||||
|
||||
# Cleanup
|
||||
if [ -d "$TLDR_TEMP_DIR" ]; then
|
||||
rm -rf "$TLDR_TEMP_DIR"
|
||||
fi
|
||||
|
||||
16
scripts/install-ohmybash.sh
Executable file
16
scripts/install-ohmybash.sh
Executable 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
|
||||
@@ -10,10 +10,12 @@ msg "Starting to install pip packages"
|
||||
msg_err "Could not find python3, something really weird is going on." && exit 1
|
||||
}
|
||||
|
||||
msg_nested "Upgrading pip"
|
||||
python3 -m pip install --user --upgrade pip
|
||||
|
||||
packages=(
|
||||
"pipx"
|
||||
"libtmux"
|
||||
"ensurepath"
|
||||
)
|
||||
|
||||
for pkg in "${packages[@]}"; do
|
||||
@@ -23,7 +25,7 @@ for pkg in "${packages[@]}"; do
|
||||
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
||||
|
||||
msg_nested "Installing pip package: $pkg"
|
||||
python3 -m pip install --user "$pkg"
|
||||
python3 -m pip install --user --upgrade "$pkg"
|
||||
|
||||
echo ""
|
||||
done
|
||||
|
||||
@@ -31,23 +31,23 @@ export XDG_RUNTIME_DIR="$HOME/.local/run"
|
||||
# usage: path_remove ~/.local/bin
|
||||
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
|
||||
# usage: path_append ~/.local/bin
|
||||
function path_append
|
||||
{
|
||||
path_remove "$1"
|
||||
PATH="${PATH:+"$PATH:"}$1"
|
||||
x-path-remove "$1"
|
||||
x-path-prepend "$1"
|
||||
}
|
||||
|
||||
# Prepend directory to the PATH
|
||||
# usage: path_prepend ~/.local/bin
|
||||
function path_prepend
|
||||
{
|
||||
path_remove "$1"
|
||||
PATH="$1${PATH:+":$PATH"}"
|
||||
x-path-remove "$1"
|
||||
x-path-prepend "$1"
|
||||
}
|
||||
|
||||
# Create directory if it doesn't exist already
|
||||
@@ -84,56 +84,6 @@ nonascii()
|
||||
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"
|
||||
|
||||
# Load the shell dotfiles, and then some:
|
||||
|
||||
Reference in New Issue
Block a user