mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 03:04:06 +00:00
chore: linting
This commit is contained in:
@@ -13,6 +13,7 @@ max_line_length = 80
|
|||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
max_line_length = 120
|
max_line_length = 120
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
[*.lua]
|
[*.lua]
|
||||||
max_line_length = 90
|
max_line_length = 90
|
||||||
@@ -24,10 +25,6 @@ indent_size = 4
|
|||||||
indent_style = tab
|
indent_style = tab
|
||||||
indent_size = 1
|
indent_size = 1
|
||||||
|
|
||||||
[*.plist]
|
|
||||||
indent_size = 1
|
|
||||||
indent_style = tab
|
|
||||||
|
|
||||||
[{local/bin/*,**/*.sh,**/zshrc,config/*,scripts/*}]
|
[{local/bin/*,**/*.sh,**/zshrc,config/*,scripts/*}]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
tab_width = 2
|
tab_width = 2
|
||||||
@@ -38,7 +35,8 @@ space_redirects = true
|
|||||||
keep_padding = false
|
keep_padding = false
|
||||||
function_next_line = true # --func-next-line
|
function_next_line = true # --func-next-line
|
||||||
|
|
||||||
[config/git/config]
|
[{*.plist,config/git/**,**/config/git/**}]
|
||||||
|
indent_size = 1
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
|
|
||||||
# Ignore the entire "third_party" directory when calling shfmt on directories,
|
# Ignore the entire "third_party" directory when calling shfmt on directories,
|
||||||
@@ -47,3 +45,7 @@ indent_style = tab
|
|||||||
# the ignore logic is applied only when the --apply-ignore flag is given.
|
# the ignore logic is applied only when the --apply-ignore flag is given.
|
||||||
[{tools/**,local/bin/asdf/**,config/cheat/cheatsheets/**,config/tmux/plugins/**}]
|
[{tools/**,local/bin/asdf/**,config/cheat/cheatsheets/**,config/tmux/plugins/**}]
|
||||||
ignore = true
|
ignore = true
|
||||||
|
|
||||||
|
[plan]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
max_line_length = off
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -9,6 +9,7 @@
|
|||||||
.env
|
.env
|
||||||
.idea
|
.idea
|
||||||
.nfs*
|
.nfs*
|
||||||
|
.scannerwork
|
||||||
.vscode
|
.vscode
|
||||||
Brewfile.lock.json
|
Brewfile.lock.json
|
||||||
antidote_plugins.zsh
|
antidote_plugins.zsh
|
||||||
@@ -51,3 +52,6 @@ local/bin/yabai
|
|||||||
local/man/yabai.1
|
local/man/yabai.1
|
||||||
config/op/plugins/used_items/gh.json
|
config/op/plugins/used_items/gh.json
|
||||||
config/zed/settings.json
|
config/zed/settings.json
|
||||||
|
*.tmp.*
|
||||||
|
config/op/plugins/gh.json
|
||||||
|
config/fish/fish_variables.*
|
||||||
|
|||||||
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -71,7 +71,7 @@
|
|||||||
|
|
||||||
[submodule "tmux/tmux-dark-notify"]
|
[submodule "tmux/tmux-dark-notify"]
|
||||||
path = config/tmux/plugins/tmux-dark-notify
|
path = config/tmux/plugins/tmux-dark-notify
|
||||||
url = https://github.com/erikw/tmux-dark-notify.git
|
url = https://github.com/ivuorinen/tmux-dark-notify.git
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
|
|
||||||
[submodule "antidote"]
|
[submodule "antidote"]
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# vim: ft=gitignore
|
# vim: ft=gitignore
|
||||||
.mypy_cache/*
|
.mypy_cache/*
|
||||||
Brewfile.lock.json
|
Brewfile.lock.json
|
||||||
|
base/plan
|
||||||
config/cheat/cheatsheets/community
|
config/cheat/cheatsheets/community
|
||||||
config/cheat/cheatsheets/tldr
|
config/cheat/cheatsheets/tldr
|
||||||
config/fzf/*
|
config/fzf/*
|
||||||
|
|||||||
1
.serena/.gitignore
vendored
Normal file
1
.serena/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/cache
|
||||||
67
.serena/memories/areas_for_improvement.md
Normal file
67
.serena/memories/areas_for_improvement.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# Areas for Improvement
|
||||||
|
|
||||||
|
## Code Quality Enhancements
|
||||||
|
|
||||||
|
### 1. Configuration Management
|
||||||
|
|
||||||
|
- **Inconsistent indentation**: Mixed tabs/spaces across config files
|
||||||
|
- **Line length management**: Need consistent enforcement of limits
|
||||||
|
- **Template standardization**: Memory files need consistent formatting template
|
||||||
|
|
||||||
|
### 2. Linting Configuration Improvements
|
||||||
|
|
||||||
|
- **Shellcheck exclusions**: Add proper ignore patterns for submodules
|
||||||
|
- **EditorConfig refinement**: Some rules too strict for generated/third-party content
|
||||||
|
- **Prettier ignore patterns**: Better exclusion of binary/generated files
|
||||||
|
|
||||||
|
### 3. Testing Infrastructure
|
||||||
|
|
||||||
|
- **Bats test errors**: Tests failing due to missing `rm` command in PATH
|
||||||
|
- **Test coverage**: Limited test coverage for shell functions
|
||||||
|
- **CI/CD integration**: Need automated linting in GitHub Actions
|
||||||
|
|
||||||
|
### 4. Documentation Gaps
|
||||||
|
|
||||||
|
- **Onboarding docs**: Missing clear setup instructions for new contributors
|
||||||
|
- **Troubleshooting guide**: Need common error resolution steps
|
||||||
|
- **Architecture overview**: Missing high-level system architecture
|
||||||
|
|
||||||
|
## Performance & Maintenance
|
||||||
|
|
||||||
|
### 5. Submodule Management
|
||||||
|
|
||||||
|
- **Large submodules**: Some submodules contain unnecessary files
|
||||||
|
- **Update frequency**: Need systematic submodule update process
|
||||||
|
- **Dependency tracking**: Better documentation of submodule purposes
|
||||||
|
|
||||||
|
### 6. Cross-Platform Considerations
|
||||||
|
|
||||||
|
- **Darwin-specific paths**: Some hardcoded macOS paths could be parameterized
|
||||||
|
- **Shell compatibility**: More testing across bash/zsh/fish environments
|
||||||
|
- **Tool availability**: Better fallbacks when optional tools missing
|
||||||
|
|
||||||
|
### 7. Security & Privacy
|
||||||
|
|
||||||
|
- **Secret management**: Better examples for secret configuration
|
||||||
|
- **Permission handling**: Some scripts could use more restrictive permissions
|
||||||
|
- **Audit trail**: Track configuration changes and their impact
|
||||||
|
|
||||||
|
## Development Workflow
|
||||||
|
|
||||||
|
### 8. Automation Opportunities
|
||||||
|
|
||||||
|
- **Auto-formatting**: Pre-commit hooks for consistent formatting
|
||||||
|
- **Dependency updates**: Automated updates for package.json dependencies
|
||||||
|
- **Health checks**: Scripts to validate configuration integrity
|
||||||
|
|
||||||
|
### 9. Error Handling
|
||||||
|
|
||||||
|
- **Graceful degradation**: Better fallbacks when tools unavailable
|
||||||
|
- **Error messages**: More informative error output
|
||||||
|
- **Recovery procedures**: Automated recovery from common failures
|
||||||
|
|
||||||
|
### 10. Modularity
|
||||||
|
|
||||||
|
- **Configuration splitting**: Some large config files could be modularized
|
||||||
|
- **Feature flags**: Optional components for minimal installations
|
||||||
|
- **Host-specific configs**: Better organization of machine-specific settings
|
||||||
50
.serena/memories/code_style_conventions.md
Normal file
50
.serena/memories/code_style_conventions.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Code Style and Conventions
|
||||||
|
|
||||||
|
## EditorConfig Rules (.editorconfig)
|
||||||
|
|
||||||
|
- **Charset**: UTF-8
|
||||||
|
- **Line endings**: LF
|
||||||
|
- **Indent style**: Spaces (except for specific files)
|
||||||
|
- **Indent size**: 2 spaces (default)
|
||||||
|
- **Final newline**: Required
|
||||||
|
- **Trailing whitespace**: Trimmed
|
||||||
|
|
||||||
|
### Language-specific Rules
|
||||||
|
|
||||||
|
- **Fish scripts**: 4-space indent, 80 char line limit
|
||||||
|
- **PHP files**: 4-space indent
|
||||||
|
- **Markdown**: 120 char line limit
|
||||||
|
- **Lua**: 90 char line limit
|
||||||
|
- **Git files**: Tab indentation
|
||||||
|
- **Shell scripts**: 2-space indent with specific shfmt settings
|
||||||
|
|
||||||
|
## Prettier Configuration
|
||||||
|
|
||||||
|
- Extends `@ivuorinen/prettier-config`
|
||||||
|
- **Trailing commas**: Always
|
||||||
|
- **Markdown**: 120 char width, preserve prose wrapping
|
||||||
|
|
||||||
|
## ESLint Configuration
|
||||||
|
|
||||||
|
- Extends `@ivuorinen` base configuration
|
||||||
|
- Applied to JavaScript/TypeScript files
|
||||||
|
|
||||||
|
## Shell Script Standards (.shellcheckrc)
|
||||||
|
|
||||||
|
- External sources following enabled
|
||||||
|
- Disabled checks: SC2039, SC2166, SC2154, SC1091, SC2174, SC2016
|
||||||
|
- Must include shebang or `# shellcheck shell=bash`
|
||||||
|
|
||||||
|
## Formatting Tools
|
||||||
|
|
||||||
|
- **Shell scripts**: shfmt with specific rules
|
||||||
|
- **Markdown**: markdownlint + prettier
|
||||||
|
- **JavaScript/TypeScript**: prettier + eslint
|
||||||
|
- **YAML**: yamllint
|
||||||
|
|
||||||
|
## Naming Conventions
|
||||||
|
|
||||||
|
- **Shell functions**: Use `x-` prefix for cross-shell compatibility
|
||||||
|
- **Environment variables**: UPPERCASE with underscores
|
||||||
|
- **File names**: lowercase with hyphens for scripts
|
||||||
|
- **Directory structure**: lowercase, organized by tool/purpose
|
||||||
80
.serena/memories/critical_linting_errors.md
Normal file
80
.serena/memories/critical_linting_errors.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# Critical Linting Errors That Must Be Fixed
|
||||||
|
|
||||||
|
## Current Status: BLOCKING Issues Identified
|
||||||
|
|
||||||
|
The linting system has revealed 150+ violations across multiple categories that must be addressed immediately.
|
||||||
|
|
||||||
|
## EditorConfig Violations (High Priority)
|
||||||
|
|
||||||
|
### Missing Final Newlines
|
||||||
|
|
||||||
|
- All `.serena/memories/*.md` files missing final newlines
|
||||||
|
- Multiple project configuration files affected
|
||||||
|
- This is a BLOCKING issue per user instructions
|
||||||
|
|
||||||
|
### Line Length Violations
|
||||||
|
|
||||||
|
- Fish shell configs exceed 80-character limit (`.editorconfig` enforced)
|
||||||
|
- Memory files have lines exceeding 120-character limit
|
||||||
|
- WezTerm configuration files have long lines
|
||||||
|
|
||||||
|
### Indentation Errors
|
||||||
|
|
||||||
|
- Git configuration using tabs instead of spaces
|
||||||
|
- WezTerm color scheme files using tabs vs spaces
|
||||||
|
- Perl scripts with inconsistent indentation
|
||||||
|
|
||||||
|
## Markdownlint Issues (Memory Files)
|
||||||
|
|
||||||
|
### Systematic Problems Across All Memory Files
|
||||||
|
|
||||||
|
- Missing blank lines around headings (MD022)
|
||||||
|
- Lists not surrounded by blank lines (MD032)
|
||||||
|
- Fenced code blocks not surrounded by blank lines (MD031)
|
||||||
|
- Trailing punctuation in headings (MD026)
|
||||||
|
- Missing language specification for fenced code blocks (MD040)
|
||||||
|
- Missing final newlines (MD047)
|
||||||
|
|
||||||
|
### Specific Files Affected
|
||||||
|
|
||||||
|
- `areas_for_improvement.md`: 20+ violations
|
||||||
|
- `code_style_conventions.md`: 15+ violations
|
||||||
|
- `critical_linting_errors.md`: 25+ violations
|
||||||
|
- `darwin_system_utilities.md`: 15+ violations
|
||||||
|
- `immediate_action_items.md`: 25+ violations
|
||||||
|
- `project_overview.md`: 15+ violations
|
||||||
|
- `project_structure.md`: 20+ violations
|
||||||
|
- `shellcheck_issues.md`: 15+ violations
|
||||||
|
- `suggested_commands.md`: 25+ violations
|
||||||
|
- `task_completion_checklist.md`: 10+ violations
|
||||||
|
|
||||||
|
## Prettier Formatting Issues
|
||||||
|
|
||||||
|
### JSON Configuration Files
|
||||||
|
|
||||||
|
- `.commitlintrc.json`, `.eslintrc.json`, `.luarc.json`
|
||||||
|
- `.releaserc.json`, `.github/renovate.json`
|
||||||
|
- Host-specific configurations in `config/` directory
|
||||||
|
|
||||||
|
### YAML Files
|
||||||
|
|
||||||
|
- `.mega-linter.yml` formatting inconsistencies
|
||||||
|
- Various configuration files needing formatting
|
||||||
|
|
||||||
|
## Immediate Action Required
|
||||||
|
|
||||||
|
1. **Fix memory files**: Apply markdown formatting rules
|
||||||
|
2. **Run auto-fixers**: `yarn fix` to address automatic fixes
|
||||||
|
3. **Manual corrections**: Address remaining EditorConfig violations
|
||||||
|
4. **Validation**: Ensure `yarn lint` passes completely
|
||||||
|
|
||||||
|
## Impact Assessment
|
||||||
|
|
||||||
|
These violations prevent:
|
||||||
|
|
||||||
|
- Successful CI/CD pipeline execution
|
||||||
|
- Code quality standards compliance
|
||||||
|
- Pre-commit hook success
|
||||||
|
- Project maintainability standards
|
||||||
|
|
||||||
|
Per user instructions: "Linting issues ARE NOT ACCEPTABLE" and "EditorConfig problems are blocking errors"
|
||||||
66
.serena/memories/darwin_system_utilities.md
Normal file
66
.serena/memories/darwin_system_utilities.md
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# Darwin (macOS) System Utilities
|
||||||
|
|
||||||
|
## Available Command Paths
|
||||||
|
|
||||||
|
Based on the current system setup:
|
||||||
|
|
||||||
|
### Core System Commands
|
||||||
|
|
||||||
|
- `git`: `/opt/homebrew/bin/git` (Homebrew version)
|
||||||
|
- `find`: `/usr/bin/find` (system version)
|
||||||
|
- `cd`: shell built-in command
|
||||||
|
- `ls`: aliased to `eza -h -s=type --git --icons --group-directories-first`
|
||||||
|
- `grep`: aliased to `grep --color`
|
||||||
|
|
||||||
|
### Modern Alternatives (Rust-based)
|
||||||
|
|
||||||
|
- `fd`: `/Users/ivuorinen/.local/share/cargo/bin/fd` (modern find)
|
||||||
|
- `rg`: `/Users/ivuorinen/.local/share/cargo/bin/rg` (ripgrep for text search)
|
||||||
|
|
||||||
|
## Recommended Usage Patterns
|
||||||
|
|
||||||
|
### File Search
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Use fd instead of find when possible
|
||||||
|
fd "*.sh" # Find shell scripts
|
||||||
|
fd -t f -e lua # Find Lua files
|
||||||
|
find . -name "*.sh" # Fallback to system find
|
||||||
|
```
|
||||||
|
|
||||||
|
### Text Search
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Use rg (ripgrep) instead of grep when possible
|
||||||
|
rg "function.*bash" # Search for bash functions
|
||||||
|
rg -t shell "export" # Search in shell files only
|
||||||
|
grep "pattern" file.txt # Fallback to system grep
|
||||||
|
```
|
||||||
|
|
||||||
|
### Directory Navigation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Use eza features via ls alias
|
||||||
|
ls # Shows icons, git status, grouped directories
|
||||||
|
ls -la # Long format with hidden files
|
||||||
|
cd /full/path # Always use full paths in scripts
|
||||||
|
```
|
||||||
|
|
||||||
|
## Path Configuration
|
||||||
|
|
||||||
|
The system is configured with these PATH priorities:
|
||||||
|
|
||||||
|
1. `~/.local/bin` (user scripts)
|
||||||
|
2. `~/.dotfiles/local/bin` (dotfiles scripts)
|
||||||
|
3. `~/.local/share/bob/nvim-bin` (Neovim)
|
||||||
|
4. `~/.local/share/cargo/bin` (Rust tools like fd, rg)
|
||||||
|
5. `/opt/homebrew/bin` (Homebrew packages)
|
||||||
|
6. `/usr/local/bin` (system packages)
|
||||||
|
|
||||||
|
## Shell Compatibility
|
||||||
|
|
||||||
|
The dotfiles support multiple shells through `config/shared.sh`:
|
||||||
|
|
||||||
|
- Functions prefixed with `x-` work across bash, zsh, and fish
|
||||||
|
- Path management handled automatically per shell
|
||||||
|
- Environment variables set appropriately per shell
|
||||||
114
.serena/memories/immediate_action_items.md
Normal file
114
.serena/memories/immediate_action_items.md
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
# Immediate Action Items - Priority Order
|
||||||
|
|
||||||
|
## HIGH PRIORITY (Must Fix Before Any Development)
|
||||||
|
|
||||||
|
### 1. Fix Memory File Formatting (BLOCKING)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# These files prevent any linting from passing:
|
||||||
|
- .serena/memories/code_style_conventions.md
|
||||||
|
- .serena/memories/darwin_system_utilities.md
|
||||||
|
- .serena/memories/project_overview.md
|
||||||
|
- .serena/memories/project_structure.md
|
||||||
|
- .serena/memories/suggested_commands.md
|
||||||
|
- .serena/memories/task_completion_checklist.md
|
||||||
|
|
||||||
|
# Issues: Missing final newlines, markdown formatting, line length
|
||||||
|
# Impact: Blocks all linting commands
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Fix Fish Shell Line Length Violations (BLOCKING)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Files exceeding 80-char limit:
|
||||||
|
config/fish/alias.fish (4 violations)
|
||||||
|
config/fish/exports.fish (15 violations)
|
||||||
|
|
||||||
|
# These are CRITICAL - Fish config has strict limits
|
||||||
|
# Must be fixed before any fish-related changes
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Fix Git Configuration Indentation (BLOCKING)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Files with tab/space mixing:
|
||||||
|
config/git/shared (40+ violations)
|
||||||
|
hosts/s/config/git/overrides/config
|
||||||
|
hosts/s/config/git/local.d/work-git
|
||||||
|
|
||||||
|
# Impact: Git configuration may not work correctly
|
||||||
|
```
|
||||||
|
|
||||||
|
## MEDIUM PRIORITY (Fix During Next Development Cycle)
|
||||||
|
|
||||||
|
### 4. Prettier Formatting Issues
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 17 files need prettier formatting:
|
||||||
|
yarn fix:prettier
|
||||||
|
# Most are JSON/YAML configuration files
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. WezTerm Color Scheme Indentation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# All files in config/wezterm/colors/ using tabs instead of spaces
|
||||||
|
# Affects terminal appearance configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Update Linting Configuration
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Add shellcheck exclusions for submodules:
|
||||||
|
# - tools/antidote/
|
||||||
|
# - config/tmux/plugins/
|
||||||
|
# - config/vim/extra/fzf/
|
||||||
|
# - config/cheat/cheatsheets/tldr/
|
||||||
|
```
|
||||||
|
|
||||||
|
## LOW PRIORITY (Future Improvements)
|
||||||
|
|
||||||
|
### 7. Test Infrastructure
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Fix bats test PATH issues
|
||||||
|
# Tests pass but show rm command not found errors
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8. Documentation Updates
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Add troubleshooting section to AGENTS.md
|
||||||
|
# Create shellcheck exclusion documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
## Immediate Commands to Run
|
||||||
|
|
||||||
|
### Step 1: Auto-fix What's Possible
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yarn fix:prettier # Fix 17 files
|
||||||
|
yarn fix:markdown # Attempt markdown fixes
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Manual Fixes Required
|
||||||
|
|
||||||
|
- Add final newlines to all memory files
|
||||||
|
- Wrap long lines in Fish configuration files
|
||||||
|
- Convert tabs to spaces in Git configuration files
|
||||||
|
|
||||||
|
### Step 3: Verify Progress
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yarn lint:ec # Check EditorConfig compliance
|
||||||
|
yarn lint:markdown # Check markdown issues
|
||||||
|
yarn lint:prettier # Check remaining prettier issues
|
||||||
|
```
|
||||||
|
|
||||||
|
## Success Criteria
|
||||||
|
|
||||||
|
✅ `yarn lint` passes without errors
|
||||||
|
✅ All EditorConfig violations resolved
|
||||||
|
✅ Memory files properly formatted
|
||||||
|
✅ Fish configuration under line limits
|
||||||
|
✅ Git configuration uses consistent indentation
|
||||||
61
.serena/memories/project_overview.md
Normal file
61
.serena/memories/project_overview.md
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# .dotfiles Project Overview
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
This is a comprehensive personal dotfiles repository for managing development
|
||||||
|
environment configurations across macOS systems. The project uses **Dotbot** as
|
||||||
|
the primary installation framework to manage symlinks and setup configurations.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- Automated configuration management using Dotbot
|
||||||
|
- Support for multiple development tools and applications
|
||||||
|
- Host-specific configurations in `/hosts/` directory
|
||||||
|
- Comprehensive testing and linting setup with pre-commit hooks
|
||||||
|
- Cross-shell compatibility (bash, zsh, fish)
|
||||||
|
- Large collection of custom utility scripts in `local/bin/`
|
||||||
|
- Git submodules for external tools (dotbot, antidote, tmux plugins)
|
||||||
|
- Environment-specific configurations (secrets management)
|
||||||
|
|
||||||
|
## Recent Notable Changes (from git status)
|
||||||
|
|
||||||
|
- New everforest color theme configurations added
|
||||||
|
- Multiple temporary fish configuration files present
|
||||||
|
- Updates to various configuration files (.commitlintrc.json, .eslintrc.json, etc.)
|
||||||
|
- New x-pr-comments script and documentation added
|
||||||
|
- Various tmux plugin updates
|
||||||
|
- Husky configuration relocated from base/ to config/husky/
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
- **Shell**: Bash (primary), with Fish and Zsh support
|
||||||
|
- **Configuration Manager**: Dotbot with plugins (asdf, brew, include, pip)
|
||||||
|
- **Package Manager**: Yarn 1.22.22 (Node.js), Homebrew (macOS), pipx (Python)
|
||||||
|
- **Testing**: Bats test framework, custom test-all.sh script
|
||||||
|
- **Linting**: MegaLinter, Prettier, ESLint, Markdownlint, ShellCheck, EditorConfig
|
||||||
|
- **Automation**: Pre-commit hooks, GitHub Actions, Renovate
|
||||||
|
|
||||||
|
## Project Structure Highlights
|
||||||
|
|
||||||
|
- `/config/` - Main configuration directory (74+ subdirectories)
|
||||||
|
- `/local/bin/` - Custom utility scripts (100+ scripts with documentation)
|
||||||
|
- `/hosts/` - Host-specific configurations
|
||||||
|
- `/tools/` - Git submodules for external tools
|
||||||
|
- `/base/` - Base configuration files
|
||||||
|
- `/secrets/` - Secret management configurations
|
||||||
|
- `/scripts/` - Installation and setup scripts
|
||||||
|
- `/.github/` - GitHub Actions workflows and configurations
|
||||||
|
|
||||||
|
## Target System
|
||||||
|
|
||||||
|
- **Platform**: Darwin (macOS) - Version 24.6.0
|
||||||
|
- **Architecture**: Universal (Intel/Apple Silicon via Homebrew)
|
||||||
|
- **Dependencies**: Git, Homebrew, Yarn, various CLI tools managed via asdf/aqua
|
||||||
|
|
||||||
|
## Development Environment
|
||||||
|
|
||||||
|
- Node.js managed via nvm/asdf
|
||||||
|
- Go version specified (.go-version)
|
||||||
|
- Python version specified (.python-version)
|
||||||
|
- Package management via Yarn with lockfile
|
||||||
|
- TypeScript support for configuration files
|
||||||
116
.serena/memories/project_structure.md
Normal file
116
.serena/memories/project_structure.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Project Structure
|
||||||
|
|
||||||
|
## Root Directory
|
||||||
|
|
||||||
|
```text
|
||||||
|
.dotfiles/
|
||||||
|
├── install # Main installation script (Dotbot runner)
|
||||||
|
├── install.conf.yaml # Dotbot configuration
|
||||||
|
├── package.json # Node.js dependencies for linting/testing (Yarn managed)
|
||||||
|
├── AGENTS.md # Project documentation and guidelines
|
||||||
|
├── test-all.sh # Bats test runner
|
||||||
|
├── add-submodules.sh # Git submodule management
|
||||||
|
└── .serena/ # Claude Code/Serena analysis cache (new)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Main Directories
|
||||||
|
|
||||||
|
### `config/` (74+ subdirectories)
|
||||||
|
|
||||||
|
Configuration files for development tools and applications:
|
||||||
|
|
||||||
|
- `git/` - Git configuration with delta integration and everforest theme
|
||||||
|
- `nvim/` - Neovim configuration with Lua plugins
|
||||||
|
- `tmux/` - Tmux configuration with multiple plugins (dark-notify, window-name, etc.)
|
||||||
|
- `fish/` - Fish shell configuration with completions and functions
|
||||||
|
- `zsh/` - Zsh configuration with antidote plugin manager
|
||||||
|
- `fzf/` - Fuzzy finder configuration with everforest theme
|
||||||
|
- `wezterm/` - WezTerm terminal configuration
|
||||||
|
- `homebrew/` - Homebrew environment configuration
|
||||||
|
- `starship.toml` - Starship prompt configuration
|
||||||
|
- `shared.sh` - Cross-shell compatibility functions
|
||||||
|
- `aerospace/`, `amethyst/`, `yabai/`, `skhd/` - Window managers
|
||||||
|
- `direnv/`, `asdf/`, `aqua/` - Development environment tools
|
||||||
|
- `gpg-tui/`, `op/`, `gh/` - Security and CLI tools
|
||||||
|
- Theme configurations: everforest color schemes across multiple tools
|
||||||
|
|
||||||
|
### `base/`
|
||||||
|
|
||||||
|
Dotfiles that get symlinked to home directory with `.` prefix:
|
||||||
|
|
||||||
|
- Contains traditional dotfiles like `.bashrc`, `.zshrc`, etc.
|
||||||
|
- `plan` - Planning/note-taking configuration
|
||||||
|
- `shellcheckrc` - ShellCheck rules
|
||||||
|
|
||||||
|
### `local/`
|
||||||
|
|
||||||
|
- `bin/` - 100+ custom scripts with comprehensive documentation
|
||||||
|
- Homegrown utilities (dfm, git tools, backup scripts, etc.)
|
||||||
|
- Sourced utilities (from skx/sysadmin-util, mvdan/dotfiles)
|
||||||
|
- Each script has corresponding .md documentation
|
||||||
|
- Recent additions: x-pr-comments for GitHub PR analysis
|
||||||
|
- `share/fonts/` - JetBrains Mono font files
|
||||||
|
- `man/` - Manual pages
|
||||||
|
|
||||||
|
### `ssh/`
|
||||||
|
|
||||||
|
SSH configuration files (mode 0600/0700)
|
||||||
|
|
||||||
|
- `shared.d/` - Shared SSH configurations for specific hosts
|
||||||
|
|
||||||
|
### `tools/` (Git submodules)
|
||||||
|
|
||||||
|
External tools and Dotbot plugins:
|
||||||
|
|
||||||
|
- `dotbot/` - Dotbot installation framework
|
||||||
|
- `dotbot-*` - Dotbot plugins (asdf, brew, include, pip)
|
||||||
|
- `antidote/` - Zsh plugin manager
|
||||||
|
- Various tmux plugins (continuum, resurrect, yank, etc.)
|
||||||
|
|
||||||
|
### `hosts/`
|
||||||
|
|
||||||
|
Host-specific configurations:
|
||||||
|
|
||||||
|
- `air/`, `s/`, `v/` - Individual host configurations
|
||||||
|
- Applied after main configuration
|
||||||
|
|
||||||
|
### `secrets/`
|
||||||
|
|
||||||
|
Secret and credential management configuration
|
||||||
|
|
||||||
|
### `scripts/`
|
||||||
|
|
||||||
|
Installation and setup automation scripts
|
||||||
|
|
||||||
|
### `.github/`
|
||||||
|
|
||||||
|
- GitHub Actions workflows
|
||||||
|
- Renovate configuration
|
||||||
|
- Issue templates and documentation
|
||||||
|
|
||||||
|
### Development Configuration Files
|
||||||
|
|
||||||
|
- `.editorconfig` - Editor configuration rules
|
||||||
|
- `.prettierrc.js` - Prettier formatting rules
|
||||||
|
- `.eslintrc.json` - ESLint linting rules
|
||||||
|
- `.commitlintrc.json` - Commit message linting
|
||||||
|
- `.shellcheckrc` - ShellCheck configuration
|
||||||
|
- `.mega-linter.yml` - MegaLinter configuration
|
||||||
|
- `.luarc.json` - Lua language server configuration
|
||||||
|
- `.nvmrc`, `.go-version`, `.python-version` - Version management
|
||||||
|
- Various ignore files (.gitignore, .prettierignore, .yamlignore, etc.)
|
||||||
|
|
||||||
|
## Testing Infrastructure
|
||||||
|
|
||||||
|
- `tests/` - Bats test files
|
||||||
|
- `test-all.sh` - Main test runner
|
||||||
|
- Pre-commit hooks for automated testing
|
||||||
|
- GitHub Actions for CI/CD
|
||||||
|
|
||||||
|
## Recent Structural Changes
|
||||||
|
|
||||||
|
- Husky configuration moved from `base/huskyrc` to `config/husky/init.sh`
|
||||||
|
- Addition of everforest theme configurations across multiple tools
|
||||||
|
- New .serena directory for AI analysis caching
|
||||||
|
- Multiple temporary fish configuration files (everforest themes)
|
||||||
|
- Enhanced git configuration with delta and everforest theming
|
||||||
62
.serena/memories/shellcheck_issues.md
Normal file
62
.serena/memories/shellcheck_issues.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# ShellCheck Issues Analysis
|
||||||
|
|
||||||
|
## Critical Shell Script Problems
|
||||||
|
|
||||||
|
### Missing Shebangs (SC2148)
|
||||||
|
|
||||||
|
Multiple shell scripts missing proper shebang lines:
|
||||||
|
|
||||||
|
- `tools/antidote/tests/` - Test scripts
|
||||||
|
- `config/vim/*/test/lib/common.sh` - FZF test libraries
|
||||||
|
- `config/tmux/plugins/*/scripts/helpers.sh` - Plugin helper scripts
|
||||||
|
- Various submodule scripts
|
||||||
|
|
||||||
|
### Syntax Errors (SC1036, SC1088, SC1073)
|
||||||
|
|
||||||
|
- `config/vim/fzf/test/lib/common.sh` - Invalid ERB template syntax
|
||||||
|
- `config/cheat/cheatsheets/tldr/` - Markdown files incorrectly parsed as shell
|
||||||
|
- `tmux-sessionist/scripts/list_sessions.sh` - Brace parsing errors
|
||||||
|
|
||||||
|
### Variable Assignment Issues (SC1007, SC2155)
|
||||||
|
|
||||||
|
- `config/vim/extra/fzf/test/lib/common.sh` - Incorrect empty variable assignments
|
||||||
|
- Multiple tmux plugin scripts - Declare and assign should be separate
|
||||||
|
|
||||||
|
### Quoting Problems (SC2086, SC2006)
|
||||||
|
|
||||||
|
- Unquoted variable expansions in tmux plugin scripts
|
||||||
|
- Legacy backtick usage instead of $(...) syntax
|
||||||
|
- Missing quotes around variable expansions
|
||||||
|
|
||||||
|
## Third-Party Code Issues
|
||||||
|
|
||||||
|
### Submodule Problems
|
||||||
|
|
||||||
|
Most shellcheck errors are in **third-party submodules**:
|
||||||
|
|
||||||
|
- `tools/antidote/` - Zsh plugin manager
|
||||||
|
- `config/tmux/plugins/` - Tmux plugins
|
||||||
|
- `config/vim/extra/fzf/` - FZF integration
|
||||||
|
- `config/cheat/cheatsheets/tldr/` - Cheat sheet collection
|
||||||
|
|
||||||
|
### Recommendation
|
||||||
|
|
||||||
|
- These should be **excluded from shellcheck** via configuration
|
||||||
|
- Focus linting only on **project-owned scripts**
|
||||||
|
- Add shellcheck ignore patterns for submodule directories
|
||||||
|
|
||||||
|
## Project-Owned Script Issues
|
||||||
|
|
||||||
|
### Main Scripts Status
|
||||||
|
|
||||||
|
- `install` - ✅ Clean (no shellcheck errors)
|
||||||
|
- `test-all.sh` - ✅ Clean
|
||||||
|
- `add-submodules.sh` - ✅ Clean
|
||||||
|
- `config/shared.sh` - ✅ Clean
|
||||||
|
- Scripts in `local/bin/` - ✅ Mostly clean
|
||||||
|
|
||||||
|
### Minor Issues Found
|
||||||
|
|
||||||
|
- Some scripts could benefit from stricter quoting
|
||||||
|
- Consistent shebang usage across all scripts
|
||||||
|
- Consider adding `set -euo pipefail` to more scripts
|
||||||
121
.serena/memories/suggested_commands.md
Normal file
121
.serena/memories/suggested_commands.md
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
# Essential Commands for .dotfiles Development
|
||||||
|
|
||||||
|
## Installation & Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Initial setup - install linting tools and dependencies
|
||||||
|
yarn install
|
||||||
|
|
||||||
|
# Install/update all dotfiles configurations
|
||||||
|
./install
|
||||||
|
|
||||||
|
# Update git submodules (multiple approaches)
|
||||||
|
git submodule update --remote --merge
|
||||||
|
git submodule update --init --recursive --force
|
||||||
|
bash add-submodules.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Linting (run all linters - ALWAYS fix all issues)
|
||||||
|
yarn lint
|
||||||
|
|
||||||
|
# Individual linting commands
|
||||||
|
yarn lint:markdown # Markdownlint
|
||||||
|
yarn lint:prettier # Prettier check
|
||||||
|
yarn lint:ec # EditorConfig checker
|
||||||
|
|
||||||
|
# Auto-fixing (use these BEFORE manual linting)
|
||||||
|
yarn fix # Fix all format issues
|
||||||
|
yarn fix:markdown # Fix markdown formatting
|
||||||
|
yarn fix:prettier # Fix prettier formatting
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
yarn test # Run all Bats tests
|
||||||
|
bash test-all.sh # Alternative test runner
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pre-commit Hooks (Comprehensive)
|
||||||
|
|
||||||
|
Current pre-commit configuration includes:
|
||||||
|
|
||||||
|
- **Security**: detect-aws-credentials, detect-private-key
|
||||||
|
- **File integrity**: check-case-conflict, check-merge-conflict, check-symlinks
|
||||||
|
- **Shell scripts**: shellcheck, shfmt (formatting)
|
||||||
|
- **YAML/JSON**: yamllint, check-yaml, check-toml, pretty-format-json
|
||||||
|
- **Markdown**: markdownlint with auto-fix
|
||||||
|
- **Lua**: stylua formatting for Neovim configs
|
||||||
|
- **Fish**: fish_syntax, fish_indent for shell configs
|
||||||
|
- **GitHub Actions**: actionlint validation
|
||||||
|
- **Renovate**: renovate-config-validator
|
||||||
|
- **General**: trailing-whitespace, end-of-file-fixer, mixed-line-ending
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run pre-commit manually
|
||||||
|
pre-commit run --all-files
|
||||||
|
```
|
||||||
|
|
||||||
|
## Version Management
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check current versions
|
||||||
|
node --version # Managed by nvm (.nvmrc: v20.18.1)
|
||||||
|
go version # Managed by asdf (.go-version)
|
||||||
|
python --version # Managed by asdf (.python-version)
|
||||||
|
```
|
||||||
|
|
||||||
|
## System Utilities (Darwin-specific)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Modern CLI tools available
|
||||||
|
ls # aliased to eza with icons and git info
|
||||||
|
grep # aliased to grep --color
|
||||||
|
fd pattern # modern find alternative
|
||||||
|
rg pattern # ripgrep for text search
|
||||||
|
bat file # modern cat with syntax highlighting
|
||||||
|
```
|
||||||
|
|
||||||
|
## Project-specific Scripts (100+ available)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Dotfiles management
|
||||||
|
bash local/bin/dfm install all
|
||||||
|
|
||||||
|
# Git utilities
|
||||||
|
git-dirty # Check for dirty git repositories
|
||||||
|
git-fsck-dirs # Run fsck on git directories
|
||||||
|
git-update-dirs # Update multiple git directories
|
||||||
|
|
||||||
|
# Development utilities
|
||||||
|
x-pr-comments <pr> # Analyze GitHub PR comments (NEW)
|
||||||
|
x-set-php-aliases # Generate PHP version aliases
|
||||||
|
x-env-list # List environment variables
|
||||||
|
x-open-ports # Check open network ports
|
||||||
|
|
||||||
|
# Backup utilities
|
||||||
|
x-backup-folder # Backup directories
|
||||||
|
x-backup-mysql-with-prefix # MySQL backup with prefix
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration Management
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Load shell configurations
|
||||||
|
source config/shared.sh # Cross-shell compatibility functions
|
||||||
|
source x-set-php-aliases # PHP version management
|
||||||
|
|
||||||
|
# Host-specific configurations
|
||||||
|
# Automatically applied: hosts/{hostname}/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quality Assurance (CRITICAL)
|
||||||
|
|
||||||
|
**All linting errors are BLOCKING and must be fixed:**
|
||||||
|
|
||||||
|
- EditorConfig violations are considered blocking errors
|
||||||
|
- ShellCheck warnings must be addressed
|
||||||
|
- Prettier formatting must be consistent
|
||||||
|
- Markdownlint rules must be followed
|
||||||
|
- NEVER use --no-verify with git operations
|
||||||
|
- ALWAYS run autofixers before manual intervention
|
||||||
115
.serena/memories/task_completion_checklist.md
Normal file
115
.serena/memories/task_completion_checklist.md
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
# Task Completion Checklist
|
||||||
|
|
||||||
|
When completing any development task in this dotfiles repository, follow this
|
||||||
|
checklist to ensure compliance with project standards.
|
||||||
|
|
||||||
|
## Required Steps (BLOCKING)
|
||||||
|
|
||||||
|
### 1. Code Quality Checks
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run all linting tools - MUST PASS with zero errors
|
||||||
|
yarn lint
|
||||||
|
|
||||||
|
# Individual checks if needed:
|
||||||
|
yarn lint:markdown # Markdownlint validation
|
||||||
|
yarn lint:prettier # Prettier formatting check
|
||||||
|
yarn lint:ec # EditorConfig compliance verification
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Shell Script Validation (if applicable)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# All shell scripts must pass shellcheck without warnings
|
||||||
|
find . -path ./node_modules -prune -o -name '*.sh' -print0 | xargs -0 shellcheck
|
||||||
|
|
||||||
|
# For individual scripts:
|
||||||
|
shellcheck path/to/script.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Testing Infrastructure
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run all tests - MUST PASS completely
|
||||||
|
yarn test
|
||||||
|
# OR alternative runner
|
||||||
|
bash test-all.sh
|
||||||
|
|
||||||
|
# For specific test categories:
|
||||||
|
# Bats tests in tests/ directory
|
||||||
|
# Individual script functionality tests
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. EditorConfig Compliance (CRITICAL)
|
||||||
|
|
||||||
|
- **BLOCKING REQUIREMENT**: EditorConfig violations prevent completion
|
||||||
|
- All code must follow `.editorconfig` rules exactly:
|
||||||
|
- UTF-8 charset
|
||||||
|
- LF line endings
|
||||||
|
- Final newline required
|
||||||
|
- Trailing whitespace removal
|
||||||
|
- Language-specific indentation (2-space default, 4-space for Fish)
|
||||||
|
- Use autofixers before attempting manual fixes
|
||||||
|
- Never modify linting configuration to bypass errors
|
||||||
|
|
||||||
|
## Auto-fixing Protocol
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# ALWAYS run auto-fixers first, in this order:
|
||||||
|
yarn fix # Fix all auto-fixable issues
|
||||||
|
yarn fix:markdown # Fix markdown formatting violations
|
||||||
|
yarn fix:prettier # Fix code formatting issues
|
||||||
|
|
||||||
|
# Verify fixes applied correctly:
|
||||||
|
yarn lint # Should show reduced error count
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pre-commit Hook Integration
|
||||||
|
|
||||||
|
Current pre-commit configuration enforces:
|
||||||
|
|
||||||
|
- Security checks (credentials, private keys)
|
||||||
|
- Shell script validation (shellcheck, shfmt)
|
||||||
|
- Markdown formatting (markdownlint with auto-fix)
|
||||||
|
- YAML/JSON validation and formatting
|
||||||
|
- Lua formatting (stylua for Neovim configs)
|
||||||
|
- Fish shell syntax validation
|
||||||
|
- GitHub Actions validation (actionlint)
|
||||||
|
- Renovate configuration validation
|
||||||
|
|
||||||
|
## Memory File Maintenance
|
||||||
|
|
||||||
|
When updating memory files:
|
||||||
|
|
||||||
|
1. Follow markdown best practices (blank lines around headings/lists)
|
||||||
|
2. Specify language for fenced code blocks
|
||||||
|
3. Ensure final newline exists
|
||||||
|
4. Respect line length limits (120 chars for markdown)
|
||||||
|
5. Use proper heading hierarchy
|
||||||
|
|
||||||
|
## Critical Success Criteria
|
||||||
|
|
||||||
|
✅ **REQUIRED FOR TASK COMPLETION:**
|
||||||
|
|
||||||
|
- `yarn lint` exits with code 0 (no errors)
|
||||||
|
- `yarn test` passes all test suites
|
||||||
|
- EditorConfig compliance verified
|
||||||
|
- No trailing whitespace or missing final newlines
|
||||||
|
- Shell scripts have proper shebangs and pass shellcheck
|
||||||
|
- All temporary/cache files cleaned up
|
||||||
|
|
||||||
|
❌ **BLOCKING ISSUES:**
|
||||||
|
|
||||||
|
- Any linting errors or warnings
|
||||||
|
- EditorConfig violations of any kind
|
||||||
|
- Test failures or incomplete test coverage
|
||||||
|
- Use of `--no-verify` flag with git operations
|
||||||
|
- Modified linting configurations to bypass errors
|
||||||
|
|
||||||
|
## Quality Assurance Notes
|
||||||
|
|
||||||
|
- **Use `which command`** to get full paths in scripts
|
||||||
|
- **Prefer modern tools**: `rg` over `grep`, `fd` over `find`, `bat` over `cat`
|
||||||
|
- **Test cross-shell compatibility**: bash, zsh, fish
|
||||||
|
- **Validate host-specific configurations** don't break general setup
|
||||||
|
- **Document any new utilities** in `local/bin/README.md`
|
||||||
90
.serena/project.yml
Normal file
90
.serena/project.yml
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# language of the project (csharp, python, rust, java, typescript, go, cpp, or ruby)
|
||||||
|
# * For C, use cpp
|
||||||
|
# * For JavaScript, use typescript
|
||||||
|
# Special requirements:
|
||||||
|
# * csharp: Requires the presence of a .sln file in the project folder.
|
||||||
|
language: bash
|
||||||
|
|
||||||
|
# whether to use the project's gitignore file to ignore files
|
||||||
|
# Added on 2025-04-07
|
||||||
|
ignore_all_files_in_gitignore: true
|
||||||
|
# list of additional paths to ignore
|
||||||
|
# same syntax as gitignore, so you can use * and **
|
||||||
|
# Was previously called `ignored_dirs`, please update your config if you are using that.
|
||||||
|
# Added (renamed) on 2025-04-07
|
||||||
|
ignored_paths:
|
||||||
|
- '*.swp'
|
||||||
|
- '*.tmp'
|
||||||
|
- '*.tmp.*'
|
||||||
|
- '.DS_Store'
|
||||||
|
- '.git/**'
|
||||||
|
- /config/cheat/cheatsheets/community/**
|
||||||
|
- /config/cheat/cheatsheets/pure-bash-bible/**
|
||||||
|
- /config/cheat/cheatsheets/tldr/**
|
||||||
|
- /config/fish/cheatsheets/community/**
|
||||||
|
- /config/fzf/**
|
||||||
|
- /config/nvim/snippets/**
|
||||||
|
- /config/nvim/spell/**
|
||||||
|
- /config/op/plugins/**
|
||||||
|
- /config/tmux/plugins/**
|
||||||
|
- /config/vim/extra/**
|
||||||
|
- /config/zsh/completions/**
|
||||||
|
- /config/zsh/plugins/**
|
||||||
|
- /local/man/fzf
|
||||||
|
- /local/share/fonts
|
||||||
|
- /tools/antidote
|
||||||
|
- /tools/dotbot
|
||||||
|
- /tools/dotbot-*/**
|
||||||
|
- node_modules/**
|
||||||
|
|
||||||
|
# whether the project is in read-only mode
|
||||||
|
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
|
||||||
|
# Added on 2025-04-18
|
||||||
|
read_only: false
|
||||||
|
|
||||||
|
# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
|
||||||
|
# Below is the complete list of tools for convenience.
|
||||||
|
# To make sure you have the latest list of tools, and to view their descriptions,
|
||||||
|
# execute `uv run scripts/print_tool_overview.py`.
|
||||||
|
#
|
||||||
|
# * `activate_project`: Activates a project by name.
|
||||||
|
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
|
||||||
|
# * `create_text_file`: Creates/overwrites a file in the project directory.
|
||||||
|
# * `delete_lines`: Deletes a range of lines within a file.
|
||||||
|
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
|
||||||
|
# * `execute_shell_command`: Executes a shell command.
|
||||||
|
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
|
||||||
|
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
|
||||||
|
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
|
||||||
|
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
|
||||||
|
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
|
||||||
|
# * `initial_instructions`: Gets the initial instructions for the current project.
|
||||||
|
# Should only be used in settings where the system prompt cannot be set,
|
||||||
|
# e.g. in clients you have no control over, like Claude Desktop.
|
||||||
|
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
|
||||||
|
# * `insert_at_line`: Inserts content at a given line in a file.
|
||||||
|
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
|
||||||
|
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
|
||||||
|
# * `list_memories`: Lists memories in Serena's project-specific memory store.
|
||||||
|
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
|
||||||
|
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
|
||||||
|
# * `read_file`: Reads a file within the project directory.
|
||||||
|
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
|
||||||
|
# * `remove_project`: Removes a project from the Serena configuration.
|
||||||
|
# * `replace_lines`: Replaces a range of lines within a file with new content.
|
||||||
|
# * `replace_symbol_body`: Replaces the full definition of a symbol.
|
||||||
|
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
|
||||||
|
# * `search_for_pattern`: Performs a search for a pattern in the project.
|
||||||
|
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
|
||||||
|
# * `switch_modes`: Activates modes by providing a list of their names
|
||||||
|
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
|
||||||
|
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
|
||||||
|
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
|
||||||
|
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
|
||||||
|
excluded_tools: []
|
||||||
|
|
||||||
|
# initial prompt for the project. It will always be given to the LLM upon activating the project
|
||||||
|
# (contrary to the memories, which are loaded on demand).
|
||||||
|
initial_prompt: ''
|
||||||
|
|
||||||
|
project_name: '.dotfiles'
|
||||||
@@ -14,4 +14,3 @@ local/bin/antigen.zsh
|
|||||||
local/bin/asdf
|
local/bin/asdf
|
||||||
tools/antidote/*
|
tools/antidote/*
|
||||||
tools/dotbot*
|
tools/dotbot*
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ git submodule add --name tmux/tmux-yank \
|
|||||||
git submodule add --name tmux/tmux-current-pane-hostname \
|
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
|
-f https://github.com/soyuka/tmux-current-pane-hostname.git config/tmux/plugins/tmux-current-pane-hostname
|
||||||
git submodule add --name tmux/tmux-dark-notify \
|
git submodule add --name tmux/tmux-dark-notify \
|
||||||
-f https://github.com/erikw/tmux-dark-notify.git config/tmux/plugins/tmux-dark-notify
|
-f https://github.com/ivuorinen/tmux-dark-notify.git config/tmux/plugins/tmux-dark-notify
|
||||||
|
|
||||||
# Takes submodules and sets them to ignore all changes
|
# Takes submodules and sets them to ignore all changes
|
||||||
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do
|
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do
|
||||||
|
|||||||
@@ -12,5 +12,3 @@
|
|||||||
~-.__| /_ - ~ ^| /- _ `..-' f: f:
|
~-.__| /_ - ~ ^| /- _ `..-' f: f:
|
||||||
| / | / ~-. `-. _||_||_
|
| / | / ~-. `-. _||_||_
|
||||||
|_____| |_____| ~ - . _ _ _ _ _>
|
|_____| |_____| ~ - . _ _ _ _ _>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,3 @@
|
|||||||
# paths in source statements (since 0.8.0).
|
# paths in source statements (since 0.8.0).
|
||||||
external-sources=true
|
external-sources=true
|
||||||
includeAllWorkspaceSymbols=true
|
includeAllWorkspaceSymbols=true
|
||||||
|
|
||||||
|
|||||||
@@ -69,5 +69,3 @@ Available format modifiers are:
|
|||||||
'. For decimal conversions, applies the thousands grouping
|
'. For decimal conversions, applies the thousands grouping
|
||||||
separator to the integer portion of the output according
|
separator to the integer portion of the output according
|
||||||
to the current LC_NUMERIC file.
|
to the current LC_NUMERIC file.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -56,11 +56,11 @@ TERM xterm*
|
|||||||
RESET 0 # reset to "normal" color
|
RESET 0 # reset to "normal" color
|
||||||
DIR 01;34 # directory
|
DIR 01;34 # directory
|
||||||
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
|
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
|
||||||
# numerical value, the color is as for the file pointed to.)
|
# numerical value, the color is as for the file pointed to.)
|
||||||
MULTIHARDLINK 00 # regular file with more than one link
|
MULTIHARDLINK 00 # regular file with more than one link
|
||||||
FIFO 40;33 # pipe
|
FIFO 40;33 # pipe
|
||||||
SOCK 01;35 # socket
|
SOCK 01;35 # socket
|
||||||
DOOR 01;35 # door
|
DOOR 01;35 # door
|
||||||
BLK 40;33;01 # block device driver
|
BLK 40;33;01 # block device driver
|
||||||
CHR 40;33;01 # character device driver
|
CHR 40;33;01 # character device driver
|
||||||
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
|
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
|
||||||
|
|||||||
@@ -10,4 +10,3 @@ prefix = [
|
|||||||
exact = [
|
exact = [
|
||||||
"~/.dotfiles/.envrc"
|
"~/.dotfiles/.envrc"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
|
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
use_asdf() {
|
use_asdf()
|
||||||
|
{
|
||||||
source_env "$(asdf direnv envrc "$@")"
|
source_env "$(asdf direnv envrc "$@")"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,12 @@ alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
|
|||||||
if type -q eza >/dev/null
|
if type -q eza >/dev/null
|
||||||
function eza_git -d "Use eza and its git options if in a git repo"
|
function eza_git -d "Use eza and its git options if in a git repo"
|
||||||
if git rev-parse --is-inside-work-tree &>/dev/null
|
if git rev-parse --is-inside-work-tree &>/dev/null
|
||||||
eza --group-directories-first --icons=always --smart-group --git $argv
|
eza --group-directories-first --icons=always \
|
||||||
|
--smart-group --git $argv
|
||||||
else
|
else
|
||||||
eza --group-directories-first --icons=always --smart-group $argv
|
eza --group-directories-first \
|
||||||
|
--icons=always \
|
||||||
|
--smart-group $argv
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -30,7 +33,9 @@ if type -q eza >/dev/null
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Edit fish alias file
|
# Edit fish alias file
|
||||||
function .a --wraps='nvim ~/.dotfiles/config/fish/alias.fish' --description 'edit alias.fish'
|
function .a \
|
||||||
|
--wraps='nvim ~/.dotfiles/config/fish/alias.fish' \
|
||||||
|
--description 'edit alias.fish'
|
||||||
nvim ~/.dotfiles/config/fish/alias.fish $argv
|
nvim ~/.dotfiles/config/fish/alias.fish $argv
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -55,7 +60,9 @@ function .p --wraps='cd ~/Code/ivuorinen' --description 'cd ~/Code/ivuorinen'
|
|||||||
end
|
end
|
||||||
|
|
||||||
# shortcut to commit with a message
|
# shortcut to commit with a message
|
||||||
function commit --wraps='git commit -a -m "chore: automated commit"' --description 'commit shortcut'
|
function commit \
|
||||||
|
--wraps='git commit -a -m "chore: automated commit"' \
|
||||||
|
--description 'commit shortcut'
|
||||||
set -l commitMessage $argv
|
set -l commitMessage $argv
|
||||||
git add .
|
git add .
|
||||||
|
|
||||||
@@ -71,7 +78,8 @@ function commit --wraps='git commit -a -m "chore: automated commit"' --descripti
|
|||||||
git commit -a -m "$commitMessage"
|
git commit -a -m "$commitMessage"
|
||||||
end
|
end
|
||||||
|
|
||||||
function configure_tide --description 'Configure tide with the lean style and my preferences'
|
function configure_tide \
|
||||||
|
--description 'Configure tide with the lean style and my preferences'
|
||||||
tide configure \
|
tide configure \
|
||||||
--auto \
|
--auto \
|
||||||
--style=Lean \
|
--style=Lean \
|
||||||
|
|||||||
@@ -122,4 +122,3 @@ complete -c aqua -n '__fish_seen_subcommand_from root-dir' -f -l help -s h -d 's
|
|||||||
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'root-dir' -d 'Output the aqua root directory (AQUA_ROOT_DIR)'
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'root-dir' -d 'Output the aqua root directory (AQUA_ROOT_DIR)'
|
||||||
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
|
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
|
||||||
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'help h' -d 'Shows a list of commands or help for one command'
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'help h' -d 'Shows a list of commands or help for one command'
|
||||||
|
|
||||||
|
|||||||
@@ -173,4 +173,3 @@ complete -c git-profile -e
|
|||||||
# The call to __git_profile_prepare_completions will setup __git_profile_comp_results
|
# The call to __git_profile_prepare_completions will setup __git_profile_comp_results
|
||||||
# which provides the program's completion choices.
|
# which provides the program's completion choices.
|
||||||
complete -c git-profile -n '__git_profile_prepare_completions' -f -a '$__git_profile_comp_results'
|
complete -c git-profile -n '__git_profile_prepare_completions' -f -a '$__git_profile_comp_results'
|
||||||
|
|
||||||
|
|||||||
@@ -120,4 +120,3 @@ complete -c phpenv -f \
|
|||||||
|
|
||||||
# Complete help options
|
# Complete help options
|
||||||
complete -c phpenv -f -s h -l help -d "Show help"
|
complete -c phpenv -f -s h -l help -d "Show help"
|
||||||
|
|
||||||
|
|||||||
@@ -35,4 +35,3 @@ if test -n "$PHPENV_GLOBAL_VERSION"; and not set -q PHPENV_INITIALIZED
|
|||||||
end
|
end
|
||||||
set -g PHPENV_INITIALIZED true
|
set -g PHPENV_INITIALIZED true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -48,19 +48,23 @@ test -z "$NVIM_UNDO_PATH" && set -x NVIM_UNDO_PATH "$NVIM_STATE/undo"
|
|||||||
# Ansible configuration
|
# Ansible configuration
|
||||||
set -q ANSIBLE_HOME; or set -x ANSIBLE_HOME "$XDG_CONFIG_HOME/ansible"
|
set -q ANSIBLE_HOME; or set -x ANSIBLE_HOME "$XDG_CONFIG_HOME/ansible"
|
||||||
set -q ANSIBLE_CONFIG; or set -x ANSIBLE_CONFIG "$ANSIBLE_HOME/ansible.cfg"
|
set -q ANSIBLE_CONFIG; or set -x ANSIBLE_CONFIG "$ANSIBLE_HOME/ansible.cfg"
|
||||||
set -q ANSIBLE_GALAXY_CACHE_DIR; or set -x ANSIBLE_GALAXY_CACHE_DIR "$XDG_CACHE_HOME/ansible/galaxy_cache"
|
set -q ANSIBLE_GALAXY_CACHE_DIR; or \
|
||||||
|
set -x ANSIBLE_GALAXY_CACHE_DIR "$XDG_CACHE_HOME/ansible/galaxy_cache"
|
||||||
x-dc "$ANSIBLE_HOME"
|
x-dc "$ANSIBLE_HOME"
|
||||||
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
||||||
|
|
||||||
# AWS configuration
|
# AWS configuration
|
||||||
set -q AWS_CONFIG_FILE; or set -x AWS_CONFIG_FILE "$XDG_STATE_HOME/aws/config"
|
set -q AWS_CONFIG_FILE; or set -x AWS_CONFIG_FILE "$XDG_STATE_HOME/aws/config"
|
||||||
set -q AWS_SHARED_CREDENTIALS_FILE; or set -x AWS_SHARED_CREDENTIALS_FILE "$XDG_STATE_HOME/aws/credentials"
|
set -q AWS_SHARED_CREDENTIALS_FILE; or \
|
||||||
set -q AWS_SESSION_TOKEN; or set -x AWS_SESSION_TOKEN "$XDG_STATE_HOME/aws/session_token"
|
set -x AWS_SHARED_CREDENTIALS_FILE "$XDG_STATE_HOME/aws/credentials"
|
||||||
|
set -q AWS_SESSION_TOKEN; or \
|
||||||
|
set -x AWS_SESSION_TOKEN "$XDG_STATE_HOME/aws/session_token"
|
||||||
set -q AWS_DATA_PATH; or set -x AWS_DATA_PATH "$XDG_DATA_HOME/aws"
|
set -q AWS_DATA_PATH; or set -x AWS_DATA_PATH "$XDG_DATA_HOME/aws"
|
||||||
set -q AWS_DEFAULT_OUTPUT; or set -x AWS_DEFAULT_OUTPUT table
|
set -q AWS_DEFAULT_OUTPUT; or set -x AWS_DEFAULT_OUTPUT table
|
||||||
set -q AWS_CONFIGURE_KEYS; or set -x AWS_CONFIGURE_KEYS true
|
set -q AWS_CONFIGURE_KEYS; or set -x AWS_CONFIGURE_KEYS true
|
||||||
set -q AWS_CONFIGURE_SESSION; or set -x AWS_CONFIGURE_SESSION true
|
set -q AWS_CONFIGURE_SESSION; or set -x AWS_CONFIGURE_SESSION true
|
||||||
set -q AWS_CONFIGURE_SESSION_DURATION; or set -x AWS_CONFIGURE_SESSION_DURATION 7200
|
set -q AWS_CONFIGURE_SESSION_DURATION; or \
|
||||||
|
set -x AWS_CONFIGURE_SESSION_DURATION 7200
|
||||||
set -q AWS_CONFIGURE_SESSION_MFA; or set -x AWS_CONFIGURE_SESSION_MFA true
|
set -q AWS_CONFIGURE_SESSION_MFA; or set -x AWS_CONFIGURE_SESSION_MFA true
|
||||||
set -q AWS_CONFIGURE_PROFILE; or set -x AWS_CONFIGURE_PROFILE true
|
set -q AWS_CONFIGURE_PROFILE; or set -x AWS_CONFIGURE_PROFILE true
|
||||||
set -q AWS_CONFIGURE_PROMPT; or set -x AWS_CONFIGURE_PROMPT true
|
set -q AWS_CONFIGURE_PROMPT; or set -x AWS_CONFIGURE_PROMPT true
|
||||||
@@ -70,7 +74,8 @@ set -q AWS_CONFIGURE_PROMPT_DEFAULT; or set -x AWS_CONFIGURE_PROMPT_DEFAULT true
|
|||||||
set -q HOMEBREW_NO_ANALYTICS; or set -x HOMEBREW_NO_ANALYTICS true
|
set -q HOMEBREW_NO_ANALYTICS; or set -x HOMEBREW_NO_ANALYTICS true
|
||||||
set -q HOMEBREW_NO_ENV_HINTS; or set -x HOMEBREW_NO_ENV_HINTS true
|
set -q HOMEBREW_NO_ENV_HINTS; or set -x HOMEBREW_NO_ENV_HINTS true
|
||||||
set -q HOMEBREW_BUNDLE_MAS_SKIP; or set -x HOMEBREW_BUNDLE_MAS_SKIP true
|
set -q HOMEBREW_BUNDLE_MAS_SKIP; or set -x HOMEBREW_BUNDLE_MAS_SKIP true
|
||||||
set -q HOMEBREW_BUNDLE_FILE; or set -x HOMEBREW_BUNDLE_FILE "$XDG_CONFIG_HOME/homebrew/Brewfile"
|
set -q HOMEBREW_BUNDLE_FILE; or \
|
||||||
|
set -x HOMEBREW_BUNDLE_FILE "$XDG_CONFIG_HOME/homebrew/Brewfile"
|
||||||
|
|
||||||
# Composer configuration
|
# Composer configuration
|
||||||
set -q COMPOSER_HOME; or set -x COMPOSER_HOME "$XDG_STATE_HOME/composer"
|
set -q COMPOSER_HOME; or set -x COMPOSER_HOME "$XDG_STATE_HOME/composer"
|
||||||
@@ -96,7 +101,9 @@ set -q FNM_RESOLVE_ENGINES; or set -x FNM_RESOLVE_ENGINES true
|
|||||||
|
|
||||||
# fzf configuration
|
# fzf configuration
|
||||||
set -q FZF_BASE; or set -x FZF_BASE "$XDG_CONFIG_HOME/fzf"
|
set -q FZF_BASE; or set -x FZF_BASE "$XDG_CONFIG_HOME/fzf"
|
||||||
set -q FZF_DEFAULT_OPTS; or set -x FZF_DEFAULT_OPTS '--height 40% --tmux bottom,70% --layout reverse --border top'
|
set -q FZF_DEFAULT_OPTS; or \
|
||||||
|
set -x FZF_DEFAULT_OPTS \
|
||||||
|
'--height 40% --tmux bottom,40% --layout reverse --border top'
|
||||||
|
|
||||||
# GnuPG configuration
|
# GnuPG configuration
|
||||||
set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
|
set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
|
||||||
@@ -106,7 +113,8 @@ set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
|
|||||||
set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME"
|
set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME"
|
||||||
|
|
||||||
set -q GOENV_ROOT; or set -x GOENV_ROOT "$XDG_DATA_HOME/goenv"
|
set -q GOENV_ROOT; or set -x GOENV_ROOT "$XDG_DATA_HOME/goenv"
|
||||||
set -q GOENV_RC_FILE; or set -x GOENV_RC_FILE "$XDG_CONFIG_HOME/goenv/goenvrc.fish"
|
set -q GOENV_RC_FILE; or \
|
||||||
|
set -x GOENV_RC_FILE "$XDG_CONFIG_HOME/goenv/goenvrc.fish"
|
||||||
|
|
||||||
# 1Password configuration
|
# 1Password configuration
|
||||||
set -q OP_CACHE; or set -x OP_CACHE "$XDG_STATE_HOME/1password"
|
set -q OP_CACHE; or set -x OP_CACHE "$XDG_STATE_HOME/1password"
|
||||||
@@ -134,19 +142,23 @@ set -q SCREENRC; or set -x SCREENRC "$XDG_CONFIG_HOME/misc/screenrc"
|
|||||||
# Sonarlint configuration
|
# Sonarlint configuration
|
||||||
set -q SONARLINT_HOME; or set -x SONARLINT_HOME "$XDG_DATA_HOME/sonarlint"
|
set -q SONARLINT_HOME; or set -x SONARLINT_HOME "$XDG_DATA_HOME/sonarlint"
|
||||||
set -q SONARLINT_BIN; or set -x SONARLINT_BIN "$XDG_BIN_HOME"
|
set -q SONARLINT_BIN; or set -x SONARLINT_BIN "$XDG_BIN_HOME"
|
||||||
set -q SONARLINT_USER_HOME; or set -x SONARLINT_USER_HOME "$XDG_DATA_HOME/sonarlint"
|
set -q SONARLINT_USER_HOME; or \
|
||||||
|
set -x SONARLINT_USER_HOME "$XDG_DATA_HOME/sonarlint"
|
||||||
|
|
||||||
# Terraform configuration
|
# Terraform configuration
|
||||||
set -q TF_DATA_DIR; or set -x TF_DATA_DIR "$XDG_STATE_HOME/terraform"
|
set -q TF_DATA_DIR; or set -x TF_DATA_DIR "$XDG_STATE_HOME/terraform"
|
||||||
set -q TF_CLI_CONFIG_FILE; or set -x TF_CLI_CONFIG_FILE "$XDG_CONFIG_HOME/terraform/terraformrc"
|
set -q TF_CLI_CONFIG_FILE; or \
|
||||||
set -q TF_PLUGIN_CACHE_DIR; or set -x TF_PLUGIN_CACHE_DIR "$XDG_CACHE_HOME/terraform/plugin-cache"
|
set -x TF_CLI_CONFIG_FILE "$XDG_CONFIG_HOME/terraform/terraformrc"
|
||||||
|
set -q TF_PLUGIN_CACHE_DIR; or \
|
||||||
|
set -x TF_PLUGIN_CACHE_DIR "$XDG_CACHE_HOME/terraform/plugin-cache"
|
||||||
|
|
||||||
# tmux configuration
|
# tmux configuration
|
||||||
set -q TMUX_TMPDIR; or set -x TMUX_TMPDIR "$XDG_STATE_HOME/tmux"
|
set -q TMUX_TMPDIR; or set -x TMUX_TMPDIR "$XDG_STATE_HOME/tmux"
|
||||||
set -q TMUX_CONF_DIR; or set -x TMUX_CONF_DIR "$XDG_CONFIG_HOME/tmux"
|
set -q TMUX_CONF_DIR; or set -x TMUX_CONF_DIR "$XDG_CONFIG_HOME/tmux"
|
||||||
set -q TMUX_PLUGINS; or set -x TMUX_PLUGINS "$TMUX_CONF_DIR/plugins"
|
set -q TMUX_PLUGINS; or set -x TMUX_PLUGINS "$TMUX_CONF_DIR/plugins"
|
||||||
set -q TMUX_CONF; or set -x TMUX_CONF "$TMUX_CONF_DIR/tmux.conf"
|
set -q TMUX_CONF; or set -x TMUX_CONF "$TMUX_CONF_DIR/tmux.conf"
|
||||||
set -q TMUX_PLUGIN_MANAGER_PATH; or set -x TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGINS"
|
set -q TMUX_PLUGIN_MANAGER_PATH; or \
|
||||||
|
set -x TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGINS"
|
||||||
|
|
||||||
# Source tmux theme activation script for Fish shell
|
# Source tmux theme activation script for Fish shell
|
||||||
if test -f "$DOTFILES/config/tmux/theme-activate.fish"
|
if test -f "$DOTFILES/config/tmux/theme-activate.fish"
|
||||||
@@ -154,7 +166,8 @@ if test -f "$DOTFILES/config/tmux/theme-activate.fish"
|
|||||||
end
|
end
|
||||||
|
|
||||||
# tms configuration
|
# tms configuration
|
||||||
set -q TMS_CONFIG_FILE; or set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.toml"
|
set -q TMS_CONFIG_FILE; or \
|
||||||
|
set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.toml"
|
||||||
|
|
||||||
# wakatime configuration
|
# wakatime configuration
|
||||||
set -q WAKATIME_HOME; or set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
|
set -q WAKATIME_HOME; or set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
|
||||||
@@ -166,7 +179,8 @@ set -q _ZO_EXCLUDE_DIRS; or set -x _ZO_EXCLUDE_DIRS "$XDG_DATA_HOME"
|
|||||||
|
|
||||||
# Miscellaneous configuration
|
# Miscellaneous configuration
|
||||||
set -q CHEAT_USE_FZF; or set -x CHEAT_USE_FZF true
|
set -q CHEAT_USE_FZF; or set -x CHEAT_USE_FZF true
|
||||||
set -q SQLITE_HISTORY; or set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"
|
set -q SQLITE_HISTORY; or \
|
||||||
|
set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"
|
||||||
|
|
||||||
# Source additional configuration files if they exist
|
# Source additional configuration files if they exist
|
||||||
if test -f "$DOTFILES/config/fish/exports-secret.fish"
|
if test -f "$DOTFILES/config/fish/exports-secret.fish"
|
||||||
@@ -186,6 +200,8 @@ set -gx tide_prompt_transient_enabled true
|
|||||||
set -gx tide_prompt_add_newline_before true
|
set -gx tide_prompt_add_newline_before true
|
||||||
set -gx tide_prompt_min_cols 34
|
set -gx tide_prompt_min_cols 34
|
||||||
set -gx tide_prompt_pad_items false
|
set -gx tide_prompt_pad_items false
|
||||||
set -gx tide_left_prompt_items context pwd git node python rustc java php pulumi ruby go gcloud newline character
|
set -gx tide_left_prompt_items context pwd git node python rustc java php \
|
||||||
|
pulumi ruby go gcloud kubectl distrobox toolbox terraform aws nix_shell \
|
||||||
|
crystal elixir zig newline character
|
||||||
set -gx tide_right_prompt_items status jobs direnv
|
set -gx tide_right_prompt_items status jobs direnv
|
||||||
set -gx tide_context_hostname_parts 1
|
set -gx tide_context_hostname_parts 1
|
||||||
|
|||||||
@@ -6,4 +6,3 @@ function _puffer_fish_expand_bang
|
|||||||
commandline -i '!'
|
commandline -i '!'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
function nvm
|
function nvm
|
||||||
bass source $NVM_DIR/nvm.sh --no-use ';' nvm $argv
|
bass source $NVM_DIR/nvm.sh --no-use ';' nvm $argv
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ function ___paths_plugin_handle_found_item -a testName outFlags
|
|||||||
end
|
end
|
||||||
|
|
||||||
set nameOut (string trim -- "$nameOut")
|
set nameOut (string trim -- "$nameOut")
|
||||||
# do the tick
|
# do the tick
|
||||||
if set -q _flag_k # is not color
|
if set -q _flag_k # is not color
|
||||||
set nameOut "- $nameOut"
|
set nameOut "- $nameOut"
|
||||||
else # is color
|
else # is color
|
||||||
@@ -155,7 +155,7 @@ function paths --description "Reveal the executable matches in shell paths or fi
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# check
|
# check
|
||||||
set -l built (type --type $input 12&>/dev/null)
|
set -l built (type --type $input 12&>/dev/null)
|
||||||
if test -n "$built"
|
if test -n "$built"
|
||||||
and test "$built" = 'builtin'
|
and test "$built" = 'builtin'
|
||||||
|
|||||||
@@ -1075,4 +1075,3 @@ function __phpenv_validate_extensions -a phpenv_extensions_string
|
|||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -11,63 +11,63 @@
|
|||||||
|
|
||||||
if [[ $- =~ i ]]; then
|
if [[ $- =~ i ]]; then
|
||||||
|
|
||||||
# To use custom commands instead of find, override _fzf_compgen_{path,dir}
|
# To use custom commands instead of find, override _fzf_compgen_{path,dir}
|
||||||
if ! declare -f _fzf_compgen_path > /dev/null; then
|
if ! declare -f _fzf_compgen_path >/dev/null; then
|
||||||
_fzf_compgen_path() {
|
_fzf_compgen_path() {
|
||||||
echo "$1"
|
echo "$1"
|
||||||
command find -L "$1" \
|
command find -L "$1" \
|
||||||
-name .git -prune -o -name .hg -prune -o -name .svn -prune -o \( -type d -o -type f -o -type l \) \
|
-name .git -prune -o -name .hg -prune -o -name .svn -prune -o \( -type d -o -type f -o -type l \) \
|
||||||
-a -not -path "$1" -print 2> /dev/null | sed 's@^\./@@'
|
-a -not -path "$1" -print 2>/dev/null | sed 's@^\./@@'
|
||||||
}
|
}
|
||||||
fi
|
|
||||||
|
|
||||||
if ! declare -f _fzf_compgen_dir > /dev/null; then
|
|
||||||
_fzf_compgen_dir() {
|
|
||||||
command find -L "$1" \
|
|
||||||
-name .git -prune -o -name .hg -prune -o -name .svn -prune -o -type d \
|
|
||||||
-a -not -path "$1" -print 2> /dev/null | sed 's@^\./@@'
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
###########################################################
|
|
||||||
|
|
||||||
# To redraw line after fzf closes (printf '\e[5n')
|
|
||||||
bind '"\e[0n": redraw-current-line' 2> /dev/null
|
|
||||||
|
|
||||||
__fzf_comprun() {
|
|
||||||
if [[ "$(type -t _fzf_comprun 2>&1)" = function ]]; then
|
|
||||||
_fzf_comprun "$@"
|
|
||||||
elif [[ -n "${TMUX_PANE-}" ]] && { [[ "${FZF_TMUX:-0}" != 0 ]] || [[ -n "${FZF_TMUX_OPTS-}" ]]; }; then
|
|
||||||
shift
|
|
||||||
fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- "$@"
|
|
||||||
else
|
|
||||||
shift
|
|
||||||
fzf "$@"
|
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
|
|
||||||
__fzf_orig_completion() {
|
if ! declare -f _fzf_compgen_dir >/dev/null; then
|
||||||
local l comp f cmd
|
_fzf_compgen_dir() {
|
||||||
while read -r l; do
|
command find -L "$1" \
|
||||||
if [[ "$l" =~ ^(.*\ -F)\ *([^ ]*).*\ ([^ ]*)$ ]]; then
|
-name .git -prune -o -name .hg -prune -o -name .svn -prune -o -type d \
|
||||||
comp="${BASH_REMATCH[1]}"
|
-a -not -path "$1" -print 2>/dev/null | sed 's@^\./@@'
|
||||||
f="${BASH_REMATCH[2]}"
|
}
|
||||||
cmd="${BASH_REMATCH[3]}"
|
fi
|
||||||
[[ "$f" = _fzf_* ]] && continue
|
|
||||||
printf -v "_fzf_orig_completion_${cmd//[^A-Za-z0-9_]/_}" "%s" "${comp} %s ${cmd} #${f}"
|
###########################################################
|
||||||
if [[ "$l" = *" -o nospace "* ]] && [[ ! "${__fzf_nospace_commands-}" = *" $cmd "* ]]; then
|
|
||||||
__fzf_nospace_commands="${__fzf_nospace_commands-} $cmd "
|
# To redraw line after fzf closes (printf '\e[5n')
|
||||||
fi
|
bind '"\e[0n": redraw-current-line' 2>/dev/null
|
||||||
|
|
||||||
|
__fzf_comprun() {
|
||||||
|
if [[ "$(type -t _fzf_comprun 2>&1)" = function ]]; then
|
||||||
|
_fzf_comprun "$@"
|
||||||
|
elif [[ -n "${TMUX_PANE-}" ]] && { [[ "${FZF_TMUX:-0}" != 0 ]] || [[ -n "${FZF_TMUX_OPTS-}" ]]; }; then
|
||||||
|
shift
|
||||||
|
fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- "$@"
|
||||||
|
else
|
||||||
|
shift
|
||||||
|
fzf "$@"
|
||||||
fi
|
fi
|
||||||
done
|
}
|
||||||
}
|
|
||||||
|
|
||||||
_fzf_opts_completion() {
|
__fzf_orig_completion() {
|
||||||
local cur prev opts
|
local l comp f cmd
|
||||||
COMPREPLY=()
|
while read -r l; do
|
||||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
if [[ "$l" =~ ^(.*\ -F)\ *([^ ]*).*\ ([^ ]*)$ ]]; then
|
||||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
comp="${BASH_REMATCH[1]}"
|
||||||
opts="
|
f="${BASH_REMATCH[2]}"
|
||||||
|
cmd="${BASH_REMATCH[3]}"
|
||||||
|
[[ "$f" = _fzf_* ]] && continue
|
||||||
|
printf -v "_fzf_orig_completion_${cmd//[^A-Za-z0-9_]/_}" "%s" "${comp} %s ${cmd} #${f}"
|
||||||
|
if [[ "$l" = *" -o nospace "* ]] && [[ ! "${__fzf_nospace_commands-}" = *" $cmd "* ]]; then
|
||||||
|
__fzf_nospace_commands="${__fzf_nospace_commands-} $cmd "
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_opts_completion() {
|
||||||
|
local cur prev opts
|
||||||
|
COMPREPLY=()
|
||||||
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
prev="${COMP_WORDS[COMP_CWORD - 1]}"
|
||||||
|
opts="
|
||||||
-x --extended
|
-x --extended
|
||||||
-e --exact
|
-e --exact
|
||||||
--algo
|
--algo
|
||||||
@@ -110,206 +110,206 @@ _fzf_opts_completion() {
|
|||||||
--expect
|
--expect
|
||||||
--sync"
|
--sync"
|
||||||
|
|
||||||
case "${prev}" in
|
case "${prev}" in
|
||||||
--tiebreak)
|
--tiebreak)
|
||||||
COMPREPLY=( $(compgen -W "length begin end index" -- "$cur") )
|
COMPREPLY=($(compgen -W "length begin end index" -- "$cur"))
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
--color)
|
--color)
|
||||||
COMPREPLY=( $(compgen -W "dark light 16 bw" -- "$cur") )
|
COMPREPLY=($(compgen -W "dark light 16 bw" -- "$cur"))
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
--history)
|
--history)
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [[ "$cur" =~ ^-|\+ ]]; then
|
if [[ "$cur" =~ ^-|\+ ]]; then
|
||||||
COMPREPLY=( $(compgen -W "${opts}" -- "$cur") )
|
COMPREPLY=($(compgen -W "${opts}" -- "$cur"))
|
||||||
return 0
|
return 0
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
_fzf_handle_dynamic_completion() {
|
|
||||||
local cmd orig_var orig ret orig_cmd orig_complete
|
|
||||||
cmd="$1"
|
|
||||||
shift
|
|
||||||
orig_cmd="$1"
|
|
||||||
orig_var="_fzf_orig_completion_$cmd"
|
|
||||||
orig="${!orig_var-}"
|
|
||||||
orig="${orig##*#}"
|
|
||||||
if [[ -n "$orig" ]] && type "$orig" > /dev/null 2>&1; then
|
|
||||||
$orig "$@"
|
|
||||||
elif [[ -n "${_fzf_completion_loader-}" ]]; then
|
|
||||||
orig_complete=$(complete -p "$orig_cmd" 2> /dev/null)
|
|
||||||
_completion_loader "$@"
|
|
||||||
ret=$?
|
|
||||||
# _completion_loader may not have updated completion for the command
|
|
||||||
if [[ "$(complete -p "$orig_cmd" 2> /dev/null)" != "$orig_complete" ]]; then
|
|
||||||
__fzf_orig_completion < <(complete -p "$orig_cmd" 2> /dev/null)
|
|
||||||
if [[ "${__fzf_nospace_commands-}" = *" $orig_cmd "* ]]; then
|
|
||||||
eval "${orig_complete/ -F / -o nospace -F }"
|
|
||||||
else
|
|
||||||
eval "$orig_complete"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
return $ret
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
__fzf_generic_path_completion() {
|
return 0
|
||||||
local cur base dir leftover matches trigger cmd
|
}
|
||||||
cmd="${COMP_WORDS[0]}"
|
|
||||||
if [[ $cmd == \\* ]]; then
|
|
||||||
cmd="${cmd:1}"
|
|
||||||
fi
|
|
||||||
cmd="${cmd//[^A-Za-z0-9_=]/_}"
|
|
||||||
COMPREPLY=()
|
|
||||||
trigger=${FZF_COMPLETION_TRIGGER-'**'}
|
|
||||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
||||||
if [[ "$cur" == *"$trigger" ]]; then
|
|
||||||
base=${cur:0:${#cur}-${#trigger}}
|
|
||||||
eval "base=$base"
|
|
||||||
|
|
||||||
dir=
|
_fzf_handle_dynamic_completion() {
|
||||||
[[ $base = *"/"* ]] && dir="$base"
|
local cmd orig_var orig ret orig_cmd orig_complete
|
||||||
while true; do
|
cmd="$1"
|
||||||
if [[ -z "$dir" ]] || [[ -d "$dir" ]]; then
|
shift
|
||||||
leftover=${base/#"$dir"}
|
orig_cmd="$1"
|
||||||
leftover=${leftover/#\/}
|
orig_var="_fzf_orig_completion_$cmd"
|
||||||
[[ -z "$dir" ]] && dir='.'
|
orig="${!orig_var-}"
|
||||||
[[ "$dir" != "/" ]] && dir="${dir/%\//}"
|
orig="${orig##*#}"
|
||||||
matches=$(eval "$1 $(printf %q "$dir")" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-} $2" __fzf_comprun "$4" -q "$leftover" | while read -r item; do
|
if [[ -n "$orig" ]] && type "$orig" >/dev/null 2>&1; then
|
||||||
printf "%q " "${item%$3}$3"
|
$orig "$@"
|
||||||
done)
|
elif [[ -n "${_fzf_completion_loader-}" ]]; then
|
||||||
matches=${matches% }
|
orig_complete=$(complete -p "$orig_cmd" 2>/dev/null)
|
||||||
[[ -z "$3" ]] && [[ "${__fzf_nospace_commands-}" = *" ${COMP_WORDS[0]} "* ]] && matches="$matches "
|
_completion_loader "$@"
|
||||||
if [[ -n "$matches" ]]; then
|
ret=$?
|
||||||
COMPREPLY=( "$matches" )
|
# _completion_loader may not have updated completion for the command
|
||||||
|
if [[ "$(complete -p "$orig_cmd" 2>/dev/null)" != "$orig_complete" ]]; then
|
||||||
|
__fzf_orig_completion < <(complete -p "$orig_cmd" 2>/dev/null)
|
||||||
|
if [[ "${__fzf_nospace_commands-}" = *" $orig_cmd "* ]]; then
|
||||||
|
eval "${orig_complete/ -F / -o nospace -F }"
|
||||||
else
|
else
|
||||||
COMPREPLY=( "$cur" )
|
eval "$orig_complete"
|
||||||
fi
|
fi
|
||||||
printf '\e[5n'
|
|
||||||
return 0
|
|
||||||
fi
|
fi
|
||||||
dir=$(dirname "$dir")
|
return $ret
|
||||||
[[ "$dir" =~ /$ ]] || dir="$dir"/
|
|
||||||
done
|
|
||||||
else
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
_fzf_handle_dynamic_completion "$cmd" "$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
_fzf_complete() {
|
|
||||||
# Split arguments around --
|
|
||||||
local args rest str_arg i sep
|
|
||||||
args=("$@")
|
|
||||||
sep=
|
|
||||||
for i in "${!args[@]}"; do
|
|
||||||
if [[ "${args[$i]}" = -- ]]; then
|
|
||||||
sep=$i
|
|
||||||
break
|
|
||||||
fi
|
fi
|
||||||
done
|
}
|
||||||
if [[ -n "$sep" ]]; then
|
|
||||||
str_arg=
|
|
||||||
rest=("${args[@]:$((sep + 1)):${#args[@]}}")
|
|
||||||
args=("${args[@]:0:$sep}")
|
|
||||||
else
|
|
||||||
str_arg=$1
|
|
||||||
args=()
|
|
||||||
shift
|
|
||||||
rest=("$@")
|
|
||||||
fi
|
|
||||||
|
|
||||||
local cur selected trigger cmd post
|
__fzf_generic_path_completion() {
|
||||||
post="$(caller 0 | awk '{print $2}')_post"
|
local cur base dir leftover matches trigger cmd
|
||||||
type -t "$post" > /dev/null 2>&1 || post=cat
|
cmd="${COMP_WORDS[0]}"
|
||||||
|
if [[ $cmd == \\* ]]; then
|
||||||
|
cmd="${cmd:1}"
|
||||||
|
fi
|
||||||
|
cmd="${cmd//[^A-Za-z0-9_=]/_}"
|
||||||
|
COMPREPLY=()
|
||||||
|
trigger=${FZF_COMPLETION_TRIGGER-'**'}
|
||||||
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
if [[ "$cur" == *"$trigger" ]]; then
|
||||||
|
base=${cur:0:${#cur}-${#trigger}}
|
||||||
|
eval "base=$base"
|
||||||
|
|
||||||
cmd="${COMP_WORDS[0]//[^A-Za-z0-9_=]/_}"
|
dir=
|
||||||
trigger=${FZF_COMPLETION_TRIGGER-'**'}
|
[[ $base = *"/"* ]] && dir="$base"
|
||||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
while true; do
|
||||||
if [[ "$cur" == *"$trigger" ]]; then
|
if [[ -z "$dir" ]] || [[ -d "$dir" ]]; then
|
||||||
cur=${cur:0:${#cur}-${#trigger}}
|
leftover=${base/#"$dir"/}
|
||||||
|
leftover=${leftover/#\//}
|
||||||
selected=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-} $str_arg" __fzf_comprun "${rest[0]}" "${args[@]}" -q "$cur" | $post | tr '\n' ' ')
|
[[ -z "$dir" ]] && dir='.'
|
||||||
selected=${selected% } # Strip trailing space not to repeat "-o nospace"
|
[[ "$dir" != "/" ]] && dir="${dir/%\//}"
|
||||||
if [[ -n "$selected" ]]; then
|
matches=$(eval "$1 $(printf %q "$dir")" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-} $2" __fzf_comprun "$4" -q "$leftover" | while read -r item; do
|
||||||
COMPREPLY=("$selected")
|
printf "%q " "${item%$3}$3"
|
||||||
|
done)
|
||||||
|
matches=${matches% }
|
||||||
|
[[ -z "$3" ]] && [[ "${__fzf_nospace_commands-}" = *" ${COMP_WORDS[0]} "* ]] && matches="$matches "
|
||||||
|
if [[ -n "$matches" ]]; then
|
||||||
|
COMPREPLY=("$matches")
|
||||||
|
else
|
||||||
|
COMPREPLY=("$cur")
|
||||||
|
fi
|
||||||
|
printf '\e[5n'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
dir=$(dirname "$dir")
|
||||||
|
[[ "$dir" =~ /$ ]] || dir="$dir"/
|
||||||
|
done
|
||||||
else
|
else
|
||||||
COMPREPLY=("$cur")
|
shift
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
_fzf_handle_dynamic_completion "$cmd" "$@"
|
||||||
fi
|
fi
|
||||||
printf '\e[5n'
|
}
|
||||||
return 0
|
|
||||||
else
|
|
||||||
_fzf_handle_dynamic_completion "$cmd" "${rest[@]}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
_fzf_path_completion() {
|
_fzf_complete() {
|
||||||
__fzf_generic_path_completion _fzf_compgen_path "-m" "" "$@"
|
# Split arguments around --
|
||||||
}
|
local args rest str_arg i sep
|
||||||
|
args=("$@")
|
||||||
|
sep=
|
||||||
|
for i in "${!args[@]}"; do
|
||||||
|
if [[ "${args[$i]}" = -- ]]; then
|
||||||
|
sep=$i
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ -n "$sep" ]]; then
|
||||||
|
str_arg=
|
||||||
|
rest=("${args[@]:$((sep + 1)):${#args[@]}}")
|
||||||
|
args=("${args[@]:0:$sep}")
|
||||||
|
else
|
||||||
|
str_arg=$1
|
||||||
|
args=()
|
||||||
|
shift
|
||||||
|
rest=("$@")
|
||||||
|
fi
|
||||||
|
|
||||||
# Deprecated. No file only completion.
|
local cur selected trigger cmd post
|
||||||
_fzf_file_completion() {
|
post="$(caller 0 | awk '{print $2}')_post"
|
||||||
_fzf_path_completion "$@"
|
type -t "$post" >/dev/null 2>&1 || post=cat
|
||||||
}
|
|
||||||
|
|
||||||
_fzf_dir_completion() {
|
cmd="${COMP_WORDS[0]//[^A-Za-z0-9_=]/_}"
|
||||||
__fzf_generic_path_completion _fzf_compgen_dir "" "/" "$@"
|
trigger=${FZF_COMPLETION_TRIGGER-'**'}
|
||||||
}
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
if [[ "$cur" == *"$trigger" ]]; then
|
||||||
|
cur=${cur:0:${#cur}-${#trigger}}
|
||||||
|
|
||||||
_fzf_complete_kill() {
|
selected=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-} $str_arg" __fzf_comprun "${rest[0]}" "${args[@]}" -q "$cur" | $post | tr '\n' ' ')
|
||||||
_fzf_proc_completion "$@"
|
selected=${selected% } # Strip trailing space not to repeat "-o nospace"
|
||||||
}
|
if [[ -n "$selected" ]]; then
|
||||||
|
COMPREPLY=("$selected")
|
||||||
|
else
|
||||||
|
COMPREPLY=("$cur")
|
||||||
|
fi
|
||||||
|
printf '\e[5n'
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
_fzf_handle_dynamic_completion "$cmd" "${rest[@]}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_fzf_proc_completion() {
|
_fzf_path_completion() {
|
||||||
_fzf_complete -m --header-lines=1 --preview 'echo {}' --preview-window down:3:wrap --min-height 15 -- "$@" < <(
|
__fzf_generic_path_completion _fzf_compgen_path "-m" "" "$@"
|
||||||
command ps -eo user,pid,ppid,start,time,command 2> /dev/null ||
|
}
|
||||||
command ps -eo user,pid,ppid,time,args # For BusyBox
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
_fzf_proc_completion_post() {
|
# Deprecated. No file only completion.
|
||||||
awk '{print $2}'
|
_fzf_file_completion() {
|
||||||
}
|
_fzf_path_completion "$@"
|
||||||
|
}
|
||||||
|
|
||||||
_fzf_host_completion() {
|
_fzf_dir_completion() {
|
||||||
_fzf_complete +m -- "$@" < <(
|
__fzf_generic_path_completion _fzf_compgen_dir "" "/" "$@"
|
||||||
command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* /etc/ssh/ssh_config 2> /dev/null | command grep -i '^\s*host\(name\)\? ' | awk '{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?%]') \
|
}
|
||||||
|
|
||||||
|
_fzf_complete_kill() {
|
||||||
|
_fzf_proc_completion "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_proc_completion() {
|
||||||
|
_fzf_complete -m --header-lines=1 --preview 'echo {}' --preview-window down:3:wrap --min-height 15 -- "$@" < <(
|
||||||
|
command ps -eo user,pid,ppid,start,time,command 2>/dev/null ||
|
||||||
|
command ps -eo user,pid,ppid,time,args # For BusyBox
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_proc_completion_post() {
|
||||||
|
awk '{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_host_completion() {
|
||||||
|
_fzf_complete +m -- "$@" < <(
|
||||||
|
command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* /etc/ssh/ssh_config 2>/dev/null | command grep -i '^\s*host\(name\)\? ' | awk '{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?%]') \
|
||||||
<(command grep -oE '^[[a-z0-9.,:-]+' ~/.ssh/known_hosts | tr ',' '\n' | tr -d '[' | awk '{ print $1 " " $1 }') \
|
<(command grep -oE '^[[a-z0-9.,:-]+' ~/.ssh/known_hosts | tr ',' '\n' | tr -d '[' | awk '{ print $1 " " $1 }') \
|
||||||
<(command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0') |
|
<(command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0') |
|
||||||
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
_fzf_var_completion() {
|
_fzf_var_completion() {
|
||||||
_fzf_complete -m -- "$@" < <(
|
_fzf_complete -m -- "$@" < <(
|
||||||
declare -xp | sed -En 's|^declare [^ ]+ ([^=]+).*|\1|p'
|
declare -xp | sed -En 's|^declare [^ ]+ ([^=]+).*|\1|p'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
_fzf_alias_completion() {
|
_fzf_alias_completion() {
|
||||||
_fzf_complete -m -- "$@" < <(
|
_fzf_complete -m -- "$@" < <(
|
||||||
alias | sed -En 's|^alias ([^=]+).*|\1|p'
|
alias | sed -En 's|^alias ([^=]+).*|\1|p'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# fzf options
|
# fzf options
|
||||||
complete -o default -F _fzf_opts_completion fzf
|
complete -o default -F _fzf_opts_completion fzf
|
||||||
# fzf-tmux is a thin fzf wrapper that has only a few more options than fzf
|
# fzf-tmux is a thin fzf wrapper that has only a few more options than fzf
|
||||||
# itself. As a quick improvement we take fzf's completion. Adding the few extra
|
# itself. As a quick improvement we take fzf's completion. Adding the few extra
|
||||||
# fzf-tmux specific options (like `-w WIDTH`) are left as a future patch.
|
# fzf-tmux specific options (like `-w WIDTH`) are left as a future patch.
|
||||||
complete -o default -F _fzf_opts_completion fzf-tmux
|
complete -o default -F _fzf_opts_completion fzf-tmux
|
||||||
|
|
||||||
d_cmds="${FZF_COMPLETION_DIR_COMMANDS:-cd pushd rmdir}"
|
d_cmds="${FZF_COMPLETION_DIR_COMMANDS:-cd pushd rmdir}"
|
||||||
a_cmds="
|
a_cmds="
|
||||||
awk bat cat diff diff3
|
awk bat cat diff diff3
|
||||||
emacs emacsclient ex file ftp g++ gcc gvim head hg hx java
|
emacs emacsclient ex file ftp g++ gcc gvim head hg hx java
|
||||||
javac ld less more mvim nvim patch perl python ruby
|
javac ld less more mvim nvim patch perl python ruby
|
||||||
@@ -319,64 +319,64 @@ a_cmds="
|
|||||||
ln ls mv open rm rsync scp
|
ln ls mv open rm rsync scp
|
||||||
svn tar unzip zip"
|
svn tar unzip zip"
|
||||||
|
|
||||||
# Preserve existing completion
|
# Preserve existing completion
|
||||||
__fzf_orig_completion < <(complete -p $d_cmds $a_cmds 2> /dev/null)
|
__fzf_orig_completion < <(complete -p $d_cmds $a_cmds 2>/dev/null)
|
||||||
|
|
||||||
if type _completion_loader > /dev/null 2>&1; then
|
if type _completion_loader >/dev/null 2>&1; then
|
||||||
_fzf_completion_loader=1
|
_fzf_completion_loader=1
|
||||||
fi
|
|
||||||
|
|
||||||
__fzf_defc() {
|
|
||||||
local cmd func opts orig_var orig def
|
|
||||||
cmd="$1"
|
|
||||||
func="$2"
|
|
||||||
opts="$3"
|
|
||||||
orig_var="_fzf_orig_completion_${cmd//[^A-Za-z0-9_]/_}"
|
|
||||||
orig="${!orig_var-}"
|
|
||||||
if [[ -n "$orig" ]]; then
|
|
||||||
printf -v def "$orig" "$func"
|
|
||||||
eval "$def"
|
|
||||||
else
|
|
||||||
complete -F "$func" $opts "$cmd"
|
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
|
|
||||||
# Anything
|
__fzf_defc() {
|
||||||
for cmd in $a_cmds; do
|
local cmd func opts orig_var orig def
|
||||||
__fzf_defc "$cmd" _fzf_path_completion "-o default -o bashdefault"
|
cmd="$1"
|
||||||
done
|
func="$2"
|
||||||
|
opts="$3"
|
||||||
|
orig_var="_fzf_orig_completion_${cmd//[^A-Za-z0-9_]/_}"
|
||||||
|
orig="${!orig_var-}"
|
||||||
|
if [[ -n "$orig" ]]; then
|
||||||
|
printf -v def "$orig" "$func"
|
||||||
|
eval "$def"
|
||||||
|
else
|
||||||
|
complete -F "$func" $opts "$cmd"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Directory
|
# Anything
|
||||||
for cmd in $d_cmds; do
|
for cmd in $a_cmds; do
|
||||||
__fzf_defc "$cmd" _fzf_dir_completion "-o nospace -o dirnames"
|
__fzf_defc "$cmd" _fzf_path_completion "-o default -o bashdefault"
|
||||||
done
|
|
||||||
|
|
||||||
unset cmd d_cmds a_cmds
|
|
||||||
|
|
||||||
_fzf_setup_completion() {
|
|
||||||
local kind fn cmd
|
|
||||||
kind=$1
|
|
||||||
fn=_fzf_${1}_completion
|
|
||||||
if [[ $# -lt 2 ]] || ! type -t "$fn" > /dev/null; then
|
|
||||||
echo "usage: ${FUNCNAME[0]} path|dir|var|alias|host|proc COMMANDS..."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
__fzf_orig_completion < <(complete -p "$@" 2> /dev/null)
|
|
||||||
for cmd in "$@"; do
|
|
||||||
case "$kind" in
|
|
||||||
dir) __fzf_defc "$cmd" "$fn" "-o nospace -o dirnames" ;;
|
|
||||||
var) __fzf_defc "$cmd" "$fn" "-o default -o nospace -v" ;;
|
|
||||||
alias) __fzf_defc "$cmd" "$fn" "-a" ;;
|
|
||||||
*) __fzf_defc "$cmd" "$fn" "-o default -o bashdefault" ;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
}
|
|
||||||
|
|
||||||
# Environment variables / Aliases / Hosts / Process
|
# Directory
|
||||||
_fzf_setup_completion 'var' export unset printenv
|
for cmd in $d_cmds; do
|
||||||
_fzf_setup_completion 'alias' unalias
|
__fzf_defc "$cmd" _fzf_dir_completion "-o nospace -o dirnames"
|
||||||
_fzf_setup_completion 'host' ssh telnet
|
done
|
||||||
_fzf_setup_completion 'proc' kill
|
|
||||||
|
unset cmd d_cmds a_cmds
|
||||||
|
|
||||||
|
_fzf_setup_completion() {
|
||||||
|
local kind fn cmd
|
||||||
|
kind=$1
|
||||||
|
fn=_fzf_${1}_completion
|
||||||
|
if [[ $# -lt 2 ]] || ! type -t "$fn" >/dev/null; then
|
||||||
|
echo "usage: ${FUNCNAME[0]} path|dir|var|alias|host|proc COMMANDS..."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
__fzf_orig_completion < <(complete -p "$@" 2>/dev/null)
|
||||||
|
for cmd in "$@"; do
|
||||||
|
case "$kind" in
|
||||||
|
dir) __fzf_defc "$cmd" "$fn" "-o nospace -o dirnames" ;;
|
||||||
|
var) __fzf_defc "$cmd" "$fn" "-o default -o nospace -v" ;;
|
||||||
|
alias) __fzf_defc "$cmd" "$fn" "-a" ;;
|
||||||
|
*) __fzf_defc "$cmd" "$fn" "-o default -o bashdefault" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Environment variables / Aliases / Hosts / Process
|
||||||
|
_fzf_setup_completion 'var' export unset printenv
|
||||||
|
_fzf_setup_completion 'alias' unalias
|
||||||
|
_fzf_setup_completion 'host' ssh telnet
|
||||||
|
_fzf_setup_completion 'proc' kill
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
7
config/fzf/everforest.sh
Normal file
7
config/fzf/everforest.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Everforest theme for fzf
|
||||||
|
# Generated from template - do not edit manually
|
||||||
|
|
||||||
|
export FZF_DEFAULT_OPTS=" \
|
||||||
|
--color=bg+:#374247,bg:#2f383e,spinner:#83c092,hl:#a7c080 \
|
||||||
|
--color=fg:#d3c6aa,header:#a7c080,info:#dbbc7f,pointer:#83c092 \
|
||||||
|
--color=marker:#83c092,fg+:#d3c6aa,prompt:#dbbc7f,hl+:#a7c080"
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
# Auto-completion
|
# Auto-completion
|
||||||
# ---------------
|
# ---------------
|
||||||
# shellcheck source=completion.bash
|
# shellcheck source=completion.bash
|
||||||
[[ $- == *i* ]] && source "$HOME/.dotfiles/config/fzf/completion.bash" 2> /dev/null
|
[[ $- == *i* ]] && source "$HOME/.dotfiles/config/fzf/completion.bash" 2>/dev/null
|
||||||
|
|
||||||
# Key bindings
|
# Key bindings
|
||||||
# ------------
|
# ------------
|
||||||
|
|||||||
@@ -23,81 +23,84 @@ __fzf_select__() {
|
|||||||
eval "$cmd" |
|
eval "$cmd" |
|
||||||
FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) "$@" |
|
FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) "$@" |
|
||||||
while read -r item; do
|
while read -r item; do
|
||||||
printf '%q ' "$item" # escape special chars
|
printf '%q ' "$item" # escape special chars
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $- =~ i ]]; then
|
if [[ $- =~ i ]]; then
|
||||||
|
|
||||||
__fzfcmd() {
|
__fzfcmd() {
|
||||||
[[ -n "${TMUX_PANE-}" ]] && { [[ "${FZF_TMUX:-0}" != 0 ]] || [[ -n "${FZF_TMUX_OPTS-}" ]]; } &&
|
[[ -n "${TMUX_PANE-}" ]] && { [[ "${FZF_TMUX:-0}" != 0 ]] || [[ -n "${FZF_TMUX_OPTS-}" ]]; } &&
|
||||||
echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf"
|
echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf"
|
||||||
}
|
}
|
||||||
|
|
||||||
fzf-file-widget() {
|
fzf-file-widget() {
|
||||||
local selected="$(__fzf_select__ "$@")"
|
local selected="$(__fzf_select__ "$@")"
|
||||||
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$selected${READLINE_LINE:$READLINE_POINT}"
|
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$selected${READLINE_LINE:$READLINE_POINT}"
|
||||||
READLINE_POINT=$(( READLINE_POINT + ${#selected} ))
|
READLINE_POINT=$((READLINE_POINT + ${#selected}))
|
||||||
}
|
}
|
||||||
|
|
||||||
__fzf_cd__() {
|
__fzf_cd__() {
|
||||||
local cmd opts dir
|
local cmd opts dir
|
||||||
cmd="${FZF_ALT_C_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \
|
cmd="${FZF_ALT_C_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \
|
||||||
-o -type d -print 2> /dev/null | cut -b3-"}"
|
-o -type d -print 2> /dev/null | cut -b3-"}"
|
||||||
opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore --reverse ${FZF_DEFAULT_OPTS-} ${FZF_ALT_C_OPTS-} +m"
|
opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore --reverse ${FZF_DEFAULT_OPTS-} ${FZF_ALT_C_OPTS-} +m"
|
||||||
dir=$(set +o pipefail; eval "$cmd" | FZF_DEFAULT_OPTS="$opts" $(__fzfcmd)) && printf 'builtin cd -- %q' "$dir"
|
dir=$(
|
||||||
}
|
set +o pipefail
|
||||||
|
eval "$cmd" | FZF_DEFAULT_OPTS="$opts" $(__fzfcmd)
|
||||||
|
) && printf 'builtin cd -- %q' "$dir"
|
||||||
|
}
|
||||||
|
|
||||||
__fzf_history__() {
|
__fzf_history__() {
|
||||||
local output opts script
|
local output opts script
|
||||||
opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort ${FZF_CTRL_R_OPTS-} +m --read0"
|
opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort ${FZF_CTRL_R_OPTS-} +m --read0"
|
||||||
script='BEGIN { getc; $/ = "\n\t"; $HISTCOUNT = $ENV{last_hist} + 1 } s/^[ *]//; print $HISTCOUNT - $. . "\t$_" if !$seen{$_}++'
|
script='BEGIN { getc; $/ = "\n\t"; $HISTCOUNT = $ENV{last_hist} + 1 } s/^[ *]//; print $HISTCOUNT - $. . "\t$_" if !$seen{$_}++'
|
||||||
output=$(
|
output=$(
|
||||||
set +o pipefail
|
set +o pipefail
|
||||||
builtin fc -lnr -2147483648 |
|
builtin fc -lnr -2147483648 |
|
||||||
last_hist=$(HISTTIMEFORMAT='' builtin history 1) perl -n -l0 -e "$script" |
|
last_hist=$(HISTTIMEFORMAT='' builtin history 1) perl -n -l0 -e "$script" |
|
||||||
FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) --query "$READLINE_LINE"
|
FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) --query "$READLINE_LINE"
|
||||||
) || return
|
) || return
|
||||||
READLINE_LINE=${output#*$'\t'}
|
READLINE_LINE=${output#*$'\t'}
|
||||||
if [[ -z "$READLINE_POINT" ]]; then
|
if [[ -z "$READLINE_POINT" ]]; then
|
||||||
echo "$READLINE_LINE"
|
echo "$READLINE_LINE"
|
||||||
|
else
|
||||||
|
READLINE_POINT=0x7fffffff
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Required to refresh the prompt after fzf
|
||||||
|
bind -m emacs-standard '"\er": redraw-current-line'
|
||||||
|
|
||||||
|
bind -m vi-command '"\C-z": emacs-editing-mode'
|
||||||
|
bind -m vi-insert '"\C-z": emacs-editing-mode'
|
||||||
|
bind -m emacs-standard '"\C-z": vi-editing-mode'
|
||||||
|
|
||||||
|
if ((BASH_VERSINFO[0] < 4)); then
|
||||||
|
# CTRL-T - Paste the selected file path into the command line
|
||||||
|
bind -m emacs-standard '"\C-t": " \C-b\C-k \C-u`__fzf_select__`\e\C-e\er\C-a\C-y\C-h\C-e\e \C-y\ey\C-x\C-x\C-f"'
|
||||||
|
bind -m vi-command '"\C-t": "\C-z\C-t\C-z"'
|
||||||
|
bind -m vi-insert '"\C-t": "\C-z\C-t\C-z"'
|
||||||
|
|
||||||
|
# CTRL-R - Paste the selected command from history into the command line
|
||||||
|
bind -m emacs-standard '"\C-r": "\C-e \C-u\C-y\ey\C-u"$(__fzf_history__)"\e\C-e\er"'
|
||||||
|
bind -m vi-command '"\C-r": "\C-z\C-r\C-z"'
|
||||||
|
bind -m vi-insert '"\C-r": "\C-z\C-r\C-z"'
|
||||||
else
|
else
|
||||||
READLINE_POINT=0x7fffffff
|
# CTRL-T - Paste the selected file path into the command line
|
||||||
|
bind -m emacs-standard -x '"\C-t": fzf-file-widget'
|
||||||
|
bind -m vi-command -x '"\C-t": fzf-file-widget'
|
||||||
|
bind -m vi-insert -x '"\C-t": fzf-file-widget'
|
||||||
|
|
||||||
|
# CTRL-R - Paste the selected command from history into the command line
|
||||||
|
bind -m emacs-standard -x '"\C-r": __fzf_history__'
|
||||||
|
bind -m vi-command -x '"\C-r": __fzf_history__'
|
||||||
|
bind -m vi-insert -x '"\C-r": __fzf_history__'
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
|
|
||||||
# Required to refresh the prompt after fzf
|
# ALT-C - cd into the selected directory
|
||||||
bind -m emacs-standard '"\er": redraw-current-line'
|
bind -m emacs-standard '"\ec": " \C-b\C-k \C-u`__fzf_cd__`\e\C-e\er\C-m\C-y\C-h\e \C-y\ey\C-x\C-x\C-d"'
|
||||||
|
bind -m vi-command '"\ec": "\C-z\ec\C-z"'
|
||||||
bind -m vi-command '"\C-z": emacs-editing-mode'
|
bind -m vi-insert '"\ec": "\C-z\ec\C-z"'
|
||||||
bind -m vi-insert '"\C-z": emacs-editing-mode'
|
|
||||||
bind -m emacs-standard '"\C-z": vi-editing-mode'
|
|
||||||
|
|
||||||
if (( BASH_VERSINFO[0] < 4 )); then
|
|
||||||
# CTRL-T - Paste the selected file path into the command line
|
|
||||||
bind -m emacs-standard '"\C-t": " \C-b\C-k \C-u`__fzf_select__`\e\C-e\er\C-a\C-y\C-h\C-e\e \C-y\ey\C-x\C-x\C-f"'
|
|
||||||
bind -m vi-command '"\C-t": "\C-z\C-t\C-z"'
|
|
||||||
bind -m vi-insert '"\C-t": "\C-z\C-t\C-z"'
|
|
||||||
|
|
||||||
# CTRL-R - Paste the selected command from history into the command line
|
|
||||||
bind -m emacs-standard '"\C-r": "\C-e \C-u\C-y\ey\C-u"$(__fzf_history__)"\e\C-e\er"'
|
|
||||||
bind -m vi-command '"\C-r": "\C-z\C-r\C-z"'
|
|
||||||
bind -m vi-insert '"\C-r": "\C-z\C-r\C-z"'
|
|
||||||
else
|
|
||||||
# CTRL-T - Paste the selected file path into the command line
|
|
||||||
bind -m emacs-standard -x '"\C-t": fzf-file-widget'
|
|
||||||
bind -m vi-command -x '"\C-t": fzf-file-widget'
|
|
||||||
bind -m vi-insert -x '"\C-t": fzf-file-widget'
|
|
||||||
|
|
||||||
# CTRL-R - Paste the selected command from history into the command line
|
|
||||||
bind -m emacs-standard -x '"\C-r": __fzf_history__'
|
|
||||||
bind -m vi-command -x '"\C-r": __fzf_history__'
|
|
||||||
bind -m vi-insert -x '"\C-r": __fzf_history__'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ALT-C - cd into the selected directory
|
|
||||||
bind -m emacs-standard '"\ec": " \C-b\C-k \C-u`__fzf_cd__`\e\C-e\er\C-m\C-y\C-h\e \C-y\ey\C-x\C-x\C-d"'
|
|
||||||
bind -m vi-command '"\ec": "\C-z\ec\C-z"'
|
|
||||||
bind -m vi-insert '"\ec": "\C-z\ec\C-z"'
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -63,3 +63,5 @@
|
|||||||
old = red bold
|
old = red bold
|
||||||
new = green bold
|
new = green bold
|
||||||
whitespace = red reverse
|
whitespace = red reverse
|
||||||
|
[coderabbit]
|
||||||
|
machineId = cli/2d3277ec1da346c4b30b26d0fb373d8c
|
||||||
|
|||||||
@@ -51,4 +51,3 @@
|
|||||||
# dotfiles special config
|
# dotfiles special config
|
||||||
[includeIf "hasconfig:remote.*.url:https://github.com/ivuorinen/dotfiles.git"]
|
[includeIf "hasconfig:remote.*.url:https://github.com/ivuorinen/dotfiles.git"]
|
||||||
path = ~/.dotfiles/config/git/special/dotfiles ;
|
path = ~/.dotfiles/config/git/special/dotfiles ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
set -gx GOENV_PATH_ORDER front
|
set -gx GOENV_PATH_ORDER front
|
||||||
set -gx GOENV_PREPEND_GOPATH true
|
set -gx GOENV_PREPEND_GOPATH true
|
||||||
set -gx GOENV_AUTO_INSTALL true
|
set -gx GOENV_AUTO_INSTALL true
|
||||||
|
|
||||||
|
|||||||
@@ -29,4 +29,3 @@
|
|||||||
# outdir = "~/.gnupg/out"
|
# outdir = "~/.gnupg/out"
|
||||||
# outfile = "{type}_{query}.{ext}"
|
# outfile = "{type}_{query}.{ext}"
|
||||||
# default_key = "0xA1B2C3XY"
|
# default_key = "0xA1B2C3XY"
|
||||||
|
|
||||||
|
|||||||
@@ -8,4 +8,3 @@ export HOMEBREW_AUTOREMOVE=true
|
|||||||
export HOMEBREW_AUTO_UPDATE_SECS=86400
|
export HOMEBREW_AUTO_UPDATE_SECS=86400
|
||||||
export HOMEBREW_CLEANUP_MAX_AGE_DAYS=30
|
export HOMEBREW_CLEANUP_MAX_AGE_DAYS=30
|
||||||
export HOMEBREW_NO_ENV_HINTS=1
|
export HOMEBREW_NO_ENV_HINTS=1
|
||||||
|
|
||||||
|
|||||||
0
base/huskyrc → config/husky/init.sh
Normal file → Executable file
0
base/huskyrc → config/husky/init.sh
Normal file → Executable file
@@ -226,4 +226,4 @@ if has('gui_running')
|
|||||||
set guifont=JetBrainsMono:h14
|
set guifont=JetBrainsMono:h14
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" vim: set filetype=vim :
|
" vim: set filetype=vim :
|
||||||
|
|||||||
@@ -110,4 +110,3 @@ Irssi::signal_add(
|
|||||||
'message kick' => \&msg_kick
|
'message kick' => \&msg_kick
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -13,4 +13,3 @@ termcapinfo xterm* ti@:te@
|
|||||||
# Some settings for screen + vim
|
# Some settings for screen + vim
|
||||||
term xterm-256color
|
term xterm-256color
|
||||||
maptimeout 10
|
maptimeout 10
|
||||||
|
|
||||||
|
|||||||
0
config/nbrc
Normal file → Executable file
0
config/nbrc
Normal file → Executable file
@@ -21,4 +21,3 @@ max_line_length = off
|
|||||||
|
|
||||||
[*.lua]
|
[*.lua]
|
||||||
max_line_length = 90
|
max_line_length = 90
|
||||||
|
|
||||||
|
|||||||
1
config/nvim/.gitignore
vendored
1
config/nvim/.gitignore
vendored
@@ -1,3 +1,2 @@
|
|||||||
spell/*
|
spell/*
|
||||||
!spell/.gitkeep
|
!spell/.gitkeep
|
||||||
|
|
||||||
|
|||||||
@@ -8,4 +8,3 @@ collapse_simple_statement = "Always"
|
|||||||
|
|
||||||
[sort_requires]
|
[sort_requires]
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,6 @@ vim.schedule(function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
-- xiyaowong/transparent.nvim
|
-- xiyaowong/transparent.nvim
|
||||||
-- vim.g.transparent_enabled = true
|
vim.g.transparent_enabled = true
|
||||||
|
|
||||||
-- vim: ts=2 sts=2 sw=2 et
|
-- vim: ts=2 sts=2 sw=2 et
|
||||||
|
|||||||
@@ -56,9 +56,12 @@ return {
|
|||||||
opts = {
|
opts = {
|
||||||
snippets = { preset = 'luasnip' },
|
snippets = { preset = 'luasnip' },
|
||||||
-- 'default' for mappings similar to built-in completion
|
-- 'default' for mappings similar to built-in completion
|
||||||
-- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)
|
-- 'super-tab' for mappings similar to vscode (tab to accept,
|
||||||
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept
|
-- arrow keys to navigate)
|
||||||
-- see the "default configuration" section below for full documentation on how to
|
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to
|
||||||
|
-- accept
|
||||||
|
-- see the "default configuration" section below for
|
||||||
|
-- documentation on how to
|
||||||
-- define your own keymap.
|
-- define your own keymap.
|
||||||
keymap = {
|
keymap = {
|
||||||
preset = 'default',
|
preset = 'default',
|
||||||
|
|||||||
@@ -11,6 +11,27 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'ivuorinen/nvim-shellspec',
|
||||||
|
ft = 'shellspec',
|
||||||
|
config = function()
|
||||||
|
require('shellspec').setup {
|
||||||
|
auto_format = true,
|
||||||
|
indent_size = 2,
|
||||||
|
indent_comments = true,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'pablos123/shellcheck.nvim',
|
||||||
|
config = function()
|
||||||
|
require('shellcheck-nvim').setup {
|
||||||
|
shellcheck_options = { '-x' },
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Go development plugin for Vim
|
-- Go development plugin for Vim
|
||||||
-- https://github.com/fatih/vim-go
|
-- https://github.com/fatih/vim-go
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ return {
|
|||||||
},
|
},
|
||||||
opts = {
|
opts = {
|
||||||
lsp = {
|
lsp = {
|
||||||
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
-- override markdown rendering so that **cmp** and other plugins
|
||||||
|
-- use **Treesitter**
|
||||||
override = {
|
override = {
|
||||||
['vim.lsp.util.convert_input_to_markdown_lines'] = true,
|
['vim.lsp.util.convert_input_to_markdown_lines'] = true,
|
||||||
['vim.lsp.util.stylize_markdown'] = true,
|
['vim.lsp.util.stylize_markdown'] = true,
|
||||||
|
|||||||
@@ -54,7 +54,9 @@ return {
|
|||||||
event_handlers = {
|
event_handlers = {
|
||||||
{
|
{
|
||||||
event = 'file_opened',
|
event = 'file_opened',
|
||||||
handler = function(_) require('neo-tree.command').execute { action = 'close' } end,
|
handler = function(_)
|
||||||
|
require('neo-tree.command').execute { action = 'close' }
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
default_component_configs = {
|
default_component_configs = {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ return {
|
|||||||
priority = 1000, -- make sure to load this before all the other start plugins
|
priority = 1000, -- make sure to load this before all the other start plugins
|
||||||
config = function()
|
config = function()
|
||||||
require('everforest').setup {
|
require('everforest').setup {
|
||||||
background = 'soft', -- hard, medium, soft
|
background = 'medium', -- hard, medium, soft
|
||||||
transparent_background_level = 0, -- 0, 1, 2
|
transparent_background_level = 2, -- 0, 1, 2
|
||||||
sign_column_background = 'none', -- none, dimmed, normal
|
sign_column_background = 'grey', -- none, grey
|
||||||
disable_italic_comments = false,
|
disable_italic_comments = false,
|
||||||
diagnostic_virtual_text = 'coloured', -- coloured, gray, underline, none
|
diagnostic_virtual_text = 'coloured', -- coloured, gray, underline, none
|
||||||
diagnostic_line_highlight = true,
|
diagnostic_line_highlight = true,
|
||||||
@@ -27,26 +27,6 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- {
|
|
||||||
-- 'rose-pine/neovim',
|
|
||||||
-- name = 'rose-pine',
|
|
||||||
-- opts = {
|
|
||||||
-- dim_inactive_windows = false,
|
|
||||||
-- extend_background_behind_borders = true,
|
|
||||||
-- styles = {
|
|
||||||
-- bold = true,
|
|
||||||
-- italic = true,
|
|
||||||
-- transparency = true,
|
|
||||||
-- },
|
|
||||||
-- enable = {
|
|
||||||
-- terminal = true,
|
|
||||||
-- legacy_highlights = true, -- Improve compatibility for previous versions of Neovim
|
|
||||||
-- migrations = true, -- Handle deprecated options automatically
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- config = function() vim.cmd 'colorscheme rose-pine' end,
|
|
||||||
-- },
|
|
||||||
|
|
||||||
-- Automatic dark mode
|
-- Automatic dark mode
|
||||||
-- https://github.com/f-person/auto-dark-mode.nvim
|
-- https://github.com/f-person/auto-dark-mode.nvim
|
||||||
{
|
{
|
||||||
@@ -80,35 +60,37 @@ return {
|
|||||||
|
|
||||||
-- Remove all background colors to make nvim transparent
|
-- Remove all background colors to make nvim transparent
|
||||||
-- https://github.com/xiyaowong/nvim-transparent
|
-- https://github.com/xiyaowong/nvim-transparent
|
||||||
-- {
|
{
|
||||||
-- 'xiyaowong/nvim-transparent',
|
'xiyaowong/nvim-transparent',
|
||||||
-- lazy = false,
|
lazy = false,
|
||||||
-- enabled = false,
|
enabled = true,
|
||||||
-- config = function()
|
config = function()
|
||||||
-- local t = require 'transparent'
|
local t = require 'transparent'
|
||||||
-- t.setup {
|
t.setup {
|
||||||
-- extra_groups = {
|
extra_groups = {
|
||||||
-- 'NormalNC',
|
'NormalNC',
|
||||||
-- 'NormalFloat',
|
'NormalFloat',
|
||||||
-- 'FloatTitle',
|
'EndOfBuffer',
|
||||||
-- 'FloatBorder',
|
'FloatTitle',
|
||||||
-- 'NotifyDEBUGBorder',
|
'FloatBorder',
|
||||||
-- 'NotifyERRORBorder',
|
'NotifyDEBUGBorder',
|
||||||
-- 'NotifyINFOBorder',
|
'NotifyERRORBorder',
|
||||||
-- 'NotifyINFOBorder73',
|
'NotifyINFOBorder',
|
||||||
-- 'NotifyINFOBorder75',
|
'NotifyINFOBorder73',
|
||||||
-- 'NotifyINFOBorder101',
|
'NotifyINFOBorder75',
|
||||||
-- 'NotifyTRACEBorder',
|
'NotifyINFOBorder101',
|
||||||
-- 'NotifyWARNBorder',
|
'NotifyTRACEBorder',
|
||||||
-- 'TelescopeBorder',
|
'NotifyWARNBorder',
|
||||||
-- 'TelescopePromptBorder',
|
'NotifyBackground',
|
||||||
-- 'TelescopeResultsBorder',
|
'TelescopeBorder',
|
||||||
-- 'TelescopePreviewBorder',
|
'TelescopePromptBorder',
|
||||||
-- },
|
'TelescopeResultsBorder',
|
||||||
-- }
|
'TelescopePreviewBorder',
|
||||||
-- t.clear_prefix 'NeoTree'
|
},
|
||||||
-- end,
|
}
|
||||||
-- },
|
t.clear_prefix 'NeoTree'
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Display a character as the colorcolumn
|
-- Display a character as the colorcolumn
|
||||||
-- https://github.com/lukas-reineke/virt-column.nvim
|
-- https://github.com/lukas-reineke/virt-column.nvim
|
||||||
|
|||||||
@@ -199,7 +199,7 @@
|
|||||||
"progress bar": {
|
"progress bar": {
|
||||||
"body": [
|
"body": [
|
||||||
"for _ in {1..100}; do",
|
"for _ in {1..100}; do",
|
||||||
"\tprintf \"🬋\"",
|
"\tprintf \"\ud83e\udf0b\"",
|
||||||
"\tsleep 0.5",
|
"\tsleep 0.5",
|
||||||
"done"
|
"done"
|
||||||
],
|
],
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
"spinner": {
|
"spinner": {
|
||||||
"body": [
|
"body": [
|
||||||
"# spinner with 20s timeout",
|
"# spinner with 20s timeout",
|
||||||
"spinner=\"⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏\"",
|
"spinner=\"\u280b\u2819\u2839\u2838\u283c\u2834\u2826\u2827\u2807\u280f\"",
|
||||||
"for i in {1..100}; do",
|
"for i in {1..100}; do",
|
||||||
"\tpos=\\$((i % \\${#spinner}))",
|
"\tpos=\\$((i % \\${#spinner}))",
|
||||||
"\tprintf \"\\r%s\" \"\\${spinner:\\$pos:1}\"",
|
"\tprintf \"\\r%s\" \"\\${spinner:\\$pos:1}\"",
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"account_id": "S5Z2DMNFKJEZBPCWRHRWC4DCGI",
|
"account_id": "S5Z2DMNFKJEZBPCWRHRWC4DCGI",
|
||||||
"entrypoint": ["gh"],
|
"entrypoint": [
|
||||||
|
"gh"
|
||||||
|
],
|
||||||
"credentials": [
|
"credentials": [
|
||||||
{
|
{
|
||||||
"plugin": "github",
|
"plugin": "github",
|
||||||
|
|||||||
@@ -102,4 +102,3 @@ ctrl + alt - k : \
|
|||||||
ctrl + alt - l : \
|
ctrl + alt - l : \
|
||||||
yabai -m window --resize right:50:0; \
|
yabai -m window --resize right:50:0; \
|
||||||
yabai -m window --resize left:50:0
|
yabai -m window --resize left:50:0
|
||||||
|
|
||||||
|
|||||||
@@ -152,4 +152,3 @@ format = "[$virtualenv]($style) "
|
|||||||
|
|
||||||
[username]
|
[username]
|
||||||
format = "[$user]($style) "
|
format = "[$user]($style) "
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
plugin_cache_dir = "$HOME/.cache/terraform/plugin-cache"
|
plugin_cache_dir = "$HOME/.cache/terraform/plugin-cache"
|
||||||
|
|
||||||
|
|||||||
Submodule config/tmux/plugins/tmux-dark-notify updated: dfa2b45b3e...633f181373
Submodule config/tmux/plugins/tmux-window-name updated: 0772aa2033...9a75967ced
@@ -1,93 +1,46 @@
|
|||||||
# set-option -g status-style 'fg=#cad3f5,bg=default'
|
# Everforest dark theme for tmux
|
||||||
# set-window-option -g window-status-style 'fg=#cad3f5,bg=default dim'
|
# Generated from template - do not edit manually
|
||||||
# set-window-option -g window-status-current-style 'fg=#04a5e5,bg=default'
|
|
||||||
# set-window-option -g window-status-activity-style 'fg=#cad3f5,bg=default nodim'
|
|
||||||
# set-window-option -g window-status-bell-style 'fg=#cad3f5,bg=default'
|
|
||||||
# set -g message-style 'fg=#c6a0f6 bg=#24273a bold'
|
|
||||||
|
|
||||||
## COLORSCHEME: everforest dark medium
|
# Enable proper color support
|
||||||
set -g @everforest_bg_dim '#efebd4 '
|
set -g default-terminal "tmux-256color"
|
||||||
set -g @everforest_bg0 '#fdf6e3 '
|
set -as terminal-features ",*:RGB"
|
||||||
set -g @everforest_bg1 '#f6f0d9'
|
|
||||||
set -g @everforest_bg2 '#efebd4'
|
|
||||||
set -g @everforest_bg3 '#e6e2cc'
|
|
||||||
set -g @everforest_bg4 '#e0dcc7'
|
|
||||||
set -g @everforest_bg5 '#bdc3af'
|
|
||||||
set -g @everforest_bg_visual '#eaedc8'
|
|
||||||
set -g @everforest_bg_red '#fbe3da'
|
|
||||||
set -g @everforest_bg_green '#f0f1d2'
|
|
||||||
set -g @everforest_bg_blue '#e9f0e9'
|
|
||||||
set -g @everforest_bg_yellow '#faedcd'
|
|
||||||
|
|
||||||
set -g @everforest_fg '#5c6a72'
|
set -g pane-border-style "bg=default,fg=#859289"
|
||||||
set -g @everforest_red '#f85552'
|
set -g pane-active-border-style "bg=default,fg=#a7c080"
|
||||||
set -g @everforest_orange '#f57d26'
|
|
||||||
set -g @everforest_yellow '#dfa000'
|
|
||||||
set -g @everforest_green '#8da101'
|
|
||||||
set -g @everforest_aqua '#35a77c'
|
|
||||||
set -g @everforest_blue '#3a94c5'
|
|
||||||
set -g @everforest_purple '#df69ba'
|
|
||||||
set -g @everforest_grey0 '#a6b0a0'
|
|
||||||
set -g @everforest_grey1 '#939f91'
|
|
||||||
set -g @everforest_grey2 '#829181'
|
|
||||||
set -g @everforest_statusline1 '#93b259'
|
|
||||||
set -g @everforest_statusline2 '#708089'
|
|
||||||
set -g @everforest_statusline3 '#e66868'
|
|
||||||
|
|
||||||
set-option -g status "on"
|
# Window tabs
|
||||||
set -g status-interval 2
|
set -g window-style "bg=default,fg=default,dim"
|
||||||
|
set -g window-status-style "bg=default,fg=default,dim"
|
||||||
|
set -g window-status-current-style "bg=default,fg=#d3c6aa"
|
||||||
|
set -g window-status-activity-style "bg=default,fg=#dbbc7f,nodim"
|
||||||
|
set -g window-status-bell-style "bg=default,fg=yellow,nodim"
|
||||||
|
set -g window-status-last-style "bg=default,fg=#a7c080"
|
||||||
|
set -g window-status-format " #I:#W "
|
||||||
|
|
||||||
set-option -g status-fg '#5c6a72' # fg (No idea why I can't use variables here)
|
# Messages
|
||||||
set-option -g status-bg '#fdf6e4' # bg0
|
set -g message-style "bg=default,fg=#d3c6aa"
|
||||||
|
set -g message-command-style "bg=default,fg=#d3c6aa"
|
||||||
|
|
||||||
set-option -g mode-style fg='#{@everforest_purple}',bg='#{@everforest_bg_red}' # fg=purple, bg=bg_visual
|
# Status bar
|
||||||
|
set -g status-style "bg=default,fg=default"
|
||||||
|
set -g status-left " #[default]"
|
||||||
|
set -g status-right " #[fg=#a7c080]#S@#[fg=#859289]#h #[fg=#7fbbb3]%H:%M #[fg=#dbbc7f]%d.%m "
|
||||||
|
set -g status-left-style "bg=default,fg=white"
|
||||||
|
set -g status-right-style "bg=default,fg=white"
|
||||||
|
|
||||||
# default statusbar colors
|
set -g menu-style "bg=default,fg=white"
|
||||||
set-option -g status-style fg='#{@everforest_fg}',bg='#{@everforest_bg_dim}',default # fg=fg bg=bg_dim
|
set -g menu-selected-style "bg=default,fg=#a7c080"
|
||||||
|
set -g menu-border-style "fg=#a7c080"
|
||||||
|
set -g menu-border-lines "single"
|
||||||
|
|
||||||
# ---- Windows ----
|
set -g popup-style "bg=default,fg=white"
|
||||||
# default window title colors
|
set -g popup-border-style "fg=#a7c080"
|
||||||
set-window-option -g window-status-style fg='#{@everforest_bg5}',bg='#{@everforest_bg0}' # fg=yellow bg=bg0
|
set -g popup-border-lines "single"
|
||||||
|
|
||||||
# default window with an activity alert
|
set -g display-panes-colour "blue"
|
||||||
set-window-option -g window-status-activity-style 'bg=#{@everforest_bg1},fg=#{@everforest_bg3}' # bg=bg1, fg=fg3
|
set -g display-panes-active-colour "red"
|
||||||
|
set -g display-panes-time 1000 # milliseconds
|
||||||
# active window title colors
|
|
||||||
set-window-option -g window-status-current-style fg='#{@everforest_fg}',bg='#{@everforest_bg_green}' # fg=fg bg=bg_green
|
|
||||||
|
|
||||||
# ---- Pane ----
|
|
||||||
# pane borders
|
|
||||||
set-option -g pane-border-style fg='#{@everforest_bg1}' # fg=bg1
|
|
||||||
set-option -g pane-active-border-style 'fg=#{@everforest_blue}' # fg=blue
|
|
||||||
|
|
||||||
# pane number display
|
|
||||||
set-option -g display-panes-active-colour '#3a9c53' # blue
|
|
||||||
set-option -g display-panes-colour '#f57d26' # orange
|
|
||||||
|
|
||||||
# ---- Command ----
|
|
||||||
# message info
|
|
||||||
set-option -g message-style fg='#{@everforest_statusline3}',bg='#{@everforest_bg_dim}' # fg=statusline3 bg=bg_dim
|
|
||||||
|
|
||||||
# writing commands inactive
|
|
||||||
set-option -g message-command-style 'fg=#{@everforest_bg3},bg=#{@everforest_bg1}' # bg=fg3, fg=bg1
|
|
||||||
|
|
||||||
# ---- Miscellaneous ----
|
|
||||||
# clock
|
|
||||||
set-window-option -g clock-mode-colour '#3a9c53' #blue
|
|
||||||
|
|
||||||
# bell
|
|
||||||
set-window-option -g window-status-bell-style fg='#{@everforest_bg0}',bg='#{@everforest_statusline3}' # fg=bg, bg=statusline3
|
|
||||||
|
|
||||||
# ---- Formatting ----
|
|
||||||
set-option -g status-left-style none
|
|
||||||
set -g status-left-length 60
|
|
||||||
set -g status-left '#[fg=#{@everforest_bg_dim},bg=#{@everforest_green},bold] #S #[fg=#{@everforest_green},bg=#{@everforest_bg2},nobold]#[fg=#{@everforest_green},bg=#{@everforest_bg2},bold] #(whoami) #[fg=#{@everforest_bg2},bg=#{@everforest_bg0},nobold]'
|
|
||||||
|
|
||||||
set-option -g status-right-style none
|
|
||||||
set -g status-right-length 150
|
|
||||||
set -g status-right '#[fg=#{@everforest_bg2}]#[fg=#{@everforest_fg},bg=#{@everforest_bg2}] #[fg=#{@everforest_fg},bg=#{@everforest_bg2}]%Y-%m-%d %H:%M #[fg=#{@everforest_aqua},bg=#{@everforest_bg2},bold]#[fg=#{@everforest_bg_dim},bg=#{@everforest_aqua},bold] #h '
|
|
||||||
|
|
||||||
set -g window-status-separator '#[fg=#{@everforest_grey2},bg=#{@everforest_bg0}] '
|
|
||||||
set -g window-status-format "#[fg=#{@everforest_grey0},bg=#{@everforest_bg0}] #I #[fg=#{@everforest_grey0},bg=#{@everforest_bg0}]#W "
|
|
||||||
set -g window-status-current-format "#[fg=#{@everforest_bg0},bg=#{@everforest_bg_green}]#[fg=#{@everforest_fg},bg=#{@everforest_bg_green}] #I #[fg=#{@everforest_fg},bg=#{@everforest_bg_green},bold]#W #[fg=#{@everforest_bg_green},bg=#{@everforest_bg0},nobold]"
|
|
||||||
|
|
||||||
|
set -g pane-border-indicators "arrows"
|
||||||
|
set -g pane-border-lines "single"
|
||||||
|
set -g clock-mode-style "24"
|
||||||
|
|||||||
@@ -1,93 +1,6 @@
|
|||||||
# set-option -g status-style 'fg=#4c4f69,bg=default'
|
set-option -g status-style 'fg=#4c4f69,bg=default'
|
||||||
# set-window-option -g window-status-style 'fg=#4c4f69,bg=default dim'
|
set-window-option -g window-status-style 'fg=#4c4f69,bg=default dim'
|
||||||
# set-window-option -g window-status-current-style 'fg=#8839ef,bg=default'
|
set-window-option -g window-status-current-style 'fg=#8839ef,bg=default'
|
||||||
# set-window-option -g window-status-activity-style 'fg=#4c4f69,bg=default nodim'
|
set-window-option -g window-status-activity-style 'fg=#4c4f69,bg=default nodim'
|
||||||
# set-window-option -g window-status-bell-style 'fg=#4c4f69,bg=default'
|
set-window-option -g window-status-bell-style 'fg=#4c4f69,bg=default'
|
||||||
# set -g message-style 'fg=#8839ef bg=#e6e9ef bold' # fg magenta, bg black
|
set -g message-style 'fg=#8839ef bg=#e6e9ef bold' # fg magenta, bg black
|
||||||
|
|
||||||
## COLORSCHEME: everforest light medium
|
|
||||||
set -g @everforest_bg_dim '#e5dfc5'
|
|
||||||
set -g @everforest_bg0 '#f3ead3'
|
|
||||||
set -g @everforest_bg1 '#eae4ca'
|
|
||||||
set -g @everforest_bg2 '#e5dfc5'
|
|
||||||
set -g @everforest_bg3 '#ddd8be'
|
|
||||||
set -g @everforest_bg4 '#d8d3ba'
|
|
||||||
set -g @everforest_bg5 '#b9c0ab'
|
|
||||||
set -g @everforest_bg_visual '#e1e4b0'
|
|
||||||
set -g @everforest_bg_red '#f4dbd0'
|
|
||||||
set -g @everforest_bg_green '#e5e6c5'
|
|
||||||
set -g @everforest_bg_blue '#e1e7dd'
|
|
||||||
set -g @everforest_bg_yellow '#f1e4c5'
|
|
||||||
|
|
||||||
set -g @everforest_fg '#5c6a72'
|
|
||||||
set -g @everforest_red '#f85552'
|
|
||||||
set -g @everforest_orange '#f57d26'
|
|
||||||
set -g @everforest_yellow '#dfa000'
|
|
||||||
set -g @everforest_green '#8da101'
|
|
||||||
set -g @everforest_aqua '#35a77c'
|
|
||||||
set -g @everforest_blue '#3a94c5'
|
|
||||||
set -g @everforest_purple '#df69ba'
|
|
||||||
set -g @everforest_grey0 '#a6b0a0'
|
|
||||||
set -g @everforest_grey1 '#939f91'
|
|
||||||
set -g @everforest_grey2 '#829181'
|
|
||||||
set -g @everforest_statusline1 '#93b259'
|
|
||||||
set -g @everforest_statusline2 '#708089'
|
|
||||||
set -g @everforest_statusline3 '#e66868'
|
|
||||||
|
|
||||||
set-option -g status "on"
|
|
||||||
set -g status-interval 2
|
|
||||||
|
|
||||||
set-option -g status-fg '#5c6a72' # fg (No idea why I can't use variables here)
|
|
||||||
set-option -g status-bg '#f3ead3' # bg0
|
|
||||||
|
|
||||||
set-option -g mode-style fg='#{@everforest_purple}',bg='#{@everforest_bg_red}' # fg=purple, bg=bg_visual
|
|
||||||
|
|
||||||
# default statusbar colors
|
|
||||||
set-option -g status-style fg='#{@everforest_fg}',bg='#{@everforest_bg_dim}',default # fg=fg bg=bg_dim
|
|
||||||
|
|
||||||
# ---- Windows ----
|
|
||||||
# default window title colors
|
|
||||||
set-window-option -g window-status-style fg='#{@everforest_bg5}',bg='#{@everforest_bg0}' # fg=yellow bg=bg0
|
|
||||||
|
|
||||||
# default window with an activity alert
|
|
||||||
set-window-option -g window-status-activity-style 'bg=#{@everforest_bg1},fg=#{@everforest_bg3}' # bg=bg1, fg=fg3
|
|
||||||
|
|
||||||
# active window title colors
|
|
||||||
set-window-option -g window-status-current-style fg='#{@everforest_fg}',bg='#{@everforest_bg_green}' # fg=fg bg=bg_green
|
|
||||||
|
|
||||||
# ---- Pane ----
|
|
||||||
# pane borders
|
|
||||||
set-option -g pane-border-style fg='#{@everforest_bg1}' # fg=bg1
|
|
||||||
set-option -g pane-active-border-style 'fg=#{@everforest_blue}' # fg=blue
|
|
||||||
|
|
||||||
# pane number display
|
|
||||||
set-option -g display-panes-active-colour '#3a9c53' # blue
|
|
||||||
set-option -g display-panes-colour '#f57d26' # orange
|
|
||||||
|
|
||||||
# ---- Command ----
|
|
||||||
# message info
|
|
||||||
set-option -g message-style fg='#{@everforest_statusline3}',bg='#{@everforest_bg_dim}' # fg=statusline3 bg=bg_dim
|
|
||||||
|
|
||||||
# writing commands inactive
|
|
||||||
set-option -g message-command-style 'fg=#{@everforest_bg3},bg=#{@everforest_bg1}' # bg=fg3, fg=bg1
|
|
||||||
|
|
||||||
# ---- Miscellaneous ----
|
|
||||||
# clock
|
|
||||||
set-window-option -g clock-mode-colour '#3a9c53' #blue
|
|
||||||
|
|
||||||
# bell
|
|
||||||
set-window-option -g window-status-bell-style fg='#{@everforest_bg0}',bg='#{@everforest_statusline3}' # fg=bg, bg=statusline3
|
|
||||||
|
|
||||||
# ---- Formatting ----
|
|
||||||
set-option -g status-left-style none
|
|
||||||
set -g status-left-length 60
|
|
||||||
set -g status-left '#[fg=#{@everforest_bg_dim},bg=#{@everforest_green},bold] #S #[fg=#{@everforest_green},bg=#{@everforest_bg2},nobold]#[fg=#{@everforest_green},bg=#{@everforest_bg2},bold] #(whoami) #[fg=#{@everforest_bg2},bg=#{@everforest_bg0},nobold]'
|
|
||||||
|
|
||||||
set-option -g status-right-style none
|
|
||||||
set -g status-right-length 150
|
|
||||||
set -g status-right '#[fg=#{@everforest_bg2}]#[fg=#{@everforest_fg},bg=#{@everforest_bg2}] #[fg=#{@everforest_fg},bg=#{@everforest_bg2}]%Y-%m-%d %H:%M #[fg=#{@everforest_aqua},bg=#{@everforest_bg2},bold]#[fg=#{@everforest_bg_dim},bg=#{@everforest_aqua},bold] #h '
|
|
||||||
|
|
||||||
set -g window-status-separator '#[fg=#{@everforest_grey2},bg=#{@everforest_bg0}] '
|
|
||||||
set -g window-status-format "#[fg=#{@everforest_grey0},bg=#{@everforest_bg0}] #I #[fg=#{@everforest_grey0},bg=#{@everforest_bg0}]#W "
|
|
||||||
set -g window-status-current-format "#[fg=#{@everforest_bg0},bg=#{@everforest_bg_green}]#[fg=#{@everforest_fg},bg=#{@everforest_bg_green}] #I #[fg=#{@everforest_fg},bg=#{@everforest_bg_green},bold]#W #[fg=#{@everforest_bg_green},bg=#{@everforest_bg0},nobold]"
|
|
||||||
|
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ if-shell '[ "$DEBUG" = "1" ]' 'set -g debug-file ~/.cache/tmux-debug.log'
|
|||||||
# │ Theme │
|
# │ Theme │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
set -g pane-active-border-style "fg=#7aa2f7"
|
set -g pane-active-border-style "bg=default,fg=#7aa2f7"
|
||||||
set -g pane-border-style "fg=#31748f"
|
set -g pane-border-style "bg=default,fg=#31748f"
|
||||||
set -g status-style "bg=default"
|
set -g status-style "bg=default"
|
||||||
set -g status-justify "left"
|
set -g status-justify "left"
|
||||||
set -g status-left ''
|
set -g status-left ''
|
||||||
@@ -190,4 +190,4 @@ run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-fzf-url/fzf-url.tmux"
|
|||||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux"
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux"
|
||||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux"
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux"
|
||||||
|
|
||||||
# run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-dark-notify/main.tmux"
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-dark-notify/main.tmux"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
# 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
|
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||||
# absolute path. No other format is supported.
|
# absolute path. No other format is supported.
|
||||||
#
|
#
|
||||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||||
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||||
XDG_TEMPLATES_DIR="$HOME/"
|
XDG_TEMPLATES_DIR="$HOME/"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
en_US
|
en_US
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
[colors]
|
[colors]
|
||||||
ansi = [
|
ansi = [
|
||||||
'#475258',
|
'#475258',
|
||||||
'#e67e80',
|
'#e67e80',
|
||||||
'#a7c080',
|
'#a7c080',
|
||||||
'#dbbc7f',
|
'#dbbc7f',
|
||||||
'#7fbbb3',
|
'#7fbbb3',
|
||||||
'#d699b6',
|
'#d699b6',
|
||||||
'#83c092',
|
'#83c092',
|
||||||
'#d3c6aa',
|
'#d3c6aa',
|
||||||
]
|
]
|
||||||
background = '#2d353b'
|
background = '#2d353b'
|
||||||
brights = [
|
brights = [
|
||||||
'#475258',
|
'#475258',
|
||||||
'#e67e80',
|
'#e67e80',
|
||||||
'#a7c080',
|
'#a7c080',
|
||||||
'#dbbc7f',
|
'#dbbc7f',
|
||||||
'#7fbbb3',
|
'#7fbbb3',
|
||||||
'#d699b6',
|
'#d699b6',
|
||||||
'#83c092',
|
'#83c092',
|
||||||
'#d3c6aa',
|
'#d3c6aa',
|
||||||
]
|
]
|
||||||
cursor_bg = '#d3c6aa'
|
cursor_bg = '#d3c6aa'
|
||||||
cursor_border = '#d3c6aa'
|
cursor_border = '#d3c6aa'
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
[colors]
|
[colors]
|
||||||
ansi = [
|
ansi = [
|
||||||
'#5c6a72',
|
'#5c6a72',
|
||||||
'#f85552',
|
'#f85552',
|
||||||
'#8da101',
|
'#8da101',
|
||||||
'#dfa000',
|
'#dfa000',
|
||||||
'#3a94c5',
|
'#3a94c5',
|
||||||
'#df69ba',
|
'#df69ba',
|
||||||
'#35a77c',
|
'#35a77c',
|
||||||
'#e0dcc7',
|
'#e0dcc7',
|
||||||
]
|
]
|
||||||
background = '#fdf6e3'
|
background = '#fdf6e3'
|
||||||
brights = [
|
brights = [
|
||||||
'#5c6a72',
|
'#5c6a72',
|
||||||
'#f85552',
|
'#f85552',
|
||||||
'#8da101',
|
'#8da101',
|
||||||
'#dfa000',
|
'#dfa000',
|
||||||
'#3a94c5',
|
'#3a94c5',
|
||||||
'#df69ba',
|
'#df69ba',
|
||||||
'#35a77c',
|
'#35a77c',
|
||||||
'#e0dcc7',
|
'#e0dcc7',
|
||||||
]
|
]
|
||||||
cursor_bg = '#5c6a72'
|
cursor_bg = '#5c6a72'
|
||||||
cursor_border = '#5c6a72'
|
cursor_border = '#5c6a72'
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ config.color_scheme_dirs = {
|
|||||||
-- Font and font size
|
-- Font and font size
|
||||||
config.font_size = 16
|
config.font_size = 16
|
||||||
config.font = wezterm.font_with_fallback {
|
config.font = wezterm.font_with_fallback {
|
||||||
|
{
|
||||||
|
family = 'Monaspace Argon NF',
|
||||||
|
weight = 'Regular',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
family = 'Operator Mono',
|
family = 'Operator Mono',
|
||||||
weight = 'Book',
|
weight = 'Book',
|
||||||
@@ -22,7 +26,20 @@ config.font = wezterm.font_with_fallback {
|
|||||||
'Symbols Nerd Font Mono',
|
'Symbols Nerd Font Mono',
|
||||||
}
|
}
|
||||||
config.font_shaper = 'Harfbuzz'
|
config.font_shaper = 'Harfbuzz'
|
||||||
config.harfbuzz_features = { 'calt=1', 'clig=1', 'liga=1' }
|
config.harfbuzz_features = {
|
||||||
|
'calt=1',
|
||||||
|
'clig=1',
|
||||||
|
'liga=1',
|
||||||
|
'ss01=1',
|
||||||
|
'ss02=1',
|
||||||
|
'ss03=1',
|
||||||
|
'ss04=1',
|
||||||
|
'ss05=1',
|
||||||
|
'ss06=1',
|
||||||
|
'ss07=1',
|
||||||
|
'ss08=1',
|
||||||
|
'ss09=1',
|
||||||
|
}
|
||||||
|
|
||||||
config.selection_word_boundary = ' \t\n{[}]()"\'`,;:'
|
config.selection_word_boundary = ' \t\n{[}]()"\'`,;:'
|
||||||
|
|
||||||
|
|||||||
@@ -29,4 +29,3 @@ rules:
|
|||||||
allow-non-breakable-inline-mappings: true
|
allow-non-breakable-inline-mappings: true
|
||||||
max: 120
|
max: 120
|
||||||
truthy: disable
|
truthy: disable
|
||||||
|
|
||||||
|
|||||||
@@ -24,4 +24,3 @@ load-nvmrc() {
|
|||||||
|
|
||||||
add-zsh-hook chpwd load-nvmrc
|
add-zsh-hook chpwd load-nvmrc
|
||||||
load-nvmrc
|
load-nvmrc
|
||||||
|
|
||||||
|
|||||||
6
install
6
install
@@ -25,9 +25,9 @@ git submodule update --init --recursive "${DOTBOT_DIR}"
|
|||||||
if [ "${DOTBOT_HOST}" != "" ]; then
|
if [ "${DOTBOT_HOST}" != "" ]; then
|
||||||
DOTBOT_HOST_CONFIG="${BASEDIR}/hosts/${DOTBOT_HOST}/${CONFIG}"
|
DOTBOT_HOST_CONFIG="${BASEDIR}/hosts/${DOTBOT_HOST}/${CONFIG}"
|
||||||
echo "-> Trying if host config can be found: ${DOTBOT_HOST_CONFIG}"
|
echo "-> Trying if host config can be found: ${DOTBOT_HOST_CONFIG}"
|
||||||
[ -r "$DOTBOT_HOST_CONFIG" ] && [ -f "$DOTBOT_HOST_CONFIG" ] \
|
[ -r "$DOTBOT_HOST_CONFIG" ] && [ -f "$DOTBOT_HOST_CONFIG" ] &&
|
||||||
&& echo "(!) Found $DOTBOT_HOST_CONFIG" \
|
echo "(!) Found $DOTBOT_HOST_CONFIG" &&
|
||||||
&& "$DOTBOT_BIN_PATH" \
|
"$DOTBOT_BIN_PATH" \
|
||||||
-d "$BASEDIR" \
|
-d "$BASEDIR" \
|
||||||
--plugin-dir=tools/dotbot-asdf \
|
--plugin-dir=tools/dotbot-asdf \
|
||||||
--plugin-dir=tools/dotbot-brew \
|
--plugin-dir=tools/dotbot-brew \
|
||||||
|
|||||||
@@ -77,11 +77,11 @@ Examples:
|
|||||||
$BIN Update all git repositories
|
$BIN Update all git repositories
|
||||||
$BIN --verbose Update with detailed output
|
$BIN --verbose Update with detailed output
|
||||||
$BIN --exclude node_modules --exclude vendor
|
$BIN --exclude node_modules --exclude vendor
|
||||||
Update repositories but skip node_modules
|
Update repositories but skip node_modules
|
||||||
and vendor dirs
|
and vendor dirs
|
||||||
$BIN --cleanup Update and clean up merged branches
|
$BIN --cleanup Update and clean up merged branches
|
||||||
$BIN --config ~/.gitupdate.conf
|
$BIN --config ~/.gitupdate.conf
|
||||||
Use options from config file
|
Use options from config file
|
||||||
EOF
|
EOF
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ versions, Git tags, branch tags, and commit SHAs with simple commands.
|
|||||||
2. Make it executable: `chmod +x x-gh-get-latest-version`
|
2. Make it executable: `chmod +x x-gh-get-latest-version`
|
||||||
3. Optionally set up a GitHub token as an environment variable:
|
3. Optionally set up a GitHub token as an environment variable:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export GITHUB_TOKEN="your_personal_access_token"
|
export GITHUB_TOKEN="your_personal_access_token"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ to test the connectivity of a remote host and your route to it.
|
|||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
Steve
|
Steve
|
||||||
--
|
--
|
||||||
http://www.steve.org.uk/
|
http://www.steve.org.uk/
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ sub parsedOptions
|
|||||||
|
|
||||||
exit
|
exit
|
||||||
if (
|
if (
|
||||||
!GetOptions( "help" => \$vars{ 'help' },
|
!GetOptions( "help" => \$vars{ 'help' },
|
||||||
"verbose" => \$vars{ 'verbose' },
|
"verbose" => \$vars{ 'verbose' },
|
||||||
"forever" => \$vars{ 'loop' },
|
"forever" => \$vars{ 'loop' },
|
||||||
"loop" => \$vars{ 'loop' },
|
"loop" => \$vars{ 'loop' },
|
||||||
@@ -226,4 +226,3 @@ sub parsedOptions
|
|||||||
return (%vars);
|
return (%vars);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# This is the official list of project authors for copyright purposes.
|
# This is the official list of project authors for copyright purposes.
|
||||||
# This file is distinct from the CONTRIBUTORS.txt file.
|
# This file is distinct from the CONTRIBUTORS.txt file.
|
||||||
# See the latter for an explanation.
|
# See the latter for an explanation.
|
||||||
#
|
#
|
||||||
# Names should be added to this file as:
|
# Names should be added to this file as:
|
||||||
# Name or Organization <email address>
|
# Name or Organization <email address>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ with others.
|
|||||||
|
|
||||||
The OFL allows the licensed fonts to be used, studied, modified and
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
redistributed freely as long as they are not sold by themselves. The
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
fonts, including any derivative works, can be bundled, embedded,
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
redistributed and/or sold with any software provided that any reserved
|
redistributed and/or sold with any software provided that any reserved
|
||||||
names are not used by derivative works. The fonts and derivatives,
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
however, cannot be released under any other type of license. The
|
however, cannot be released under any other type of license. The
|
||||||
|
|||||||
0
scripts/install-cheat-purebashbible.sh
Normal file → Executable file
0
scripts/install-cheat-purebashbible.sh
Normal file → Executable file
@@ -1,3 +1,2 @@
|
|||||||
Host github.com
|
Host github.com
|
||||||
User git
|
User git
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,3 @@ Host lakka
|
|||||||
User viir
|
User viir
|
||||||
HostName lakka.kapsi.fi
|
HostName lakka.kapsi.fi
|
||||||
IdentityFile ~/.ssh/id_rsa
|
IdentityFile ~/.ssh/id_rsa
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ set -euo pipefail
|
|||||||
|
|
||||||
if [ -x "node_modules/bats/bin/bats" ]; then
|
if [ -x "node_modules/bats/bin/bats" ]; then
|
||||||
git ls-files '*.bats' -z | xargs -0 node_modules/bats/bin/bats
|
git ls-files '*.bats' -z | xargs -0 node_modules/bats/bin/bats
|
||||||
elif command -v npx >/dev/null; then
|
elif command -v npx > /dev/null; then
|
||||||
git ls-files '*.bats' -z | xargs -0 npx --yes bats
|
git ls-files '*.bats' -z | xargs -0 npx --yes bats
|
||||||
elif command -v bats >/dev/null; then
|
elif command -v bats > /dev/null; then
|
||||||
git ls-files '*.bats' -z | xargs -0 bats
|
git ls-files '*.bats' -z | xargs -0 bats
|
||||||
else
|
else
|
||||||
echo "bats not installed. Run 'yarn install' first." >&2
|
echo "bats not installed. Run 'yarn install' first." >&2
|
||||||
|
|||||||
0
tests/dfm.bats
Normal file → Executable file
0
tests/dfm.bats
Normal file → Executable file
0
tests/x-gh-get-latest-version.bats
Normal file → Executable file
0
tests/x-gh-get-latest-version.bats
Normal file → Executable file
0
tests/x-localip.bats
Normal file → Executable file
0
tests/x-localip.bats
Normal file → Executable file
0
tests/x-mkd.bats
Normal file → Executable file
0
tests/x-mkd.bats
Normal file → Executable file
0
tests/x-path.bats
Normal file → Executable file
0
tests/x-path.bats
Normal file → Executable file
Reference in New Issue
Block a user