mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-28 16:45:47 +00:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e0a88cf8f | |||
| f72f57ebf0 | |||
| b5e56e2cbb | |||
|
|
179938132c | ||
|
|
bae84c176c | ||
| be8a6761af | |||
| c348f3625f | |||
| 094f19c99c | |||
| 5a23ae8f01 | |||
|
|
ee47821089 | ||
|
|
b834ce04f7 | ||
|
|
6a62d73d7f | ||
|
|
440842ed34 | ||
|
|
d0563e4a29 | ||
|
|
bc404bfbea | ||
| 923f881725 | |||
| ccc5903290 | |||
|
|
786efc48fa | ||
| 2a11a28422 | |||
| 812a27ea61 | |||
| e73e61f01b | |||
| 314679b4fc | |||
|
|
516b27384a | ||
|
|
9e1af3053d | ||
|
|
9e4f8741b3 |
@@ -23,13 +23,13 @@ repos:
|
||||
args: [--autofix, --no-sort-keys]
|
||||
|
||||
- repo: https://github.com/igorshubovych/markdownlint-cli
|
||||
rev: v0.44.0
|
||||
rev: v0.45.0
|
||||
hooks:
|
||||
- id: markdownlint
|
||||
args: [-c, .markdownlint.json, --fix]
|
||||
|
||||
- repo: https://github.com/adrienverge/yamllint
|
||||
rev: v1.37.0
|
||||
rev: v1.37.1
|
||||
hooks:
|
||||
- id: yamllint
|
||||
|
||||
@@ -49,7 +49,7 @@ repos:
|
||||
- id: actionlint
|
||||
|
||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||
rev: 40.0.6
|
||||
rev: 40.48.4
|
||||
hooks:
|
||||
- id: renovate-config-validator
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.13.3
|
||||
3.13.4
|
||||
|
||||
@@ -213,7 +213,7 @@ get_sha256sum()
|
||||
# $2 - filename (string)
|
||||
#
|
||||
# Returns 1 when replaceable, 0 when not replaceable.
|
||||
replacable()
|
||||
replaceable()
|
||||
{
|
||||
FILE1="$1"
|
||||
FILE2="$2"
|
||||
|
||||
176
config/fish/completions/git-profile.fish
Normal file
176
config/fish/completions/git-profile.fish
Normal file
@@ -0,0 +1,176 @@
|
||||
# fish completion for git-profile -*- shell-script -*-
|
||||
|
||||
function __git_profile_debug
|
||||
set -l file "$BASH_COMP_DEBUG_FILE"
|
||||
if test -n "$file"
|
||||
echo "$argv" >> $file
|
||||
end
|
||||
end
|
||||
|
||||
function __git_profile_perform_completion
|
||||
__git_profile_debug "Starting __git_profile_perform_completion"
|
||||
|
||||
# Extract all args except the last one
|
||||
set -l args (commandline -opc)
|
||||
# Extract the last arg and escape it in case it is a space
|
||||
set -l lastArg (string escape -- (commandline -ct))
|
||||
|
||||
__git_profile_debug "args: $args"
|
||||
__git_profile_debug "last arg: $lastArg"
|
||||
|
||||
set -l requestComp "$args[1] __complete $args[2..-1] $lastArg"
|
||||
|
||||
__git_profile_debug "Calling $requestComp"
|
||||
set -l results (eval $requestComp 2> /dev/null)
|
||||
|
||||
# Some programs may output extra empty lines after the directive.
|
||||
# Let's ignore them or else it will break completion.
|
||||
# Ref: https://github.com/spf13/cobra/issues/1279
|
||||
for line in $results[-1..1]
|
||||
if test (string trim -- $line) = ""
|
||||
# Found an empty line, remove it
|
||||
set results $results[1..-2]
|
||||
else
|
||||
# Found non-empty line, we have our proper output
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
set -l comps $results[1..-2]
|
||||
set -l directiveLine $results[-1]
|
||||
|
||||
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
|
||||
# completions must be prefixed with the flag
|
||||
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
|
||||
|
||||
__git_profile_debug "Comps: $comps"
|
||||
__git_profile_debug "DirectiveLine: $directiveLine"
|
||||
__git_profile_debug "flagPrefix: $flagPrefix"
|
||||
|
||||
for comp in $comps
|
||||
printf "%s%s\n" "$flagPrefix" "$comp"
|
||||
end
|
||||
|
||||
printf "%s\n" "$directiveLine"
|
||||
end
|
||||
|
||||
# This function does two things:
|
||||
# - Obtain the completions and store them in the global __git_profile_comp_results
|
||||
# - Return false if file completion should be performed
|
||||
function __git_profile_prepare_completions
|
||||
__git_profile_debug ""
|
||||
__git_profile_debug "========= starting completion logic =========="
|
||||
|
||||
# Start fresh
|
||||
set --erase __git_profile_comp_results
|
||||
|
||||
set -l results (__git_profile_perform_completion)
|
||||
__git_profile_debug "Completion results: $results"
|
||||
|
||||
if test -z "$results"
|
||||
__git_profile_debug "No completion, probably due to a failure"
|
||||
# Might as well do file completion, in case it helps
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l directive (string sub --start 2 $results[-1])
|
||||
set --global __git_profile_comp_results $results[1..-2]
|
||||
|
||||
__git_profile_debug "Completions are: $__git_profile_comp_results"
|
||||
__git_profile_debug "Directive is: $directive"
|
||||
|
||||
set -l shellCompDirectiveError 1
|
||||
set -l shellCompDirectiveNoSpace 2
|
||||
set -l shellCompDirectiveNoFileComp 4
|
||||
set -l shellCompDirectiveFilterFileExt 8
|
||||
set -l shellCompDirectiveFilterDirs 16
|
||||
|
||||
if test -z "$directive"
|
||||
set directive 0
|
||||
end
|
||||
|
||||
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
|
||||
if test $compErr -eq 1
|
||||
__git_profile_debug "Received error directive: aborting."
|
||||
# Might as well do file completion, in case it helps
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
|
||||
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
|
||||
if test $filefilter -eq 1; or test $dirfilter -eq 1
|
||||
__git_profile_debug "File extension filtering or directory filtering not supported"
|
||||
# Do full file completion instead
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
|
||||
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
|
||||
|
||||
__git_profile_debug "nospace: $nospace, nofiles: $nofiles"
|
||||
|
||||
# If we want to prevent a space, or if file completion is NOT disabled,
|
||||
# we need to count the number of valid completions.
|
||||
# To do so, we will filter on prefix as the completions we have received
|
||||
# may not already be filtered so as to allow fish to match on different
|
||||
# criteria than the prefix.
|
||||
if test $nospace -ne 0; or test $nofiles -eq 0
|
||||
set -l prefix (commandline -t | string escape --style=regex)
|
||||
__git_profile_debug "prefix: $prefix"
|
||||
|
||||
set -l completions (string match -r -- "^$prefix.*" $__git_profile_comp_results)
|
||||
set --global __git_profile_comp_results $completions
|
||||
__git_profile_debug "Filtered completions are: $__git_profile_comp_results"
|
||||
|
||||
# Important not to quote the variable for count to work
|
||||
set -l numComps (count $__git_profile_comp_results)
|
||||
__git_profile_debug "numComps: $numComps"
|
||||
|
||||
if test $numComps -eq 1; and test $nospace -ne 0
|
||||
# We must first split on \t to get rid of the descriptions to be
|
||||
# able to check what the actual completion will be.
|
||||
# We don't need descriptions anyway since there is only a single
|
||||
# real completion which the shell will expand immediately.
|
||||
set -l split (string split --max 1 \t $__git_profile_comp_results[1])
|
||||
|
||||
# Fish won't add a space if the completion ends with any
|
||||
# of the following characters: @=/:.,
|
||||
set -l lastChar (string sub -s -1 -- $split)
|
||||
if not string match -r -q "[@=/:.,]" -- "$lastChar"
|
||||
# In other cases, to support the "nospace" directive we trick the shell
|
||||
# by outputting an extra, longer completion.
|
||||
__git_profile_debug "Adding second completion to perform nospace directive"
|
||||
set --global __git_profile_comp_results $split[1] $split[1].
|
||||
__git_profile_debug "Completions are now: $__git_profile_comp_results"
|
||||
end
|
||||
end
|
||||
|
||||
if test $numComps -eq 0; and test $nofiles -eq 0
|
||||
# To be consistent with bash and zsh, we only trigger file
|
||||
# completion when there are no other completions
|
||||
__git_profile_debug "Requesting file completion"
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
|
||||
# so we can properly delete any completions provided by another script.
|
||||
# Only do this if the program can be found, or else fish may print some errors; besides,
|
||||
# the existing completions will only be loaded if the program can be found.
|
||||
if type -q "git-profile"
|
||||
# The space after the program name is essential to trigger completion for the program
|
||||
# and not completion of the program name itself.
|
||||
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
|
||||
complete --do-complete "git-profile " > /dev/null 2>&1
|
||||
end
|
||||
|
||||
# Remove any pre-existing completions for the program since we will be handling all of them.
|
||||
complete -c git-profile -e
|
||||
|
||||
# The call to __git_profile_prepare_completions will setup __git_profile_comp_results
|
||||
# which provides the program's completion choices.
|
||||
complete -c git-profile -n '__git_profile_prepare_completions' -f -a '$__git_profile_comp_results'
|
||||
|
||||
52
config/fish/conf.d/sponge.fish
Normal file
52
config/fish/conf.d/sponge.fish
Normal file
@@ -0,0 +1,52 @@
|
||||
# Sponge version
|
||||
set --global sponge_version 1.1.0
|
||||
|
||||
# Allow to repeat previous command by default
|
||||
if not set --query --universal sponge_delay
|
||||
set --universal sponge_delay 2
|
||||
end
|
||||
|
||||
# Purge entries both after `sponge_delay` entries and on exit by default
|
||||
if not set --query --universal sponge_purge_only_on_exit
|
||||
set --universal sponge_purge_only_on_exit false
|
||||
end
|
||||
|
||||
# Add default filters
|
||||
if not set --query --universal sponge_filters
|
||||
set --universal sponge_filters sponge_filter_failed sponge_filter_matched
|
||||
end
|
||||
|
||||
# Don't filter out commands that already have been in the history by default
|
||||
if not set --query --universal sponge_allow_previously_successful
|
||||
set --universal sponge_allow_previously_successful true
|
||||
end
|
||||
|
||||
# Consider `0` the only successful exit code by default
|
||||
if not set --query --universal sponge_successful_exit_codes
|
||||
set --universal sponge_successful_exit_codes 0
|
||||
end
|
||||
|
||||
# No active regex patterns by default
|
||||
if not set --query --universal sponge_regex_patterns
|
||||
set --universal sponge_regex_patterns
|
||||
end
|
||||
|
||||
# Attach event handlers
|
||||
functions --query \
|
||||
_sponge_on_prompt \
|
||||
_sponge_on_preexec \
|
||||
_sponge_on_postexec \
|
||||
_sponge_on_exit
|
||||
|
||||
# Initialize empty state for the first run
|
||||
function _sponge_install --on-event sponge_install
|
||||
set --global _sponge_current_command ''
|
||||
set --global _sponge_current_command_exit_code 0
|
||||
set --global _sponge_current_command_previously_in_history false
|
||||
end
|
||||
|
||||
# Clean up variables
|
||||
function _sponge_uninstall --on-event sponge_uninstall
|
||||
_sponge_clear_state
|
||||
set --erase sponge_version
|
||||
end
|
||||
@@ -5,3 +5,4 @@ halostatue/fish-macos@v7
|
||||
danhper/fish-ssh-agent
|
||||
halostatue/fish-brew@v3
|
||||
edc/bass
|
||||
meaningful-ooo/sponge
|
||||
|
||||
5
config/fish/functions/_sponge_clear_state.fish
Normal file
5
config/fish/functions/_sponge_clear_state.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
function _sponge_clear_state
|
||||
set --erase --global _sponge_current_command
|
||||
set --erase --global _sponge_current_command_exit_code
|
||||
set --erase --global _sponge_current_command_previously_in_history
|
||||
end
|
||||
3
config/fish/functions/_sponge_on_exit.fish
Normal file
3
config/fish/functions/_sponge_on_exit.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function _sponge_on_exit --on-event fish_exit
|
||||
sponge_delay=0 _sponge_remove_from_history
|
||||
end
|
||||
24
config/fish/functions/_sponge_on_postexec.fish
Normal file
24
config/fish/functions/_sponge_on_postexec.fish
Normal file
@@ -0,0 +1,24 @@
|
||||
function _sponge_on_postexec --on-event fish_postexec
|
||||
set --global _sponge_current_command_exit_code $status
|
||||
|
||||
# Remove command from the queue if it's been added previously
|
||||
if set --local index (contains --index -- $_sponge_current_command $_sponge_queue)
|
||||
set --erase _sponge_queue[$index]
|
||||
end
|
||||
|
||||
# Ignore empty commands
|
||||
if test -n $_sponge_current_command
|
||||
set --local command ''
|
||||
# Run filters
|
||||
for filter in $sponge_filters
|
||||
if $filter \
|
||||
$_sponge_current_command \
|
||||
$_sponge_current_command_exit_code \
|
||||
$_sponge_current_command_previously_in_history
|
||||
set command $_sponge_current_command
|
||||
break
|
||||
end
|
||||
end
|
||||
set --prepend --global _sponge_queue $command
|
||||
end
|
||||
end
|
||||
16
config/fish/functions/_sponge_on_preexec.fish
Normal file
16
config/fish/functions/_sponge_on_preexec.fish
Normal file
@@ -0,0 +1,16 @@
|
||||
function _sponge_on_preexec --on-event fish_preexec \
|
||||
--argument-names command
|
||||
_sponge_clear_state
|
||||
|
||||
set --global _sponge_current_command $command
|
||||
|
||||
builtin history search --case-sensitive --exact --max=1 --null $command \
|
||||
| read --local --null found_entries
|
||||
|
||||
# If a command is in the history and in the queue, ignore it, like if it wasn’t in the history
|
||||
if test (count $found_entries) -ne 0; and not contains $command $_sponge_queue
|
||||
set --global _sponge_current_command_previously_in_history true
|
||||
else
|
||||
set --global _sponge_current_command_previously_in_history false
|
||||
end
|
||||
end
|
||||
5
config/fish/functions/_sponge_on_prompt.fish
Normal file
5
config/fish/functions/_sponge_on_prompt.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
function _sponge_on_prompt --on-event fish_prompt
|
||||
if test $sponge_purge_only_on_exit = false
|
||||
_sponge_remove_from_history
|
||||
end
|
||||
end
|
||||
9
config/fish/functions/_sponge_remove_from_history.fish
Normal file
9
config/fish/functions/_sponge_remove_from_history.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
function _sponge_remove_from_history
|
||||
|
||||
while test (count $_sponge_queue) -gt $sponge_delay
|
||||
builtin history delete --case-sensitive --exact -- $_sponge_queue[-1]
|
||||
set --erase _sponge_queue[-1]
|
||||
end
|
||||
|
||||
builtin history save
|
||||
end
|
||||
11
config/fish/functions/sponge_filter_failed.fish
Normal file
11
config/fish/functions/sponge_filter_failed.fish
Normal file
@@ -0,0 +1,11 @@
|
||||
function sponge_filter_failed \
|
||||
--argument-names command exit_code previously_in_history
|
||||
|
||||
if test $previously_in_history = true -a $sponge_allow_previously_successful = true
|
||||
return 1
|
||||
end
|
||||
|
||||
if contains $exit_code $sponge_successful_exit_codes
|
||||
return 1
|
||||
end
|
||||
end
|
||||
11
config/fish/functions/sponge_filter_matched.fish
Normal file
11
config/fish/functions/sponge_filter_matched.fish
Normal file
@@ -0,0 +1,11 @@
|
||||
function sponge_filter_matched \
|
||||
--argument-names command
|
||||
|
||||
for pattern in $sponge_regex_patterns
|
||||
if string match --regex --quiet $pattern -- $command
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
return 1
|
||||
end
|
||||
@@ -46,7 +46,7 @@
|
||||
autoStash = true
|
||||
updateRefs = true
|
||||
[merge]
|
||||
conflictstyle = zdiff3
|
||||
conflictStyle = diff3
|
||||
[pull]
|
||||
rebase = true
|
||||
[color "diff-highlight"]
|
||||
|
||||
@@ -115,10 +115,10 @@ brew "harfbuzz"
|
||||
brew "dependency-check"
|
||||
# Lightweight DNS forwarder and DHCP server
|
||||
brew "dnsmasq"
|
||||
# .NET Core
|
||||
brew "dotnet@8", link: true
|
||||
# Spellchecker wrapping library
|
||||
brew "enchant"
|
||||
# Command-line tool to interact with exercism.io
|
||||
brew "exercism"
|
||||
# Perl lib for reading and writing EXIF metadata
|
||||
brew "exiftool"
|
||||
# Banner-like program prints strings as ASCII art
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
-- ── Install lazylazy ────────────────────────────────────────────────
|
||||
-- https://github.com/folke/lazy.nvim
|
||||
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||
if not vim.uv.fs_stat(lazypath) then
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
|
||||
local out = vim.fn.system {
|
||||
'git',
|
||||
|
||||
@@ -13,7 +13,7 @@ local a = vim.api -- A table to store API functions
|
||||
g.mapleader = ' ' -- Space as the leader key
|
||||
g.maplocalleader = ' ' -- Space as the local leader key
|
||||
|
||||
g.colors_theme = 'pencil' -- Set the colorscheme
|
||||
g.colors_theme = 'onedark' -- Set the colorscheme
|
||||
-- g.colors_variant_light = 'tokyonight-day' -- Set the light variant
|
||||
-- g.colors_variant_dark = 'tokyonight-storm' -- Set the dark variant
|
||||
|
||||
|
||||
@@ -38,41 +38,46 @@ return {
|
||||
|
||||
-- Rename the variable under your cursor.
|
||||
-- Most Language Servers support renaming across files, etc.
|
||||
map('grn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
map('<leader>grn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
|
||||
-- Execute a code action, usually your cursor needs to be on top of an error
|
||||
-- or a suggestion from your LSP for this to activate.
|
||||
map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' })
|
||||
map(
|
||||
'<leader>gra',
|
||||
vim.lsp.buf.code_action,
|
||||
'[G]oto Code [A]ction',
|
||||
{ 'n', 'x' }
|
||||
)
|
||||
|
||||
-- Find references for the word under your cursor.
|
||||
map('grr', tsb.lsp_references, '[G]oto [R]eferences')
|
||||
map('<leader>grr', tsb.lsp_references, '[G]oto [R]eferences')
|
||||
|
||||
-- Jump to the implementation of the word under your cursor.
|
||||
-- Useful when your language has ways of declaring types without
|
||||
-- an actual implementation.
|
||||
map('gri', tsb.lsp_implementations, '[G]oto [I]mplementation')
|
||||
map('<leader>gri', tsb.lsp_implementations, '[G]oto [I]mplementation')
|
||||
|
||||
-- Jump to the definition of the word under your cursor.
|
||||
-- This is where a variable was first declared, or where a function is
|
||||
-- defined, etc. To jump back, press <C-t>.
|
||||
map('grd', tsb.lsp_definitions, '[G]oto [D]efinition')
|
||||
map('<leader>grd', tsb.lsp_definitions, '[G]oto [D]efinition')
|
||||
|
||||
-- WARN: This is not Goto Definition, this is Goto Declaration.
|
||||
-- For example, in C this would take you to the header.
|
||||
map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||
map('<leader>grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||
|
||||
-- Fuzzy find all the symbols in your current document.
|
||||
-- Symbols are things like variables, functions, types, etc.
|
||||
map('gO', tsb.lsp_document_symbols, 'Open Document Symbols')
|
||||
map('<leader>gO', tsb.lsp_document_symbols, 'Open Document Symbols')
|
||||
|
||||
-- Fuzzy find all the symbols in your current workspace.
|
||||
-- Similar to document symbols, except searches over your entire project.
|
||||
map('gW', tsb.lsp_dynamic_workspace_symbols, 'Open Workspace Symbols')
|
||||
map('<leader>gW', tsb.lsp_dynamic_workspace_symbols, 'Open Workspace Symbols')
|
||||
|
||||
-- Jump to the type of the word under your cursor.
|
||||
-- Useful when you're not sure what type a variable is and you want to see
|
||||
-- the definition of its *type*, not where it was *defined*.
|
||||
map('grt', tsb.lsp_type_definitions, '[G]oto [T]ype Definition')
|
||||
map('<leader>grt', tsb.lsp_type_definitions, '[G]oto [T]ype Definition')
|
||||
|
||||
-- This function resolves a difference between neovim nightly
|
||||
-- (version 0.11) and stable (version 0.10)
|
||||
@@ -227,17 +232,6 @@ return {
|
||||
tailwindcss = {},
|
||||
terraformls = {},
|
||||
ts_ls = {},
|
||||
volar = {
|
||||
settings = {
|
||||
typescript = {
|
||||
inlayHints = {
|
||||
enumMemberValues = { enabled = true },
|
||||
functionLikeReturnTypes = { enabled = true },
|
||||
propertyDeclarationTypes = { enabled = true },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
vimls = {},
|
||||
eslint = {},
|
||||
yamlls = {
|
||||
@@ -270,6 +264,7 @@ return {
|
||||
|
||||
require('mason-lspconfig').setup {
|
||||
ensure_installed = {}, -- explicitly set to an empty table
|
||||
automatic_enable = true,
|
||||
automatic_installation = false,
|
||||
handlers = {
|
||||
function(server_name)
|
||||
|
||||
@@ -61,4 +61,13 @@ return {
|
||||
-- Neovim plugin for locking a buffer to a window
|
||||
-- https://github.com/stevearc/stickybuf.nvim
|
||||
{ 'stevearc/stickybuf.nvim', opts = {} },
|
||||
|
||||
-- Break bad habits, master Vim motions
|
||||
-- https://github.com/m4xshen/hardtime.nvim
|
||||
{
|
||||
'm4xshen/hardtime.nvim',
|
||||
lazy = false,
|
||||
dependencies = { 'MunifTanjim/nui.nvim' },
|
||||
opts = {},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -22,16 +22,19 @@ yabai -m config \
|
||||
# apps to not manage (ignore)
|
||||
# TODO: add apps from aerospace config to here
|
||||
# list active apps:
|
||||
# > yabai -m query --windows | jq .[].app
|
||||
# > yabai -m query --windows | jq .[].app | sort | uniq
|
||||
yabai -m rule --add app="1Password" manage=off
|
||||
yabai -m rule --add app="Fork" manage=off
|
||||
yabai -m rule --add app="JetBrains Rider" manage=off
|
||||
yabai -m rule --add app="Logi Options" manage=off
|
||||
yabai -m rule --add app="MSTeams" manage=off
|
||||
yabai -m rule --add app="Microsoft Teams" manage=off
|
||||
yabai -m rule --add app="PhpStorm" manage=off
|
||||
yabai -m rule --add app="Slack" manage=off
|
||||
yabai -m rule --add app="System Settings" manage=off
|
||||
yabai -m rule --add app="^Logi Options$" manage=off
|
||||
yabai -m rule --add app="^Microsoft Teams$" manage=off
|
||||
yabai -m rule --add app="^PhpStorm$" manage=off
|
||||
yabai -m rule --add app="^Slack$" manage=off
|
||||
yabai -m rule --add app="^TIDAL$" manage=off
|
||||
yabai -m rule --add app="^Windows App$" manage=off
|
||||
yabai -m rule --add app="TIDAL" manage=off
|
||||
yabai -m rule --add app="Windows App" manage=off
|
||||
yabai -m rule --add app="Zoom" manage=off
|
||||
|
||||
# apply rules
|
||||
yabai -m rule --apply
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
"metrics": false
|
||||
},
|
||||
"assistant": {
|
||||
"always_allow_tool_actions": false,
|
||||
"default_model": {
|
||||
"provider": "copilot_chat",
|
||||
"model": "claude-3.7-sonnet-thought"
|
||||
"model": "gpt-4.1"
|
||||
},
|
||||
"version": "2"
|
||||
},
|
||||
@@ -65,13 +66,9 @@
|
||||
},
|
||||
"ui_font_size": 16,
|
||||
"buffer_font_size": 16,
|
||||
"buffer_font_fallbacks": [
|
||||
"JetBrainsMono Nerd Font"
|
||||
],
|
||||
"buffer_font_fallbacks": ["JetBrainsMono Nerd Font"],
|
||||
"edit_predictions": {
|
||||
"disabled_globs": [
|
||||
".env"
|
||||
]
|
||||
"disabled_globs": [".env", ".env.*"]
|
||||
},
|
||||
"hour_format": "hour24"
|
||||
}
|
||||
|
||||
@@ -45,9 +45,9 @@
|
||||
~/.config/op/plugins.sh:
|
||||
relink: true
|
||||
path: config/op/plugins.sh
|
||||
~/.config/op/plugins/*:
|
||||
~/.config/op/plugins:
|
||||
relink: true
|
||||
path: config/op/plugins/*
|
||||
path: config/op/plugins
|
||||
# Scripts
|
||||
~/.local/bin:
|
||||
glob: true
|
||||
|
||||
@@ -46,9 +46,25 @@ def test():
|
||||
assert vercmp("2.4 >= 2.4")
|
||||
assert vercmp("2.5 >= 2.4")
|
||||
assert vercmp("3 >= 2.999")
|
||||
assert vercmp("2.9 < 2.9a")
|
||||
assert vercmp("2.9a < 2.9")
|
||||
assert vercmp("2.9a >= 2.8")
|
||||
|
||||
# multiple comparisons in a single expression
|
||||
assert vercmp("1.0 < 2.0 <= 2.0")
|
||||
assert not vercmp("1.0 > 2.0 < 3.0")
|
||||
|
||||
# mixed major/minor version comparisons
|
||||
assert vercmp("2 >= 1.5")
|
||||
assert not vercmp("1 < 1.0")
|
||||
|
||||
# invalid operator should raise an error
|
||||
try:
|
||||
vercmp("1.0 <> 2.0")
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
assert False, "invalid operator did not raise"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) == 2 and sys.argv[1] == "test":
|
||||
|
||||
18
scripts/install-cheat-purebashbible.sh
Executable file → Normal file
18
scripts/install-cheat-purebashbible.sh
Executable file → Normal file
@@ -47,6 +47,22 @@ prepare_cheat_dest()
|
||||
echo "$cheat_dest"
|
||||
}
|
||||
|
||||
# Processes chapter files from the pure-bash-bible repository and generates or updates corresponding cheat sheets.
|
||||
#
|
||||
# For each chapter file, creates or updates a cheat sheet in the appropriate destination directory, removes chapter end markers, and ensures required metadata is present.
|
||||
#
|
||||
# Globals:
|
||||
# * PBB_TEMP_DIR: Directory containing the cloned pure-bash-bible repository.
|
||||
# * PBB_SYNTAX, PBB_TAGS, PBB_SOURCE: Metadata strings for cheat sheets.
|
||||
#
|
||||
# Outputs:
|
||||
# * Writes or updates cheat sheet files in the determined cheat sheet directory.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# ```bash
|
||||
# process_chapters
|
||||
# ```
|
||||
process_chapters()
|
||||
{
|
||||
local cheat_dest
|
||||
@@ -59,7 +75,7 @@ process_chapters()
|
||||
header=$(grep -e '^[#] ' "$f" | head -1 | awk '{print tolower($2)}')
|
||||
cheat_file="$cheat_dest/$header"
|
||||
|
||||
if ! replacable "$f" "$cheat_file"; then
|
||||
if ! replaceable "$f" "$cheat_file"; then
|
||||
cp "$f" "$cheat_file" && msg_run "Updated: $cheat_file"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user