Compare commits

...

24 Commits

Author SHA1 Message Date
7dddf3ed75 feat(nvim): add lazyvim extra yanky 2024-01-22 00:45:21 +02:00
62cd8cbda4 feat(nvim): use plugin versions, where available 2024-01-22 00:44:53 +02:00
7dcebc8615 feat(nvim): laytan/cloak.nvim 2024-01-22 00:44:15 +02:00
2e6a1582bf fix(nvim): comment box keymappings 2024-01-22 00:43:45 +02:00
c316a8eb2f feat(tmux): tmux-current-pane-hostname 2024-01-11 22:33:30 +02:00
4a493abedf chore(deps): updated yarn packages 2024-01-03 02:42:33 +02:00
a395397a02 chore(config): ignore sonarqube .scannerwork 2023-12-31 01:04:51 +02:00
33f839c842 fix(lint): fixes to codestyle 2023-12-31 01:04:08 +02:00
8b55ac1bba chore(lint): added yaml doc start lines, spelling 2023-12-31 01:02:44 +02:00
856ca00f1b feat(config): migrated alacritty config to toml 2023-12-30 08:08:30 +02:00
c5bbe4add5 chore(config): update github client config 2023-12-22 02:18:43 +02:00
d2904274cb feat(config): xdg user dirs 2023-12-08 02:26:25 +02:00
7ce8c78920 fix(cargo): change cargo-clean to cargo-cache 2023-12-07 01:43:32 +02:00
71301a6436 feat(scripts): add cache clearing operations 2023-12-07 01:37:39 +02:00
e4f925e5b0 fix(dfm): base/* files not reverted 2023-12-07 01:37:00 +02:00
63ebd6df47 chore(config): alias cleanup and rename ip 2023-12-05 03:09:57 +02:00
d598aade16 chore(scripts): update cargo install script 2023-11-27 19:08:51 +02:00
1b49de9645 chore(shell): bash configs 2023-11-27 19:08:16 +02:00
d56338e233 chore(shell): quote paths 2023-11-22 00:52:47 +02:00
ef6ccb92c0 chore(deps): update yarn packages 2023-11-20 11:29:50 +02:00
16bb91dd81 feat(shell): use starship in bash 2023-11-18 02:33:13 +02:00
e7f078fe96 fix(nvim): merge mason ensure_installed defs 2023-11-16 15:34:22 +02:00
49778fe936 chore: update alacritty, nvim and tmux colors 2023-11-16 15:18:40 +02:00
6a718a41b1 feat(config): config loading changes and fixes 2023-11-16 14:07:22 +02:00
44 changed files with 1342 additions and 1203 deletions

3
.gitmodules vendored
View File

@@ -52,3 +52,6 @@
[submodule "tmux/tmux-mode-indicator"]
path = config/tmux/plugins/tmux-mode-indicator
url = https://github.com/MunifTanjim/tmux-mode-indicator.git
[submodule "tmux/tmux-current-pane-hostname"]
path = config/tmux/plugins/tmux-current-pane-hostname
url = https://github.com/soyuka/tmux-current-pane-hostname.git

View File

@@ -31,6 +31,8 @@ git submodule add --name tmux/tmux-window-name \
-f https://github.com/ofirgall/tmux-window-name.git config/tmux/plugins/tmux-window-name
git submodule add --name tmux/tmux-yank \
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/tmux-yank
git submodule add --name tmux/tmux-current-pane-hostname \
-f https://github.com/soyuka/tmux-current-pane-hostname.git config/tmux/plugins/tmux-current-pane-hostname
# Takes submodules and sets them to ignore all changes
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do

View File

@@ -18,6 +18,9 @@ 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"
source "$DOTFILES/config/exports"
source "$DOTFILES/config/functions"
source "$DOTFILES/config/alias"
x-load-configs
# shellcheck source=../config/fzf/fzf.bash
@@ -27,78 +30,9 @@ x-load-configs
# 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
x-have rbenv && {
eval "$(rbenv init - bash)"
}
eval "$(starship init bash)"
source "$DOTFILES/config/alias"

View File

@@ -61,9 +61,9 @@ antigen bundle jreese/zsh-titles
antigen bundle zsh-users/zsh-completions
# these should be available if there's need
have brew && antigen bundle brew
have php && antigen bundle php
have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
x-have brew && antigen bundle brew
x-have php && antigen bundle php
x-have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
# nvm is a strange beast
zstyle ':omz:plugins:nvm' autoload yes
@@ -81,14 +81,24 @@ antigen apply
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
&& source "${DOTFILES}/config/fzf/fzf.zsh"
x-have op && {
eval "$(op completion zsh)"
compdef _op op
}
x-have rbenv && {
eval "$(rbenv init - zsh)"
}
# Autoupdate tmux window name
TMUX_WINDOW_NAME_PLUGIN="$DOTFILES/config/tmux/plugins/tmux-window-name/scripts/rename_session_windows.py"
[ -f "$TMUX_WINDOW_NAME_PLUGIN" ] && {
tmux-window-name() {
($TMUX_WINDOW_NAME_PLUGIN &)
tmux-window-name()
{
($TMUX_WINDOW_NAME_PLUGIN &)
}
add-zsh-hook chpwd tmux-window-name
}
# Start starship
eval "$(starship init zsh)"
source "$DOTFILES/config/alias"

View File

@@ -0,0 +1,345 @@
[colors]
draw_bold_text_with_bright_colors = true
[colors.bright]
black = "0x414868"
blue = "0x7aa2f7"
cyan = "0x7dcfff"
green = "0x9ece6a"
magenta = "0xbb9af7"
red = "0xf7768e"
white = "0xc0caf5"
yellow = "0xe0af68"
[colors.normal]
black = "0x1d202f"
blue = "0x7aa2f7"
cyan = "0x7dcfff"
green = "0x9ece6a"
magenta = "0xbb9af7"
red = "0xf7768e"
white = "0xa9b1d6"
yellow = "0xe0af68"
[colors.primary]
background = "0x24283b"
foreground = "0xc0caf5"
[env]
TERM = "xterm-256color"
[font]
size = 14.0
[font.bold]
family = "JetBrainsMonoNL Nerd Font Mono"
style = "Bold"
[font.glyph_offset]
x = 0
y = 0
[font.italic]
family = "JetBrainsMonoNL Nerd Font Mono"
style = "Italic"
[font.normal]
family = "JetBrainsMonoNL Nerd Font Mono"
style = "ExtraLight"
[font.offset]
x = 0
y = 0
[[keyboard.bindings]]
action = "Paste"
key = "V"
mods = "Command"
[[keyboard.bindings]]
action = "Copy"
key = "C"
mods = "Command"
[[keyboard.bindings]]
action = "Quit"
key = "Q"
mods = "Command"
[[keyboard.bindings]]
action = "Quit"
key = "W"
mods = "Command"
[[keyboard.bindings]]
action = "SpawnNewInstance"
key = "N"
mods = "Command"
[[keyboard.bindings]]
chars = "\u001BOH"
key = "Home"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1~"
key = "Home"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOF"
key = "End"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[4~"
key = "End"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001B[5;2~"
key = "PageUp"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[5;5~"
key = "PageUp"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[5~"
key = "PageUp"
[[keyboard.bindings]]
chars = "\u001B[6;2~"
key = "PageDown"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[6;5~"
key = "PageDown"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[6~"
key = "PageDown"
[[keyboard.bindings]]
chars = "\u001B[1;2D"
key = "Left"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5D"
key = "Left"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3D"
key = "Left"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[D"
key = "Left"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOD"
key = "Left"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1;2C"
key = "Right"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5C"
key = "Right"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3C"
key = "Right"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[C"
key = "Right"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOC"
key = "Right"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1;2A"
key = "Up"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5A"
key = "Up"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3A"
key = "Up"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[A"
key = "Up"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOA"
key = "Up"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1;2B"
key = "Down"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5B"
key = "Down"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3B"
key = "Down"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[B"
key = "Down"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOB"
key = "Down"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[Z"
key = "Tab"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001BOP"
key = "F1"
[[keyboard.bindings]]
chars = "\u001BOQ"
key = "F2"
[[keyboard.bindings]]
chars = "\u001BOR"
key = "F3"
[[keyboard.bindings]]
chars = "\u001BOS"
key = "F4"
[[keyboard.bindings]]
chars = "\u001B[15~"
key = "F5"
[[keyboard.bindings]]
chars = "\u001B[17~"
key = "F6"
[[keyboard.bindings]]
chars = "\u001B[18~"
key = "F7"
[[keyboard.bindings]]
chars = "\u001B[19~"
key = "F8"
[[keyboard.bindings]]
chars = "\u001B[20~"
key = "F9"
[[keyboard.bindings]]
chars = "\u001B[21~"
key = "F10"
[[keyboard.bindings]]
chars = "\u001B[23~"
key = "F11"
[[keyboard.bindings]]
chars = "\u001B[24~"
key = "F12"
[[keyboard.bindings]]
key = "Back"
action = "ReceiveChar"
[[keyboard.bindings]]
chars = "\u001B[2~"
key = "Insert"
[[keyboard.bindings]]
chars = "\u001B[3~"
key = "Delete"
[[keyboard.bindings]]
chars = "\u0002&"
key = "W"
mods = "Command"
[[keyboard.bindings]]
chars = "\u0002c"
key = "T"
mods = "Command"
[[keyboard.bindings]]
chars = "\u0002n"
key = "RBracket"
mods = "Command|Shift"
[[keyboard.bindings]]
chars = "\u0002p"
key = "LBracket"
mods = "Command|Shift"
[[keyboard.bindings]]
chars = "\u0002o"
key = "RBracket"
mods = "Command"
[[keyboard.bindings]]
chars = "\u0002;"
key = "LBracket"
mods = "Command"
[[keyboard.bindings]]
chars = "\u0002/"
key = "F"
mods = "Command"
[[mouse.bindings]]
action = "PasteSelection"
mouse = "Middle"
[selection]
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
[window]
decorations = "none"
dynamic_title = true
opacity = 0.98
[window.dimensions]
columns = 200
lines = 100
[window.padding]
x = 5
y = 5

View File

@@ -1,206 +0,0 @@
---
# Configuration for Alacritty, the GPU enhanced terminal emulator
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty it self.
env:
# TERM env customization.
#
# If this property is not set, alacritty will set it to xterm-256color.
#
# Note that some xterm terminfo databases don't declare support for italics.
# You can verify this by checking for the presence of `smso` and `sitm` in
# `infocmp xterm-256color`.
TERM: xterm-256color
# Window dimensions in character columns and lines
# (changes require restart)
window:
dynamic_title: true
dimensions:
columns: 130
lines: 40
# Adds this many blank pixels of padding around the window
# Units are physical pixels; this is not DPI aware.
# (change requires restart)
padding:
x: 5
y: 5
decorations: buttonless
opacity: 0.97
# When true, bold text is drawn using the bright variant of colors.
draw_bold_text_with_bright_colors: true
# Font configuration (changes require restart)
font:
# The normal (roman) font face to use.
normal:
family: JetBrainsMonoNL Nerd Font Mono
# Style can be specified to pick a specific face.
style: ExtraLight
# The bold font face
bold:
family: JetBrainsMonoNL Nerd Font Mono
# Style can be specified to pick a specific face.
style: Bold
# The italic font face
italic:
family: JetBrainsMonoNL Nerd Font Mono
# Style can be specified to pick a specific face.
style: Italic
# Point size of the font
size: 14.0
# Offset is the extra space around each character. offset.y can be thought of
# as modifying the linespacing, and offset.x as modifying the letter spacing.
offset:
x: 0
y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increase the x offset to move the glyph to
# the right, increase the y offset to move the glyph upward.
glyph_offset:
x: 0
y: 0
# Should display the render timer
debug.render_timer: false
# TokyoNight Alacritty Colors (storm)
colors:
# Default colors
primary:
background: '0x24283b'
foreground: '0xc0caf5'
# Normal colors
normal:
black: '0x1d202f'
red: '0xf7768e'
green: '0x9ece6a'
yellow: '0xe0af68'
blue: '0x7aa2f7'
magenta: '0xbb9af7'
cyan: '0x7dcfff'
white: '0xa9b1d6'
# Bright colors
bright:
black: '0x414868'
red: '0xf7768e'
green: '0x9ece6a'
yellow: '0xe0af68'
blue: '0x7aa2f7'
magenta: '0xbb9af7'
cyan: '0x7dcfff'
white: '0xc0caf5'
indexed_colors:
- { index: 16, color: '0xff9e64' }
- { index: 17, color: '0xdb4b4b' }
key_bindings:
- { key: V, mods: Command, action: Paste }
- { key: C, mods: Command, action: Copy }
- { key: Q, mods: Command, action: Quit }
- { key: W, mods: Command, action: Quit }
- { key: N, mods: Command, action: SpawnNewInstance }
- { key: Home, chars: "\eOH", mode: AppCursor }
- { key: Home, chars: "\e[1~", mode: ~AppCursor }
- { key: End, chars: "\eOF", mode: AppCursor }
- { key: End, chars: "\e[4~", mode: ~AppCursor }
- { key: PageUp, mods: Shift, chars: "\e[5;2~" }
- { key: PageUp, mods: Control, chars: "\e[5;5~" }
- { key: PageUp, chars: "\e[5~" }
- { key: PageDown, mods: Shift, chars: "\e[6;2~" }
- { key: PageDown, mods: Control, chars: "\e[6;5~" }
- { key: PageDown, chars: "\e[6~" }
- { key: Left, mods: Shift, chars: "\e[1;2D" }
- { key: Left, mods: Control, chars: "\e[1;5D" }
- { key: Left, mods: Alt, chars: "\e[1;3D" }
- { key: Left, chars: "\e[D", mode: ~AppCursor }
- { key: Left, chars: "\eOD", mode: AppCursor }
- { key: Right, mods: Shift, chars: "\e[1;2C" }
- { key: Right, mods: Control, chars: "\e[1;5C" }
- { key: Right, mods: Alt, chars: "\e[1;3C" }
- { key: Right, chars: "\e[C", mode: ~AppCursor }
- { key: Right, chars: "\eOC", mode: AppCursor }
- { key: Up, mods: Shift, chars: "\e[1;2A" }
- { key: Up, mods: Control, chars: "\e[1;5A" }
- { key: Up, mods: Alt, chars: "\e[1;3A" }
- { key: Up, chars: "\e[A", mode: ~AppCursor }
- { key: Up, chars: "\eOA", mode: AppCursor }
- { key: Down, mods: Shift, chars: "\e[1;2B" }
- { key: Down, mods: Control, chars: "\e[1;5B" }
- { key: Down, mods: Alt, chars: "\e[1;3B" }
- { key: Down, chars: "\e[B", mode: ~AppCursor }
- { key: Down, chars: "\eOB", mode: AppCursor }
- { key: Tab, mods: Shift, chars: "\e[Z" }
- { key: F1, chars: "\eOP" }
- { key: F2, chars: "\eOQ" }
- { key: F3, chars: "\eOR" }
- { key: F4, chars: "\eOS" }
- { key: F5, chars: "\e[15~" }
- { key: F6, chars: "\e[17~" }
- { key: F7, chars: "\e[18~" }
- { key: F8, chars: "\e[19~" }
- { key: F9, chars: "\e[20~" }
- { key: F10, chars: "\e[21~" }
- { key: F11, chars: "\e[23~" }
- { key: F12, chars: "\e[24~" }
- { key: Back, chars: '' }
- { key: Back, mods: Alt, chars: "\e" }
- { key: Insert, chars: "\e[2~" }
- { key: Delete, chars: "\e[3~" }
# shortcuts for tmux. the leader key is control-b (0x02)
- { key: W, mods: Command, chars: "\x02&" } # close tab (kill)
- { key: T, mods: Command, chars: "\x02c" } # new tab
- { key: RBracket, mods: Command|Shift, chars: "\x02n" } # select next tab
- { key: LBracket, mods: Command|Shift, chars: "\x02p" } # select previous tab
- { key: RBracket, mods: Command, chars: "\x02o" } # select next pane
- { key: LBracket, mods: Command, chars: "\x02;" } # select last (previously used) pane
- { key: F, mods: Command, chars: "\x02/" } # search (upwards) (see tmux.conf)
# Mouse bindings
#
# Currently doesn't support modifiers. Both the `mouse` and `action` fields must
# be specified.
#
# Values for `mouse`:
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# Values for `action`:
# - Paste
# - PasteSelection
# - Copy (TODO)
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
mouse:
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
selection:
semantic_escape_chars: ',│`|:"'' ()[]{}<>'
# Shell
#
# You can set shell.program to the path of your favorite shell, e.g. /bin/fish.
# Entries in shell.args are passed unmodified as arguments to the shell.
#
#shell:
# program: /bin/bash
# args:
# - --login

View File

@@ -1,68 +1,12 @@
#!/usr/bin/env bash
# shellcheck source="../scripts/shared.sh"
# shellcheck disable=1091,2139
DOTFILES="$HOME/.dotfiles"
# Get installed php versions from brew and setup aliases
function x-set-php-aliases
{
x-have brew && {
local php_versions=()
while IFS="" read -r line; do php_versions+=("$line"); done < <(bkt -- brew list | grep '^php')
php_error_reporting='-d error_reporting=22527'
for version in "${php_versions[@]}"; do
# drop the dot from version (8.0 -> 80)
local php_abbr="${version//\./}"
# replace "php@" with "p" so "php@80" becomes "p80"
local php_alias="${php_abbr//php@/p}"
# Fetch the exec path once
php_exec="$(brew --prefix "$version")/bin/php"
# Raw PHP without error_reporting flag.
# shellcheck disable=SC2139
alias "${php_alias}"r="$php_exec"
# PHP with error_reporting flag.
# shellcheck disable=SC2139,SC2140
alias "$php_alias"="$php_exec $php_error_reporting"
# Local PHP Server.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}s"="$php_exec -S localhost:9000"
# Use composer with specific PHP and error_reporting flag on.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}c"="$php_exec $php_error_reporting $(which composer)"
done
}
}
if [[ $(uname) == 'Darwin' ]]; then
x-set-php-aliases
# Laravel Sail shortcut
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
# Flush Directory Service cache
alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder"
# Lock the screen
alias afk="osascript -e 'tell application \"System Events\" to keystroke \"q\" using {command down,control down}'"
# Empty the Trash on all mounted volumes and the main HDD
# Also, clear Apples System Logs to improve shell startup speed
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
fi
# Be nice
alias please="sudo "
# Color the grep output
alias grep='grep --color'
alias grep="grep --color"
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"
}
# Easier navigation: .., ..., ....
@@ -85,7 +29,7 @@ alias sl="ls"
alias lsd="ls -lF | grep '^d'"
# IP addresses
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias x-ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en1"
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'"
@@ -102,9 +46,6 @@ alias flush="dscacheutil -flushcache"
# Update locatedb
alias updatedb="sudo /usr/libexec/locate.updatedb"
# Always return full history
alias history="history 1"
# tmux: automatically attach or create session with name 'main'
alias tmux='tmux new-session -A -s main'
# tmux: attach or create new session
@@ -138,22 +79,35 @@ alias zedit='$EDITOR ~/.dotfiles'
alias irssi="irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi"
if [[ -f "$HOME/.aliases.local" ]]; then
# shellcheck disable=SC1091
source "$HOME/.aliases.local"
fi
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts"
alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion"
if [[ $(uname) == 'Darwin' ]]; then
# Laravel Sail shortcut
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
# Flush Directory Service cache
alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder"
# Lock the screen
alias afk="osascript -e 'tell application \"System Events\" to keystroke \"q\" using {command down,control down}'"
# Empty the Trash on all mounted volumes and the main HDD
# Also, clear Apple's System Logs to improve shell startup speed
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
x-set-php-aliases
fi
# Alacritty preexec hook to update dynamic title
function preexec()
preexec()
{
print -Pn "\e]0;$1%~\a"
}
# Update dotfiles
function dfu()
dfu()
{
(
cd "$DOTFILES" && git pull --ff-only && ./install -q
@@ -161,7 +115,7 @@ function dfu()
}
# Weather in Tampere, or other city
function weather()
weather()
{
# https://github.com/chubin/wttr.in#usage
local city="${1:-Tampere}"
@@ -169,19 +123,13 @@ function weather()
}
# Docker
function ssh-docker()
ssh-docker()
{
docker exec -it "$@" bash
}
# All the dig info
function digga()
{
dig +nocmd "$1" any +multiline +noall +answer
}
# Rector project to php version 8.2 by default.
function rector()
rector()
{
local php="${1:-82}"
docker run -v "$(pwd)":/project rector/rector:latest process \
@@ -191,7 +139,7 @@ function rector()
}
# Commit everything
function commit()
commit()
{
commitMessage="$*"
@@ -203,7 +151,7 @@ function commit()
eval "git commit -a -m '${commitMessage}'"
}
function scheduler()
scheduler()
{
while :; do
php artisan schedule:run

View File

@@ -1,19 +1,23 @@
---
# 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
# 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.
# 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 - Ordered list of layouts to use by layout key
# (default tall, wide, fullscreen, and column).
layouts:
- bsp
- tall
@@ -71,39 +75,49 @@ 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 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 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 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 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.
# 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.
# 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.
# 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.
# General purpose command for custom layouts.
# Functionality is layout-dependent.
# command4:
# mod: <NONE>
# key: <NONE>
@@ -133,42 +147,51 @@ focus-screen-cw:
mod: mod1
key: n
# Move the currently focused window onto the next screen in the list going counter-clockwise.
# 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.
# 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 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 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 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.
# 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.
# 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.
# 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
@@ -203,7 +226,9 @@ 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 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
@@ -236,10 +261,13 @@ relaunch-amethyst:
# 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).
# Boolean flag for whether to add margins between
# 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).
# Boolean flag for whether 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
@@ -248,39 +276,53 @@ smart-window-margins: true
# 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.
# 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).
# 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)
# 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 []).
# 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).
# 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).
# 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)
# 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.
# 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
# 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).
# 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.
# 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).
@@ -292,13 +334,15 @@ 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).
# 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).
# 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).

View File

@@ -1,3 +1,4 @@
---
# The editor to use with 'cheat -e <sheet>'. Defaults to $EDITOR or $VISUAL.
# editor: $EDITOR
@@ -37,7 +38,7 @@ pager: less -FRX
#
# This is very useful when you would like to maintain, for example, a
# "pristine" repository of community cheatsheets on one cheatpath, and an
# editable personal reponsity of cheatsheets on another cheatpath.
# editable personal repository of cheatsheets on another cheatpath.
#
# Cheatpaths can be also configured to automatically apply tags to cheatsheets
# on certain paths, which can be useful for querying purposes.

View File

@@ -2,11 +2,6 @@
# shellcheck shell=bash
# 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()
@@ -26,7 +21,7 @@ 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
have_command()
{
command -v "$1" >&/dev/null
}
@@ -34,21 +29,21 @@ function have_command
# shorthand for checking if the system has the bin in path,
# this version uses caching
# usage: have php && php -v
function have
have()
{
bkt -- which "$1" >&/dev/null
}
function brew_installed
brew_installed()
{
bkt -- brew list
}
# shorthand for checking if brew package is installed
# usage: have_brew php && php -v
function have_brew
have_brew()
{
! have brew && return 125
! x-have brew && return 125
if bkt -- brew list "$1" &> /dev/null; then
return 0

View File

@@ -7,6 +7,7 @@
# Antigen configuration
# https://github.com/zsh-users/antigen/wiki/Configuration
export ADOTDIR="$XDG_DATA_HOME/antigen"
export ANTIGEN_CACHE="$XDG_CACHE_HOME/antigen"
export ANTIGEN_SYSTEM_RECEIPT_F=".local/share/antigen/antigen_system_lastupdate"
export ANTIGEN_PLUGIN_RECEIPT_F=".local/share/antigen/antigen_plugin_lastupdate"
@@ -59,12 +60,6 @@ x-have node && {
# op (1Password cli) is present
export OP_CACHE="$XDG_STATE_HOME/1password"
x-have op && {
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && {
eval "$(op completion zsh)"
compdef _op op
}
}
# Python
#
@@ -87,10 +82,6 @@ export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
x-dc "$RBENV_ROOT"
x-have gem && export PATH="${GEM_HOME}/bin:$PATH"
x-have rbenv && {
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && eval "$(rbenv init - zsh)"
[ "$DOTFILES_CURRENT_SHELL" = "bash" ] && eval "$(rbenv init - bash)"
}
# Rust / cargo
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"

View File

@@ -1,7 +1,7 @@
# lakka exports
## LUA
have luarocks && $(luarocks path --bin)
x-have luarocks && $(luarocks path --bin)
export PATH="$HOME/.local/go/bin:$PATH"
@@ -17,4 +17,3 @@ export RVM_PATH="$HOME/.rvm"
export PATH="$RVM_PATH/bin:$PATH"
# shellcheck source=$HOME/.rvm/scripts/rvm
[[ -s "$RVM_PATH/scripts/rvm" ]] && source "$RVM_PATH/scripts/rvm" # Load RVM into a shell session *as a function*

View File

@@ -3,21 +3,6 @@
# shellcheck disable=1091,2046
# vim: filetype=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 LC_ALL=fi_FI.UTF-8
# Bash completion file location
export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_completion"
@@ -38,13 +23,13 @@ export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
export LESSHISTFILE="$XDG_STATE_HOME"/less/history
# Highlight section titles in manual pages
export LESS_TERMCAP_md="$ORANGE"
# export LESS_TERMCAP_md="$ORANGE"
# zsh autoloaded terminfo
export TERMINFO="$XDG_DATA_HOME"/terminfo
export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo
export TERMINFO="${XDG_DATA_HOME}/terminfo"
export TERMINFO_DIRS="${XDG_DATA_HOME}/terminfo":/usr/share/terminfo
# Dont clear the screen after quitting a manual page
# Don't clear the screen after quitting a manual page
export MANPAGER="less -X"
# Always enable colored `grep` output

View File

@@ -1,3 +1,4 @@
---
check_for_updates: true
excluded_labels:
- maintenance

View File

@@ -1 +1,3 @@
---
git_protocol: https
version: '1'

View File

@@ -1,3 +1,6 @@
---
github.com:
user: ivuorinen
git_protocol: https
users:
ivuorinen:
user: ivuorinen

View File

@@ -18,3 +18,4 @@ composer.phar
wp_*.sh
auth.json
dfm.sh
.scannerwork

View File

@@ -1,6 +1,7 @@
{
"extras": [
"lazyvim.plugins.extras.coding.copilot",
"lazyvim.plugins.extras.coding.yanky",
"lazyvim.plugins.extras.editor.aerial",
"lazyvim.plugins.extras.editor.leap",
"lazyvim.plugins.extras.editor.symbols-outline",
@@ -25,4 +26,4 @@
"NEWS.md": "2123"
},
"version": 2
}
}

View File

@@ -1,19 +1,22 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
local wk = require("which-key")
local keymap = vim.keymap.set
-- ──────────────────────────────────────────────────────────
-- │ Comment box │
-- ╰──────────────────────────────────────────────────────────╯
local cb = require("comment-box")
-- left aligned fixed size box with left aligned text
keymap({ "n", "v" }, "<Leader>bcb", cb.lbox, { desc = "Comment: Left aligned" })
-- centered adapted box with centered text
keymap({ "n", "v" }, "<Leader>bcc", cb.ccbox, { desc = "Comment: Centered" })
-- centered line
keymap("n", "<Leader>bcl", cb.cline, { desc = "Comment: Centered line" })
keymap("i", "<M-l>", cb.cline, { desc = "Comment: Centered line" })
-- ╭──────────────────────────────────────────────────────────╮
-- │ Comment box │
-- ──────────────────────────────────────────────────────────
wk.register({
["<Leader>"] = {
b = {
c = {
name = "□ Comment boxes",
b = { "<Cmd>CBccbox<CR>", "Box Title" },
t = { "<Cmd>CBllline<CR>", "Titled Line" },
l = { "<Cmd>CBline<CR>", "Simple Line" },
m = { "<Cmd>CBllbox14<CR>", "Marked" },
d = { "<Cmd>CBd<CR>", "Remove a box" },
},
},
},
})

View File

@@ -12,9 +12,14 @@ require("lazy").setup({
{
"LazyVim/LazyVim",
import = "lazyvim.plugins",
opts = {
colorscheme = "tokyonight",
},
},
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {
style = "night",
transparent = true,
@@ -23,6 +28,8 @@ require("lazy").setup({
sidebars = "transparent",
floats = "transparent",
},
dim_inactive = true,
lualine_bold = true,
},
},
{ import = "plugins" },
@@ -33,8 +40,8 @@ require("lazy").setup({
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
-- version = false, -- always use the latest git commit
version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight" } },
checker = { enabled = true }, -- automatically check for plugin updates

View File

@@ -15,6 +15,10 @@ return {
},
},
keys = {
{
"<leader>ba",
desc = "Annotations / Comments",
},
{
"<leader>baa",
function()
@@ -68,10 +72,12 @@ return {
-- Clarify and beautify your comments using boxes and lines.
-- https://github.com/LudoPinelli/comment-box.nvim
{ "LudoPinelli/comment-box.nvim", opts = {} },
-- Mason
-- https://github.com/williamboman/mason.nvim
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, {
"actionlint",
"ansible-language-server",
"ansible-lint",
@@ -86,18 +92,24 @@ return {
"dockerfile-language-server",
"editorconfig-checker",
"fixjson",
"flake8",
"html-lsp",
"jq",
"jsonlint",
"luacheck",
"nginx-language-server",
"php-cs-fixer",
"phpcs",
"phpmd",
"semgrep",
"sonarlint-language-server",
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
"sonarlint-language-server",
"stylelint",
"stylua",
"yamllint",
})
end,
},
-- Vim plugin for automatic time tracking and metrics generated from your programming activity.
-- https://github.com/wakatime/vim-wakatime

View File

@@ -1,24 +0,0 @@
return {
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"actionlint",
"ansible-lint",
"bash-language-server",
"commitlint",
"flake8",
"intelephense",
"jsonlint",
"luacheck",
"phpcs",
"phpmd",
"shellcheck",
"shfmt",
"stylelint",
"stylua",
"yamllint",
},
},
},
}

View File

@@ -1,5 +1,8 @@
-- luacheck: globals vim
return {
-- Cloak allows you to overlay *'s over defined patterns in defined files.
-- https://github.com/laytan/cloak.nvim
{ "laytan/cloak.nvim" },
-- Not UFO in the sky, but an ultra fold in Neovim.
-- https://github.com/kevinhwang91/nvim-ufo/
{

View File

@@ -8,8 +8,8 @@
# │ Bindings │
# ╰──────────────────────────────────────────────────────────╯
# Set <prefix> to Control + Space
unbind C-b
# Set <prefix> to Control + Space, keeping the default of C-b intact.
# unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
@@ -92,9 +92,6 @@ set-window-option -g mode-keys vi
# │ Theme │
# ╰──────────────────────────────────────────────────────────╯
# Set theme to tokyonight
# source-file ~/.dotfiles/config/tmux/tokyonight_storm.tmux
# Make sure status sides are long enough and centered is in the middle
set -g status-left-length "30"
set -g status-right-length "30"
@@ -108,7 +105,7 @@ set-option -g window-status-format ' #I:#W '
set-window-option -g window-status-current-style 'fg=#111111,bg=#7aa2f7'
set-option -g window-status-current-format ' #I:#W#{?window_zoomed_flag,  , } '
set-option -g status-left "#S"
set-option -g status-left "#{?#{pane_ssh_connected},#{hostname_short}/,}#S"
set-option -g status-right "%H:%M #{tmux_mode_indicator}"
# ╭──────────────────────────────────────────────────────────╮
@@ -143,9 +140,6 @@ set -g @mode_indicator_copy_mode_style 'bg=default,fg=yellow'
set -g @mode_indicator_empty_mode_style 'bg=default,fg=#7aa2f7'
set -g @mode_indicator_sync_mode_style 'bg=default,fg=red'
# 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 │
# ╰──────────────────────────────────────────────────────────╯
@@ -158,4 +152,5 @@ 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-current-pane-hostname/current_pane_hostname.tmux

View File

@@ -1,38 +0,0 @@
#!/usr/bin/env bash
# TokyoNight colors for Tmux
set -g mode-style "fg=#7aa2f7,bg=#3b4261"
set -g message-style "fg=#7aa2f7,bg=#3b4261"
set -g message-command-style "fg=#7aa2f7,bg=#3b4261"
set -g pane-border-style "fg=#3b4261"
set -g pane-active-border-style "fg=#7aa2f7"
set -g status "on"
set -g status-justify "left"
set -g status-style "fg=#7aa2f7,bg=#1f2335"
set -g status-left-length "100"
set -g status-right-length "100"
set -g status-left-style NONE
set -g status-right-style NONE
set -g status-left "#[fg=#1d202f,bg=#7aa2f7,bold] #S #[fg=#7aa2f7,bg=#1f2335,nobold,nounderscore,noitalics]"
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  %I:%M %p #[fg=#7aa2f7,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#1d202f,bg=#7aa2f7,bold] #h "
if-shell '[ "$(tmux show-option -gqv "clock-mode-style")" == "24" ]' {
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 "
}
setw -g window-status-activity-style "underscore,fg=#a9b1d6,bg=#1f2335"
setw -g window-status-separator ""
setw -g window-status-style "NONE,fg=#a9b1d6,bg=#1f2335"
setw -g window-status-format "#[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]#[default] #I  #W #F #[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]"
setw -g window-status-current-format "#[fg=#1f2335,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#3b4261,bold] #I  #W #F #[fg=#3b4261,bg=#1f2335,nobold,nounderscore,noitalics]"
# tmux-plugins/tmux-prefix-highlight support
set -g @prefix_highlight_output_prefix "#[fg=#e0af68]#[bg=#1f2335]#[fg=#1f2335]#[bg=#e0af68]"
set -g @prefix_highlight_output_suffix ""

15
config/user-dirs.dirs Normal file
View File

@@ -0,0 +1,15 @@
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"

1
config/user-dirs.locale Normal file
View File

@@ -0,0 +1 @@
en_US

View File

@@ -1,3 +1,4 @@
---
wtf:
colors:
background: black

View File

@@ -1,3 +1,4 @@
---
- include: 'tools/dotbot-defaults.yaml'
- shell:
- echo "Configuring air"

View File

@@ -1,3 +1,4 @@
---
- include: 'tools/dotbot-defaults.yaml'
- shell:
- echo "Configuring lakka"

View File

@@ -1,3 +1,4 @@
---
- include: 'tools/dotbot-defaults.yaml'
- shell:
- echo "Configuring tunkki"

View File

@@ -1,3 +1,4 @@
---
- include: 'tools/dotbot-defaults.yaml'
- shell:
- echo "Configuring v"

View File

@@ -1,3 +1,4 @@
---
- include: 'tools/dotbot-defaults.yaml'
- clean:
~/:

View File

@@ -19,6 +19,9 @@ VERSION_NVM="v0.39.5"
export DOTFILES="$HOME/.dotfiles"
# shellcheck source=./../../scripts/shared.sh
source "$HOME/.dotfiles/scripts/shared.sh"
source "$DOTFILES/config/exports"
source "$DOTFILES/config/alias"
source "$DOTFILES/config/functions"
# Loads configs for better installation experience
x-load-configs
@@ -152,6 +155,8 @@ function section_install
nvm)
msg "Installing nvm..."
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash
git checkout "$DOTFILES/base/zshrc"
git checkout "$DOTFILES/base/bashrc"
$0 install nvm-latest
msg_yay "nvm installed!"
;;
@@ -161,7 +166,8 @@ function section_install
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
fi
nvm install --lts --latest-npm --default
git checkout "$DOTFILES/base/*"
git checkout "$DOTFILES/base/zshrc"
git checkout "$DOTFILES/base/bashrc"
msg_yay "latest lts node installed!"
;;
npm)

View File

@@ -42,26 +42,26 @@ sortByOnDiskSize = False
class Blob(object):
sha1 = ''
size = 0
packedSize = 0
packed_size = 0
path = ''
def __init__(self, line):
cols = line.split()
self.sha1, self.size, self.packedSize = cols[0], int(cols[2]), int(cols[3])
self.sha1, self.size, self.packed_size = cols[0], int(cols[2]), int(cols[3])
def __repr__(self):
return '{} - {} - {} - {}'.format(
self.sha1, self.size, self.packedSize, self.path)
self.sha1, self.size, self.packed_size, self.path)
def __lt__(self, other):
if (sortByOnDiskSize):
return self.size < other.size
else:
return self.packedSize < other.packedSize
return self.packed_size < other.packed_size
def csv_line(self):
return "{},{},{},{}".format(
self.size/1024, self.packedSize/1024, self.sha1, self.path)
self.size/1024, self.packed_size/1024, self.sha1, self.path)
def main():
@@ -71,45 +71,45 @@ def main():
args = parse_arguments()
sortByOnDiskSize = args.sortByOnDiskSize
sizeLimit = 1024*args.filesExceeding
size_limit = 1024*args.filesExceeding
if args.filesExceeding > 0:
print("Finding objects larger than {}kB…".format(args.filesExceeding))
else:
print("Finding the {} largest objects…".format(args.matchCount))
blobs = get_top_blobs(args.matchCount, sizeLimit)
blobs = get_top_blobs(args.matchCount, size_limit)
populate_blob_paths(blobs)
print_out_blobs(blobs)
def get_top_blobs(count, sizeLimit):
def get_top_blobs(count, size_limit):
"""Get top blobs from git repository
Args:
count (int): How many items to return
sizeLimit (int): What is the size limit
size_limit (int): What is the size limit
Returns:
dict: Dictionary of Blobs
"""
sortColumn = 4
sort_column = 4
if sortByOnDiskSize:
sortColumn = 3
sort_column = 3
verifyPack = "git verify-pack -v `git rev-parse --git-dir`/objects/pack/pack-*.idx | grep blob | sort -k{}nr".format(sortColumn) # noqa: E501
output = check_output(verifyPack, shell=True).decode('utf-8').strip().split("\n")[:-1] # noqa: E501
verify_pack = "git verify-pack -v `git rev-parse --git-dir`/objects/pack/pack-*.idx | grep blob | sort -k{}nr".format(sort_column) # noqa: E501
output = check_output(verify_pack, shell=True).decode('utf-8').strip().split("\n")[:-1] # noqa: E501
blobs = dict()
# use __lt__ to do the appropriate comparison
compareBlob = Blob("a b {} {} c".format(sizeLimit, sizeLimit))
for objLine in output:
blob = Blob(objLine)
compare_blob = Blob("a b {} {} c".format(size_limit, size_limit))
for obj_line in output:
blob = Blob(obj_line)
if sizeLimit > 0:
if compareBlob < blob:
if size_limit > 0:
if compare_blob < blob:
blobs[blob.sha1] = blob
else:
break
@@ -132,8 +132,8 @@ def populate_blob_paths(blobs):
print("Finding object paths…")
# Only include revs which have a path. Other revs aren't blobs.
revList = "git rev-list --all --objects | awk '$2 {print}'"
all_object_lines = check_output(revList, shell=True).decode('utf-8').strip().split("\n")[:-1] # noqa: E501
rev_list = "git rev-list --all --objects | awk '$2 {print}'"
all_object_lines = check_output(rev_list, shell=True).decode('utf-8').strip().split("\n")[:-1] # noqa: E501
outstanding_keys = list(blobs.keys())
for line in all_object_lines:
@@ -151,16 +151,16 @@ def populate_blob_paths(blobs):
def print_out_blobs(blobs):
if len(blobs):
csvLines = ["size,pack,hash,path"]
csv_lines = ["size,pack,hash,path"]
for blob in sorted(blobs.values(), reverse=True):
csvLines.append(blob.csv_line())
csv_lines.append(blob.csv_line())
command = ["column", "-t", "-s", ","]
p = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE)
# Encode the input as bytes
input_data = ("\n".join(csvLines) + "\n").encode()
input_data = ("\n".join(csv_lines) + "\n").encode()
stdout, _ = p.communicate(input_data)

View File

@@ -2,35 +2,76 @@
# Load our configuration files
# Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved.
# Set verbosity with VERBOSE=1 x-load-configs
: "${VERBOSE:0}"
set -euo pipefail
DOTFILES="$HOME/.dotfiles"
# Set verbosity with VERBOSE=1 x-load-configs
VERBOSE="${VERBOSE:=0}"
[ "$VERBOSE" = "1" ] && {
set -x
}
CONFIG_PATH="$DOTFILES/config"
# Load the shell dotfiles, and then some:
HOST="$(hostname -s)"
[ "$VERBOSE" = "1" ] && {
echo "x-load-config-fn: VERBOSE=1"
echo "x-load-config-fn: HOST: $HOST"
echo "x-load-configs: VERBOSE=1"
echo "x-load-configs: HOST: $HOST"
}
for FILE in $CONFIG_PATH/{exports,alias,functions}; do
FILENAME="$FILE"
configFile()
{
echo "$CONFIG_PATH/$1"
}
configMsg()
{
printf 'x-load-configs: %s %s\n' "$1" "$2"
}
loadConfigFiles()
{
CONFIG_FILE=$1
SECRET_FILE=$CONFIG_FILE-secret
HOST_FILE=$CONFIG_FILE-$HOST
SECRET_HOST=$HOST_FILE-secret
[ "$VERBOSE" = "1" ] && configMsg "?" "$CONFIG_FILE"
# global (exports|alias|functions) FILENAME for all hosts
# shellcheck source=../config/exports
[ -r "$FILENAME" ] && source "$FILENAME" \
&& [ "$VERBOSE" = "1" ] && echo "x-load-config-fn: $FILENAME"
[ -r "$CONFIG_FILE" ] && {
source "$CONFIG_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$CONFIG_FILE"
}
# global secret FILENAME, git ignored
# shellcheck source=../config/exports-secret
[ -r "$FILENAME-secret" ] && source "$FILENAME-secret" \
&& [ "$VERBOSE" = "1" ] && echo "x-load-config-fn: $FILENAME-secret"
[ "$VERBOSE" = "1" ] && configMsg "?" "$SECRET_FILE"
[ -r "$SECRET_FILE" ] && {
source "$SECRET_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$SECRET_FILE"
}
# host specific (exports|alias|functions) FILENAME
# shellcheck source=../config/exports
[ -r "$FILENAME-$HOST" ] && source "$FILENAME-$HOST" \
&& [ "$VERBOSE" = "1" ] && echo "x-load-config-fn: $FILENAME-$HOST"
[ "$VERBOSE" = "1" ] && configMsg "?" "$HOST_FILE"
[ -r "$HOST_FILE" ] && {
source "$HOST_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$HOST_FILE"
}
# host specific (exports|alias|functions) FILENAME, git ignored
# shellcheck source=../config/exports
[ -r "$FILENAME-$HOST-secret" ] && source "$FILENAME-$HOST-secret" \
&& [ "$VERBOSE" = "1" ] && echo "x-load-config-fn: $FILENAME-$HOST-secret"
done
[ "$VERBOSE" = "1" ] && configMsg "?" "$SECRET_HOST"
[ -r "$SECRET_HOST" ] && {
source "$SECRET_HOST" \
&& [ "$VERBOSE" = "1" ] && configMsg "Found" "$SECRET_HOST"
}
}
FILE_EXPORTS=$(configFile "exports")
FILE_FUNCTIONS=$(configFile "functions")
FILE_ALIAS=$(configFile "alias")
loadConfigFiles "$FILE_EXPORTS"
loadConfigFiles "$FILE_FUNCTIONS"
loadConfigFiles "$FILE_ALIAS"
exit 0

50
local/bin/x-set-php-aliases Executable file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# Check which php versions are installed with brew, and create aliases for each installation.
# Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved.
set -euo pipefail
# Set verbosity with VERBOSE=1 x-load-configs
VERBOSE="${VERBOSE:=0}"
[ "$VERBOSE" = "2" ] && {
set -x
}
! x-have brew && {
exit 0
}
# Get installed php versions from brew and setup aliases
php_versions=()
while IFS="" read -r line; do php_versions+=("$line"); done < <(bkt -- brew list | grep '^php')
php_error_reporting='-d error_reporting=22527'
for version in "${php_versions[@]}"; do
[ "$VERBOSE" = "1" ] && echo "Setting aliases for $version"
# drop the dot from version (8.0 -> 80)
php_abbr="${version//\./}"
# replace "php@" with "p" so "php@80" becomes "p80"
php_alias="${php_abbr//php@/p}"
# Fetch the exec path once
php_exec="$HOMEBREW_PREFIX/opt/$version/bin/php"
[ -f "$php_exec" ] && {
[ "$VERBOSE" = "1" ] && echo "-> php_exec $php_exec"
# Raw PHP without error_reporting flag.
# shellcheck disable=SC2139
alias "${php_alias}"r="$php_exec"
# PHP with error_reporting flag.
# shellcheck disable=SC2139,SC2140
alias "$php_alias"="$php_exec $php_error_reporting"
# Local PHP Server.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}s"="$php_exec -S localhost:9000"
# Use composer with specific PHP and error_reporting flag on.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}c"="$php_exec $php_error_reporting $(which composer)"
}
done

View File

@@ -2,18 +2,29 @@
# Install cargo/rust packages.
#
# shellcheck source=shared.sh
source "$HOME/.dotfiles/config/exports"
source "$HOME/.dotfiles/config/alias"
source "$HOME/.dotfiles/config/functions"
source "$HOME/.dotfiles/scripts/shared.sh"
msg "Starting to install rust/cargo packages"
! x-have cargo && {
msg "cargo could not be found. installing cargo with rustup.rs"
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path -y
}
source "$CARGO_HOME/env"
! x-have rustup && {
msg_err "rustup could not be found. Aborting..."
exit 1
}
rustup default system
packages=(
"cargo-cache"
# starship.rs
"starship"
# An incremental parsing system for programming tools
@@ -58,4 +69,5 @@ x-have bob && {
bob use stable && x-path-append "$XDG_DATA_HOME/bob/nvim-bin"
}
msg_done "All next steps done!"
msg_run "Removing cargo cache"
cargo cache --autoclean

View File

@@ -24,10 +24,13 @@ 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 \
git -C "$TLDR_TEMP_DIR" pull -q --depth 2 \
&& msg_done "Updated $TLDR_GIT"
fi
msg_run "Removing non-english translation files"
rm -rf "$TLDR_TEMP_DIR/pages.*"
# Fetch the destination directory from cheat defined directories.
TLDR_CHEAT_DEST="$(cheat -d | grep tldr | head -1 | awk '{print $2}')"

View File

@@ -50,4 +50,8 @@ x-have git-profile && {
}
echo ""
msg_run "Clearing go cache"
go clean -cache -modcache
msg_ok "Done"

View File

@@ -37,3 +37,8 @@ done
msg_run "Upgrading all global packages"
npm -g --no-progress --no-timing --no-fund outdated
npm -g --no-timing --no-fund upgrade
msg_run "Cleaning up npm cache"
npm cache verify
npm cache clean --force
npm cache verify

View File

@@ -1,3 +1,4 @@
---
- defaults:
create:
mode: 0755

1213
yarn.lock

File diff suppressed because it is too large Load Diff